spf_tracking 0.0.13 → 0.0.14

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NmUwYWIxY2M5MDM4MDE4Mzg2NzllMDMxNzFiN2RmYzJhYzg1OGMwYw==
4
+ ZWNmODZiY2U3MzhiN2ExNzM0MjliYWIwOThjMmU5ODNjZWQ0ZWVlZQ==
5
5
  data.tar.gz: !binary |-
6
- OGM5YzllMGIwNmE0M2YzYzE3NGNmZjQyZGQ4YmFiZWQ0NzZjZmMxYQ==
6
+ ZTgxYzc0OWVkMWI5YjAwMDY0NGI0MmYxYWJkMWM1MGQ3Y2E1MjIxNw==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- ZWRhN2E1OTMwMzk3MmZhODM4OTZmMWY1OGI2YjAzZjYyZDFhNDJhMmIwZGM3
10
- OWM5MTUwZGNmNmEzMjA0MmU4MTE1NjBkZjljNzg3MDFmZjY3ZWVkNGViZThj
11
- YmYzNmQ0NGFkNzM3NTUyYWRkOGZkMzI0Njc5NzA4MTNiNTE3YzA=
9
+ MTNlM2I2ZDFlMWExYjIzNWEzZDQ0NjUxODBiNDdkNGU5MGY2ZjZjYmQ3Nzli
10
+ OTM4NmM2NmRmMjQ3YjA3Y2VmOGY3ZGIxNzE0MDk5MGVlZGU2MmJlMWU3M2I3
11
+ NTg1MWVhMDU1YWI2ZmE0ZGYzYTFiOWM3YmU2M2I1NGM4YmIyNjI=
12
12
  data.tar.gz: !binary |-
13
- Njg4M2I5MTU4MWQ3MDYxOTUxYzNjYWU2YWQ4MGMxY2EzMWU1NzY5OWEyYWIy
14
- M2FiZTFiOGJiMmZjNTkyNDE0ZWNkM2I0Yjk0ZmIwODkxZjcwZjI2ZGM1OWVh
15
- NmQ2NDY5MmZjYmQyZmEyMjIxMTRlODhhZjczNTU2NTA3ZmI2Y2I=
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
@@ -1,3 +1,3 @@
1
1
  module SpfTracking
2
- VERSION = "0.0.13"
2
+ VERSION = "0.0.14"
3
3
  end
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.13
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