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 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