minor fix

This commit is contained in:
wilson gomez 2021-11-08 10:29:02 -05:00
parent 06f887c88b
commit 303b3a4976
3 changed files with 35 additions and 26 deletions

View File

@ -190,11 +190,11 @@ class MercadoLibre(SaleWebChannel):
sale_items = sale_['order_items']
ctx = self._get_context()
sfm_id = sale_['shipping']['id']
reference = sale.reference.split(',')
reference_order = str(sale_['id'])
if reference_order not in reference:
sale.referece = sale.reference + ',' + reference_order
sale.save()
# reference = sale.reference.split(',')
# reference_order = str(sale_['id'])
# if reference_order not in reference:
# sale.referece = sale.reference + ',' + reference_order
# sale.save()
with Transaction().set_context(ctx):
for line in sale_items:
item = line['item']
@ -269,31 +269,31 @@ class MercadoLibre(SaleWebChannel):
res = self.get_response(URI)
shipment_items = res.json()
if len(shipment_items) > 1:
ids = ''
for item in shipment_items:
order_id = item['order_id']
ids = ''
if order_id != sale_['order_id']:
if order_id != str(sale_['id']):
URI2 = 'https://api.mercadolibre.com/orders/%s?access_token=%s' % (
order_id, self.access_token)
order = self.get_response(URI2)
sale_order = order.json()
ids += ',', order_id
sale_['order_items'].append(sale_order['order_items'])
sale_['order_id'] = order_id + ids
self.create_sale(sale_)
ids += ',' + order_id
sale_['order_items'].extend(sale_order['order_items'])
sale_['id'] = str(sale_['id']) + ids
return self._create_sale(sale_)
else:
self.create_sale(sale_)
return self._create_sale(sale_)
else:
self.create_sale(sale_)
return self._create_sale(sale_)
def _create_sale(self, sale_):
_pool = Pool()
Sale = _pool.get('sale.sale')
sales = Sale.search([
('reference', '=', str(sale_['id']))
])
reference = '%' + str(sale_['id']).split(',')[0] + '%'
dom = [
('reference', 'like', reference)
]
sales = Sale.search(dom)
if sales:
if len(sales) == 1 and sale_['status'] == 'cancelled':
sale = sales[0]
@ -309,7 +309,8 @@ class MercadoLibre(SaleWebChannel):
sfm_id = sale_['shipping']['id']
shipment_ = self.get_shipment_api(sfm_id)
if sale_.get('buyer'):
billing_info = self.get_billing_info_api(sale_['id'])
sale_id = str(sale_['id']).split(',')[0]
billing_info = self.get_billing_info_api(sale_id)
customer = sale_['buyer']
dom_party = [('id_reference', '=', str(customer['id']))]
if billing_info and billing_info['billing_info'].get('doc_number'):
@ -434,7 +435,6 @@ class MercadoLibre(SaleWebChannel):
@classmethod
def request_api(cls, data):
channel = cls._get_channel()
print('ingresa por aca')
response = {'status': 'error', 'msg_response': 'Fail in process !!!'}
if not channel:
return response
@ -444,21 +444,27 @@ class MercadoLibre(SaleWebChannel):
URI = 'https://api.mercadolibre.com/orders/%s?access_token=%s' % (
order_id, access_token)
result = cls.get_response(URI).json()
res = channel._create_sale(result)
res = channel.validate_sale(result)
if res:
response = {
'status': 'ok',
'msg_response': 'Successfull process !!!',
'order': order_id
}
if data.get('resource') and data['resource'].count('shipments'):
else:
response = {
'status': 'ok',
'msg_response': 'Sale processed before !!!',
'order': order_id
}
elif data.get('resource') and data['resource'].count('shipments'):
shipment_id = str(data['resource'].replace('/shipments/', ''))
shipment_ = channel.get_shipment_api(shipment_id)
order_id = shipment_['order_id']
Sale = Pool().get('sale.sale')
sales = Sale.search([
('reference', '=', str(order_id))
('reference', 'ilike', '%' + str(order_id) + '%')
])
response.update({'order': order_id})
if not sales:
@ -486,6 +492,8 @@ class MercadoLibre(SaleWebChannel):
response = {'status': 'ok',
'msg_response': 'Successfull process !!!',
'order': order_id}
else:
return {'status': 'none', 'msg_response': 'Don`t process this topic'}
return response
def _finish_sale(self, sale, type='invoice'):

View File

@ -6,6 +6,8 @@ this repository contains the full copyright notices and license terms. -->
<field name="channel"/>
<label name="number"/>
<field name="number"/>
<label name="order"/>
<field name="order"/>
<label name="record_date"/>
<field name="record_date"/>
<label name="msg_response"/>

View File

@ -301,7 +301,7 @@ class SynchronizeChannelOrders(Wizard):
if not result:
raise ErrorSynchronizingSale(
gettext('sale_web_channel.msg_error_synchronizing_sale', s=result))
sale_created = channel._create_sale(result)
sale_created = channel.validate_sale(result)
if sale_created:
generic_code = self.start.channel.generic_product.code if self.start.channel.generic_product else None
product_generic = [
@ -322,7 +322,7 @@ class SynchronizeChannelOrders(Wizard):
sales = Sale.search([('reference', '=', str(res['id']))])
shipment_status = ''
if not sales:
sale_created = channel._create_sale(res)
sale_created = channel.validate_sale(res)
shipment_status = sale_created.comment
sales = [sale_created]
else:
@ -356,7 +356,6 @@ class SynchronizeChannelOrders(Wizard):
date_to = str(self.start.date_end) + 'T00:00:00.000-00:00'
URI = 'https://%s:%s@%s/admin/api/2020-10/orders.json?status=any&created_at_min=%s&created_at_max=%s' % (
channel.api_key, channel.password_api, channel.host_name, date_from, date_to)
print(URI)
result = Shopify.get_response(URI).json()
print('quantity orders----> ', len(result['orders']))