spf_tracking 0.0.13 → 0.0.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +8 -8
- data/lib/ruta_seguimiento.rb +233 -0
- data/lib/spf_tracking/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ZWNmODZiY2U3MzhiN2ExNzM0MjliYWIwOThjMmU5ODNjZWQ0ZWVlZQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZTgxYzc0OWVkMWI5YjAwMDY0NGI0MmYxYWJkMWM1MGQ3Y2E1MjIxNw==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MTNlM2I2ZDFlMWExYjIzNWEzZDQ0NjUxODBiNDdkNGU5MGY2ZjZjYmQ3Nzli
|
10
|
+
OTM4NmM2NmRmMjQ3YjA3Y2VmOGY3ZGIxNzE0MDk5MGVlZGU2MmJlMWU3M2I3
|
11
|
+
NTg1MWVhMDU1YWI2ZmE0ZGYzYTFiOWM3YmU2M2I1NGM4YmIyNjI=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MWJlMzQ4NDlhYTM3MDQyYjhlY2Y1MmQ2NDljYzBhNDhkYjEzOTlkNmZjZGYw
|
14
|
+
MTRjMjlkYjc0NzkwNThkOGEzMDc0N2M5ZWVjMTVmNzNiZTcwOWE5ZTU4YTQ1
|
15
|
+
Y2YyZjczYjEwMWFjZjg1YzllNmU0OWJkMjQxMjhkZWQ3OThmOTU=
|
@@ -0,0 +1,233 @@
|
|
1
|
+
module RutaSeguimiento
|
2
|
+
module RutaSeguimientoPedido
|
3
|
+
def lista_de_puestos_de_pedido
|
4
|
+
self.items.map(&:composicion).map(&:get_elementos_trackeables).flatten.map(&:lista_de_puestos_del_elemento).flatten.uniq
|
5
|
+
end
|
6
|
+
|
7
|
+
# mas general incluye adjuntos y taller(agujeros), administracion, etc
|
8
|
+
def lista_de_puestos_de_pedido_mas_general
|
9
|
+
lista = lista_de_puestos_de_pedido
|
10
|
+
lista << PuestoControl.adjunto if self.tiene_adjuntos?
|
11
|
+
lista << PuestoControl.expedicion
|
12
|
+
lista << PuestoControl.corte
|
13
|
+
lista << PuestoControl.glassware_produccion
|
14
|
+
lista << PuestoControl.glassware_administracion
|
15
|
+
|
16
|
+
lista << PuestoControl.taller if (!lista.include?(PuestoControl.taller) && self.tiene_agujeros_o_entrantes?)
|
17
|
+
|
18
|
+
lista.flatten
|
19
|
+
end
|
20
|
+
|
21
|
+
# completa desde inicio hasta entrega, sin adjunto, glassware admin, etc
|
22
|
+
def lista_de_puestos_de_pedido_completa
|
23
|
+
(self.items.map(&:composicion).map(&:get_elementos_trackeables).flatten.map(&:lista_de_puestos_del_elemento_completa) + self.items.map(&:item_complementos).flatten.map(&:lista_de_puestos_del_complemento_completa)).flatten.uniq
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
module RutaSeguimientoComposicion
|
28
|
+
|
29
|
+
# DVH EXP
|
30
|
+
def lista_de_racks
|
31
|
+
lista = []
|
32
|
+
lista << PuestoControl.dvh if multicomponente?
|
33
|
+
lista << procesos_de_procesos.map(&:puesto_control)
|
34
|
+
lista.flatten.uniq
|
35
|
+
end
|
36
|
+
|
37
|
+
def lista_de_puestos_de_composicion
|
38
|
+
get_elementos_trackeables.map(&:lista_de_puestos_del_elemento).flatten.uniq
|
39
|
+
end
|
40
|
+
|
41
|
+
def lista_de_puestos_de_composicion_completa
|
42
|
+
lista = []
|
43
|
+
lista = agregar_puestos_pre_composicion(lista)
|
44
|
+
lista << lista_de_puestos_de_composicion
|
45
|
+
lista = agregar_puestos_post_composicion(lista)
|
46
|
+
lista.flatten.uniq
|
47
|
+
end
|
48
|
+
|
49
|
+
def lista_de_puestos_de_composicion_track_tercer_nivel
|
50
|
+
lista = []
|
51
|
+
lista << PuestoControl.dvh if self.multicomponente?
|
52
|
+
lista << procesos_de_procesos.map(&:puesto_control)
|
53
|
+
lista = self.agregar_puestos_post_composicion(lista)
|
54
|
+
lista.flatten.uniq
|
55
|
+
end
|
56
|
+
|
57
|
+
# ver de refactorizar, este metodo se usa en un showlogic
|
58
|
+
def composicion_pasa_por?(puesto_control)
|
59
|
+
lista_de_puestos_de_composicion_track_tercer_nivel.include?(puesto_control)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
module RutaSeguimientoComponente
|
64
|
+
# LAM TLL DVH
|
65
|
+
def lista_de_racks
|
66
|
+
lista = []
|
67
|
+
if !cantidad_de_pvb.zero?
|
68
|
+
lista << PuestoControl.prelaminado
|
69
|
+
lista << PuestoControl.laminado
|
70
|
+
end
|
71
|
+
lista << procesos_de_procesos.map(&:puesto_control)
|
72
|
+
lista << PuestoControl.dvh if composicion.multicomponente?
|
73
|
+
lista << composicion.procesos_de_procesos.map(&:puesto_control)
|
74
|
+
lista.flatten.uniq
|
75
|
+
end
|
76
|
+
|
77
|
+
def lista_de_puestos_del_componente_track_segundo_nivel
|
78
|
+
# devuelve como mucho [LAM, TLL]
|
79
|
+
lista = []
|
80
|
+
if !cantidad_de_pvb.zero?
|
81
|
+
lista << PuestoControl.prelaminado
|
82
|
+
lista << PuestoControl.laminado
|
83
|
+
end
|
84
|
+
lista << procesos_de_procesos.map(&:puesto_control)
|
85
|
+
return lista.flatten.uniq
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
module RutaSeguimientoElemento
|
90
|
+
# TLL TMP CUR LAM DVH
|
91
|
+
def lista_de_racks
|
92
|
+
lista = []
|
93
|
+
lista << procesos_de_procesos.map(&:puesto_control)
|
94
|
+
if !componente.cantidad_de_pvb.zero?
|
95
|
+
lista << PuestoControl.prelaminado
|
96
|
+
lista << PuestoControl.laminado
|
97
|
+
end
|
98
|
+
lista << componente.procesos_de_procesos.map(&:puesto_control)
|
99
|
+
lista << PuestoControl.dvh if componente.composicion.multicomponente?
|
100
|
+
lista << componente.composicion.procesos_de_procesos.map(&:puesto_control)
|
101
|
+
lista.flatten.uniq
|
102
|
+
end
|
103
|
+
|
104
|
+
def lista_de_puestos_del_elemento # excel ????????
|
105
|
+
|
106
|
+
composicion = componente.composicion
|
107
|
+
|
108
|
+
lista = []
|
109
|
+
# procesos de elementos
|
110
|
+
lista << procesos_de_procesos.map(&:puesto_control)
|
111
|
+
# pvb; laminados
|
112
|
+
if !componente.cantidad_de_pvb.zero?
|
113
|
+
lista << PuestoControl.prelaminado
|
114
|
+
lista << PuestoControl.laminado
|
115
|
+
end
|
116
|
+
# procesos de componentes
|
117
|
+
lista << componente.procesos_de_procesos.map(&:puesto_control)
|
118
|
+
# dvh
|
119
|
+
lista << PuestoControl.dvh if composicion.multicomponente?
|
120
|
+
# procesos de composicion
|
121
|
+
lista << composicion.procesos_de_procesos.map(&:puesto_control)
|
122
|
+
lista.flatten
|
123
|
+
end
|
124
|
+
|
125
|
+
def lista_de_puestos_del_elemento_completa
|
126
|
+
lista = []
|
127
|
+
agregar_puestos_pre_composicion(lista)
|
128
|
+
lista << lista_de_puestos_del_elemento
|
129
|
+
agregar_puestos_post_composicion(lista)
|
130
|
+
end
|
131
|
+
|
132
|
+
# este incluye LAMINADO (a diferencia de primer nivel)
|
133
|
+
def lista_de_puestos_del_elemento_track
|
134
|
+
composicion = componente.composicion
|
135
|
+
|
136
|
+
lista = []
|
137
|
+
agregar_puestos_pre_composicion(lista)
|
138
|
+
# procesos de elementos
|
139
|
+
lista << procesos_de_procesos.map(&:puesto_control)
|
140
|
+
# pvb; laminados
|
141
|
+
if !componente.cantidad_de_pvb.zero?
|
142
|
+
lista << PuestoControl.prelaminado
|
143
|
+
lista << PuestoControl.laminado
|
144
|
+
end
|
145
|
+
lista.flatten
|
146
|
+
end
|
147
|
+
|
148
|
+
# todos los que tienen elemento_id en tabla trazabilidad [ini... corte, templado] (LAMINADO NO)
|
149
|
+
def lista_de_puestos_del_elemento_track_primer_nivel
|
150
|
+
composicion = componente.composicion
|
151
|
+
|
152
|
+
lista = []
|
153
|
+
agregar_puestos_pre_composicion(lista)
|
154
|
+
# procesos de elementos
|
155
|
+
lista << procesos_de_procesos.map(&:puesto_control)
|
156
|
+
lista.flatten
|
157
|
+
end
|
158
|
+
|
159
|
+
end
|
160
|
+
|
161
|
+
module RutaSeguimientoItemComplemento
|
162
|
+
|
163
|
+
def lista_de_puestos_del_complemento_completa
|
164
|
+
lista = []
|
165
|
+
agregar_puestos_comunes_complemento(lista)
|
166
|
+
lista.flatten
|
167
|
+
end
|
168
|
+
|
169
|
+
end
|
170
|
+
|
171
|
+
module RutaSeguimientoGeneral
|
172
|
+
|
173
|
+
# si puesto_control_actual es corte => devuelve el primer rack
|
174
|
+
# caso contrario devuelve el proximo rack respecto al actual
|
175
|
+
def proximo_rack(puesto_control_actual)
|
176
|
+
|
177
|
+
if puesto_control_actual == PuestoControl.corte
|
178
|
+
if lista_de_racks.empty?
|
179
|
+
return PuestoControl.expedicion
|
180
|
+
else
|
181
|
+
return lista_de_racks[0]
|
182
|
+
end
|
183
|
+
end
|
184
|
+
|
185
|
+
|
186
|
+
index_puesto_actual = lista_de_racks.index(puesto_control_actual) || 0
|
187
|
+
|
188
|
+
# si lista[index_puesto_actual + 1] no existe entonces devuelve EXPEDICION
|
189
|
+
|
190
|
+
return PuestoControl.expedicion if lista_de_racks[index_puesto_actual + 1].nil?
|
191
|
+
|
192
|
+
# devuelve el proximo
|
193
|
+
lista_de_racks[index_puesto_actual + 1]
|
194
|
+
end
|
195
|
+
|
196
|
+
def agregar_puestos_post_composicion(lista)
|
197
|
+
# lista << PuestoControl.find_by_nombre("Embalaje")
|
198
|
+
lista << PuestoControl.preparacion
|
199
|
+
lista << PuestoControl.facturacion
|
200
|
+
lista << PuestoControl.expedicion
|
201
|
+
# lista << PuestoControl.find_by_nombre("Salida de camiones")
|
202
|
+
lista << PuestoControl.entregado
|
203
|
+
# lista << PuestoControl.find_by_nombre("Devolucion")
|
204
|
+
lista.flatten
|
205
|
+
end
|
206
|
+
|
207
|
+
def agregar_puestos_pre_composicion(lista)
|
208
|
+
lista << PuestoControl.inicial
|
209
|
+
lista << PuestoControl.compra
|
210
|
+
lista << PuestoControl.stock
|
211
|
+
lista << PuestoControl.sin_programar
|
212
|
+
lista << PuestoControl.borrador
|
213
|
+
lista << PuestoControl.planificado
|
214
|
+
lista << PuestoControl.corte
|
215
|
+
lista.flatten
|
216
|
+
end
|
217
|
+
|
218
|
+
def agregar_puestos_comunes_complemento(lista)
|
219
|
+
lista << PuestoControl.inicial
|
220
|
+
lista << PuestoControl.compra
|
221
|
+
lista << PuestoControl.stock
|
222
|
+
# lista << PuestoControl.find_by_nombre("Embalaje")
|
223
|
+
lista << PuestoControl.preparacion
|
224
|
+
lista << PuestoControl.facturacion
|
225
|
+
lista << PuestoControl.expedicion
|
226
|
+
# lista << PuestoControl.find_by_nombre("Salida de camiones")
|
227
|
+
lista << PuestoControl.entregado
|
228
|
+
# lista << PuestoControl.find_by_nombre("Devolucion")
|
229
|
+
lista.flatten
|
230
|
+
end
|
231
|
+
end
|
232
|
+
|
233
|
+
end
|
data/lib/spf_tracking/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spf_tracking
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Carlos Ramseyer
|
@@ -38,6 +38,7 @@ files:
|
|
38
38
|
- lib/experto_trazabilidad.rb
|
39
39
|
- lib/proxima_trazabilidad_rotura.rb
|
40
40
|
- lib/rotura_anterior.rb
|
41
|
+
- lib/ruta_seguimiento.rb
|
41
42
|
- lib/service_track.rb
|
42
43
|
- lib/service_track/busca_ultimo_puesto_completo.rb
|
43
44
|
- lib/service_track/create_entrega_rapida.rb
|