[IMP] ensan_donation_request: fix transaction invoice
This commit is contained in:
parent
8effb6c372
commit
51ca859a9a
File diff suppressed because it is too large
Load Diff
|
|
@ -56,6 +56,7 @@ class DonationRecurring(models.Model):
|
|||
)
|
||||
sale_order_count = fields.Integer(string="Sale Orders", compute="_compute_sale_order_count", store=True)
|
||||
invoice_count = fields.Integer(string="Invoices", compute="_compute_invoice_count", store=True)
|
||||
transaction_ids = fields.Many2many('payment.transaction', compute="_compute_transaction_ids")
|
||||
|
||||
@api.depends('sale_order_ids')
|
||||
def _compute_sale_order_count(self):
|
||||
|
|
@ -102,6 +103,10 @@ class DonationRecurring(models.Model):
|
|||
for rec in self:
|
||||
rec.total_amount = sum(line.total_amount for line in rec.recurring_line_ids)
|
||||
|
||||
def _compute_transaction_ids(self):
|
||||
for rec in self:
|
||||
rec.transaction_ids = rec.sale_order_ids.transaction_ids
|
||||
|
||||
@api.onchange('recurring_interval', 'frequency')
|
||||
def _onchange_frequency_or_interval(self):
|
||||
for rec in self:
|
||||
|
|
@ -199,21 +204,12 @@ class DonationRecurring(models.Model):
|
|||
#
|
||||
# self.message_post(body=_("📦 Delivery validated for Sale Order <b>%s</b>.") % order.name)
|
||||
# return picking
|
||||
|
||||
def create_invoice_from_order(self, order):
|
||||
invoice = order._create_invoices()
|
||||
invoice.action_post()
|
||||
self.message_post(body=_("🧾 Invoice <b>%s</b> posted for Sale Order <b>%s</b>.") % (invoice.name, order.name))
|
||||
return invoice
|
||||
|
||||
def action_activate(self):
|
||||
for rec in self:
|
||||
rec.name = self.env['ir.sequence'].next_by_code('donation.recurring') or _('New')
|
||||
for line in rec.recurring_line_ids:
|
||||
order = rec._create_sale_order(line)
|
||||
if not order:
|
||||
continue
|
||||
rec.sudo().create_invoice_from_order(order)
|
||||
rec._create_sale_order(line)
|
||||
rec._advance_next_date()
|
||||
rec.state = 'active'
|
||||
template = self.env.company.donation_recurring_created_sms_template_id
|
||||
|
|
@ -272,7 +268,6 @@ class DonationRecurring(models.Model):
|
|||
def action_cancel(self):
|
||||
for record in self:
|
||||
record.state = 'cancel'
|
||||
record.active = False
|
||||
record.date_end = fields.Date.context_today(self)
|
||||
|
||||
def action_reset_to_active(self):
|
||||
|
|
@ -295,15 +290,11 @@ class DonationRecurring(models.Model):
|
|||
unprocessed_lines = rec.recurring_line_ids.filtered(lambda l: not l.sale_order_id)
|
||||
if unprocessed_lines:
|
||||
for line in unprocessed_lines:
|
||||
order = rec._create_sale_order(line)
|
||||
if order:
|
||||
rec.create_invoice_from_order(order)
|
||||
rec._create_sale_order(line)
|
||||
new_line = rec._create_donation_line()
|
||||
if not new_line:
|
||||
continue
|
||||
order = rec._create_sale_order(new_line)
|
||||
if order:
|
||||
rec.create_invoice_from_order(order)
|
||||
rec._create_sale_order(new_line)
|
||||
rec._advance_next_date()
|
||||
except Exception as e:
|
||||
rec.message_post(body=_("⛔ Unexpected error:<br/><pre>%s</pre>") % str(e))
|
||||
|
|
|
|||
|
|
@ -89,6 +89,7 @@
|
|||
<field name="date_start"/>
|
||||
<field name="date_end"/>
|
||||
<field name="recurring_next_date"/>
|
||||
<field name="send_recurring_sms"/>
|
||||
</group>
|
||||
</group>
|
||||
<notebook>
|
||||
|
|
|
|||
Loading…
Reference in New Issue