Class: BarcodeOptimaDecode
- Inherits:
-
Object
- Object
- BarcodeOptimaDecode
- Defined in:
- lib/spf_barcode.rb
Instance Method Summary collapse
- #accion ⇒ Object
- #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
- #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
93 94 95 |
# File 'lib/spf_barcode.rb', line 93 def accion @accion end |
#componente ⇒ Object
113 114 115 |
# File 'lib/spf_barcode.rb', line 113 def componente @componente || @elemento.try(:componente) end |
#composicion ⇒ Object
117 118 119 |
# File 'lib/spf_barcode.rb', line 117 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 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
# File 'lib/spf_barcode.rb', line 47 def decode if @barcode.length == 3 case @barcode when '*900*' then @accion = 'OK' when '*901*' then @accion = 'ROTURA' when '*903*' then @accion = 'CONFIRMAROTURA' when '*904*' then @accion = 'CANCELAROTURA' when '*501*' then @accion = 'SELECCIONAR1' when '*502*' then @accion = 'SELECCIONAR2' when '*503*' then @accion = 'SELECCIONAR3' when '*504*' then @accion = 'SELECCIONAR4' when '*505*' then @accion = 'SELECCIONAR5' when '*506*' then @accion = 'SELECCIONAR6' when '*601*' then @accion = 'MOTIVO01' when '*602*' then @accion = 'MOTIVO02' when '*603*' then @accion = 'MOTIVO03' when '*604*' then @accion = 'MOTIVO04' when '*605*' then @accion = 'MOTIVO05' when '*606*' then @accion = 'MOTIVO06' when '*607*' then @accion = 'MOTIVO07' when '*608*' then @accion = 'MOTIVO08' when '*609*' then @accion = 'MOTIVO09' when '*701*' then @accion = 'MOMENTO01' when '*702*' then @accion = 'MOMENTO02' when '*703*' then @accion = 'MOMENTO03' when '*704*' then @accion = 'MOMENTO04' when '*705*' then @accion = 'MOMENTO05' when '*706*' then @accion = 'MOMENTO06' when '*707*' then @accion = 'MOMENTO07' when '*708*' then @accion = 'MOMENTO08' when '*709*' then @accion = 'MOMENTO09' end else decode_pedido decode_item decode_item_medida decode_objeto end self end |
#decode_cardinalidad_elemento(cardinalidad) ⇒ Object
137 138 139 140 141 142 143 |
# File 'lib/spf_barcode.rb', line 137 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
123 124 125 126 127 128 |
# File 'lib/spf_barcode.rb', line 123 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
130 131 132 133 134 135 |
# File 'lib/spf_barcode.rb', line 130 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
149 150 151 |
# File 'lib/spf_barcode.rb', line 149 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
145 146 147 |
# File 'lib/spf_barcode.rb', line 145 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
109 110 111 |
# File 'lib/spf_barcode.rb', line 109 def elemento @elemento end |
#item ⇒ Object
101 102 103 |
# File 'lib/spf_barcode.rb', line 101 def item @item end |
#item_medida ⇒ Object
105 106 107 |
# File 'lib/spf_barcode.rb', line 105 def item_medida @item_medida end |
#pedido ⇒ Object
97 98 99 |
# File 'lib/spf_barcode.rb', line 97 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 |