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 CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NGYwNmYwODA3NDAxMmU3MzE3NTNjZDRhNzUzYzhhZjIyN2RmN2VlZg==
4
+ ZWM5ZjY3NGVkYWJjN2U3Y2JhZWM1M2MyNGNjNTQ3MTVkNzVlYWUwNQ==
5
5
  data.tar.gz: !binary |-
6
- MDkyZWExNmNmMjI3NWM5YjQ5ZmUwOTExZmI1ZGEyNmYyNzRhZDYzZQ==
6
+ MmJhMDQxODEzOTI5NTdjZTBjZWFiODBhY2U2NWY3ZTE0MjVlN2YxNA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- MTcyM2ZiNGY1ODg1N2M5YjRiNGU1Y2U2YWIzM2ZmM2JhNTZmODM2YjViODVm
10
- MTA5MzFkOTQwNTYzZDM4ZmIyNmFkMWEwOTA3ZjcwMjJjZmI3OGZhNmYwYWUy
11
- NjkzMzFjNGE0ZmQxZDk4MDliOGJiMzFmMDI5ZjNhZmY2YmQ3YzA=
9
+ NTQ0OTg4OGE5ZWM2MDE1OGZlMDc1NzIzNWZhODVkYjdjYWQzOTA0ZmMzMWI5
10
+ MTY1ZDY5YjFkMmRjMjQ2OGQyMjY2NjhiNGRlMWM5MjA1MmQ3N2M2NjAwNjJk
11
+ YWI4MGQ0ODJkOWUwZDgxODUwNWYwNGJmZGRiZTU5MmViNmU4NzQ=
12
12
  data.tar.gz: !binary |-
13
- NjRkMDFjN2JhM2IyMTU0YTBmOTk4M2M4MmZlNmRkNTA3NDg5ZWE2YmYzMDg0
14
- OTVmNzVhZjFjOGQzNWU0YzU3YjQxOTBkZjJhOTZmYzk0ZjdmY2JmZjdkM2Mw
15
- MDM3YWY2ZGJmM2RhODllOWI4MTU3ZWUwZmY1YzI0YjE0ZGEyMWY=
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
@@ -1,3 +1,3 @@
1
1
  module SpfTracking
2
- VERSION = "0.0.8"
2
+ VERSION = "0.0.9"
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.8
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