Browse Source

[IMP] contract_sale_invoicing

# Conflicts:
#	contract_sale_invoicing/models/contract.py
pull/437/head
Maxime Chambreuil 5 years ago
parent
commit
c91a170ffc
  1. 26
      contract_sale_invoicing/models/contract.py

26
contract_sale_invoicing/models/contract.py

@ -13,7 +13,21 @@ class ContractContract(models.Model):
group_by = fields.Selection([
('analytic_account', 'Analytic Account'),
('contract', 'Contract')],
default='analytic_account', string='Group By')
default='analytic_account', string='Group invoices by')
def get_sale_order_domain(self):
domain = [
('partner_invoice_id', 'child_of',
self.partner_id.commercial_partner_id.ids),
('invoice_status', '=', 'to invoice'),
('date_order', '<=',
'{} 23:59:59'.format(self.recurring_next_date)),
]
if self.group_by == 'analytic_account':
domain.append(('analytic_account_id', '=', self.group_id.id))
elif self.group_by == 'contract':
domain.append(('contract_id', '=', self.id))
return domain
@api.multi
def _recurring_create_invoice(self, date_ref=False):
@ -21,14 +35,8 @@ class ContractContract(models.Model):
for rec in self:
if not rec.invoicing_sales:
return invoices
sales = self.env['sale.order'].search([
('analytic_account_id', '=', rec.group_id.id),
('partner_invoice_id', 'child_of',
rec.partner_id.commercial_partner_id.ids),
('invoice_status', '=', 'to invoice'),
('date_order', '<=',
'{} 23:59:59'.format(rec.recurring_next_date)),
])
so_domain = rec.get_sale_order_domain()
sales = self.env['sale.order'].search(so_domain)
if sales:
invoice_ids = sales.action_invoice_create()
invoices |= self.env['account.invoice'].browse(invoice_ids)[:1]

Loading…
Cancel
Save