2017-05-29 106 views
-1

如果memo_data ['items']中只有一个产品,将创建销售订单行,但是如果有两个或更多个产品,则会重新填充错误:解压缩的值过多。 下面是代码:从web服务创建sale.order.line(IMPORTING)? Odoo V9e

for item in memo_data['items']: 
        c_id = self.env['sale.order.line'].search([('creditmemo_id','=',memo_data['creditmemo_id'])]) 
        if not c_id: 
         _logger.info("THIS IS CID: %s" % memo_data['creditmemo_id']) 
         a_product = self.env['product.product'].search([('default_code', '=',item['sku'])]) 
         if a_product: 
          _logger.info("FOUND THE PRODUCT with id: %s" %a_product.id) 
          pos_price = float(item['row_total']) 

          neg_price = pos_price - (2 * pos_price) 

          res12 = { 


           'order_id':   is_exist.id, 

           'product_id':  a_product.id, 

           'price_unit':  neg_price, 
           'sequence':   10, 


           'product_uom_qty': float(item['qty']), 

           'creditmemo_id' : memo_data['creditmemo_id'], 

           'creditmemo_date': memo_data['created_at'], 

           'creditmemo_increment_id' : memo_data['increment_id'], 



          } 


          self.env['sale.order.line'].create(res12)`enter code here` 
+0

POST错误日志中更好地理解 –

回答

0

我假设你正在试图循环的记录列表。但内环尝试改变memo_data项:

for item in memo_data['items']: 
        c_id = self.env['sale.order.line'].search([('creditmemo_id','=',item['creditmemo_id'])]) 
        if not c_id: 
         _logger.info("THIS IS CID: %s" % item['creditmemo_id']) 
         a_product = self.env['product.product'].search([('default_code', '=',item['sku'])]) 
         if a_product: 
          _logger.info("FOUND THE PRODUCT with id: %s" %a_product.id) 
          pos_price = float(item['row_total']) 

          neg_price = pos_price - (2 * pos_price) 

          res12 = { 


           'order_id':   is_exist.id, 

           'product_id':  a_product.id, 

           'price_unit':  neg_price, 
           'sequence':   10, 


           'product_uom_qty': float(item['qty']), 

           'creditmemo_id' : item['creditmemo_id'], 

           'creditmemo_date': item['created_at'], 

           'creditmemo_increment_id' : item['increment_id'], 



          } 
+0

不,我需要memo_data [“creditmemo_id”],原因是其是主要的信息载体,从memo_data [“项目”]是实际的贷项通知单线项目需要插入。顺便说一句,我有2300个备忘录导入使用此代码,2320中只有20个拒绝了这个错误: –

+0

请张贴样本memo_data –

0

我认为你需要处理你的字典是这样

for field, possible_values in fields.iteritems(): 
    print field, possible_values 

蟒蛇2.7:iteritems() 蟒蛇3:项目()。

感谢