12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- # -*- 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,
- 'factory_reference': product_id.factory_reference,
- 'product_qty': self.quantity,
- 'product_uom_id': product_id.uom_po_id.id,
- 'transfer': active_id,
- }
- self.env['stock.warehouse.transfer.line'].create(val)
|