This question has been flagged
1 Reply
5107 Views

I want to update the 'price_unit' of the 'recurring_invoice_line_ids' when a field in sale.subscription changes 


It works when you run whit a button, but doesn't trigger the depens


Here is my code:


class SubscriptionPlanes(models.Model):

_inherit = 'sale.subscription'

        pagadas_count = fields.Integer()



        @api.depends('pagadas_count')

def update_sub_line(self):

subline_aporte = self.env['sale.subscription.line'].search(['&', ('analytic_account_id', '=', self.id), ('product_id.default_code', '=', 'APORTE')])

subline_cmac = self.env['sale.subscription.line'].search(['&', ('analytic_account_id', '=', self.id), ('product_id.default_code', '=', 'CMAC')])

subline_aporte.write({'price_unit': 1000})

subline_cmac.write({'price_unit': 500})

Avatar
Discard
Best Answer

DO update the computation in the comodel of one2many field.

Here is the format for updating one2many or many2many fields.

(0, 0, { values }) link to a new record that needs to be created with the given values dictionary

(1, ID, { values }) update the linked record with id = ID (write values on it)

(2, ID) remove and delete the linked record with id = ID (calls unlink on ID, that will delete the object completely, and the link to it as well)

(3, ID) cut the link to the linked record with id = ID (delete the relationship between the two objects but does not delete the target object itself)

(4, ID) link to existing record with id = ID (adds a relationship)

(5) unlink all (like using (3,ID) for all linked records)

(6, 0, [IDs]) replace the list of linked IDs (like using (5) then (4,ID) for each ID in the list of IDs)

https://hilarlive.wordpress.com/2017/04/22/one2many-or-many2many-flags/


Avatar
Discard