[IMP] ensan_sale_management: copy name and mobile from signed in partner

This commit is contained in:
Abdurrahman Saber 2025-07-29 17:46:02 +03:00
parent ab1b3a98c7
commit 17714ee8c7
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']
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'))