trytonpsk-sale_pos_frontend.../restaurant.py

106 lines
3.4 KiB
Python

# This file is part sale_shop module for Tryton.
# The COPYRIGHT file at the top level of this repository contains
# the full copyright notices and license terms.
from trytond.model import ModelView, ModelSQL, fields
from trytond.pool import Pool
__all__ = ['SaleShopTable', 'Reservation']
TYPE_VEHICLE = [
('', ''),
('motorcycle', 'Motorcycle'),
('bicycle', 'Bicycle'),
('Car', 'Car'),
]
class SaleShopTable(ModelSQL, ModelView):
'Sale Shop Table'
__name__ = 'sale.shop.table'
shop = fields.Many2One('sale.shop', 'Shop', required=True)
name = fields.Char('Table Name', required=True, select=True)
active = fields.Boolean('Active', select=True)
capacity = fields.Integer('Capacity', required=True, select=True)
state = fields.Selection([
('available', 'Available'),
('occupied', 'Occupied'),
('reserved', 'Reserved')
], 'State', states={'readonly': True}
)
@staticmethod
def default_active():
return True
@staticmethod
def default_state():
return 'available'
class Reservation(ModelSQL, ModelView):
'Sale Reservation'
__name__ = 'sale.reservation'
class PartyConsumer(ModelSQL, ModelView):
'Party Consumer'
__name__ = 'party.consumer'
_rec_name = 'name'
name = fields.Char('Name', required=True)
phone = fields.Char('Phone', required=True)
address = fields.Char('Address', required=True)
id_number = fields.Char('Id Number')
birthday = fields.Date('Birthday')
party = fields.Function(fields.Many2One('party.party', 'Party'), 'get_party')
def get_party(self, name):
Party = Pool().get('party.party')
parties = Party.search([('id_number', '=', self.id_number)])
if not parties:
return
return parties[0].id
@classmethod
def write(cls, records, values):
for rec in records:
if rec.id_number and not rec.party:
Party = Pool().get('party.party')
Party.create([{
'name': rec.name,
'type_document': '13',
'id_number': rec.id_number,
'addresses': [('create', [{
'street': rec.address,
}])],
'contact_mechanisms': [
('create', [
{'type': 'phone', 'value': rec.phone},
# {'type': 'email', 'value': email},
])
]
}])
super(PartyConsumer, cls).write(records, values)
@classmethod
def create(cls, vals):
records = super(PartyConsumer, cls).create(vals)
print(records)
for rec in records:
if rec.id_number and not rec.party:
Party = Pool().get('party.party')
Party.create([{
'name': rec.name,
'type_document': '13',
'id_number': rec.id_number,
'addresses': [('create', [{
'street': rec.address,
}])],
'contact_mechanisms': [
('create', [
{'type': 'phone', 'value': rec.phone},
# {'type': 'email', 'value': email},
])
]
}])
return records