# -*- coding: utf-8 -*- from openerp import models, fields, api, _ from openerp.exceptions import Warning as UserError class Search_Barcode_Picking(models.TransientModel): _name = 'search.barcode.picking' _description = 'Buscar Producto por Codigo de Barra en Compras' quantity = fields.Float('Quantity', default='1.0') products_ids = fields.Many2many( 'product.product', string='Products', domain=[('sale_ok', '=', True)], ) # product_code = fields.Char( string='Codigo de Barra EAN13 ', # help="Este campo está diseñado para ser llenado con un lector de código de barras") # @api.onchange('product_code') # def product_code_change(self): # if self.product_code: # products = self.env['product.product'].search([ # '|', ('ean13', '=', self.product_code), ('default_code', '=ilike', self.product_code)]) # # if len(products) == 1: # self.products_ids += products[0] # self.product_code =None # # elif len(products) > 1: # self.product_code =None # return {'warning': { # 'title': _('Error'), # 'message': _( # 'Varios productos se han encontrado con el código (EAN 13) ingresado,' # '\nDebe seleccionar el producto manualmente.')}} # else: # self.product_code =None # return {'warning': { # 'title': _('Error'), # 'message': _( # 'Ningún producto encontrado con el código (EAN 13) ingresado, Debe seleccionar el producto manualmente')}} @api.one def add_multiple(self): active_id = self._context['active_id'] stock_transfer = self.env['stock.warehouse.transfer'].browse(active_id) for product_id in self.products_ids: xxproducts = self.env['product.product'].search([('id', '=', product_id.id)]) orde_line_datos = self.env['stock.warehouse.transfer.line'].search([('transfer', '=', stock_transfer.id), ('product_id', "=", xxproducts.id)]) product = self.env['stock.warehouse.transfer.line'].product_id_change( product_id.id, qty=self.quantity) if orde_line_datos: orde_line_datos.write({ 'product_qty' : (orde_line_datos.product_qty + 1)}) else: val = { 'product_id': product_id.id or False, 'product_qty': self.quantity, 'product_uom_id': product_id.uom_po_id.id, 'transfer': active_id, } self.env['stock.warehouse.transfer.line'].create(val)