mirror of
https://github.com/OCA/contract.git
synced 2025-02-13 17:57:24 +02:00
[FIX] Ensure Analytic Account is copied from SO to Agreement
This commit is contained in:
committed by
Patrick Wilson
parent
2c370b6208
commit
fcba25441c
@@ -9,7 +9,8 @@ class Agreement(models.Model):
|
|||||||
|
|
||||||
sale_id = fields.Many2one('sale.order', string='Sales Order')
|
sale_id = fields.Many2one('sale.order', string='Sales Order')
|
||||||
analytic_account_id = fields.Many2one(
|
analytic_account_id = fields.Many2one(
|
||||||
'account.analytic.account', 'Analytic Account', readonly=True,
|
'account.analytic.account',
|
||||||
|
'Analytic Account',
|
||||||
copy=False)
|
copy=False)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -44,3 +44,18 @@ class SaleOrder(models.Model):
|
|||||||
'agreement_id': order.agreement_id.id,
|
'agreement_id': order.agreement_id.id,
|
||||||
})
|
})
|
||||||
return res
|
return res
|
||||||
|
|
||||||
|
def action_confirm(self):
|
||||||
|
# If sale_timesheet is installed, the _action_confirm()
|
||||||
|
# may be setting an Analytic Account on the SO.
|
||||||
|
# But since it is not a dependency, that can happen after
|
||||||
|
# we create the Agreement.
|
||||||
|
# To work around that, we check if that is the case,
|
||||||
|
# and make sure the SO Analytic Account is copied to the Agreement.
|
||||||
|
res = super(SaleOrder, self).action_confirm()
|
||||||
|
for order in self:
|
||||||
|
agreement = order.agreement_id
|
||||||
|
if (order.analytic_account_id and agreement and
|
||||||
|
not agreement.analytic_account_id):
|
||||||
|
agreement.analytic_account_id = order.analytic_account_id
|
||||||
|
return res
|
||||||
|
|||||||
Reference in New Issue
Block a user