mirror of
https://github.com/OCA/contract.git
synced 2025-02-13 17:57:24 +02:00
Merge pull request #260 from Tecnativa/10.0-imp-cron_limit
[10.0] contract: allow to limit records on cron
This commit is contained in:
@@ -9,7 +9,7 @@
|
||||
|
||||
{
|
||||
'name': 'Contracts Management - Recurring',
|
||||
'version': '10.0.4.2.1',
|
||||
'version': '10.0.4.3.0',
|
||||
'category': 'Contract Management',
|
||||
'license': 'AGPL-3',
|
||||
'author': "OpenERP SA, "
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding='UTF-8'?>
|
||||
<odoo>
|
||||
<odoo noupdate="1">
|
||||
|
||||
<record model="ir.cron" id="account_analytic_cron_for_invoice">
|
||||
<field name="name">Generate Recurring Invoices from Contracts</field>
|
||||
|
||||
@@ -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):
|
||||
@@ -294,7 +299,7 @@ class AccountAnalyticAccount(models.Model):
|
||||
return invoices
|
||||
|
||||
@api.model
|
||||
def cron_recurring_create_invoice(self):
|
||||
def cron_recurring_create_invoice(self, limit=None):
|
||||
today = fields.Date.today()
|
||||
contracts = self.with_context(cron=True).search([
|
||||
('recurring_invoices', '=', True),
|
||||
@@ -303,7 +308,7 @@ class AccountAnalyticAccount(models.Model):
|
||||
('date_end', '=', False),
|
||||
('date_end', '>=', today),
|
||||
])
|
||||
return contracts.recurring_create_invoice()
|
||||
return contracts.recurring_create_invoice(limit)
|
||||
|
||||
@api.multi
|
||||
def action_contract_send(self):
|
||||
|
||||
Reference in New Issue
Block a user