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__)
def inv_percent(amount, percent):
def inv_percent_inc(amount, percent):
"""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):
@@ -550,26 +550,31 @@ class Data_Bi(models.Model):
# Expedia.
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 -------------------
# import wdb; wdb.set_trace()
# # Debug Stop -------------------
precio_iva = precio_neto-(precio_neto/1.1)
precio_neto -= precio_iva
if (expedia_rate[3] == 'MERCHANT'):
precio_comision = inv_percent(precio_neto, expedia_rate[1])
precio_neto += precio_comision
# iva "interno" de expedia.....
precio_iva2 = (precio_neto*10/100)
precio_neto += precio_iva2
else:
precio_comision = precio_neto*((100 - expedia_rate[1])/100)
precio_neto += precio_comision
precio_neto -= precio_comision
precio_comision = inv_percent_inc(precio_neto, expedia_rate[1])
precio_neto -= precio_comision
# if (expedia_rate[3] == 'MERCHANT'):
# # iva "interno" de expedia.....
# precio_iva2 = precio_neto-(precio_neto/1.1)
# precio_neto -= precio_iva2
# precio_comision += precio_iva2
# else:
# precio_comision = inv_percent_inc(precio_neto, expedia_rate[1])
# precio_neto += precio_comision
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 abril a 15 octubre: 5%
# De 16 octubre a 31 diciembre: 7%
@@ -580,12 +585,10 @@ class Data_Bi(models.Model):
fence_dto = 5
if (fence_dia > 15) and (fence_mes == 10):
fence_dto = 7
precio_dto += inv_percent(precio_neto, fence_dto)
precio_neto += precio_dto
precio_dto += inv_percent_inc(precio_neto, fence_dto)
if expedia_rate[0] == 'NON-REFUNDABLE':
precio_dto += inv_percent(precio_neto, 3)
precio_neto += precio_dto
precio_dto += inv_percent_inc(precio_neto, 3)
# _logger.info("%s - %s - %s - %s - En Odoo:%s - Neto a MOP:%s",
# reserva.reservation_id.folio_id.name,

View File

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