spf_tracking 0.0.8 → 0.0.9

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