[FIX] pms: fix calculation of folio commission

This commit is contained in:
Sara Lago
2022-01-20 12:01:28 +01:00
committed by Darío Lodeiros
parent 07ee49cbbe
commit 83cb6ca99d
2 changed files with 72 additions and 4 deletions

View File

@@ -763,9 +763,10 @@ class PmsFolio(models.Model):
@api.depends("reservation_ids", "reservation_ids.commission_amount")
def _compute_commission(self):
for folio in self:
folio.commission = 0
for reservation in folio.reservation_ids:
if reservation.commission_amount != 0:
folio.commission += reservation.commission_amount
folio.commission = folio.commission + reservation.commission_amount
else:
folio.commission = 0

View File

@@ -133,8 +133,6 @@ class TestPmsFolio(TestPms):
"""
# ARRANGE
self.create_sale_channel_scenario()
commission = (20 + 20 + 20) * 0.15
# ACT
folio1 = self.env["pms.folio"].create(
{
@@ -175,9 +173,78 @@ class TestPmsFolio(TestPms):
],
}
)
self.commission = 0
for reservation in folio1.reservation_ids:
self.commission = (
self.commission
+ reservation.price_total * self.agency1.default_commission / 100
)
# ASSERT
self.assertEqual(
commission, folio1.commission, "The folio compute commission is wrong"
self.commission, folio1.commission, "The folio compute commission is wrong"
)
def test_folio_commission(self):
"""
Check commission of a folio with several reservations
"""
# ARRANGE
self.create_sale_channel_scenario()
# ACT
folio1 = self.env["pms.folio"].create(
{
"agency_id": self.agency1.id,
"pms_property_id": self.pms_property1.id,
}
)
self.env["pms.reservation"].create(
{
"folio_id": folio1.id,
"room_type_id": self.room_type_double.id,
"reservation_line_ids": [
(
0,
False,
{
"date": fields.date.today(),
"price": 20,
},
),
],
}
)
self.env["pms.reservation"].create(
{
"folio_id": folio1.id,
"room_type_id": self.room_type_double.id,
"reservation_line_ids": [
(
0,
False,
{
"date": fields.date.today(),
"price": 40,
},
),
],
}
)
self.commission = 0
for reservation in folio1.reservation_ids:
self.commission = (
self.commission
+ reservation.price_total * self.agency1.default_commission / 100
)
self.folio_commission = folio1.commission
# ASSERT
self.assertEqual(
self.commission,
self.folio_commission,
"The folio compute commission is wrong",
)
def test_reservation_agency_without_partner(self):