Merge PR #537 into 12.0

Signed-off-by pedrobaeza
This commit is contained in:
OCA-git-bot
2020-08-07 15:01:39 +00:00
2 changed files with 27 additions and 23 deletions

View File

@@ -524,17 +524,18 @@ class ContractContract(models.Model):
This method triggers the creation of the next invoices of the contracts This method triggers the creation of the next invoices of the contracts
even if their next invoicing date is in the future. even if their next invoicing date is in the future.
""" """
invoice = self._recurring_create_invoice() invoices = self._recurring_create_invoice()
if invoice: if invoices:
self.message_post( for invoice in invoices:
body=_( self.message_post(
'Contract manually invoiced: ' body=_(
'<a href="#" data-oe-model="%s" data-oe-id="%s">Invoice' 'Contract manually invoiced: '
'</a>' '<a href="#" data-oe-model="%s" data-oe-id="%s">Invoice'
'</a>'
)
% (invoice._name, invoice.id)
) )
% (invoice._name, invoice.id) return invoices
)
return invoice
@api.multi @api.multi
def _recurring_create_invoice(self, date_ref=False): def _recurring_create_invoice(self, date_ref=False):

View File

@@ -16,16 +16,19 @@ class ContractContract(models.Model):
@api.multi @api.multi
def _recurring_create_invoice(self, date_ref=False): def _recurring_create_invoice(self, date_ref=False):
invoices = super()._recurring_create_invoice(date_ref) invoices = super()._recurring_create_invoice(date_ref)
if not self.invoicing_sales: for contract in self:
return invoices if not contract.invoicing_sales or not contract.recurring_next_date:
sales = self.env['sale.order'].search([ continue
('analytic_account_id', '=', self.group_id.id), sales = self.env['sale.order'].search([
('partner_invoice_id', 'child_of', ('analytic_account_id', '=', contract.group_id.id),
self.partner_id.commercial_partner_id.ids), ('partner_invoice_id', 'child_of',
('invoice_status', '=', 'to invoice'), contract.partner_id.commercial_partner_id.ids),
('date_order', '<=', ('invoice_status', '=', 'to invoice'),
'{} 23:59:59'.format(self.recurring_next_date)), ('date_order', '<=',
]) '{} 23:59:59'.format(contract.recurring_next_date)),
if sales: ])
invoice_ids = sales.action_invoice_create() if sales:
invoices |= self.env['account.invoice'].browse(invoice_ids)[:1] invoice_ids = sales.action_invoice_create()
invoices |= self.env['account.invoice'].browse(invoice_ids)[:1]
return invoices