Billing Entity Management #66

Open
rixx wants to merge 20 commits from 54-billing-entity-management into main
3 changed files with 28 additions and 1 deletions
Showing only changes of commit 9008833306 - Show all commits

View file

@ -4,6 +4,7 @@
* xref:web-portal.adoc[]
** xref:web-portal-admin.adoc[Admin]
** xref:web-portal-controlplanes.adoc[Control-Planes]
** xref:web-portal-billingentity.adoc[Billing Entities]
* xref:web-portal-planning.adoc[]
** xref:user-stories.adoc[]

View file

@ -0,0 +1,26 @@
= Web Portal Billing Entities
Billing entities are used to connect an invoice address in Odoo to an organization in Servala.
When creating a new organization, the billing information is required to be added.
== Existing Billing Address
With the email address of the currently logged-in user, Odoo is searched for existing `res.partner` records and presented in the dropdown.
Search is done this way:
* `res.partner` records created by a matching Odoo user.
* User email matches an invoice address or contact address
== New Billing Address
When choosing to add a new billing address, two new records are created in the Odoo `res.partner` model:
* A record with the field `company_type = company`
* A record with the following field configuration:
** `company_type = person`
** `type = invoice`
** `parent_id = company_id`
The resulting database IDs are stored in the Servala portal database for referencing the records in Odoo.

View file

@ -114,7 +114,7 @@ class BillingEntity(ServalaModelMixin, models.Model):
# Odoo IDs are nullable for creation, should never be null in practice
# The company ID points at a record of type res.partner with company_type=company
# The invoice ID points at a record of type res.partner with company_type=person,
# type=invoic, parent_id=company_id (the invoice address).
# type=invoice, parent_id=company_id (the invoice address).
odoo_company_id = models.IntegerField(null=True)
odoo_invoice_id = models.IntegerField(null=True)