a lot changes
This commit is contained in:
parent
9847767661
commit
cd02efa318
|
@ -747,14 +747,14 @@ class MercadoLibre:
|
||||||
dev_sales.append(return_sale)
|
dev_sales.append(return_sale)
|
||||||
return dev_sales
|
return dev_sales
|
||||||
|
|
||||||
def create_lines_sale(self, sale, sale_, freight=False):
|
def create_lines_sale(self, sale, sale_items, sfm_id, freight=False):
|
||||||
_pool = Pool()
|
_pool = Pool()
|
||||||
SaleLine = _pool.get('sale.line')
|
SaleLine = _pool.get('sale.line')
|
||||||
Product = _pool.get('product.product')
|
Product = _pool.get('product.product')
|
||||||
create_lines = []
|
create_lines = []
|
||||||
sale_items = sale_['order_items']
|
# sale_items = sale_['order_items']
|
||||||
ctx = self._get_context()
|
ctx = self._get_context()
|
||||||
sfm_id = sale_items[0]['shipping']['id']
|
# sfm_id = sale_items[0]['shipping']['id']
|
||||||
# reference = sale.reference.split(',')
|
# reference = sale.reference.split(',')
|
||||||
# reference_order = str(sale_['id'])
|
# reference_order = str(sale_['id'])
|
||||||
# if reference_order not in reference:
|
# if reference_order not in reference:
|
||||||
|
@ -762,15 +762,14 @@ class MercadoLibre:
|
||||||
# sale.save()
|
# sale.save()
|
||||||
with Transaction().set_context(ctx):
|
with Transaction().set_context(ctx):
|
||||||
for line in sale_items:
|
for line in sale_items:
|
||||||
item = line['order_items'][0]
|
sku_code = line['item']['seller_sku']
|
||||||
sku_code = item['item']['seller_sku']
|
|
||||||
|
|
||||||
if sku_code:
|
if sku_code:
|
||||||
generic = False
|
generic = False
|
||||||
if sku_code.count('+') > 0:
|
if sku_code.count('+') > 0:
|
||||||
codes = sku_code.split('+')
|
codes = sku_code.split('+')
|
||||||
line['unit_price'] = Decimal(
|
line['unit_price'] = Decimal(
|
||||||
round((item['unit_price'] / 2), 2))
|
round((line['unit_price'] / 2), 2))
|
||||||
else:
|
else:
|
||||||
codes = [sku_code]
|
codes = [sku_code]
|
||||||
|
|
||||||
|
@ -792,15 +791,15 @@ class MercadoLibre:
|
||||||
gettext('sale_web_channel.msg_product_not_found', s=self.generic_product.rec_name))
|
gettext('sale_web_channel.msg_product_not_found', s=self.generic_product.rec_name))
|
||||||
for product in products:
|
for product in products:
|
||||||
Tax = _pool.get('account.tax')
|
Tax = _pool.get('account.tax')
|
||||||
un_price = Tax.reverse_compute(Decimal(item['unit_price']),
|
un_price = Tax.reverse_compute(Decimal(line['unit_price']),
|
||||||
product.customer_taxes_used)
|
product.customer_taxes_used)
|
||||||
create_lines.append({
|
create_lines.append({
|
||||||
'sale': sale.id,
|
'sale': sale.id,
|
||||||
'type': 'line',
|
'type': 'line',
|
||||||
'unit': product.default_uom.id,
|
'unit': product.default_uom.id,
|
||||||
'quantity': item['quantity'],
|
'quantity': line['quantity'],
|
||||||
'unit_price': round(Decimal(un_price), 3),
|
'unit_price': round(Decimal(un_price), 3),
|
||||||
'unit_price_full': Decimal(item['unit_price']),
|
'unit_price_full': Decimal(line['unit_price']),
|
||||||
'product': product.id,
|
'product': product.id,
|
||||||
'taxes': [('add', product.customer_taxes_used)],
|
'taxes': [('add', product.customer_taxes_used)],
|
||||||
'description': description,
|
'description': description,
|
||||||
|
@ -854,9 +853,20 @@ class MercadoLibre:
|
||||||
_pool = Pool()
|
_pool = Pool()
|
||||||
Sale = _pool.get('sale.sale')
|
Sale = _pool.get('sale.sale')
|
||||||
# reference = '%' + str(sale_['id']).split(',')[0] + '%'
|
# reference = '%' + str(sale_['id']).split(',')[0] + '%'
|
||||||
ids = [str(order['id']) for order in sale_['orders']]
|
try:
|
||||||
pack_id = sale_['id'][0]
|
ids = [str(order['id']) for order in sale_['orders']]
|
||||||
reference = ', '.join(ids)
|
pack_id = str(sale_['id']).split(',')[0]
|
||||||
|
reference = ', '.join(ids)
|
||||||
|
sfm_id = sale_['order_items'][0]['shipping']['id']
|
||||||
|
sale_id = str(sale_['id']).split(',')[1]
|
||||||
|
sale_items = sale_['order_items'][0]['order_items']
|
||||||
|
except KeyError:
|
||||||
|
ids = sale_['id']
|
||||||
|
pack_id = None
|
||||||
|
reference = sale_['id']
|
||||||
|
sfm_id = sale_['shipping']['id']
|
||||||
|
sale_id = sale_['id']
|
||||||
|
sale_items = sale_['order_items']
|
||||||
dom = [
|
dom = [
|
||||||
('reference', 'like', reference)
|
('reference', 'like', reference)
|
||||||
]
|
]
|
||||||
|
@ -874,10 +884,8 @@ class MercadoLibre:
|
||||||
sale_data = sale_['order_items'][0]
|
sale_data = sale_['order_items'][0]
|
||||||
Party = _pool.get('party.party')
|
Party = _pool.get('party.party')
|
||||||
User = _pool.get('res.user')
|
User = _pool.get('res.user')
|
||||||
sfm_id = sale_data['shipping']['id']
|
|
||||||
shipment_ = self.get_shipment_api(sfm_id)
|
shipment_ = self.get_shipment_api(sfm_id)
|
||||||
if sale_.get('buyer'):
|
if sale_.get('buyer'):
|
||||||
sale_id = str(sale_['id']).split(',')[1]
|
|
||||||
billing_info = self.get_billing_info_api(sale_id)
|
billing_info = self.get_billing_info_api(sale_id)
|
||||||
customer = sale_['buyer']
|
customer = sale_['buyer']
|
||||||
dom_party = [('id_reference', '=', str(customer['id']))]
|
dom_party = [('id_reference', '=', str(customer['id']))]
|
||||||
|
@ -920,12 +928,12 @@ class MercadoLibre:
|
||||||
'shipment_address': Party.address_get(party, type='delivery'),
|
'shipment_address': Party.address_get(party, type='delivery'),
|
||||||
'description': 'VENTA WEB ',
|
'description': 'VENTA WEB ',
|
||||||
'web_shop': self.id,
|
'web_shop': self.id,
|
||||||
'web_id': pack_id,
|
'web_id': pack_id if pack_id else sale_id,
|
||||||
'invoice_type': self.invoice_type,
|
'invoice_type': self.invoice_type,
|
||||||
'pack_id': pack_id,
|
'pack_id': pack_id,
|
||||||
}])
|
}])
|
||||||
generic = self.create_lines_sale(
|
generic = self.create_lines_sale(
|
||||||
sale, sale_, freight=True)
|
sale, sale_items, sfm_id, freight=True)
|
||||||
sale.untaxed_amount_cache = sale.untaxed_amount
|
sale.untaxed_amount_cache = sale.untaxed_amount
|
||||||
if sale_['status'] == 'cancelled':
|
if sale_['status'] == 'cancelled':
|
||||||
sale.state = 'cancelled'
|
sale.state = 'cancelled'
|
||||||
|
@ -967,3 +975,20 @@ class MercadoLibre:
|
||||||
)
|
)
|
||||||
# return access_token, refresh_token, client_id, client_secret
|
# return access_token, refresh_token, client_id, client_secret
|
||||||
return access_token
|
return access_token
|
||||||
|
|
||||||
|
def _validate_number_id(self, number_id, access_token):
|
||||||
|
URI = 'https://api.mercadolibre.com/packs/%s?access_token=%s' % (
|
||||||
|
number_id, access_token)
|
||||||
|
result = self.get_response(URI).json()
|
||||||
|
if result['status'] != 404:
|
||||||
|
return self.validate_sale(result)
|
||||||
|
else:
|
||||||
|
URI = 'https://api.mercadolibre.com/orders/%s?access_token=%s' % (
|
||||||
|
number_id, access_token)
|
||||||
|
result = self.get_response(URI).json()
|
||||||
|
if result['pack_id']:
|
||||||
|
URI = 'https://api.mercadolibre.com/packs/%s?access_token=%s' % (
|
||||||
|
result['pack_id'], access_token)
|
||||||
|
result2 = self.get_response(URI).json()
|
||||||
|
return self.validate_sale(result2)
|
||||||
|
return self._create_sale(result)
|
||||||
|
|
7
web.py
7
web.py
|
@ -236,14 +236,11 @@ class SynchronizeChannelOrders(Wizard):
|
||||||
mercado_libre = MercadoLibre(channel)
|
mercado_libre = MercadoLibre(channel)
|
||||||
if operation == 'especific_order':
|
if operation == 'especific_order':
|
||||||
order_id = self.start.order_id
|
order_id = self.start.order_id
|
||||||
URI = 'https://api.mercadolibre.com/packs/%s?access_token=%s' % (
|
result = mercado_libre._validate_number_id(order_id, channel.access_token)
|
||||||
order_id, channel.access_token)
|
|
||||||
result = mercado_libre.get_response(URI).json()
|
|
||||||
if not result:
|
if not result:
|
||||||
raise ErrorSynchronizingSale(
|
raise ErrorSynchronizingSale(
|
||||||
gettext('sale_web_channel.msg_error_synchronizing_sale', s=result))
|
gettext('sale_web_channel.msg_error_synchronizing_sale', s=result))
|
||||||
print(result, 'este es el result')
|
sale_created = result
|
||||||
sale_created = mercado_libre.validate_sale(result)
|
|
||||||
if sale_created:
|
if sale_created:
|
||||||
generic_code = self.start.channel.generic_product.code if self.start.channel.generic_product else None
|
generic_code = self.start.channel.generic_product.code if self.start.channel.generic_product else None
|
||||||
product_generic = [
|
product_generic = [
|
||||||
|
|
|
@ -328,6 +328,7 @@ class SynchronizeChannelOrders(Wizard):
|
||||||
if not result:
|
if not result:
|
||||||
raise ErrorSynchronizingSale(
|
raise ErrorSynchronizingSale(
|
||||||
gettext('sale_web_channel.msg_error_synchronizing_sale', s=result))
|
gettext('sale_web_channel.msg_error_synchronizing_sale', s=result))
|
||||||
|
print(result)
|
||||||
sale_created = channel.validate_sale(result)
|
sale_created = channel.validate_sale(result)
|
||||||
if sale_created:
|
if sale_created:
|
||||||
generic_code = self.start.channel.generic_product.code if self.start.channel.generic_product else None
|
generic_code = self.start.channel.generic_product.code if self.start.channel.generic_product else None
|
||||||
|
|
Loading…
Reference in New Issue