diff options
Diffstat (limited to 'indoteknik_api/models')
| -rw-r--r-- | indoteknik_api/models/__init__.py | 1 | ||||
| -rw-r--r-- | indoteknik_api/models/res_partner.py | 14 | ||||
| -rw-r--r-- | indoteknik_api/models/res_users.py | 29 | ||||
| -rw-r--r-- | indoteknik_api/models/sale_order.py | 7 |
4 files changed, 39 insertions, 12 deletions
diff --git a/indoteknik_api/models/__init__.py b/indoteknik_api/models/__init__.py index 892d2657..8c85938c 100644 --- a/indoteknik_api/models/__init__.py +++ b/indoteknik_api/models/__init__.py @@ -9,3 +9,4 @@ from . import sale_order from . import x_manufactures from . import website_content from . import coupon_program +from . import res_partner diff --git a/indoteknik_api/models/res_partner.py b/indoteknik_api/models/res_partner.py new file mode 100644 index 00000000..57200ac1 --- /dev/null +++ b/indoteknik_api/models/res_partner.py @@ -0,0 +1,14 @@ +from odoo import models + + +class ResPartner(models.Model): + _inherit = 'res.partner' + + def get_main_parent(self): + partner = self + + while partner.parent_id: + partner = partner.parent_id + + return partner +
\ No newline at end of file diff --git a/indoteknik_api/models/res_users.py b/indoteknik_api/models/res_users.py index f331321f..456e52d7 100644 --- a/indoteknik_api/models/res_users.py +++ b/indoteknik_api/models/res_users.py @@ -6,27 +6,32 @@ class ResUsers(models.Model): def api_single_response(self, res_user, with_detail=''): config = self.env['ir.config_parameter'] - - user_pricelist = res_user.property_product_pricelist - pricelist_tier = user_pricelist.sudo().get_tier_name() + + partner = res_user.partner_id + main_partner = partner.get_main_parent() + + WEB_ROLE_ALIAS = { + 'manager': 2, + 'director': 3 + } data = { 'id': res_user.id, - 'parent_id': res_user.parent_id.id or False, - 'parent_name': res_user.parent_id.name or False, - 'partner_id': res_user.partner_id.id, + 'parent_id': res_user.parent_id.id or None, + 'parent_name': res_user.parent_id.name or None, + 'partner_id': partner.id, 'name': res_user.name, 'email': res_user.login, 'phone': res_user.phone or '', 'mobile': res_user.mobile or '', 'external': res_user.share, - 'company': res_user.company_type == 'company', - 'pricelist': pricelist_tier + 'company': main_partner.company_type == 'company', + 'pricelist': res_user.property_product_pricelist.sudo().get_tier_name(), + 'web_role': WEB_ROLE_ALIAS[partner.web_role] if partner.web_role else None, + 'feature': { + 'so_approval': main_partner.use_so_approval + } } - - - if res_user.parent_id: - data.update({ 'company': res_user.parent_id.company_type == 'company' }) return data diff --git a/indoteknik_api/models/sale_order.py b/indoteknik_api/models/sale_order.py index 85bf5015..1c0180ec 100644 --- a/indoteknik_api/models/sale_order.py +++ b/indoteknik_api/models/sale_order.py @@ -5,6 +5,12 @@ class SaleOrder(models.Model): _inherit = 'sale.order' def api_v1_single_response(self, sale_order, context=False): + APPROVAL_STEP = { + 'company': 1, + 'cust_manager': 2, + 'cust_director': 3, + } + data = { 'token': self.env['rest.api'].md5_salt(sale_order.id, 'sale.order'), 'id': sale_order.id, @@ -17,6 +23,7 @@ class SaleOrder(models.Model): 'purchase_order_file': True if sale_order.partner_purchase_order_file else False, 'invoice_count': sale_order.invoice_count, 'status': 'draft', + 'approval_step': APPROVAL_STEP[sale_order.web_approval] if sale_order.web_approval else 0, 'date_order': self.env['rest.api'].datetime_to_str(sale_order.date_order, '%d/%m/%Y %H:%M:%S'), 'pickings': [] } |
