Merge branch '11.0' of https://github.com/hootel/hootel into sprint

This commit is contained in:
Pablo
2019-07-22 10:24:17 +02:00
2 changed files with 49 additions and 41 deletions

View File

@@ -27,9 +27,9 @@ import logging
_logger = logging.getLogger(__name__) _logger = logging.getLogger(__name__)
def inv_percent(amount, percent): def inv_percent_inc(amount, percent):
"""Return the amount to which a percentage was applied.""" """Return the amount to which a percentage was applied."""
return round(amount*(100/float(100-percent)) - amount, 2) return (amount - (amount*(100-percent))/100)
class Data_Bi(models.Model): class Data_Bi(models.Model):
@@ -550,26 +550,31 @@ class Data_Bi(models.Model):
# Expedia. # Expedia.
expedia_rate = self.data_bi_rate_expedia(reserva) expedia_rate = self.data_bi_rate_expedia(reserva)
# if reserva.reservation_id.folio_id.name == 'F/03767': # if reserva.reservation_id.folio_id.name == 'F/08211':
# # Debug Stop ------------------- # # Debug Stop -------------------
# import wdb; wdb.set_trace() # import wdb; wdb.set_trace()
# # Debug Stop ------------------- # # Debug Stop -------------------
precio_iva = precio_neto-(precio_neto/1.1) precio_iva = precio_neto-(precio_neto/1.1)
precio_neto -= precio_iva precio_neto -= precio_iva
if (expedia_rate[3] == 'MERCHANT'): precio_comision = inv_percent_inc(precio_neto, expedia_rate[1])
precio_comision = inv_percent(precio_neto, expedia_rate[1]) precio_neto -= precio_comision
precio_neto += precio_comision
# iva "interno" de expedia..... # if (expedia_rate[3] == 'MERCHANT'):
precio_iva2 = (precio_neto*10/100) # # iva "interno" de expedia.....
precio_neto += precio_iva2 # precio_iva2 = precio_neto-(precio_neto/1.1)
else: # precio_neto -= precio_iva2
precio_comision = precio_neto*((100 - expedia_rate[1])/100) # precio_comision += precio_iva2
precio_neto += precio_comision # else:
precio_neto -= precio_comision # precio_comision = inv_percent_inc(precio_neto, expedia_rate[1])
# precio_neto += precio_comision
if expedia_rate[2] != 'NONE': if expedia_rate[2] != 'NONE':
# Es Promocion (Fence, Packet, etc.)
# "iva" "interno" de expedia..... es una comision extra
precio_iva2 = precio_neto-(precio_neto/1.1)
precio_neto -= precio_iva2
precio_comision += precio_iva2
# De enero a marzo: 7% # De enero a marzo: 7%
# De abril a 15 octubre: 5% # De abril a 15 octubre: 5%
# De 16 octubre a 31 diciembre: 7% # De 16 octubre a 31 diciembre: 7%
@@ -580,12 +585,10 @@ class Data_Bi(models.Model):
fence_dto = 5 fence_dto = 5
if (fence_dia > 15) and (fence_mes == 10): if (fence_dia > 15) and (fence_mes == 10):
fence_dto = 7 fence_dto = 7
precio_dto += inv_percent(precio_neto, fence_dto) precio_dto += inv_percent_inc(precio_neto, fence_dto)
precio_neto += precio_dto
if expedia_rate[0] == 'NON-REFUNDABLE': if expedia_rate[0] == 'NON-REFUNDABLE':
precio_dto += inv_percent(precio_neto, 3) precio_dto += inv_percent_inc(precio_neto, 3)
precio_neto += precio_dto
# _logger.info("%s - %s - %s - %s - En Odoo:%s - Neto a MOP:%s", # _logger.info("%s - %s - %s - %s - En Odoo:%s - Neto a MOP:%s",
# reserva.reservation_id.folio_id.name, # reserva.reservation_id.folio_id.name,

View File

@@ -24,33 +24,38 @@ class ResPartner(models.Model):
write_customer = False write_customer = False
if any(partner_res): if any(partner_res):
# Change customer data # Change customer data
_logger.warning('ROOMMATIK %s exist in BD [ %s ] Rewriting',
partner_res[0].document_number,
partner_res[0].id,)
try: try:
partner_res[0].update(self.rm_prepare_customer(customer)) partner_res[0].update(self.rm_prepare_customer(customer))
write_customer = partner_res[0] write_customer = partner_res[0]
except: _logger.info('ROOMMATIK %s exist in BD [ %s ] Rewriting',
_logger.error('ROOMMATIK Rewriting [%s] in BD [ %s ] ID', partner_res[0].document_number,
partner_res[0].document_number, partner_res[0].id,)
partner_res[0].id,) except Exception as e:
error_name = e.name
else: else:
# Create new customer # Create new customer
try: try:
write_customer = self.create(self.rm_prepare_customer(customer)) self.create(self.rm_prepare_customer(customer))
_logger.info('ROOMMATIK Writing %s Name: %s', _logger.info('ROOMMATIK Created %s Name: %s',
customer['IdentityDocument']['Number'], customer['IdentityDocument']['Number'],
customer['FirstName']) customer['FirstName'])
except: write_customer = self.env['res.partner'].search([
_logger.error('ROOMMATIK Creating %s %s in BD', ('document_number', '=',
customer['IdentityDocument']['Number'], customer['IdentityDocument']['Number'])])
customer['FirstName']) except Exception as e:
error_name = e.name
partner_res = self.env['res.partner'].search([(
'document_number', '=',
customer['IdentityDocument']['Number'])])
partner_res.unlink()
if write_customer: if write_customer:
json_response = self.rm_get_a_customer(write_customer.id) json_response = self.rm_get_a_customer(write_customer.id)
json_response = json.dumps(json_response) json_response = json.dumps(json_response)
return json_response return json_response
else: else:
return False _logger.error(error_name)
return [False, error_name]
def rm_prepare_customer(self, customer): def rm_prepare_customer(self, customer):
# Check Sex string # Check Sex string
@@ -77,7 +82,7 @@ class ResPartner(models.Model):
'street': customer['Address']['Street'], 'street': customer['Address']['Street'],
'street2': street_2, 'street2': street_2,
'state_id': state.id if state else False, 'state_id': state.id if state else False,
'country': country.id if country else False, 'country_id': country.id if country else False,
'phone': customer['Contact']['Telephone'], 'phone': customer['Contact']['Telephone'],
'mobile': customer['Contact']['Mobile'], 'mobile': customer['Contact']['Mobile'],
'email': customer['Contact']['Email'], 'email': customer['Contact']['Email'],
@@ -101,13 +106,13 @@ class ResPartner(models.Model):
response['Address'] = { response['Address'] = {
# 'Nationality': 'xxxxx' # 'Nationality': 'xxxxx'
'Country': partner.country_id.code_alpha3, 'Country': partner.country_id.code_alpha3,
'ZipCode': partner.zip, 'ZipCode': partner.zip if partner.zip else "",
'City': partner.city, 'City': partner.city if partner.city else "",
'Street': partner.street, 'Street': partner.street if partner.street else "",
'House': partner.street2, 'House': partner.street2 if partner.street2 else "",
# 'Flat': "xxxxxxx", # 'Flat': "xxxxxxx",
# 'Number': "xxxxxxx", # 'Number': "xxxxxxx",
'Province': partner.state_id.name, 'Province': partner.state_id.name if partner.state_id.name else "",
} }
response['IdentityDocument'] = { response['IdentityDocument'] = {
'Number': partner.document_number, 'Number': partner.document_number,
@@ -116,9 +121,9 @@ class ResPartner(models.Model):
'ExpeditionDate': partner.document_expedition_date, 'ExpeditionDate': partner.document_expedition_date,
} }
response['Contact'] = { response['Contact'] = {
'Telephone': partner.phone, 'Telephone': partner.phone if partner.phone else "",
# 'Fax': 'xxxxxxx', # 'Fax': 'xxxxxxx',
'Mobile': partner.mobile, 'Mobile': partner.mobile if partner.mobile else "",
'Email': partner.email, 'Email': partner.email if partner.email else "",
} }
return response return response