Moved unit price

This commit is contained in:
Oscar 2021-11-24 23:05:39 -05:00
parent 3e75aba503
commit 3fe9f94b19
1 changed files with 36 additions and 10 deletions

View File

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