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() = @accion = '' end |
Instance Method Details
#accion ⇒ Object
PARA LOS CODIGOS DE BARRA, SE LES PIDE ACCION Y NUMERO
71 72 73 |
# File 'lib/spf_barcode.rb', line 71 def accion @accion end |
#componente ⇒ Object
95 96 97 |
# File 'lib/spf_barcode.rb', line 95 def componente @componente || @elemento.try(:componente) end |
#composicion ⇒ Object
99 100 101 |
# File 'lib/spf_barcode.rb', line 99 def composicion @composicion || @elemento.try(:componente).try(:composicion) || @componente.try(:composicion) end |
#decode ⇒ Object
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/spf_barcode.rb', line 48 def decode if [/C\d\d\d/] @tipo = [1] @numero = [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' when '8' then @accion = 'REDIRECCION' end else decode_pedido decode_item decode_item_medida decode_objeto end self end |
#decode_cardinalidad_elemento(cardinalidad) ⇒ Object
119 120 121 122 123 124 125 |
# File 'lib/spf_barcode.rb', line 119 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
105 106 107 108 109 110 |
# File 'lib/spf_barcode.rb', line 105 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
112 113 114 115 116 117 |
# File 'lib/spf_barcode.rb', line 112 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
131 132 133 |
# File 'lib/spf_barcode.rb', line 131 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 = [8..9].to_i @item = decode_cardinalidad_item(cardinalidad_item) || (raise ErrorIngreso.new "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 = [10..12].to_i @item_medida = decode_cardinalidad_item_medida(cardinalidad_item_medida) || (raise ErrorIngreso.new "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 46 |
# File 'lib/spf_barcode.rb', line 30 def decode_objeto = [0..1].to_i = [13..14].to_i case when 80 then @elemento = decode_cardinalidad_elemento() || (raise ErrorIngreso.new "Error al obtener el elemento decodificando el código de barra") when 81 then @componente = decode_orden_componente() || (raise ErrorIngreso.new "Error al obtener el componente decodificando el código de barra") when 82 then @composicion = decode_composicion || (raise ErrorIngreso.new "Error al obtener la composición decodificando el código de barra") else raise ErrorIngreso.new "El código debe comenzar con 80 | 81 | 82" end end |
#decode_orden_componente(orden) ⇒ Object
127 128 129 |
# File 'lib/spf_barcode.rb', line 127 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([2..7]) || (raise ErrorIngreso.new "Error al obtener el pedido decodificando el código de barra") end |
#elemento ⇒ Object
91 92 93 |
# File 'lib/spf_barcode.rb', line 91 def elemento @elemento end |
#item ⇒ Object
83 84 85 |
# File 'lib/spf_barcode.rb', line 83 def item @item end |
#item_medida ⇒ Object
87 88 89 |
# File 'lib/spf_barcode.rb', line 87 def item_medida @item_medida end |
#numero ⇒ Object
74 75 76 |
# File 'lib/spf_barcode.rb', line 74 def numero @numero end |
#pedido ⇒ Object
79 80 81 |
# File 'lib/spf_barcode.rb', line 79 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 |