trytondo-sale_printer/printer.py
2023-12-22 07:53:16 -05:00

44 lines
1.4 KiB
Python

from trytond.model import Model, ModelSQL, ModelView, fields
from trytond.pyson import Eval
class Device(Model):
'Devices'
__name__ = 'sale_device'
name = fields.Char("Name")
type_ = fields.Selection([('usb', "Usb"),
('network', "Network")], "Type")
ip_address = fields.Char('IP Address or Network',
states={'required': Eval('type_') == 'network',
'invisible': Eval('type_') != 'network'},
help='IPv4 or IPv6 IP address or network. Valid values include: 192.168.0.26 or 192.168.0.0/24')
idVendor = fields.Char('idVendor', states={
'required': Eval('type_') == 'usb',
'invisible': Eval('type_') != 'usb',
})
idProduct = fields.Char('idProduct', states={
'required': Eval('type_') == 'usb',
'invisible': Eval('type_') != 'usb',
})
@classmethod
def default_type(cls):
return 'network'
class Printer(Device, ModelSQL, ModelView):
'Printer'
__name__ = 'sale.printer'
zone = fields.Selection([('bar', "Bar"),
('kitchen', "Kitchen"),
('reception', "Reception")], "Zone")
shop = fields.Many2One('sale.shop', "Shop")
api = fields.Many2One('sale.printer_api', "API")
class Api(Device, ModelSQL, ModelView):
'Api printer'
__name__ = 'sale.printer_api'