From 0a233d4c82383fe9fafe34c284ae131e7731bbe8 Mon Sep 17 00:00:00 2001 From: Dario Lodeiros Date: Tue, 23 Oct 2018 13:48:23 +0200 Subject: [PATCH] [TMP][FIX] run create direct folio --- hotel/models/hotel_folio.py | 18 +++++++++++------- hotel/models/hotel_reservation.py | 14 +++++++++----- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/hotel/models/hotel_folio.py b/hotel/models/hotel_folio.py index 9ef68c97f..85de9f48d 100644 --- a/hotel/models/hotel_folio.py +++ b/hotel/models/hotel_folio.py @@ -321,16 +321,17 @@ class HotelFolio(models.Model): ).next_by_code('sale.order') or _('New') else: vals['name'] = self.env['ir.sequence'].next_by_code('hotel.folio') or _('New') + # Makes sure partner_invoice_id' and 'pricelist_id' are defined lfields = ('partner_invoice_id', 'partner_shipping_id', 'pricelist_id') - #~ if any(f not in vals for f in lfields): - #~ partner = self.env['res.partner'].browse(vals.get('partner_id')) - #~ addr = partner.address_get(['delivery', 'invoice']) + if any(f not in vals for f in lfields): + partner = self.env['res.partner'].browse(vals.get('partner_id')) + addr = partner.address_get(['delivery', 'invoice']) #~ vals['partner_invoice_id'] = vals.setdefault('partner_invoice_id', addr['invoice']) - #~ vals['pricelist_id'] = vals.setdefault( - #~ 'pricelist_id', - #~ partner.property_product_pricelist and partner.property_product_pricelist.id) + vals['pricelist_id'] = vals.setdefault( + 'pricelist_id', + partner.property_product_pricelist and partner.property_product_pricelist.id) result = super(HotelFolio, self).create(vals) return result @@ -353,7 +354,10 @@ class HotelFolio(models.Model): addr = self.partner_id.address_get(['invoice']) #TEMP: - values = { 'user_id': self.partner_id.user_id.id or self.env.uid } + values = { 'user_id': self.partner_id.user_id.id or self.env.uid, + 'pricelist_id':self.partner_id.property_product_pricelist and \ + self.partner_id.property_product_pricelist.id or \ + self.env['ir.default'].sudo().get('res.config.settings', 'parity_pricelist_id')} #~ values = { #~ 'pricelist_id': self.partner_id.property_product_pricelist and \ #~ self.partner_id.property_product_pricelist.id or False, diff --git a/hotel/models/hotel_reservation.py b/hotel/models/hotel_reservation.py index ecb4d3726..33e1c2db6 100644 --- a/hotel/models/hotel_reservation.py +++ b/hotel/models/hotel_reservation.py @@ -334,11 +334,15 @@ class HotelReservation(models.Model): def _prepare_add_missing_fields(self, values): """ Deduce missing required fields from the onchange """ res = {} - onchange_fields = ['room_id', 'pricelist_id', 'reservation_type', 'currency_id'] - if values.get('partner_id') and values.get('room_type_id') and \ - any(f not in values for f in onchange_fields): + onchange_fields = ['room_id', 'reservation_type', 'currency_id'] + if values.get('partner_id') and values.get('room_type_id'): line = self.new(values) - line.onchange_room_id() + if any(f not in values for f in onchange_fields): + line.onchange_room_id() + if 'name' not in values: + line.onchange_compute_reservation_description() + if 'pricelist_id' not in values: + line.onchange_partner_id() for field in onchange_fields: if field not in values: res[field] = line._fields[field].convert_to_write(line[field], line) @@ -353,7 +357,7 @@ class HotelReservation(models.Model): if checkin and checkout and room_type: room_chosen = self.env['hotel.room.type'].check_availability_room(checkin, checkout, room_type)[0] res.update({ - 'room_id': room_chosen + 'room_id': room_chosen.id }) return res