spf_tracking 0.0.8 → 0.0.9
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/experto_trazabilidad.rb +104 -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
|
+
ZWM5ZjY3NGVkYWJjN2U3Y2JhZWM1M2MyNGNjNTQ3MTVkNzVlYWUwNQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MmJhMDQxODEzOTI5NTdjZTBjZWFiODBhY2U2NWY3ZTE0MjVlN2YxNA==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NTQ0OTg4OGE5ZWM2MDE1OGZlMDc1NzIzNWZhODVkYjdjYWQzOTA0ZmMzMWI5
|
10
|
+
MTY1ZDY5YjFkMmRjMjQ2OGQyMjY2NjhiNGRlMWM5MjA1MmQ3N2M2NjAwNjJk
|
11
|
+
YWI4MGQ0ODJkOWUwZDgxODUwNWYwNGJmZGRiZTU5MmViNmU4NzQ=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
NTZkODkyNWVhYzNkNWVlNjFhYThmYWQ5YTY0N2JjMTlhMjFmNGNkMDNmMDQw
|
14
|
+
NWRkODEwYzM2NGI5NTQwZGU5ZTI1ODVkOWY1ZDc5ZTZkMjk0ODM4MTk4M2Vh
|
15
|
+
NTMwNzBjOGI0ZDY0ZDEwMmI1NDc0YTcwZGQ0NThlZjk2MDgwM2Y=
|
@@ -0,0 +1,104 @@
|
|
1
|
+
class ExpertoTrazabilidad
|
2
|
+
|
3
|
+
|
4
|
+
|
5
|
+
def finalizar_y_pasar_a_historico(pedido)
|
6
|
+
composicions_ids = pedido.composicions_ids
|
7
|
+
# busco todas las filas en trazabilidads que tengan composicion perteneciente al pedido
|
8
|
+
trazabilidads_ids = Trazabilidad.where(composicion_id: composicions_ids).ids
|
9
|
+
ActiveRecord::Base.transaction do
|
10
|
+
# si finaliza entonces sí hago el pasaje a historico
|
11
|
+
if pedido.finalizar
|
12
|
+
# pasaje de trabajos
|
13
|
+
Trabajo.pasar_trabajos_a_historico(trazabilidads_ids)
|
14
|
+
Trabajo.borrar_trabajo(trazabilidads_ids)
|
15
|
+
# pasaje de trazabilidad
|
16
|
+
Trazabilidad.pasar_trazabilidad_a_historico(composicions_ids)
|
17
|
+
Trazabilidad.borrar_trazabilidad(composicions_ids)
|
18
|
+
# pasaje de tango a tango_historico
|
19
|
+
TangoHeader.pasar_a_historico(pedido.id)
|
20
|
+
TangoBody.pasar_a_historico(pedido.id)
|
21
|
+
TangoActivo.pasar_a_historico(pedido.id)
|
22
|
+
# borro de las tablas de tango_ los registros
|
23
|
+
TangoHeader.where(pedido_id: pedido.id).delete_all
|
24
|
+
TangoBody.where(pedido_id: pedido.id).delete_all
|
25
|
+
TangoActivo.where(pedido_id: pedido.id).delete_all
|
26
|
+
return true
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def pasar_a_historico(pedido)
|
32
|
+
composicions_ids = pedido.composicions_ids
|
33
|
+
# busco todas las filas en trazabilidads que tengan composicion perteneciente al pedido
|
34
|
+
trazabilidads_ids = Trazabilidad.where(composicion_id: composicions_ids).ids
|
35
|
+
ActiveRecord::Base.transaction do
|
36
|
+
# si finaliza entonces sí hago el pasaje a historico
|
37
|
+
# pasaje de trabajos
|
38
|
+
Trabajo.pasar_trabajos_a_historico(trazabilidads_ids)
|
39
|
+
Trabajo.borrar_trabajo(trazabilidads_ids)
|
40
|
+
# pasaje de trazabilidad
|
41
|
+
Trazabilidad.pasar_trazabilidad_a_historico(composicions_ids)
|
42
|
+
Trazabilidad.borrar_trazabilidad(composicions_ids)
|
43
|
+
# pasaje de tango a tango_historico
|
44
|
+
TangoHeader.pasar_a_historico(pedido.id)
|
45
|
+
TangoBody.pasar_a_historico(pedido.id)
|
46
|
+
TangoActivo.pasar_a_historico(pedido.id)
|
47
|
+
# borro de las tablas de tango_ los registros
|
48
|
+
TangoHeader.where(pedido_id: pedido.id).delete_all
|
49
|
+
TangoBody.where(pedido_id: pedido.id).delete_all
|
50
|
+
TangoActivo.where(pedido_id: pedido.id).delete_all
|
51
|
+
return true
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
|
56
|
+
# devuelve falso solo si hay productos disponibles para terminar y estos estan en dvh, preparacion o facturacion
|
57
|
+
|
58
|
+
|
59
|
+
|
60
|
+
def descontar_remito(puesto_control, item_medida, cantidad)
|
61
|
+
if %w"Facturacion Expedicion Entregado".include?(puesto_control.nombre)
|
62
|
+
facturacion = Facturacion.where(linea_item: item_medida).max_by{|x| x.created_at}
|
63
|
+
new_cantidad = facturacion.cantidad == 0 ? 0 : facturacion.cantidad - cantidad
|
64
|
+
Rails.logger.info "Del comprobante_medida_id #{facturacion.id} se le descuenta 1 a #{facturacion.cantidad} y queda #{new_cantidad}"
|
65
|
+
facturacion.update_attribute :cantidad, new_cantidad
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
def terminados_de_medidas_en_puesto(item_medidas, puesto)
|
70
|
+
prd_tracks = puesto.get_prd_track.where(linea_item_type: "ItemMedida", linea_item_id: item_medidas.map(&:id))
|
71
|
+
prd_tracks.to_a.sum(&:terminado_listo)
|
72
|
+
end
|
73
|
+
|
74
|
+
def items_que_pasan_por(pedido, puesto)
|
75
|
+
pedido.items.map{|i| i if i.composicion.composicion_pasa_por?(puesto)}.compact
|
76
|
+
end
|
77
|
+
|
78
|
+
def medidas_que_pasan_por(pedido, puesto)
|
79
|
+
items_que_pasan_por(pedido, puesto).map(&:item_medidas).flatten
|
80
|
+
end
|
81
|
+
|
82
|
+
|
83
|
+
|
84
|
+
# si los terminados en dvh son mayor que los terminados en preparacion, entonces el pedido entra en el array de pedidos con dvh listos para preparar
|
85
|
+
def pedidos_con_dvh_para_preparar_old(pedidos)
|
86
|
+
pedidos.map{|p| p if (p.pedido_pasa_por_dvh? && self.terminados_de_medidas_en_puesto(self.medidas_que_pasan_por(p, PuestoControl.dvh), PuestoControl.dvh) > self.terminados_de_medidas_en_puesto(self.medidas_que_pasan_por(p, PuestoControl.dvh), PuestoControl.preparacion)) }.compact
|
87
|
+
end
|
88
|
+
|
89
|
+
def pedidos_con_dvh_para_preparar(array_pedidos_puestos)
|
90
|
+
# me quedo solamente con pedidos que tengan activo Preparacion
|
91
|
+
# para aplicarles el filtro siguiente
|
92
|
+
|
93
|
+
pedidos_prepa = []
|
94
|
+
|
95
|
+
array_pedidos_puestos.each do |pedido|
|
96
|
+
pedidos_prepa << pedido[0] if pedido[1].include?(PuestoControl.preparacion)
|
97
|
+
end
|
98
|
+
|
99
|
+
pedidos_prepa.map{|p| p if (self.terminados_de_medidas_en_puesto(self.medidas_que_pasan_por(p, PuestoControl.dvh), PuestoControl.dvh) > self.terminados_de_medidas_en_puesto(self.medidas_que_pasan_por(p, PuestoControl.dvh), PuestoControl.preparacion)) }.compact
|
100
|
+
|
101
|
+
end
|
102
|
+
|
103
|
+
|
104
|
+
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.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Carlos Ramseyer
|
@@ -34,6 +34,7 @@ files:
|
|
34
34
|
- MIT-LICENSE
|
35
35
|
- README.rdoc
|
36
36
|
- Rakefile
|
37
|
+
- lib/experto_trazabilidad.rb
|
37
38
|
- lib/service_track.rb
|
38
39
|
- lib/service_track/busca_ultimo_puesto_completo.rb
|
39
40
|
- lib/service_track/create_entrega_rapida.rb
|