51 lines
1.5 KiB
Python
51 lines
1.5 KiB
Python
#This file is part of Tryton. The COPYRIGHT file at the top level of
|
|
#this repository contains the full copyright notices and license terms.
|
|
from trytond.model import Model, fields
|
|
from trytond.pool import Pool
|
|
|
|
|
|
class Invoice(Model):
|
|
_name = 'account.invoice'
|
|
|
|
sales = fields.Many2Many('sale.sale-account.invoice',
|
|
'invoice', 'sale', 'Sales', readonly=True)
|
|
|
|
def copy(self, ids, default=None):
|
|
if default is None:
|
|
default = {}
|
|
default = default.copy()
|
|
default.setdefault('sales', None)
|
|
return super(Invoice, self).copy(ids, default=default)
|
|
|
|
def paid(self, ids):
|
|
pool = Pool()
|
|
sale_obj = pool.get('sale.sale')
|
|
super(Invoice, self).paid(ids)
|
|
invoices = self.browse(ids)
|
|
sale_obj.process([s.id for i in invoices for s in i.sales])
|
|
|
|
def cancel(self, ids):
|
|
pool = Pool()
|
|
sale_obj = pool.get('sale.sale')
|
|
super(Invoice, self).cancel(ids)
|
|
invoices = self.browse(ids)
|
|
sale_obj.process([s.id for i in invoices for s in i.sales])
|
|
|
|
Invoice()
|
|
|
|
|
|
class InvoiceLine(Model):
|
|
_name = 'account.invoice.line'
|
|
|
|
sale_lines = fields.Many2Many('sale.line-account.invoice.line',
|
|
'invoice_line', 'sale_line', 'Sale Lines', readonly=True)
|
|
|
|
def copy(self, ids, default=None):
|
|
if default is None:
|
|
default = {}
|
|
default = default.copy()
|
|
default.setdefault('sale_lines', None)
|
|
return super(InvoiceLine, self).copy(ids, default=default)
|
|
|
|
InvoiceLine()
|