[IMP] pos_pms_link:

- Add translation.
- Add improved search.
- Add note to pos.order.line with reservation and room.
- Add room to list.
- Add new domain.
- Add reservation confirm popup.
- Add hides reservation payment button if there is payment lines in the order.
This commit is contained in:
Vicente
2023-05-02 12:06:41 +02:00
committed by Darío Lodeiros
parent a3821a403f
commit 63ac94574f
7 changed files with 397 additions and 14 deletions

355
pos_pms_link/i18n/es.po Normal file
View File

@@ -0,0 +1,355 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * pos_pms_link
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 14.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-02 09:32+0000\n"
"PO-Revision-Date: 2023-05-02 09:32+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: pos_pms_link
#. openerp-web
#: code:addons/pos_pms_link/static/src/js/Screens/ReservationListScreen/ReservationDetailsEdit.js:0
#, python-format
msgid "A Customer Name Is Required"
msgstr "Se requiere el nombre de cliente"
#. module: pos_pms_link
#. openerp-web
#: code:addons/pos_pms_link/static/src/xml/Screens/ReservationListScreen/ReservationListScreen.xml:0
#, python-format
msgid "Adults"
msgstr "Adultos"
#. module: pos_pms_link
#. openerp-web
#: code:addons/pos_pms_link/static/src/xml/Screens/ReservationListScreen/ReservationDetailsEdit.xml:0
#, python-format
msgid "Adults:"
msgstr "Adultos:"
#. module: pos_pms_link
#: model_terms:ir.ui.view,arch_db:pos_pms_link.pos_config_view_form
msgid "Allow pay on reservations"
msgstr "Permitir pagar contra reserva"
#. module: pos_pms_link
#: model_terms:ir.ui.view,arch_db:pos_pms_link.pos_config_view_form
msgid "Allowed properties"
msgstr "Hoteles permitidos"
#. module: pos_pms_link
#. openerp-web
#: code:addons/pos_pms_link/static/src/js/Screens/ReservationListScreen/ReservationListScreen.js:0
#, python-format
msgid "Change Reservation"
msgstr "Cambiar reserva"
#. module: pos_pms_link
#. openerp-web
#: code:addons/pos_pms_link/static/src/xml/Screens/ReservationListScreen/ReservationListScreen.xml:0
#, python-format
msgid "Checkin"
msgstr ""
#. module: pos_pms_link
#. openerp-web
#: code:addons/pos_pms_link/static/src/xml/Screens/ReservationListScreen/ReservationDetailsEdit.xml:0
#, python-format
msgid "Checkin:"
msgstr ""
#. module: pos_pms_link
#. openerp-web
#: code:addons/pos_pms_link/static/src/xml/Screens/ReservationListScreen/ReservationListScreen.xml:0
#, python-format
msgid "Checkout"
msgstr ""
#. module: pos_pms_link
#. openerp-web
#: code:addons/pos_pms_link/static/src/xml/Screens/ReservationListScreen/ReservationDetailsEdit.xml:0
#, python-format
msgid "Checkout:"
msgstr ""
#. module: pos_pms_link
#. openerp-web
#: code:addons/pos_pms_link/static/src/xml/Screens/ReservationListScreen/ReservationListScreen.xml:0
#, python-format
msgid "Children"
msgstr "Niños"
#. module: pos_pms_link
#. openerp-web
#: code:addons/pos_pms_link/static/src/xml/Screens/ReservationListScreen/ReservationDetailsEdit.xml:0
#, python-format
msgid "Children:"
msgstr "Niños:"
#. module: pos_pms_link
#. openerp-web
#: code:addons/pos_pms_link/static/src/js/Screens/ReservationListScreen/ReservationListScreen.js:0
#, python-format
msgid "Deselect Reservation"
msgstr "Deshacer selección de reserva"
#. module: pos_pms_link
#. openerp-web
#: code:addons/pos_pms_link/static/src/xml/Screens/ReservationListScreen/ReservationListScreen.xml:0
#, python-format
msgid "Discard"
msgstr "Descartar"
#. module: pos_pms_link
#: model:ir.model.fields,field_description:pos_pms_link.field_pms_reservation__display_name
#: model:ir.model.fields,field_description:pos_pms_link.field_pms_service__display_name
#: model:ir.model.fields,field_description:pos_pms_link.field_pms_service_line__display_name
#: model:ir.model.fields,field_description:pos_pms_link.field_pos_config__display_name
#: model:ir.model.fields,field_description:pos_pms_link.field_pos_order__display_name
#: model:ir.model.fields,field_description:pos_pms_link.field_pos_order_line__display_name
#: model:ir.model.fields,field_description:pos_pms_link.field_pos_payment__display_name
#: model:ir.model.fields,field_description:pos_pms_link.field_pos_session__display_name
#: model:ir.model.fields,field_description:pos_pms_link.field_product_pricelist__display_name
#: model:ir.model.fields,field_description:pos_pms_link.field_product_pricelist_item__display_name
msgid "Display Name"
msgstr "Nombre"
#. module: pos_pms_link
#: model:ir.model.fields,field_description:pos_pms_link.field_pms_reservation__id
#: model:ir.model.fields,field_description:pos_pms_link.field_pms_service__id
#: model:ir.model.fields,field_description:pos_pms_link.field_pms_service_line__id
#: model:ir.model.fields,field_description:pos_pms_link.field_pos_config__id
#: model:ir.model.fields,field_description:pos_pms_link.field_pos_order__id
#: model:ir.model.fields,field_description:pos_pms_link.field_pos_order_line__id
#: model:ir.model.fields,field_description:pos_pms_link.field_pos_payment__id
#: model:ir.model.fields,field_description:pos_pms_link.field_pos_session__id
#: model:ir.model.fields,field_description:pos_pms_link.field_product_pricelist__id
#: model:ir.model.fields,field_description:pos_pms_link.field_product_pricelist_item__id
msgid "ID"
msgstr "Identificación"
#. module: pos_pms_link
#. openerp-web
#: code:addons/pos_pms_link/static/src/xml/Screens/ReservationListScreen/ReservationDetailsEdit.xml:0
#, python-format
msgid "Internal comment:"
msgstr "Comentario interno:"
#. module: pos_pms_link
#: model:ir.model.fields,field_description:pos_pms_link.field_pms_reservation____last_update
#: model:ir.model.fields,field_description:pos_pms_link.field_pms_service____last_update
#: model:ir.model.fields,field_description:pos_pms_link.field_pms_service_line____last_update
#: model:ir.model.fields,field_description:pos_pms_link.field_pos_config____last_update
#: model:ir.model.fields,field_description:pos_pms_link.field_pos_order____last_update
#: model:ir.model.fields,field_description:pos_pms_link.field_pos_order_line____last_update
#: model:ir.model.fields,field_description:pos_pms_link.field_pos_payment____last_update
#: model:ir.model.fields,field_description:pos_pms_link.field_pos_session____last_update
#: model:ir.model.fields,field_description:pos_pms_link.field_product_pricelist____last_update
#: model:ir.model.fields,field_description:pos_pms_link.field_product_pricelist_item____last_update
msgid "Last Modified on"
msgstr "Última modificación en"
#. module: pos_pms_link
#. openerp-web
#: code:addons/pos_pms_link/static/src/xml/Screens/ReservationListScreen/ReservationDetailsEdit.xml:0
#, python-format
msgid "Lines"
msgstr "Líneas"
#. module: pos_pms_link
#. openerp-web
#: code:addons/pos_pms_link/static/src/xml/Screens/ReservationListScreen/ReservationListScreen.xml:0
#, python-format
msgid "Name"
msgstr "Nombre"
#. module: pos_pms_link
#. openerp-web
#: code:addons/pos_pms_link/static/src/xml/Screens/ReservationListScreen/ReservationDetailsEdit.xml:0
#, python-format
msgid "Name:"
msgstr "Nombre:"
#. module: pos_pms_link
#: model:ir.model.fields,field_description:pos_pms_link.field_pos_order_line__pms_service_line_id
msgid "PMS Service line"
msgstr ""
#. module: pos_pms_link
#: model:ir.model.fields,field_description:pos_pms_link.field_pos_order__pms_reservation_id
msgid "PMS reservation"
msgstr ""
#. module: pos_pms_link
#: model:ir.model.fields,field_description:pos_pms_link.field_pms_service_line__pos_order_line_ids
msgid "POS lines"
msgstr ""
#. module: pos_pms_link
#: model:ir.model.fields,field_description:pos_pms_link.field_pos_order__paid_on_reservation
msgid "Paid on reservation"
msgstr "Pagado contra reserva"
#. module: pos_pms_link
#. openerp-web
#: code:addons/pos_pms_link/static/src/xml/Screens/ReservationListScreen/ReservationListScreen.xml:0
#, python-format
msgid "Partner name"
msgstr "Cliente"
#. module: pos_pms_link
#: model:ir.model.fields,field_description:pos_pms_link.field_pos_config__pay_on_reservation
msgid "Pay on reservation"
msgstr "Pagar contra reserva"
#. module: pos_pms_link
#: model:ir.model.fields,field_description:pos_pms_link.field_pos_config__pay_on_reservation_method_id
msgid "Pay on reservation method"
msgstr "Método de pago contra reserva"
#. module: pos_pms_link
#. openerp-web
#: code:addons/pos_pms_link/static/src/js/Screens/PaymentScreen/PaymentScreen.js:0
#, python-format
msgid "Pay order with reservation ?"
msgstr "Pagar pedido contra reserva?"
#. module: pos_pms_link
#: model:ir.model,name:pos_pms_link.model_pos_config
msgid "Point of Sale Configuration"
msgstr "Configuración del TPV"
#. module: pos_pms_link
#: model:ir.model,name:pos_pms_link.model_pos_order_line
msgid "Point of Sale Order Lines"
msgstr "Líneas de Orden de Punto de Venta"
#. module: pos_pms_link
#: model:ir.model,name:pos_pms_link.model_pos_order
msgid "Point of Sale Orders"
msgstr "Pedidos del TPV"
#. module: pos_pms_link
#: model:ir.model,name:pos_pms_link.model_pos_payment
msgid "Point of Sale Payments"
msgstr "Pagos en puntos de venta"
#. module: pos_pms_link
#: model:ir.model,name:pos_pms_link.model_pos_session
msgid "Point of Sale Session"
msgstr "Sesión TPV"
#. module: pos_pms_link
#: model:ir.model,name:pos_pms_link.model_product_pricelist
msgid "Pricelist"
msgstr "Tarifa"
#. module: pos_pms_link
#: model:ir.model,name:pos_pms_link.model_product_pricelist_item
msgid "Pricelist Rule"
msgstr ""
#. module: pos_pms_link
#. openerp-web
#: code:addons/pos_pms_link/static/src/xml/Screens/PaymentScreen/PaymentScreen.xml:0
#: model:ir.model,name:pos_pms_link.model_pms_reservation
#, python-format
msgid "Reservation"
msgstr "Reserva"
#. module: pos_pms_link
#. openerp-web
#: code:addons/pos_pms_link/static/src/xml/ReservationSelectionButton.xml:0
#, python-format
msgid "Reservation #"
msgstr "Reserva #"
#. module: pos_pms_link
#: model:ir.model.fields,field_description:pos_pms_link.field_pos_config__reservation_allowed_propertie_ids
msgid "Reservation allowed properties"
msgstr "Reservas de hoteles permitidas"
#. module: pos_pms_link
#: code:addons/pos_pms_link/models/pos_order.py:0
#, python-format
msgid "Reservation does not exists."
msgstr "La reserva no existe."
#. module: pos_pms_link
#. openerp-web
#: code:addons/pos_pms_link/static/src/xml/Screens/ReservationListScreen/ReservationListScreen.xml:0
#, python-format
msgid "Room"
msgstr "Habitación"
#. module: pos_pms_link
#. openerp-web
#: code:addons/pos_pms_link/static/src/xml/Screens/ReservationListScreen/ReservationListScreen.xml:0
#, python-format
msgid "Search Reservations"
msgstr "Buscar reservas"
#. module: pos_pms_link
#. openerp-web
#: code:addons/pos_pms_link/static/src/xml/Screens/ReservationListScreen/ReservationDetailsEdit.xml:0
#, python-format
msgid "Service"
msgstr "Servicio"
#. module: pos_pms_link
#: model:ir.model,name:pos_pms_link.model_pms_service_line
msgid "Service by day"
msgstr "Servicio por día"
#. module: pos_pms_link
#: model:ir.model,name:pos_pms_link.model_pms_service
msgid "Services and its charges"
msgstr "Servicios y sus cargos"
#. module: pos_pms_link
#. openerp-web
#: code:addons/pos_pms_link/static/src/xml/Screens/ReservationListScreen/ReservationDetailsEdit.xml:0
#, python-format
msgid "Services:"
msgstr "Servicios:"
#. module: pos_pms_link
#. openerp-web
#: code:addons/pos_pms_link/static/src/js/Screens/ReservationListScreen/ReservationListScreen.js:0
#, python-format
msgid "Set Reservation"
msgstr "Seleccionar reserva"
#. module: pos_pms_link
#. openerp-web
#: code:addons/pos_pms_link/static/src/xml/Screens/ReceiptScreen/OrderReceipt.xml:0
#, python-format
msgid "Signature:"
msgstr "Firma:"
#. module: pos_pms_link
#. openerp-web
#: code:addons/pos_pms_link/static/src/js/Screens/PaymentScreen/PaymentScreen.js:0
#, python-format
msgid ""
"This operation will add all the products in the order to the reservation. "
"RESERVATION: name PARTNER : partner_name ROOM: rooms"
msgstr ""
"Esta operación añadirá todos los productos del pedido a la reserva. "
"RESERVA: name CLIENTE : partner_name HABITACIONES: rooms"
#. module: pos_pms_link
#. openerp-web
#: code:addons/pos_pms_link/static/src/xml/Screens/ReservationListScreen/ReservationLine.xml:0
#, python-format
msgid "VIEW"
msgstr "VER"

View File

@@ -15,17 +15,25 @@ odoo.define('pos_pms_link.PaymentScreen', function (require) {
if (confirmed) {
var self = this;
var payment_method = {
'id': self.env.pos.config.pay_on_reservation_method_id[0],
'name': self.env.pos.config.pay_on_reservation_method_id[1],
'is_cash_count': false,
'pos_mercury_config_id': false,
'use_payment_terminal': false,
const { confirmed } = await this.showPopup('ConfirmPopup', {
title: this.env._t('Pay order with reservation ?'),
body: this.env._t(
'This operation will add all the products in the order to the reservation. RESERVATION: ' + newReservation['name'] + ' PARTNER : ' + newReservation['partner_name'] + ' ROOM: ' + newReservation['rooms']
),
});
if (confirmed) {
var payment_method = {
'id': self.env.pos.config.pay_on_reservation_method_id[0],
'name': self.env.pos.config.pay_on_reservation_method_id[1],
'is_cash_count': false,
'pos_mercury_config_id': false,
'use_payment_terminal': false,
}
self.trigger('new-payment-line', payment_method);
this.currentOrder.set_paid_on_reservation(true);
this.currentOrder.set_pms_reservation_id(newReservation['id']);
self.validateOrder(false);
}
self.trigger('new-payment-line', payment_method);
this.currentOrder.set_paid_on_reservation(true);
this.currentOrder.set_pms_reservation_id(newReservation['id']);
self.validateOrder(false);
}
}
};

View File

@@ -67,7 +67,9 @@ odoo.define("pos_pms_link.db", function (require) {
},
_reservation_search_string: function(reservation){
var str = reservation.name || '';
str = '' + reservation.id + ':' + str.replace(':', '').replace(/\n/g, ' ') + '\n';
var room_str = reservation.rooms || '';
var partner_str = reservation.partner_name || '';
str = '' + reservation.id + ':' + str.replace(':', '').replace(/\n/g, ' ') + ':' + room_str.replace(':', '').replace(/\n/g, ' ') + ':' + partner_str.replace(':', '').replace(/\n/g, ' ') + '\n';
return str;
},
add_reservations: function(reservations){

View File

@@ -117,6 +117,8 @@ odoo.define('pos_pms_link.models', function (require) {
};
var service_product = self.pos.db.get_product_by_id(service_line_id.product_id[0]);
self.pos.get_order().add_product(service_product, options);
var last_line = self.pos.get_order().get_last_orderline();
last_line.set_note("RESERVATION: " + reservation.name + " ROOMS: " + reservation.rooms);
var r_service_line_id = reservation.service_ids.map(x => x.service_line_ids)[0].find(x=>x.id==service_line_id.id);
if (r_service_line_id.pos_order_line_ids.length == 0) {
r_service_line_id.pos_order_line_ids.push({
@@ -283,15 +285,27 @@ odoo.define('pos_pms_link.models', function (require) {
models.load_models({
model: 'pms.reservation',
fields: ['name', 'id', 'state', 'service_ids', 'partner_name', 'adults', 'children', 'checkin', 'checkout', 'folio_internal_comment'],
fields: ['name', 'id', 'state', 'service_ids', 'partner_name', 'adults', 'children', 'checkin', 'checkout', 'folio_internal_comment', 'rooms'],
context: function(self){
var ctx_copy = session.user_context
ctx_copy['pos_user_force'] = true;
return ctx_copy;
},
domain: function(self){
var d = new Date();
var month = d.getMonth()+1;
var day = d.getDate();
var current_date = d.getFullYear() + '-' +
(month<10 ? '0' : '') + month + '-' +
(day<10 ? '0' : '') + day;
var domain = [
['state', '=', 'onboard']
'|',
'&',
['state', '=', 'onboard'],
['checkout', '=', current_date],
['state', '!=', 'cancel']
];
if (self.config_id && self.config.reservation_allowed_propertie_ids) domain.push(['pms_property_id', 'in', self.config.reservation_allowed_propertie_ids]);
return domain;

View File

@@ -4,7 +4,7 @@
<t t-name="pos_pms_link.PaymentScreen" t-inherit="point_of_sale.PaymentScreen" t-inherit-mode="extension" owl="1">
<xpath expr="//div[hasclass('paymentmethods')]" position="inside">
<div class="button paymentmethod">
<div class="payment-name" t-if="env.pos.config.pay_on_reservation" t-on-click="selectReservation">Reservation</div>
<div class="payment-name" t-if="env.pos.config.pay_on_reservation and currentOrder.paymentlines.length == 0" t-on-click="selectReservation">Reservation</div>
</div>
</xpath>
</t>

View File

@@ -13,6 +13,9 @@
<td>
<t t-esc="props.reservation.partner_name" />
</td>
<td>
<t t-esc="props.reservation.rooms" />
</td>
<td>
<t t-esc="props.reservation.checkin" />
</td>

View File

@@ -43,6 +43,7 @@
<tr>
<th>Name</th>
<th>Partner name</th>
<th>Room</th>
<th>Checkin</th>
<th>Checkout</th>
<th>Adults</th>