Class: BarcodeOptimaDecode
- Inherits:
-
Object
- Object
- BarcodeOptimaDecode
- Defined in:
- lib/spf_barcode.rb
Instance Method Summary collapse
-
#accion ⇒ Object
PARA LOS CODIGOS DE BARRA, SE LES PIDE ACCION Y NUMERO.
- #componente ⇒ Object
- #composicion ⇒ Object
- #decode ⇒ Object
- #decode_cardinalidad_elemento(cardinalidad) ⇒ Object
- #decode_cardinalidad_item(cardinalidad) ⇒ Object
- #decode_cardinalidad_item_medida(cardinalidad) ⇒ Object
- #decode_composicion ⇒ Object
- #decode_item ⇒ Object
- #decode_item_medida ⇒ Object
- #decode_objeto ⇒ Object
- #decode_orden_componente(orden) ⇒ Object
- #decode_pedido ⇒ Object
- #elemento ⇒ Object
-
#initialize(barcode) ⇒ BarcodeOptimaDecode
constructor
A new instance of BarcodeOptimaDecode.
- #item ⇒ Object
- #item_medida ⇒ Object
- #numero ⇒ Object
- #pedido ⇒ Object
-
#valida_length_barcode ⇒ Object
desactivo la validacion para que también pueda leer codigos viejos: 8800111100101 001111-001-001.
Constructor Details
#initialize(barcode) ⇒ BarcodeOptimaDecode
Returns a new instance of BarcodeOptimaDecode.
3 4 5 6 7 |
# File 'lib/spf_barcode.rb', line 3 def initialize() @barcode = @accion = '' end |
Instance Method Details
#accion ⇒ Object
PARA LOS CODIGOS DE BARRA, SE LES PIDE ACCION Y NUMERO
69 70 71 |
# File 'lib/spf_barcode.rb', line 69 def accion @accion end |
#componente ⇒ Object
93 94 95 |
# File 'lib/spf_barcode.rb', line 93 def componente @componente || @elemento.try(:componente) end |
#composicion ⇒ Object
97 98 99 |
# File 'lib/spf_barcode.rb', line 97 def composicion @composicion || @elemento.try(:componente).try(:composicion) || @componente.try(:composicion) end |
#decode ⇒ Object
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/spf_barcode.rb', line 47 def decode if @barcode[/C\d\d\d/] @tipo = @barcode[1] @numero = @barcode[2..3].to_i.to_s # 01=> 1 case @tipo when '9' then @accion = 'PROCESO' when '7' then @accion = 'MOMENTO' when '6' then @accion = 'MOTIVO' when '5' then @accion = 'SELECCIONAR' end else decode_pedido decode_item decode_item_medida decode_objeto end self end |
#decode_cardinalidad_elemento(cardinalidad) ⇒ Object
117 118 119 120 121 122 123 |
# File 'lib/spf_barcode.rb', line 117 def decode_cardinalidad_elemento(cardinalidad) elementos_materiales = @item.composicion.get_elementos_materiales_ordenados elementos_materiales.each do |elemento| return elemento if elemento.cardinalidad == cardinalidad end false end |
#decode_cardinalidad_item(cardinalidad) ⇒ Object
103 104 105 106 107 108 |
# File 'lib/spf_barcode.rb', line 103 def decode_cardinalidad_item(cardinalidad) @pedido.items.order(:id).each do |item| return item if item.cardinalidad == cardinalidad end false end |
#decode_cardinalidad_item_medida(cardinalidad) ⇒ Object
110 111 112 113 114 115 |
# File 'lib/spf_barcode.rb', line 110 def decode_cardinalidad_item_medida(cardinalidad) @item.item_medidas.order(:id).each do |item_medida| return item_medida if item_medida.cardinalidad == cardinalidad end false end |
#decode_composicion ⇒ Object
129 130 131 |
# File 'lib/spf_barcode.rb', line 129 def decode_composicion @item.composicion end |
#decode_item ⇒ Object
20 21 22 23 |
# File 'lib/spf_barcode.rb', line 20 def decode_item cardinalidad_item = @barcode[8..9].to_i @item = decode_cardinalidad_item(cardinalidad_item) || (raise "Error al obtener el item decodificando el código de barra") end |
#decode_item_medida ⇒ Object
25 26 27 28 |
# File 'lib/spf_barcode.rb', line 25 def decode_item_medida cardinalidad_item_medida = @barcode[10..12].to_i @item_medida = decode_cardinalidad_item_medida(cardinalidad_item_medida) || (raise "Error al obtener la medida decodificando el código de barra") end |
#decode_objeto ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/spf_barcode.rb', line 30 def decode_objeto = @barcode[0..1].to_i = @barcode[13..14].to_i case when 80 then @elemento = decode_cardinalidad_elemento() || (raise "Error al obtener el elemento decodificando el código de barra") when 81 then @componente = decode_orden_componente() || (raise "Error al obtener el componente decodificando el código de barra") when 82 then @composicion = decode_composicion || (raise "Error al obtener la composición decodificando el código de barra") else end end |
#decode_orden_componente(orden) ⇒ Object
125 126 127 |
# File 'lib/spf_barcode.rb', line 125 def decode_orden_componente(orden) @item.composicion.componentes.select{|c| c.orden == orden}.compact[0] end |
#decode_pedido ⇒ Object
16 17 18 |
# File 'lib/spf_barcode.rb', line 16 def decode_pedido @pedido = Pedido.find_by_id(@barcode[2..7]) || (raise "Error al obtener el pedido decodificando el código de barra") end |
#elemento ⇒ Object
89 90 91 |
# File 'lib/spf_barcode.rb', line 89 def elemento @elemento end |
#item ⇒ Object
81 82 83 |
# File 'lib/spf_barcode.rb', line 81 def item @item end |
#item_medida ⇒ Object
85 86 87 |
# File 'lib/spf_barcode.rb', line 85 def item_medida @item_medida end |
#numero ⇒ Object
72 73 74 |
# File 'lib/spf_barcode.rb', line 72 def numero @numero end |
#pedido ⇒ Object
77 78 79 |
# File 'lib/spf_barcode.rb', line 77 def pedido @pedido end |
#valida_length_barcode ⇒ Object
desactivo la validacion para que también pueda leer codigos viejos: 8800111100101 001111-001-001
12 13 14 |
# File 'lib/spf_barcode.rb', line 12 def # raise "Error: la cantidad de dígitos del barcode es incorrecta. Debe ser 15. Es #{@barcode.length}" unless @barcode.length == 15 end |