mirror of
https://github.com/OCA/contract.git
synced 2025-02-13 17:57:24 +02:00
[IMP] contract: Add extend existing invoice possibility
This commit is contained in:
committed by
Pedro M. Baeza
parent
80e778f4e7
commit
cd32e53308
@@ -236,10 +236,30 @@ class AccountAnalyticAccount(models.Model):
|
||||
return invoice._convert_to_write(invoice._cache)
|
||||
|
||||
@api.multi
|
||||
def _create_invoice(self):
|
||||
def _prepare_invoice_update(self, invoice):
|
||||
vals = self._prepare_invoice()
|
||||
update_vals = {
|
||||
'contract_id': self.id,
|
||||
'date_invoice': vals.get('date_invoice', False),
|
||||
'reference': ' '.join(filter(None, [
|
||||
invoice.reference, vals.get('reference')])),
|
||||
'origin': ' '.join(filter(None, [
|
||||
invoice.origin, vals.get('origin')])),
|
||||
}
|
||||
return update_vals
|
||||
|
||||
@api.multi
|
||||
def _create_invoice(self, invoice=False):
|
||||
"""
|
||||
:param invoice: If not False add lines to this invoice
|
||||
:return: invoice created or updated
|
||||
"""
|
||||
self.ensure_one()
|
||||
invoice_vals = self._prepare_invoice()
|
||||
invoice = self.env['account.invoice'].create(invoice_vals)
|
||||
if invoice and invoice.state == 'draft':
|
||||
invoice.update(self._prepare_invoice_update(invoice))
|
||||
else:
|
||||
invoice = self.env['account.invoice'].create(
|
||||
self._prepare_invoice())
|
||||
for line in self.recurring_invoice_line_ids:
|
||||
invoice_line_vals = self._prepare_invoice_line(line, invoice.id)
|
||||
if invoice_line_vals:
|
||||
|
||||
Reference in New Issue
Block a user