mirror of
https://bitbucket.org/presik/trytonpsk-hotel.git
synced 2023-12-14 07:52:52 +01:00
Moved unit price
This commit is contained in:
parent
3e75aba503
commit
3fe9f94b19
1 changed files with 36 additions and 10 deletions
46
booking.py
46
booking.py
|
@ -743,7 +743,7 @@ class SelectRoomsAsk(ModelView):
|
|||
overbooking = fields.Boolean('Overbooking')
|
||||
targets = fields.Function(fields.Many2Many('hotel.room', None, None,
|
||||
'Targets'), 'on_change_with_targets')
|
||||
unit_price = fields.Numeric('Unit Price', digits=(16, 4))
|
||||
unit_price = fields.Numeric('Unit Price', digits=(16, 4), required=True)
|
||||
|
||||
@staticmethod
|
||||
def default_accommodation():
|
||||
|
@ -752,6 +752,29 @@ class SelectRoomsAsk(ModelView):
|
|||
if config.default_accommodation:
|
||||
return config.default_accommodation.id
|
||||
|
||||
@fields.depends('accommodation', 'departure_date', 'arrival_date')
|
||||
def on_change_with_unit_price(self):
|
||||
Booking = Pool().get('hotel.booking')
|
||||
booking = Booking(Transaction().context.get('active_id'))
|
||||
ctx = {}
|
||||
if booking.price_list:
|
||||
ctx['price_list'] = booking.price_list
|
||||
ctx['sale_date'] = self.arrival_date
|
||||
ctx['currency'] = booking.currency.id
|
||||
if booking.party:
|
||||
ctx['customer'] = booking.party.id
|
||||
if self.accommodation and self.departure_date and self.arrival_date:
|
||||
product = self.accommodation
|
||||
unit_price = product.template.list_price
|
||||
quantity = (self.departure_date - self.arrival_date).days
|
||||
if booking.price_list:
|
||||
with Transaction().set_context(ctx):
|
||||
unit_price = booking.price_list.compute(
|
||||
booking.party, product, unit_price,
|
||||
quantity, product.default_uom)
|
||||
unit_price = booking.currency.round(unit_price)
|
||||
return unit_price
|
||||
|
||||
@fields.depends('arrival_date', 'departure_date', 'accommodation', 'overbooking')
|
||||
def on_change_with_targets(self, name=None):
|
||||
pool = Pool()
|
||||
|
@ -818,14 +841,17 @@ class SelectRooms(Wizard):
|
|||
ctx['customer'] = booking.party.id
|
||||
product = self.start.accommodation
|
||||
|
||||
quantity = (self.start.departure_date - self.start.arrival_date).days
|
||||
unit_price = product.template.list_price
|
||||
if booking.price_list:
|
||||
with Transaction().set_context(ctx):
|
||||
unit_price = booking.price_list.compute(
|
||||
booking.party, product, unit_price,
|
||||
quantity, product.default_uom)
|
||||
unit_price = booking.currency.round(unit_price)
|
||||
# quantity = (self.start.departure_date - self.start.arrival_date).days
|
||||
# if self.start.unit_price:
|
||||
# unit_price = self.start.unit_price
|
||||
# else:
|
||||
# unit_price = product.template.list_price
|
||||
# if booking.price_list:
|
||||
# with Transaction().set_context(ctx):
|
||||
# unit_price = booking.price_list.compute(
|
||||
# booking.party, product, unit_price,
|
||||
# quantity, product.default_uom)
|
||||
# unit_price = booking.currency.round(unit_price)
|
||||
|
||||
for room in self.start.rooms:
|
||||
values = {
|
||||
|
@ -834,7 +860,7 @@ class SelectRooms(Wizard):
|
|||
'room': room.id,
|
||||
'arrival_date': self.start.arrival_date,
|
||||
'departure_date': self.start.departure_date,
|
||||
'unit_price': unit_price,
|
||||
'unit_price': self.start.unit_price,
|
||||
}
|
||||
if booking.party:
|
||||
values['main_guest'] = booking.party.id
|
||||
|
|
Loading…
Reference in a new issue