diff --git a/booking.py b/booking.py index ccb9f55..7d3240b 100644 --- a/booking.py +++ b/booking.py @@ -757,15 +757,14 @@ class Booking(Workflow, ModelSQL, ModelView): ) def update_folio(self, state): - Line = Pool().get('hotel.folio') - Line.write(list(self.lines), {'registration_state': state}) + Folio = Pool().get('hotel.folio') + Folio.write(list(self.lines), {'registration_state': state}) def check_rooms(self): - pool = Pool() + Housekeeping = Pool().get('hotel.housekeeping') rooms_ids = [] for line in self.lines: rooms_ids.append(line.room.id) - Housekeeping = pool.get('hotel.housekeeping') housekeepings = Housekeeping.search([ ('state', '!=', 'clean') ]) @@ -1333,7 +1332,7 @@ class UpdateHolderStart(ModelView): target_country = fields.Many2One('party.country_code', 'Target Country') country = fields.Many2One('party.country_code', 'Country') - city = fields.Char('City') + city = fields.Many2One('party.country_city', 'City') address = fields.Char('Address') type_document = fields.Selection(TYPE_DOCUMENT, 'Tipo de Documento', @@ -1490,7 +1489,6 @@ class UpdateHolder(Wizard): if edit: Party.write([booking.party], rec) else: - print(rec) party, = Party.create([rec]) Booking.write([booking], {'party': party.id}) booking.save() diff --git a/constants.py b/constants.py index c3cb88a..951b8b4 100644 --- a/constants.py +++ b/constants.py @@ -112,3 +112,16 @@ TYPE_DOCUMENT = [ ('91', 'NUIP'), ('', ''), ] + +COLOR_BOOKING = { + 'draft': '#9b9f9f', + 'check_in': '#e6bd0f', + 'check_out': '#09a4cd', + 'done': '#315274', +} + +COLOR_MNT = { + 'draft': '#e87a7a', + 'confirmed': '#d45757', + 'done': '#d45757', +} diff --git a/folio.py b/folio.py index de20e96..b73aaa6 100644 --- a/folio.py +++ b/folio.py @@ -14,7 +14,8 @@ from trytond.transaction import Transaction from trytond.model.exceptions import AccessError from trytond.exceptions import UserError from trytond.i18n import gettext -from .constants import REGISTRATION_STATE, COMPLEMENTARY, INVOICE_STATES +from .constants import (REGISTRATION_STATE, COMPLEMENTARY, INVOICE_STATES, + COLOR_BOOKING, COLOR_MNT) STATES_CHECKIN = { 'readonly': Eval('registration_state').in_( @@ -34,23 +35,7 @@ STATES_OP = { 'readonly': Eval('state').in_(['check_out', 'done', 'cancelled']) } -STATES_MNT = { - 'readonly': Eval('state') != 'draft', -} - -COLOR_BOOKING = { - 'draft': '#9b9f9f', - 'check_in': '#e6bd0f', - 'check_out': '#09a4cd', - 'done': '#315274', -} - -COLOR_MNT = { - 'draft': '#e87a7a', - 'confirmed': '#d45757', - 'done': '#d45757', -} - +STATES_MNT = {'readonly': Eval('state') != 'draft'} _ZERO = Decimal('0') @@ -217,6 +202,7 @@ class Folio(ModelSQL, ModelView): rec.set_registration_number() rec.booking.check_rooms() rec.add_main_guest() + cls.update_room(rec.room, 'dirty') cls.write(records, {'registration_state': 'check_in'}) @classmethod @@ -224,6 +210,7 @@ class Folio(ModelSQL, ModelView): def check_out(cls, records): for record in records: cls.write([record], {'registration_state': 'check_out'}) + cls.update_room(rec.room, 'dirty') @classmethod @ModelView.button @@ -244,6 +231,15 @@ class Folio(ModelSQL, ModelView): def default_registration_state(): return 'pending' + @classmethod + def update_room(cls, room, state): + Housekeeping = pool.get('hotel.housekeeping') + hkrooms = Housekeeping.search([ + ('room', '=', room.id), + ]) + method = getattr(cls, state) + method([hkrooms]) + def get_invoice_state(self, name=None): if self.invoice_line: return self.invoice_line.invoice.state @@ -269,8 +265,7 @@ class Folio(ModelSQL, ModelView): self.save() def add_main_guest(self): - pool = Pool() - Guest = pool.get('hotel.folio.guest') + Guest = Pool().get('hotel.folio.guest') Guest.create([{ 'folio': self.id, 'party': self.main_guest.id, diff --git a/invoice.py b/invoice.py index eb932b1..6a18ef9 100644 --- a/invoice.py +++ b/invoice.py @@ -6,17 +6,10 @@ from trytond.pool import PoolMeta class Invoice(metaclass=PoolMeta): __name__ = 'account.invoice' - # boxes = fields.Float('Boxes', digits=(6, 2)) - # packing_qty = fields.Float('Pieces', digits=(6, 2)) - # quantity = fields.Float('Quantity', digits=(6, 2)) - # unit_qty = fields.Float('Stems', digits=(6, 2)) @classmethod def post(cls, invoices): super(Invoice, cls).post(invoices) - # qty = self.quantity - # if self.purchase.invoice_method != 'manual': - # print(' qty ', qty) for invoice in invoices: if invoice.type == 'out': cls.set_advances_from_origin(invoice) diff --git a/party.py b/party.py index 37af18f..ad3eaaf 100644 --- a/party.py +++ b/party.py @@ -8,13 +8,6 @@ from trytond.transaction import Transaction from trytond.exceptions import UserError from trytond.i18n import gettext -TYPE = [ - ('', ''), - ('service_acomplished', 'Service Acomplished'), - ('direct', 'Direct'), - ('implicit', 'Implicit'), -] - class Party(metaclass=PoolMeta): __name__ = 'party.party' @@ -22,15 +15,6 @@ class Party(metaclass=PoolMeta): Party field and function aditions for channels management. Sales commissions, taxes and price lists. ''' - sale_commission = fields.Numeric('Sales Commission %', digits=(3, 2), - help="Add the percentage of sales commission for this channel.",) - # Must be required if party is hotel channel. - # states={ - # 'readonly': ~Eval('active', True), - # 'required': Bool(Eval('vat_country')), - # }, - # depends=['active', 'vat_country'], size=12, select=True) - sale_commission_type = fields.Selection(TYPE, 'Sales Commission Type') visa_category = fields.Char('Visa Category') visa_number = fields.Char('Visa Number') visa_date = fields.Date('Visa Date') diff --git a/view/party_form.xml b/view/party_form.xml index bab69b9..70a6fc1 100644 --- a/view/party_form.xml +++ b/view/party_form.xml @@ -2,12 +2,6 @@ - -