trytondo-sale_line_delete_log/sale.py
2024-10-20 13:37:50 -05:00

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)