Allow users to reuse invoice addresses
This commit is contained in:
parent
4718a01bb0
commit
025670c0a4
1 changed files with 17 additions and 0 deletions
|
@ -120,13 +120,30 @@ def get_invoice_addresses(user):
|
||||||
addresses the user owns or is connected to from the Odoo API."""
|
addresses the user owns or is connected to from the Odoo API."""
|
||||||
# We’re building our conditions in order:
|
# We’re building our conditions in order:
|
||||||
# - in exceptions, users may be using a billing account’s email
|
# - in exceptions, users may be using a billing account’s email
|
||||||
|
# - if the user is an admin or owner of a Servala organization
|
||||||
# - if the user is associated with an odoo user, return all billing
|
# - if the user is associated with an odoo user, return all billing
|
||||||
# addresses / organizations created by the user
|
# addresses / organizations created by the user
|
||||||
# - if the user is associated with an odoo contact, return all billing
|
# - if the user is associated with an odoo contact, return all billing
|
||||||
# addresses with the same parent_id
|
# addresses with the same parent_id
|
||||||
|
from servala.core.models.organization import (
|
||||||
|
OrganizationMembership,
|
||||||
|
OrganizationRole,
|
||||||
|
)
|
||||||
|
|
||||||
email = user.email
|
email = user.email
|
||||||
or_conditions = [("email", "ilike", email)]
|
or_conditions = [("email", "ilike", email)]
|
||||||
|
|
||||||
|
servala_invoice_ids = list(
|
||||||
|
OrganizationMembership.objects.filter(
|
||||||
|
user=user, role__in=[OrganizationRole.ADMIN, OrganizationRole.OWNER]
|
||||||
|
)
|
||||||
|
.values_list("organization__billing_entity__odoo_invoice_id", flat=True)
|
||||||
|
.distinct()
|
||||||
|
)
|
||||||
|
servala_invoice_ids = [pk for pk in servala_invoice_ids if pk]
|
||||||
|
if servala_invoice_ids:
|
||||||
|
or_conditions.append(("id", "in", servala_invoice_ids))
|
||||||
|
|
||||||
odoo_users = CLIENT.search_read(
|
odoo_users = CLIENT.search_read(
|
||||||
model="res.users",
|
model="res.users",
|
||||||
domain=[("login", "=", email), ("active", "=", True)],
|
domain=[("login", "=", email), ("active", "=", True)],
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue