mirror of
https://github.com/OCA/pms.git
synced 2025-01-29 00:17:45 +02:00
[RFC]pms_api_rest: round floats and correct output params
This commit is contained in:
@@ -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))
|
||||
|
||||
@@ -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"))
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
@@ -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(
|
||||
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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,
|
||||
)
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user