[RFC]pms_api_rest: round floats and correct output params

This commit is contained in:
Sara
2022-07-12 11:04:06 +02:00
committed by Darío Lodeiros
parent c87c5153ef
commit d32edd2fd0
11 changed files with 40 additions and 42 deletions

View File

@@ -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))

View File

@@ -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"))

View File

@@ -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

View File

@@ -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)
)
)

View File

@@ -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(

View File

@@ -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):

View File

@@ -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,
)

View File

@@ -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,

View File

@@ -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

View File

@@ -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

View File

@@ -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