This commit is contained in:
oscar alvarez 2022-07-09 01:03:58 -05:00
parent 0c9d361423
commit d66c7b202e
2 changed files with 56 additions and 28 deletions

View File

@ -1080,13 +1080,6 @@ class BookingStatementLine(ModelSQL):
statement_line = fields.Many2One('account.statement.line', 'Statement Line',
ondelete='RESTRICT', required=True)
# @classmethod
# def set_voucher_origin(cls, voucher_id, booking_id):
# cls.create([{
# 'voucher': voucher_id,
# 'booking': booking_id,
# }])
class BookingForecastStart(ModelView):
'Booking Forecast Start'
@ -1384,7 +1377,6 @@ class UpdateHolderStart(ModelView):
phone = fields.Char('Phone')
birthday = fields.Date('Birthday')
nationality = fields.Many2One('party.nationality', 'Nationality')
origin_country = fields.Many2One('party.country_code', 'Origin Country')
target_country = fields.Many2One('party.country_code', 'Target Country')
@ -1394,7 +1386,6 @@ class UpdateHolderStart(ModelView):
('department', '=', Eval('subdivision'))
])
address = fields.Char('Address')
type_document = fields.Selection(TYPE_DOCUMENT, 'Tipo de Documento',
required=True)
id_number = fields.Char('Id Number', required=True)
@ -1415,6 +1406,37 @@ class UpdateHolderStart(ModelView):
customer_type_document = fields.Selection(TYPE_DOCUMENT, 'Tipo de Documento Cliente')
main_guest = fields.Boolean('Main Guest')
@fields.depends('id_number','name', 'sex', 'email', 'mobile',
'visa_number', 'visa_date', 'address', 'birthday', 'nationality')
def on_change_id_number(self):
if self.id_number:
Party = Pool().get('party.party')
parties = Party.search([
('id_number', '=', self.id_number)
])
if parties:
address = ''
country = None
subdivision = None
party = parties[0]
if party.addresses:
_address = party.addresses[0]
address = _address.street
country = _address.country_code and _address.country_code.id
subdivision = _address.department_code and _address.department_code.id
self.name = party.name
self.sex = party.sex
self.email = party.email
self.mobile = party.mobile
self.visa_number = party.visa_number
self.visa_date = party.visa_date
self.birthday = party.birthday
self.nationality = party.nationality and party.nationality.id
self.country = country
self.subdivision = subdivision
self.address = address
class UpdateHolder(Wizard):
'Update Holder'
@ -1506,19 +1528,25 @@ class UpdateHolder(Wizard):
address['city_code'] = city_code
address['department_code'] = subdivision_code
address['street'] = street
party = None
if not booking.party:
edit = False
parties = Party.search([
('id_number', '=', _party.id_number),
])
if parties:
raise UserError('Este cliente ya existe!')
self._set_cms('create', rec, _party.email, _party.mobile, _party.phone)
rec['addresses'] = [('create', [address])]
if not parties:
self._set_cms('create', rec, _party.email, _party.mobile, _party.phone)
rec['addresses'] = [('create', [address])]
# raise UserError('Este cliente ya existe!')
else:
party = parties[0]
edit = True
else:
if booking.party.addresses:
Address.write(list(booking.party.addresses), address)
party = booking.party
if party:
if party.addresses:
Address.write(list(party.addresses), address)
else:
Address.create([address])
cms_add = {}
@ -1526,8 +1554,8 @@ class UpdateHolder(Wizard):
cms_add['mobile'] = _party.mobile
cms_add['phone'] = _party.phone
cms_add['email'] = _party.email
if booking.party.contact_mechanisms:
for cm in booking.party.contact_mechanisms:
if party.contact_mechanisms:
for cm in party.contact_mechanisms:
if cm.type == 'mobile' and _party.mobile:
cm.value = cms_add.pop('mobile')
elif cm.type == 'phone' and _party.phone:
@ -1539,7 +1567,7 @@ class UpdateHolder(Wizard):
for (key, value) in cms_add.items():
if not value:
continue
cm = CM(party=booking.party.id, type=key, value=value)
cm = CM(party=party.id, type=key, value=value)
cm.save()
else:
self._set_cms('create', rec, _party.email, _party.mobile, _party.phone)
@ -1572,12 +1600,14 @@ class UpdateHolder(Wizard):
)
party, = Party.create([rec_])
if edit:
Party.write([booking.party], rec)
party = booking.party
Party.write([party], rec)
if not booking.party:
booking.party = party.id
else:
party, = Party.create([rec])
Booking.write([booking], {'party': party.id})
booking.save()
booking.save()
if _party.type_document != '31':
for folio in booking.lines:
if not folio.main_guest:

View File

@ -3,16 +3,14 @@
this repository contains the full copyright notices and license terms. -->
<form>
<group colspan="4" col="8" id="general_info" string="General Info">
<!-- <label name="main_guest"/>
<field name="main_guest"/> -->
<label name="name"/>
<field name="name"/>
<label name="nationality"/>
<field name="nationality" widget="selection"/>
<label name="type_document"/>
<field name="type_document"/>
<label name="id_number"/>
<field name="id_number"/>
<label name="name"/>
<field name="name"/>
<label name="nationality"/>
<field name="nationality" widget="selection"/>
<label name="email"/>
<field name="email"/>
<label name="mobile"/>