From d32edd2fd058189b3424a535fb6026b9a2064089 Mon Sep 17 00:00:00 2001 From: Sara Date: Tue, 12 Jul 2022 11:04:06 +0200 Subject: [PATCH] [RFC]pms_api_rest: round floats and correct output params --- pms_api_rest/datamodels/pms_reservation.py | 1 - .../pms_board_service_line_service.py | 4 ++-- .../services/pms_board_service_service.py | 6 ++--- pms_api_rest/services/pms_calendar_service.py | 8 +++---- pms_api_rest/services/pms_folio_service.py | 13 +++++------ pms_api_rest/services/pms_partner_service.py | 2 +- pms_api_rest/services/pms_product_service.py | 4 ++-- .../services/pms_reservation_line_service.py | 12 +++++----- .../services/pms_reservation_service.py | 22 +++++++++---------- .../services/pms_room_type_service.py | 4 ++-- .../services/pms_service_line_service.py | 6 ++--- 11 files changed, 40 insertions(+), 42 deletions(-) diff --git a/pms_api_rest/datamodels/pms_reservation.py b/pms_api_rest/datamodels/pms_reservation.py index 1cc8a51cb..c463e739f 100644 --- a/pms_api_rest/datamodels/pms_reservation.py +++ b/pms_api_rest/datamodels/pms_reservation.py @@ -64,5 +64,4 @@ class PmsReservationInfo(Datamodel): priceOnlyRoom = fields.Float(required=False, allow_none=True) # TODO: Refact - # services = fields.List(fields.Dict(required=False, allow_none=True)) # messages = fields.List(fields.Dict(required=False, allow_none=True)) diff --git a/pms_api_rest/services/pms_board_service_line_service.py b/pms_api_rest/services/pms_board_service_line_service.py index 4a9e8a689..1c6383329 100644 --- a/pms_api_rest/services/pms_board_service_line_service.py +++ b/pms_api_rest/services/pms_board_service_line_service.py @@ -47,7 +47,7 @@ class PmsBoardServiceService(Component): name=line.pms_board_service_room_type_id.display_name, boardServiceId=line.pms_board_service_room_type_id.id, productId=line.product_id.id, - amount=line.amount, + amount=round(line.amount,2), ) ) return result_board_service_lines @@ -75,7 +75,7 @@ class PmsBoardServiceService(Component): name=board_service_line.pms_board_service_room_type_id.display_name, boardServiceId=board_service_line.pms_board_service_room_type_id.id, productId=board_service_line.product_id.id, - amount=board_service_line.amount, + amount=round(board_service_line.amount,2), ) else: raise MissingError(_("Board service line not found")) diff --git a/pms_api_rest/services/pms_board_service_service.py b/pms_api_rest/services/pms_board_service_service.py index 94fd1a527..9da9dcf04 100644 --- a/pms_api_rest/services/pms_board_service_service.py +++ b/pms_api_rest/services/pms_board_service_service.py @@ -56,7 +56,7 @@ class PmsBoardServiceService(Component): id=board_service.id, name=board_service.pms_board_service_id.display_name, roomTypeId=board_service.pms_room_type_id.id, - amount=board_service.amount, + amount=round(board_service.amount,2), ) ) return result_board_services @@ -83,7 +83,7 @@ class PmsBoardServiceService(Component): id=board_service.id, name=board_service.pms_board_service_id.display_name, roomTypeId=board_service.pms_room_type_id.id, - amount=board_service.amount, + amount=round(board_service.amount), ) else: raise MissingError(_("Board Service not found")) @@ -127,7 +127,7 @@ class PmsBoardServiceService(Component): name=line.pms_board_service_room_type_id.display_name, boardServiceId=line.pms_board_service_room_type_id.id, productId=line.product_id.id, - amount=line.amount, + amount=round(line.amount,2), ) ) return result_board_service_lines diff --git a/pms_api_rest/services/pms_calendar_service.py b/pms_api_rest/services/pms_calendar_service.py index 9d5dce148..1cf26da53 100644 --- a/pms_api_rest/services/pms_calendar_service.py +++ b/pms_api_rest/services/pms_calendar_service.py @@ -73,8 +73,8 @@ class PmsCalendarService(Component): isFirstNight=line.reservation_id.checkin == line.date, isLastNight=line.reservation_id.checkout + timedelta(days=-1) == line.date, - totalPrice=line.reservation_id.price_total, - pendingPayment=line.reservation_id.folio_pending_amount, + totalPrice=round(line.reservation_id.price_total,2), + pendingPayment=round(line.reservation_id.folio_pending_amount,2), numNotifications=line.reservation_id.message_needaction_counter, adults=line.reservation_id.adults, nextLineSplitted=next_line_splitted, @@ -176,8 +176,8 @@ class PmsCalendarService(Component): result.append( PmsCalendarDailyInvoicing( date=datetime.combine(day, datetime.min.time()).isoformat(), - invoicingTotal=sum(reservation_lines_by_day.mapped("price")) - + sum(service_lines_by_day.mapped("price_day_total")), + invoicingTotal=round(sum(reservation_lines_by_day.mapped("price")) + + sum(service_lines_by_day.mapped("price_day_total")),2) ) ) diff --git a/pms_api_rest/services/pms_folio_service.py b/pms_api_rest/services/pms_folio_service.py index 7374f806b..f57efff0f 100644 --- a/pms_api_rest/services/pms_folio_service.py +++ b/pms_api_rest/services/pms_folio_service.py @@ -44,7 +44,7 @@ class PmsFolioService(Component): state=dict(folio.fields_get(["state"])["state"]["selection"])[ folio.state ], - amountTotal=folio.amount_total, + amountTotal=round(folio.amount_total,2), ) else: raise MissingError(_("Folio not found")) @@ -148,7 +148,7 @@ class PmsFolioService(Component): partnerName=folio.partner_name if folio.partner_name else None, partnerPhone=folio.mobile if folio.mobile else None, partnerEmail=folio.email if folio.email else None, - amountTotal=folio.amount_total, + amountTotal=round(folio.amount_total,2), reservations=[] if not reservations else reservations, paymentStateCode=folio.payment_state, paymentStateDescription=dict( @@ -193,7 +193,7 @@ class PmsFolioService(Component): payments.append( PmsPaymentInfo( id=payment.id, - amount=payment.amount, + amount=round(payment.amount,2), journalId=payment.journal_id.id, date=datetime.combine( payment.date, datetime.min.time() @@ -206,7 +206,7 @@ class PmsFolioService(Component): payments.append( PmsPaymentInfo( id=payment.id, - amount=payment.amount, + amount=round(payment.amount,2), journalId=payment.journal_id.id, date=datetime.combine( payment.date, datetime.min.time() @@ -224,7 +224,7 @@ class PmsFolioService(Component): "GET", ) ], - output_param=Datamodel("pms.reservation.info", is_list=True), + output_param=Datamodel("pms.reservation.short.info", is_list=True), auth="jwt_api_pms", ) def get_folio_reservations(self, folio_id): @@ -265,8 +265,7 @@ class PmsFolioService(Component): readyForCheckin=reservation.ready_for_checkin, allowedCheckout=reservation.allowed_checkout, splitted=reservation.splitted, - priceTotal=reservation.price_room_services_set, - # TODO: REVIEW IF THIS OR QTY OF EACH ONE + priceTotal=round(reservation.price_room_services_set,2), servicesCount=sum( reservation.service_ids.filtered( diff --git a/pms_api_rest/services/pms_partner_service.py b/pms_api_rest/services/pms_partner_service.py index 5933c7a68..815350736 100644 --- a/pms_api_rest/services/pms_partner_service.py +++ b/pms_api_rest/services/pms_partner_service.py @@ -46,7 +46,7 @@ class PmsPartnerService(Component): "GET", ) ], - output_param=Datamodel("pms.partner.info", is_list=True), + output_param=Datamodel("pms.checkin.partner.info", is_list=True), auth="jwt_api_pms", ) def get_partner_by_doc_number(self, document_type, document_number): diff --git a/pms_api_rest/services/pms_product_service.py b/pms_api_rest/services/pms_product_service.py index 737218928..0b8c1db8c 100644 --- a/pms_api_rest/services/pms_product_service.py +++ b/pms_api_rest/services/pms_product_service.py @@ -52,7 +52,7 @@ class PmsProductService(Component): PmsProductInfo( id=product.id, name=product.name, - price=self._get_product_price(product, product_search_param), + price=round(self._get_product_price(product, product_search_param),2), perDay=product.per_day, perPerson=product.per_person, ) @@ -79,7 +79,7 @@ class PmsProductService(Component): return PmsProductInfo( id=product.id, name=product.name, - price=self._get_product_price(product, product_search_param), + price=round(self._get_product_price(product, product_search_param),2), perDay=product.per_day, perPerson=product.per_person, ) diff --git a/pms_api_rest/services/pms_reservation_line_service.py b/pms_api_rest/services/pms_reservation_line_service.py index 22c2983ee..49adc31fa 100644 --- a/pms_api_rest/services/pms_reservation_line_service.py +++ b/pms_api_rest/services/pms_reservation_line_service.py @@ -37,9 +37,9 @@ class PmsReservationLineService(Component): date=datetime.combine( reservation_line.date, datetime.min.time() ).isoformat(), - price=reservation_line.price, - discount=reservation_line.discount, - cancelDiscount=reservation_line.cancel_discount, + price=round(reservation_line.price,2), + discount=round(reservation_line.discount,2), + cancelDiscount=round(reservation_line.cancel_discount,2), roomId=reservation_line.room_id.id, reservationId=reservation_line.reservation_id.id, pmsPropertyId=reservation_line.pms_property_id.id, @@ -90,9 +90,9 @@ class PmsReservationLineService(Component): date=datetime.combine( reservation_line.date, datetime.min.time() ).isoformat(), - price=reservation_line.price, - discount=reservation_line.discount, - cancelDiscount=reservation_line.cancel_discount, + price=round(reservation_line.price,2), + discount=round(reservation_line.discount,2), + cancelDiscount=round(reservation_line.cancel_discount,2), roomId=reservation_line.room_id.id, reservationId=reservation_line.reservation_id.id, pmsPropertyId=reservation_line.pms_property_id.id, diff --git a/pms_api_rest/services/pms_reservation_service.py b/pms_api_rest/services/pms_reservation_service.py index ee10fb3a1..3c04bc4ae 100644 --- a/pms_api_rest/services/pms_reservation_service.py +++ b/pms_api_rest/services/pms_reservation_service.py @@ -103,13 +103,13 @@ class PmsReservationService(Component): else None, toAssign=reservation.to_assign, reservationType=reservation.reservation_type, - priceTotal=reservation.price_room_services_set, - discount=reservation.discount, + priceTotal=round(reservation.price_room_services_set,2), + discount=round(reservation.discount,2), commissionAmount=round(reservation.commission_amount, 2) if reservation.commission_amount else None, - priceOnlyServices=reservation.price_services, - priceOnlyRoom=reservation.price_total, + priceOnlyServices=round(reservation.price_services,2), + priceOnlyRoom=round(reservation.price_total,2), ) return res @@ -239,9 +239,9 @@ class PmsReservationService(Component): date=datetime.combine( reservation_line.date, datetime.min.time() ).isoformat(), - price=reservation_line.price, - discount=reservation_line.discount, - cancelDiscount=reservation_line.cancel_discount, + price=round(reservation_line.price,2), + discount=round(reservation_line.discount,2), + cancelDiscount=round(reservation_line.cancel_discount,2), roomId=reservation_line.room_id.id, reservationId=reservation_line.reservation_id.id, pmsPropertyId=reservation_line.pms_property_id.id, @@ -273,10 +273,10 @@ class PmsReservationService(Component): id=service.id, name=service.name, quantity=service.product_qty, - priceTotal=service.price_total, - priceSubtotal=service.price_subtotal, - priceTaxes=service.price_tax, - discount=service.discount, + priceTotal=round(service.price_total,2), + priceSubtotal=round(service.price_subtotal,2), + priceTaxes=round(service.price_tax,2), + discount=round(service.discount,2), ) ) return result_services diff --git a/pms_api_rest/services/pms_room_type_service.py b/pms_api_rest/services/pms_room_type_service.py index 8fef9c360..b852dc21e 100644 --- a/pms_api_rest/services/pms_room_type_service.py +++ b/pms_api_rest/services/pms_room_type_service.py @@ -19,7 +19,7 @@ class PmsRoomTypeService(Component): ) ], input_param=Datamodel("pms.room.type.search.param"), - output_param=Datamodel("pms.room.info", is_list=True), + output_param=Datamodel("pms.room.type.info", is_list=True), auth="jwt_api_pms", ) def get_room_types(self, room_type_search_param): @@ -59,7 +59,7 @@ class PmsRoomTypeService(Component): name=room.name, pmsPropertyIds=room.pms_property_ids.mapped("id"), defaultCode=room.default_code, - price=room.list_price, + price=round(room.list_price,2), ) ) return result_rooms diff --git a/pms_api_rest/services/pms_service_line_service.py b/pms_api_rest/services/pms_service_line_service.py index 75039d397..288939a68 100644 --- a/pms_api_rest/services/pms_service_line_service.py +++ b/pms_api_rest/services/pms_service_line_service.py @@ -41,9 +41,9 @@ class PmsServiceService(Component): date=datetime.combine( service_line.date, datetime.min.time() ).isoformat(), - priceUnit=service_line.price_unit, - priceTotal=service_line.price_day_total, - discount=service_line.discount, + priceUnit=round(service_line.price_unit,2), + priceTotal=round(service_line.price_day_total,2), + discount=round(service_line.discount,2), ) ) return result_service_lines