mirror of
https://github.com/OCA/pms.git
synced 2025-01-29 00:17:45 +02:00
[FIX] pms: fix calculation of folio commission
This commit is contained in:
committed by
Darío Lodeiros
parent
07ee49cbbe
commit
83cb6ca99d
@@ -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
|
||||
|
||||
|
||||
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user