59 lines
1.5 KiB
Python
59 lines
1.5 KiB
Python
from trytond.pool import PoolMeta, Pool
|
|
from trytond.model import fields, ModelSQL, ModelView
|
|
from trytond.transaction import Transaction
|
|
|
|
|
|
class Sale(metaclass=PoolMeta):
|
|
__name__ = 'sale.sale'
|
|
|
|
delete_lines = fields.One2Many(
|
|
'sale.line_deleted', 'sale', "Delete lines",
|
|
states={
|
|
'readonly': True
|
|
})
|
|
|
|
|
|
class SaleLine(metaclass=PoolMeta):
|
|
__name__ = 'sale.line'
|
|
|
|
@classmethod
|
|
def _create_sale_line_deleted_log(cls, line):
|
|
pool = Pool()
|
|
SaleLineDeleted = pool.get('sale.line_deleted')
|
|
|
|
SaleLineDeleted.create([{
|
|
'sale': line.sale,
|
|
'sale_date': line.sale_date,
|
|
'quantity': line.quantity,
|
|
'unit': line.unit,
|
|
'product': line.product,
|
|
'user': Transaction().user
|
|
}])
|
|
|
|
|
|
class SaleLineDeleted(ModelSQL, ModelView):
|
|
'Register lines deleted in sale'
|
|
|
|
__name__ = 'sale.line_deleted'
|
|
|
|
_state = states = {
|
|
'readonly': True
|
|
}
|
|
|
|
sale = fields.Many2One(
|
|
'sale.sale', "Sale", ondelete='CASCADE', required=True)
|
|
printed = fields.Boolean("Printed")
|
|
quantity = fields.Float(
|
|
"Quantity", digits='unit', states=_state)
|
|
unit = fields.Many2One(
|
|
'product.uom', 'Unit', ondelete='RESTRICT', states=_state)
|
|
product = fields.Many2One(
|
|
'product.product', 'Product',
|
|
ondelete='RESTRICT', states=_state)
|
|
sale_date = fields.Date(
|
|
'Sale Date',
|
|
states=_state
|
|
)
|
|
user = fields.Many2One(
|
|
'res.user', 'User', states=_state)
|