From 17714ee8c77768d5fdda46bb5fb92798f1af0546 Mon Sep 17 00:00:00 2001 From: Abdurrahman Saber Date: Tue, 29 Jul 2025 17:46:02 +0300 Subject: [PATCH] [IMP] ensan_sale_management: copy name and mobile from signed in partner --- .../ensan_sale_management/models/sale_order.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/odex25_donation/ensan_sale_management/models/sale_order.py b/odex25_donation/ensan_sale_management/models/sale_order.py index a9e7e51c5..bd15bef07 100644 --- a/odex25_donation/ensan_sale_management/models/sale_order.py +++ b/odex25_donation/ensan_sale_management/models/sale_order.py @@ -7,8 +7,8 @@ class SaleOrder(models.Model): _inherit = ['sale.order', 'phone.validation.mixin'] done_with_quick_donation = fields.Boolean(default=False) - order_mobile_number = fields.Char("Donor Number") - order_name = fields.Char("Donor Name") + order_mobile_number = fields.Char("Donor Number", store=True, compute="_compute_customer_data") + order_name = fields.Char("Donor Name", store=True, compute="_compute_customer_data") sale_order_portal_url = fields.Char("Sale Order Url", compute="get_sale_order_portal_url") donators_ids = fields.One2many('sale.order.extra_donators', 'sale_id', string="Donators", store=True, readonly=True) is_gift = fields.Boolean("Is Gift Product?", store=True, compute="compute_gift_order") @@ -17,8 +17,17 @@ class SaleOrder(models.Model): cart_recovery_sms_sent = fields.Boolean('Cart recovery sms already sent') donor_type = fields.Selection([('new', 'New'), ('returning', 'Returning')]) + @api.depends('partner_id') + def _compute_customer_data(self): + portal_user_id = self.env.ref('base.public_partner').id + for rec in self: + rec.with_context(skip_partner_mobile_sync=True).write({ + 'order_mobile_number': rec.partner_id.mobile if rec.partner_id.id != portal_user_id and rec.partner_id.mobile else rec.order_mobile_number, + 'order_name': rec.partner_id.name if rec.partner_id.id != portal_user_id else rec.order_name + }) + def write(self, vals): - if 'order_mobile_number' in vals: + if 'order_mobile_number' in vals and not self._context.get('skip_partner_mobile_sync'): vals['order_mobile_number'] = self.phone_format(vals['order_mobile_number']) orders = self.search([('state', '=', 'sale'), ('id', 'not in', self.ids)]) numbers = set(orders.mapped('order_mobile_number'))