diff --git a/contract/data/contract_cron.xml b/contract/data/contract_cron.xml index 7c3a1fef..bf8e824e 100644 --- a/contract/data/contract_cron.xml +++ b/contract/data/contract_cron.xml @@ -1,5 +1,5 @@ - + Generate Recurring Invoices from Contracts diff --git a/contract/models/account_analytic_account.py b/contract/models/account_analytic_account.py index 3cc9e427..361be72a 100644 --- a/contract/models/account_analytic_account.py +++ b/contract/models/account_analytic_account.py @@ -260,13 +260,18 @@ class AccountAnalyticAccount(models.Model): return invoice @api.multi - def recurring_create_invoice(self): + def recurring_create_invoice(self, limit=None): """Create invoices from contracts + :param int limit: + Max of invoices to create. + :return: invoices created """ invoices = self.env['account.invoice'] for contract in self: + if limit and len(invoices) >= limit: + break ref_date = contract.recurring_next_date or fields.Date.today() if (contract.date_start > ref_date or contract.date_end and contract.date_end < ref_date): @@ -302,8 +307,8 @@ class AccountAnalyticAccount(models.Model): '|', ('date_end', '=', False), ('date_end', '>=', today), - ], limit=limit) - return contracts.recurring_create_invoice() + ]) + return contracts.recurring_create_invoice(limit) @api.multi def action_contract_send(self):