diff --git a/hotel_data_bi/models/data_bi.py b/hotel_data_bi/models/data_bi.py index 900a41393..41109015f 100644 --- a/hotel_data_bi/models/data_bi.py +++ b/hotel_data_bi/models/data_bi.py @@ -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, diff --git a/hotel_roommatik/models/inherited_res_partner.py b/hotel_roommatik/models/inherited_res_partner.py index 5ebaa81f0..286583010 100755 --- a/hotel_roommatik/models/inherited_res_partner.py +++ b/hotel_roommatik/models/inherited_res_partner.py @@ -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