diff --git a/booking.py b/booking.py index 06bb716..c2bc46b 100644 --- a/booking.py +++ b/booking.py @@ -16,8 +16,8 @@ from trytond.pool import Pool from trytond.exceptions import UserError from trytond.i18n import gettext from constants import ( - STATE_BOOKING, REGISTRATION_STATE, SEGMENT, GUARANTEE, SATISFACTION, - MEDIA, PLAN, SOURCE, INVOICE_METHOD, COMPLEMENTARY, + STATE_BOOKING, REGISTRATION_STATE, REASON, GUARANTEE, SATISFACTION, + MEDIA, PLAN, INVOICE_METHOD, COMPLEMENTARY, ) STATES = { @@ -45,13 +45,14 @@ class Booking(Workflow, ModelSQL, ModelView): _rec_name = 'number' number = fields.Char('Number', readonly=True, select=True, help="Sequence of reservation.") - party = fields.Many2One('party.party', 'Party', required=False, + party = fields.Many2One('party.party', 'Customer', required=False, select=True, help="Person or company owner of the booking.", states={ 'required': Eval('state') == 'check_in', 'readonly': Not(In(Eval('state'), ['offer', 'confirmed'])), }) - contact = fields.Char('Contact', states=STATES_CHECKIN) + contact = fields.Char('Contact', states=STATES_CHECKIN, + help='Main contact or person how request booking') payment_term = fields.Many2One('account.invoice.payment_term', 'Payment Term', states=STATES_CHECKIN) booking_date = fields.DateTime('Booking Date', readonly=False, states=STATES) @@ -100,14 +101,10 @@ class Booking(Workflow, ModelSQL, ModelView): plan = fields.Selection(PLAN, 'Commercial Plan', states=STATES_CHECKIN, help="Plans offered by hotel and selected by guest for booking.") plan_string = plan.translated('plan') - source_contact = fields.Selection(SOURCE, 'Source Contact', - states=STATES_CHECKIN, - help="Advertising source that create booking opportunity by guest.") - source_contact_string = source_contact.translated('source_contact') comments = fields.Text('Comments', states=STATES_CHECKIN) - segment = fields.Selection(SEGMENT, 'Tourism Segment', + reason = fields.Selection(REASON, 'Tourism Segment', states=STATES_CHECKIN) - segment_string = segment.translated('segment') + reason_string = reason.translated('segment') guarantee = fields.Selection(GUARANTEE, 'Guarantee', states=STATES_CHECKIN) guarantee_string = guarantee.translated('guarantee') @@ -124,6 +121,7 @@ class Booking(Workflow, ModelSQL, ModelView): 'voucher', 'Vouchers', states=STATES_CHECKIN, domain=[ ], depends=['party']) vip = fields.Boolean('V.I.P. Customer', states=STATES) + ota_booking_code = fields.Char('OTA Code', select=True) vehicles_num = fields.Integer('Vehicles Number', states=STATES, help="Number of vehicles that bring with guests.") vehicle_plate = fields.Integer('Vehicle Plate', states=STATES) @@ -265,7 +263,12 @@ class Booking(Workflow, ModelSQL, ModelView): @ModelView.button @Workflow.transition('cancelled') def cancel(cls, records): - pass + for rec in records: + for folio in rec.lines: + if folio.registration_state in ['check_in', 'check_out']: + raise UserError(gettext('hotel.msg_no_delete_folios')) + else: + folio.delete([folio]) @classmethod @ModelView.button diff --git a/channel.py b/channel.py index d5ac943..6a06e9c 100644 --- a/channel.py +++ b/channel.py @@ -10,7 +10,7 @@ class SaleChannel(ModelSQL, ModelView): 'Sale Channel' __name__ = 'hotel.channel' name = fields.Char('Name', required=True) - party = fields.Many2One('party.party', 'Party', required=True) + agent = fields.Many2One('commission.agent', 'Agent', required=True) type_commission = fields.Selection([ ('percentage', 'Percentage'), ('fixed', 'Fixed'), diff --git a/constants.py b/constants.py index 2887093..2e4384f 100644 --- a/constants.py +++ b/constants.py @@ -17,7 +17,7 @@ REGISTRATION_STATE = [ ('no_show', 'No Show'), ] -SEGMENT = [ +REASON = [ ('', ''), ('sun_beach', 'Sun & Beach'), ('sport', 'Sport'), @@ -72,16 +72,6 @@ PLAN = [ ('half_american', 'Half American'), ] -SOURCE = [ - ('', ''), - ('web', 'Web'), - ('yellow_pages', 'Yellow Pages'), - ('recommended', 'Recommended'), - ('travel_agency', 'Travel Agency'), - ('advertising', 'Advertising'), - ('other', 'Other'), -] - INVOICE_METHOD = [ ('by_booking', 'By Booking'), ('by_main_guest', 'By Main Guest'), diff --git a/folio.py b/folio.py index 02acb40..692723f 100644 --- a/folio.py +++ b/folio.py @@ -101,7 +101,7 @@ class Folio(ModelSQL, ModelView): total_commission = fields.Function(fields.Numeric('Channel Commission', digits=(16, 2)), 'get_channel_commission') guests = fields.One2Many('hotel.folio.guest', 'folio', 'Guests', - states={'readonly': ~Eval('registration_state').in_(['check_in'])}) + states={'readonly': ~Eval('registration_state').in_(['check_out'])}) nationality = fields.Many2One('party.nationality', 'Nationality', states=STATES_CHECKIN) origin_country = fields.Many2One('party.nationality', 'Origin Country', diff --git a/locale/es.po b/locale/es.po index 04b7ffa..5193ce9 100644 --- a/locale/es.po +++ b/locale/es.po @@ -110,9 +110,13 @@ msgctxt "field:hotel.booking,number:" msgid "Number" msgstr "Número" +msgctxt "field:hotel.booking,ota_booking_code:" +msgid "OTA Code" +msgstr "Código OTa" + msgctxt "field:hotel.booking,party:" -msgid "Party" -msgstr "Tercero" +msgid "Customer" +msgstr "Cliente / Titular Reserva" msgctxt "field:hotel.booking,party_seller:" msgid "Channel" @@ -138,6 +142,10 @@ msgctxt "field:hotel.booking,price_list:" msgid "Price List" msgstr "Lista de precios" +msgctxt "field:hotel.booking,reason:" +msgid "Tourism Segment" +msgstr "Turismo" + msgctxt "field:hotel.booking,registration_state:" msgid "State Registration" msgstr "Estatus de Registro" @@ -146,14 +154,6 @@ msgctxt "field:hotel.booking,satisfaction:" msgid "Satisfaction" msgstr "Satisfacción" -msgctxt "field:hotel.booking,segment:" -msgid "Tourism Segment" -msgstr "Segmento Turismo" - -msgctxt "field:hotel.booking,source_contact:" -msgid "Source Contact" -msgstr "Fuente de Contacto" - msgctxt "field:hotel.booking,state:" msgid "State" msgstr "Estado" @@ -234,6 +234,10 @@ msgctxt "field:hotel.booking.select_rooms.ask,targets:" msgid "Targets" msgstr "Objetivos" +msgctxt "field:hotel.channel,agent:" +msgid "Agent" +msgstr "Agente" + msgctxt "field:hotel.channel,commission:" msgid "Commission" msgstr "Comisión" @@ -258,10 +262,6 @@ msgctxt "field:hotel.channel,name:" msgid "Name" msgstr "Nombre" -msgctxt "field:hotel.channel,party:" -msgid "Party" -msgstr "Tercero" - msgctxt "field:hotel.channel,payment_method:" msgid "Payment Method" msgstr "Método de pago" @@ -611,7 +611,7 @@ msgid "First Name" msgstr "Primer Nombre" msgctxt "field:hotel.folio.guest,folio:" -msgid "Booking Line" +msgid "Folio" msgstr "Folio" msgctxt "field:hotel.folio.guest,mobile:" @@ -1070,6 +1070,10 @@ msgctxt "help:company.company,property_code:" msgid "Code on channel manager" msgstr "Código en gestor de canales" +msgctxt "help:hotel.booking,contact:" +msgid "Main contact or person how request booking" +msgstr "Contacto principal o persona quien solicita la reserva" + msgctxt "help:hotel.booking,media:" msgid "Media from booking coming from." msgstr "Medio por el cual se hace la reserva." @@ -1092,10 +1096,6 @@ msgstr "" "Planes ofrecidos por el hotel y selecionados por los huespedes para la " "reserva." -msgctxt "help:hotel.booking,source_contact:" -msgid "Advertising source that create booking opportunity by guest." -msgstr "La publicidad fuente que crea la oportunidad de reservas." - msgctxt "help:hotel.booking,vehicles_num:" msgid "Number of vehicles that bring with guests." msgstr "Número de vehiculos" @@ -1262,7 +1262,7 @@ msgstr "Servicio" msgctxt "model:hotel.service.kind,name:" msgid "Service Kind" -msgstr "Clase" +msgstr "Clase de Servicio" msgctxt "model:hotel.service.line,name:" msgid "Service Line" @@ -1285,7 +1285,7 @@ msgid "Amenities" msgstr "Comodidades" msgctxt "model:ir.action,name:act_board_folio_view" -msgid "Folios" +msgid "Board Folio Moves" msgstr "Folios" msgctxt "model:ir.action,name:act_booking_form" @@ -1330,7 +1330,7 @@ msgstr "Habitación" msgctxt "model:ir.action,name:act_service_kind_tree" msgid "Service Kind" -msgstr "Clase" +msgstr "Clase de Servicio" msgctxt "model:ir.action,name:act_service_line_tree" msgid "Service Line" @@ -1341,7 +1341,7 @@ msgid "Service" msgstr "Servicio" msgctxt "model:ir.action,name:act_task_housekeeping_form" -msgid "Tarea de Ama de Llaves" +msgid "Tasks Housekeeping" msgstr "Tarea de Ama de Llaves" msgctxt "model:ir.action,name:booking_daily_report" @@ -1369,7 +1369,7 @@ msgid "Service" msgstr "Servicio" msgctxt "model:ir.action,name:report_housekeeping_service" -msgid "Reporte de Ama de Llaves" +msgid "Housekeeping Service Report" msgstr "Reporte de Ama de Llaves" msgctxt "model:ir.action,name:report_invoice_income_daily" @@ -1397,7 +1397,7 @@ msgid "Create Daily Services" msgstr "Crear Servicios" msgctxt "model:ir.action,name:wizard_party_guest" -msgid "Create Party Guest" +msgid "Create Guest" msgstr "Crear Huesped" msgctxt "model:ir.action,name:wizard_print_booking_daily" @@ -1477,7 +1477,7 @@ msgstr "Saliendo Hoy" msgctxt "" "model:ir.action.act_window.domain,name:act_guest_moves_form_domain_no_show_today" -msgid "No Show Today" +msgid "No Presentados Hoy" msgstr "No Presentados Hoy" msgctxt "" @@ -1539,7 +1539,7 @@ msgid "Must exist one principal guest" msgstr "Debe haber un huesped principal" msgctxt "model:ir.message,text:msg_missing_confirm_booking" -msgid "Missing Confirm Booking" +msgid "Missing confirm booking" msgstr "Falta confirmar la reserva" msgctxt "model:ir.message,text:msg_missing_default_configuration" @@ -1560,6 +1560,10 @@ msgctxt "model:ir.message,text:msg_missing_sequence_registration" msgid "Missing the configuration of registration card sequence!" msgstr "Falta la configuración de la secuencia de registro!" +msgctxt "model:ir.message,text:msg_no_delete_folios" +msgid "Error, you can not delete folios actives" +msgstr "Error, no puede borrar folios activos" + msgctxt "model:ir.message,text:msg_occupied_room" msgid "The room is occupied in the date %s" msgstr "" @@ -1645,7 +1649,7 @@ msgid "Amenities" msgstr "Comodidades" msgctxt "model:ir.ui.menu,name:menu_hotel_board_folio" -msgid "Board Folios" +msgid "Board Folio Moves" msgstr "Front Desk" msgctxt "model:ir.ui.menu,name:menu_hotel_booking_daily" @@ -1682,7 +1686,7 @@ msgstr "Servicios" msgctxt "model:ir.ui.menu,name:menu_hotel_service_kind" msgid "Service Kind" -msgstr "Clase" +msgstr "Clase de Servicio" msgctxt "model:ir.ui.menu,name:menu_hotel_task_housekeeping" msgid "Task HouseKeeping" @@ -1899,10 +1903,18 @@ msgctxt "report:hotel.booking:" msgid "PRINCIPAL" msgstr "" +msgctxt "report:hotel.booking:" +msgid "RE-RESERVA" +msgstr "" + msgctxt "report:hotel.booking:" msgid "RESERVA" msgstr "" +msgctxt "report:hotel.booking:" +msgid "RESERVA P" +msgstr "" + msgctxt "report:hotel.booking:" msgid "SOFTWARE TRYTON HOTELES" msgstr "" @@ -2121,6 +2133,10 @@ msgctxt "report:hotel.booking_daily.report:" msgid "TARJETA DE REGISTRO" msgstr "" +msgctxt "report:hotel.booking_daily.report:" +msgid "TERCERO" +msgstr "" + msgctxt "report:hotel.booking_daily.report:" msgid "TERCERO /" msgstr "" @@ -2159,6 +2175,10 @@ msgctxt "report:hotel.booking_daily.report:" msgid "rec.booking.party_seller and rec.booking.party_seller.name" msgstr "" +msgctxt "report:hotel.booking_daily.report:" +msgid "rec.booking.registration_card" +msgstr "" + msgctxt "report:hotel.booking_daily.report:" msgid "rec.departure_date" msgstr "" @@ -2183,6 +2203,10 @@ msgctxt "report:hotel.booking_daily.report:" msgid "rec.room and rec.room.name" msgstr "" +msgctxt "report:hotel.booking_daily.report:" +msgid "rec.state" +msgstr "" + msgctxt "report:hotel.booking_daily.report:" msgid "rec.unit_price" msgstr "" @@ -2937,9 +2961,10 @@ msgctxt "report:hotel.folio:" msgid "A" msgstr "A" +#, fuzzy msgctxt "report:hotel.folio:" msgid "AMOUNT" -msgstr "" +msgstr "TOTAL" msgctxt "report:hotel.folio:" msgid "ANT." @@ -2982,17 +3007,19 @@ msgctxt "report:hotel.folio:" msgid "CUSTOMER / CLIENTE" msgstr "" +#, fuzzy msgctxt "report:hotel.folio:" msgid "D" -msgstr "" +msgstr "D" msgctxt "report:hotel.folio:" msgid "DEPARTURE DATE / FECHA SALIDA" msgstr "" +#, fuzzy msgctxt "report:hotel.folio:" msgid "DESCRIPTION" -msgstr "" +msgstr "DESCRIPCION" msgctxt "report:hotel.folio:" msgid "ECHA" @@ -3055,9 +3082,10 @@ msgctxt "report:hotel.folio:" msgid "NOTES /" msgstr "" +#, fuzzy msgctxt "report:hotel.folio:" msgid "NUMBER" -msgstr "" +msgstr "NÚMERO" msgctxt "report:hotel.folio:" msgid "ORDEN" @@ -3241,6 +3269,10 @@ msgctxt "report:hotel.guests_list.report:" msgid "LISTADO DE HUESPEDES" msgstr "" +msgctxt "report:hotel.guests_list.report:" +msgid "LISTADO DE HUESPEDES (PAX EN CASA)" +msgstr "" + msgctxt "report:hotel.guests_list.report:" msgid "Página" msgstr "" @@ -3303,10 +3335,18 @@ msgctxt "report:hotel.guests_list.report:" msgid "rec[ 'room']" msgstr "" +msgctxt "report:hotel.guests_list.report:" +msgid "rec[ 'start_date']" +msgstr "" + msgctxt "report:hotel.guests_list.report:" msgid "rec['departure_date']" msgstr "" +msgctxt "report:hotel.guests_list.report:" +msgid "rec['end_date']" +msgstr "" + msgctxt "report:hotel.guests_list.report:" msgid "rec['nights_quantity']" msgstr "" @@ -3922,6 +3962,10 @@ msgctxt "report:hotel.rooms_occupancy.report:" msgid "TRG" msgstr "" +msgctxt "report:hotel.rooms_occupancy.report:" +msgid "VALOR ACUMULADO" +msgstr "" + msgctxt "report:hotel.rooms_occupancy.report:" msgid "VALOR TOTAL" msgstr "" @@ -3966,6 +4010,10 @@ msgctxt "report:hotel.rooms_occupancy.report:" msgid "rec['arrival']" msgstr "" +msgctxt "report:hotel.rooms_occupancy.report:" +msgid "rec['balance']" +msgstr "" + msgctxt "report:hotel.rooms_occupancy.report:" msgid "rec['departure']" msgstr "" @@ -3982,6 +4030,10 @@ msgctxt "report:hotel.rooms_occupancy.report:" msgid "rec['party']" msgstr "" +msgctxt "report:hotel.rooms_occupancy.report:" +msgid "rec['reference']" +msgstr "" + msgctxt "report:hotel.rooms_occupancy.report:" msgid "rec['registration_card']" msgstr "" @@ -3994,6 +4046,10 @@ msgctxt "report:hotel.rooms_occupancy.report:" msgid "rec['room']" msgstr "" +msgctxt "report:hotel.rooms_occupancy.report:" +msgid "rec['state']" +msgstr "" + #, fuzzy msgctxt "report:hotel.rooms_occupancy.report:" msgid "user" @@ -4104,6 +4160,10 @@ msgctxt "report:hotel.service:" msgid "No." msgstr "No." +msgctxt "report:hotel.service:" +msgid "OPER." +msgstr "" + msgctxt "report:hotel.service:" msgid "ORDEN" msgstr "" @@ -4148,6 +4208,14 @@ msgctxt "report:hotel.service:" msgid "line.guest" msgstr "" +msgctxt "report:hotel.service:" +msgid "line.guest and line.guest.party.name" +msgstr "" + +msgctxt "report:hotel.service:" +msgid "line.operation_line and line.operation_line.id" +msgstr "" + msgctxt "report:hotel.service:" msgid "line.order" msgstr "" @@ -4188,6 +4256,10 @@ msgctxt "report:hotel.service:" msgid "service.service_date" msgstr "" +msgctxt "report:hotel.service:" +msgid "service.state_string" +msgstr "" + msgctxt "report:hotel.service:" msgid "€" msgstr "" @@ -4280,6 +4352,58 @@ msgctxt "selection:hotel.booking,plan:" msgid "No Breakfast" msgstr "Sin Desayuno" +msgctxt "selection:hotel.booking,reason:" +msgid "Adventure" +msgstr "Aventura" + +msgctxt "selection:hotel.booking,reason:" +msgid "Bussiness" +msgstr "Negocios" + +msgctxt "selection:hotel.booking,reason:" +msgid "Conventions & Meetings" +msgstr "Convenciones" + +msgctxt "selection:hotel.booking,reason:" +msgid "Cruises" +msgstr "Cruzeros" + +msgctxt "selection:hotel.booking,reason:" +msgid "Cultural" +msgstr "Cultural" + +msgctxt "selection:hotel.booking,reason:" +msgid "Health" +msgstr "Salud" + +msgctxt "selection:hotel.booking,reason:" +msgid "Nature" +msgstr "Naturaleza" + +msgctxt "selection:hotel.booking,reason:" +msgid "Rural" +msgstr "Rural" + +msgctxt "selection:hotel.booking,reason:" +msgid "Sport" +msgstr "Deportes" + +msgctxt "selection:hotel.booking,reason:" +msgid "Sun & Beach" +msgstr "Sol & Playa" + +msgctxt "selection:hotel.booking,reason:" +msgid "Thematic Parks" +msgstr "Parques Temáticos" + +msgctxt "selection:hotel.booking,reason:" +msgid "Urban" +msgstr "Urbano" + +msgctxt "selection:hotel.booking,reason:" +msgid "Weddings" +msgstr "Bodas" + msgctxt "selection:hotel.booking,registration_state:" msgid "Check In" msgstr "Check In" @@ -4316,82 +4440,6 @@ msgctxt "selection:hotel.booking,satisfaction:" msgid "Worse" msgstr "Peor" -msgctxt "selection:hotel.booking,segment:" -msgid "Adventure" -msgstr "Aventura" - -msgctxt "selection:hotel.booking,segment:" -msgid "Bussiness" -msgstr "Negocios" - -msgctxt "selection:hotel.booking,segment:" -msgid "Conventions & Meetings" -msgstr "Convenciones & Reuniones" - -msgctxt "selection:hotel.booking,segment:" -msgid "Cruises" -msgstr "Cruceros" - -msgctxt "selection:hotel.booking,segment:" -msgid "Cultural" -msgstr "Cultural" - -msgctxt "selection:hotel.booking,segment:" -msgid "Health" -msgstr "Salud" - -msgctxt "selection:hotel.booking,segment:" -msgid "Nature" -msgstr "Naturaleza" - -msgctxt "selection:hotel.booking,segment:" -msgid "Rural" -msgstr "Rural" - -msgctxt "selection:hotel.booking,segment:" -msgid "Sport" -msgstr "Deportes" - -msgctxt "selection:hotel.booking,segment:" -msgid "Sun & Beach" -msgstr "Sol y Playa" - -msgctxt "selection:hotel.booking,segment:" -msgid "Thematic Parks" -msgstr "Parque Temático" - -msgctxt "selection:hotel.booking,segment:" -msgid "Urban" -msgstr "Urbano" - -msgctxt "selection:hotel.booking,segment:" -msgid "Weddings" -msgstr "Bodas" - -msgctxt "selection:hotel.booking,source_contact:" -msgid "Advertising" -msgstr "Publicidad" - -msgctxt "selection:hotel.booking,source_contact:" -msgid "Other" -msgstr "Otro" - -msgctxt "selection:hotel.booking,source_contact:" -msgid "Recommended" -msgstr "Recomendado" - -msgctxt "selection:hotel.booking,source_contact:" -msgid "Travel Agency" -msgstr "Agencia de Viajes" - -msgctxt "selection:hotel.booking,source_contact:" -msgid "Web" -msgstr "Web" - -msgctxt "selection:hotel.booking,source_contact:" -msgid "Yellow Pages" -msgstr "Paginas Amarillas" - msgctxt "selection:hotel.booking,state:" msgid "Cancelled" msgstr "Cancelado" @@ -4752,6 +4800,14 @@ msgctxt "view:hotel.booking:" msgid "Marketing" msgstr "Mercadeo" +msgctxt "view:hotel.booking:" +msgid "No Show" +msgstr "No Presentado" + +msgctxt "view:hotel.booking:" +msgid "Not Confirm" +msgstr "No Confirmada" + msgctxt "view:hotel.booking:" msgid "Not Show" msgstr "No Presentado" diff --git a/message.xml b/message.xml index 3eb821d..9be34c4 100644 --- a/message.xml +++ b/message.xml @@ -69,5 +69,8 @@ this repository contains the full copyright notices and license terms. --> Error, Can not select current operation + + Error, you can not delete folios actives + diff --git a/service.fods b/service.fods index 440cb7a..16227d5 100644 Binary files a/service.fods and b/service.fods differ diff --git a/view/booking_folio_form.xml b/view/booking_folio_form.xml index bc1d78f..4b3307a 100644 --- a/view/booking_folio_form.xml +++ b/view/booking_folio_form.xml @@ -20,8 +20,14 @@ this repository contains the full copyright notices and license terms. -->