From df90700927d448d22c159ba5ed70219e7fe97136 Mon Sep 17 00:00:00 2001 From: Fabricio Costa Date: Wed, 19 Apr 2023 17:09:02 -0300 Subject: [PATCH] Upgraded permissions for multicompany 23.27 --- __manifest__.py | 2 +- data/parameters_data.xml | 2 +- models/company.py | 2 ++ models/orders.py | 9 +++++++-- models/product.py | 4 ++-- models/product_post.py | 7 ++++--- models/questions.py | 1 + models/versions.py | 7 +++++++ security/meli_oerp_security.xml | 7 +++++++ 9 files changed, 32 insertions(+), 9 deletions(-) diff --git a/__manifest__.py b/__manifest__.py index 0b088971..dd70df70 100644 --- a/__manifest__.py +++ b/__manifest__.py @@ -9,7 +9,7 @@ { 'name': 'MercadoLibre Publisher / Mercado Libre Odoo Connector', 'summary': 'MercadoLibre Publisher / Mercado Libre Odoo Connector', - 'version': '15.0.23.20', + 'version': '15.0.23.27', 'author': 'Moldeo Interactive', 'website': 'https://www.moldeointeractive.com', "category": "Sales", diff --git a/data/parameters_data.xml b/data/parameters_data.xml index 893acc06..54fb3505 100644 --- a/data/parameters_data.xml +++ b/data/parameters_data.xml @@ -25,7 +25,7 @@ MercadoLibre Questions multi-company - [('company_id', 'in', company_ids)] + ['|',('company_id','=',False),('company_id', 'in', company_ids)] diff --git a/models/company.py b/models/company.py index 59df01a7..967be92b 100644 --- a/models/company.py +++ b/models/company.py @@ -29,6 +29,8 @@ from .meli_oerp_config import * from .warning import warning +from . import versions +from .versions import * import requests diff --git a/models/orders.py b/models/orders.py index 6dfcd5bd..ec0a0fe5 100644 --- a/models/orders.py +++ b/models/orders.py @@ -1709,8 +1709,9 @@ def orders_update_order_json( self, data, context=None, config=None, meli=None ) product_related = order.search_meli_product( meli=meli, meli_item=Item['item'], config=config ) - if ( product_related and len(product_related)==0 and ('seller_custom_field' in Item['item'] or 'seller_sku' in Item['item'])): - + _logger.info("1st attempt: "+str(product_related)+" Item: "+str(Item["item"]) ) + if ( ( (not product_related) or len(product_related)==0 ) and ('seller_custom_field' in Item['item'] or 'seller_sku' in Item['item'])): + _logger.info("2nd attempt: "+str(Item["item"]) ) #1ST attempt "seller_sku" or "seller_custom_field" seller_sku = ('seller_sku' in Item['item'] and Item['item']['seller_sku']) or ('seller_custom_field' in Item['item'] and Item['item']['seller_custom_field']) if (seller_sku): @@ -1721,10 +1722,14 @@ def orders_update_order_json( self, data, context=None, config=None, meli=None ) seller_sku = ('seller_custom_field' in Item['item'] and Item['item']['seller_custom_field']) if (seller_sku): product_related = product_obj.search([('default_code','=ilike',seller_sku)]) + else: + seller_sku = ('seller_sku' in Item['item'] and Item['item']['seller_sku']) or ('seller_custom_field' in Item['item'] and Item['item']['seller_custom_field']) + #TODO: 3RD attempt using barcode #if (not product_related): # search using item attributes GTIN and SELLER_SKU + _logger.info("2nd attempt: "+str(Item["item"]) + " seller_sku:"+str(seller_sku)) if (len(product_related)): _logger.info("order product related by seller_custom_field and default_code:"+str(seller_sku) ) diff --git a/models/product.py b/models/product.py index 12b40f75..18fdba44 100644 --- a/models/product.py +++ b/models/product.py @@ -554,7 +554,7 @@ def _meli_set_product_price( self, product_template, meli_price, force_variant=F if (pli_tpl or pli_var): #_logger.info("Updating price") - return_val = pl.price_get( self.id, 1.0 ) + return_val = get_price_from_pl(pricelist=pl, product=self,quantity=1.0) if (pl.id in return_val): old_price = return_val[pl.id] if pli_tpl: @@ -616,7 +616,7 @@ def set_meli_price( self, meli=None, config=None, plist=None ): new_price = product.lst_price if (pl): - return_val = pl.price_get(product.id,1.0) + return_val = get_price_from_pl(pricelist=pl, product=product,quantity=1.0) if pl.id in return_val: new_price = return_val[pl.id] _logger.info("return_val: "+str(return_val)) diff --git a/models/product_post.py b/models/product_post.py index a19cb114..ffae15b1 100644 --- a/models/product_post.py +++ b/models/product_post.py @@ -365,6 +365,7 @@ def check_sync_status( self, context=None, config=None, meli=None ): totalmax = rjson['paging']['total'] _logger.info( "totalmax: "+str(totalmax) ) actives_to_sync = str(totalmax) + actives_total = len(fetched_meli_ids_active) post_state_filter = { 'status': 'paused' } if meli_id: @@ -416,9 +417,9 @@ def check_sync_status( self, context=None, config=None, meli=None ): result = { - 'actives_to_sync': actives_to_sync, - 'paused_to_sync': paused_to_sync, - 'closed_to_sync': closed_to_sync + 'actives_to_sync': str(len(actives_to_sync))+" / "+str(actives_total), + 'paused_to_sync': str(len(paused_to_sync))+" / "+str(paused_total), + 'closed_to_sync': str(len(closed_to_sync))+" / "+str(closed_total), } result.update({'report_import': last_attachment}) diff --git a/models/questions.py b/models/questions.py index 8aa4befd..245b391a 100644 --- a/models/questions.py +++ b/models/questions.py @@ -31,6 +31,7 @@ class mercadolibre_questions(models.Model): name = fields.Char(string="Name") posting_id = fields.Many2one("mercadolibre.posting","Posting") + company_id = fields.Many2one("res.company",string="Empresa") #product_id = fields.Many2one("product.product","Product") question_id = fields.Char('Question Id') date_created = fields.Date('Creation date') diff --git a/models/versions.py b/models/versions.py index d25e7774..45f6f556 100644 --- a/models/versions.py +++ b/models/versions.py @@ -15,6 +15,13 @@ order_message_type = "notification" product_message_type = "notification" +#price from pricelist +def get_price_from_pl( pricelist, product, quantity ): + pl = pricelist + return_val = {} + return_val = pl.price_get( product.id, quantity) + return return_val + #Autocommit def Autocommit( self, act=False ): self._cr.autocommit(act) diff --git a/security/meli_oerp_security.xml b/security/meli_oerp_security.xml index f0a84127..6508b196 100644 --- a/security/meli_oerp_security.xml +++ b/security/meli_oerp_security.xml @@ -25,4 +25,11 @@ ['|',('company_id','=',False),('company_id', 'in', company_ids)] + + + MercadoLibre Questions multi-company + + ['|',('company_id','=',False),('company_id', 'in', company_ids)] + +