Loading subscription.py +30 −6 Original line number Diff line number Diff line Loading @@ -10,9 +10,33 @@ class Subscription(metaclass=PoolMeta): include = fields.Boolean("Include", states={'readonly': Eval('state') != 'draft'}) def compute_next_invoice_date(self): date = super(Subscription, self).compute_next_invoice_date() if(self.include and not self.next_invoice_date): return self.invoice_start_date or self.start_date # def compute_next_invoice_date(self): # date = super(Subscription, self).compute_next_invoice_date() # if(self.include and not self.next_invoice_date): # return self.invoice_start_date or self.start_date # else: # return date @classmethod @ModelView.button @Workflow.transition('running') def run(cls, subscriptions): pool = Pool() Line = pool.get('sale.subscription.line') lines = [] for subscription in subscriptions: if not subscription.next_invoice_date: if subscription.include: subscription.next_invoice_date = (subscription.invoice_start_date or subscription.start_date) else: subscription.next_invoice_date = (subscription.compute_next_invoice_date()) for line in subscription.lines: if (line.next_consumption_date is None and not line.consumed): if subscription.include: subscription.next_invoice_date = (subscription.invoice_start_date or subscription.start_date) else: return date No newline at end of file line.next_consumption_date = (line.compute_next_consumption_date()) lines.extend(subscription.lines) Line.save(lines) cls.save(subscriptions) No newline at end of file Loading
subscription.py +30 −6 Original line number Diff line number Diff line Loading @@ -10,9 +10,33 @@ class Subscription(metaclass=PoolMeta): include = fields.Boolean("Include", states={'readonly': Eval('state') != 'draft'}) def compute_next_invoice_date(self): date = super(Subscription, self).compute_next_invoice_date() if(self.include and not self.next_invoice_date): return self.invoice_start_date or self.start_date # def compute_next_invoice_date(self): # date = super(Subscription, self).compute_next_invoice_date() # if(self.include and not self.next_invoice_date): # return self.invoice_start_date or self.start_date # else: # return date @classmethod @ModelView.button @Workflow.transition('running') def run(cls, subscriptions): pool = Pool() Line = pool.get('sale.subscription.line') lines = [] for subscription in subscriptions: if not subscription.next_invoice_date: if subscription.include: subscription.next_invoice_date = (subscription.invoice_start_date or subscription.start_date) else: subscription.next_invoice_date = (subscription.compute_next_invoice_date()) for line in subscription.lines: if (line.next_consumption_date is None and not line.consumed): if subscription.include: subscription.next_invoice_date = (subscription.invoice_start_date or subscription.start_date) else: return date No newline at end of file line.next_consumption_date = (line.compute_next_consumption_date()) lines.extend(subscription.lines) Line.save(lines) cls.save(subscriptions) No newline at end of file