[FIX] ensan_donation_request: error in advance_next_date
This commit is contained in:
parent
9bf008943c
commit
07cc872240
|
|
@ -310,23 +310,19 @@ class DonationRecurring(models.Model):
|
||||||
if not date_ref:
|
if not date_ref:
|
||||||
date_ref = fields.Date.context_today(self)
|
date_ref = fields.Date.context_today(self)
|
||||||
domain = self._get_donations_to_process_domain(date_ref)
|
domain = self._get_donations_to_process_domain(date_ref)
|
||||||
|
|
||||||
records = self.search(domain)
|
records = self.search(domain)
|
||||||
for rec in records:
|
try:
|
||||||
try:
|
for rec in records:
|
||||||
unprocessed_lines = rec.recurring_line_ids.filtered(lambda l: not l.sale_order_id)
|
|
||||||
if unprocessed_lines:
|
|
||||||
for line in unprocessed_lines:
|
|
||||||
rec._create_sale_order(line)
|
|
||||||
new_line = rec._create_donation_line()
|
new_line = rec._create_donation_line()
|
||||||
|
unprocessed_lines = rec.recurring_line_ids.filtered(lambda l: not l.sale_order_id)
|
||||||
|
for line in unprocessed_lines:
|
||||||
|
rec._create_sale_order(line)
|
||||||
if not new_line:
|
if not new_line:
|
||||||
continue
|
continue
|
||||||
rec._create_sale_order(new_line)
|
|
||||||
rec._advance_next_date()
|
rec._advance_next_date()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
rec.message_post(body=_("⛔ Unexpected error:<br/><pre>%s</pre>") % str(e))
|
self.message_post(body=_("⛔ Unexpected error:<br/><pre>%s</pre>") % str(e))
|
||||||
continue
|
raise
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
@api.model
|
@api.model
|
||||||
|
|
@ -340,14 +336,16 @@ class DonationRecurring(models.Model):
|
||||||
]
|
]
|
||||||
|
|
||||||
def _advance_next_date(self):
|
def _advance_next_date(self):
|
||||||
for rec in self:
|
self.ensure_one()
|
||||||
interval = rec.recurring_interval or 1
|
interval = self.recurring_interval or 1
|
||||||
if rec.frequency == 'daily':
|
next_date = self.recurring_next_date
|
||||||
rec.recurring_next_date += relativedelta(days=interval)
|
if self.frequency == 'daily':
|
||||||
elif rec.frequency == 'weekly':
|
next_date = next_date + relativedelta(days=interval)
|
||||||
rec.recurring_next_date += relativedelta(weeks=interval)
|
elif self.frequency == 'weekly':
|
||||||
elif rec.frequency == 'monthly':
|
next_date = next_date + relativedelta(weeks=interval)
|
||||||
rec.recurring_next_date += relativedelta(months=interval)
|
elif self.frequency == 'monthly':
|
||||||
|
next_date = next_date + relativedelta(months=interval)
|
||||||
|
self.recurring_next_date = next_date
|
||||||
|
|
||||||
def unlink(self):
|
def unlink(self):
|
||||||
bot = self.env.ref('base.partner_root').id
|
bot = self.env.ref('base.partner_root').id
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue