Merge pull request #4053 from expsa/ENS-3613

[IMP] ensan_sale_management: copy name and mobile from signed in partner
This commit is contained in:
abdurrahman-saber 2025-07-29 17:47:34 +03:00 committed by GitHub
commit 6d13c3d290
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 12 additions and 3 deletions

View File

@ -7,8 +7,8 @@ class SaleOrder(models.Model):
_inherit = ['sale.order', 'phone.validation.mixin'] _inherit = ['sale.order', 'phone.validation.mixin']
done_with_quick_donation = fields.Boolean(default=False) done_with_quick_donation = fields.Boolean(default=False)
order_mobile_number = fields.Char("Donor Number") order_mobile_number = fields.Char("Donor Number", store=True, compute="_compute_customer_data")
order_name = fields.Char("Donor Name") 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") 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) 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") 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') cart_recovery_sms_sent = fields.Boolean('Cart recovery sms already sent')
donor_type = fields.Selection([('new', 'New'), ('returning', 'Returning')]) 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): 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']) vals['order_mobile_number'] = self.phone_format(vals['order_mobile_number'])
orders = self.search([('state', '=', 'sale'), ('id', 'not in', self.ids)]) orders = self.search([('state', '=', 'sale'), ('id', 'not in', self.ids)])
numbers = set(orders.mapped('order_mobile_number')) numbers = set(orders.mapped('order_mobile_number'))