forked from shopinvader/odoo-shopinvader
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathschemas.py
55 lines (44 loc) · 1.39 KB
/
schemas.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# Copyright 2023 ACSONE SA/NV
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from extendable_pydantic import StrictExtendableBaseModel
class Address(StrictExtendableBaseModel):
id: int
name: str | None = None
street: str | None = None
street2: str | None = None
zip: str | None = None
city: str | None = None
phone: str | None = None
mobile: str | None = None
email: str | None = None
state_id: int | None = None
country_id: int | None = None
@classmethod
def from_res_partner(cls, odoo_rec):
return cls.model_construct(
id=odoo_rec.id,
name=odoo_rec.name or None,
street=odoo_rec.street or None,
street2=odoo_rec.street2 or None,
zip=odoo_rec.zip or None,
city=odoo_rec.city or None,
phone=odoo_rec.phone or None,
mobile=odoo_rec.mobile or None,
email=odoo_rec.email or None,
state_id=odoo_rec.state_id.id or None,
country_id=odoo_rec.country_id.id or None,
)
class InvoicingAddress(Address):
"""
Invoicing Address
"""
vat: str | None = None
@classmethod
def from_res_partner(cls, odoo_rec):
res = super().from_res_partner(odoo_rec)
res.vat = odoo_rec.vat or None
return res
class DeliveryAddress(Address):
"""
Delivery Address
"""