Class: ExpertoTrazabilidad
- Inherits:
-
Object
- Object
- ExpertoTrazabilidad
- Defined in:
- lib/experto_trazabilidad.rb
Instance Method Summary collapse
- #descontar_remito(puesto_control, item_medida, cantidad) ⇒ Object
- #finalizar_y_pasar_a_historico(pedido) ⇒ Object
- #items_que_pasan_por(pedido, puesto) ⇒ Object
- #medidas_que_pasan_por(pedido, puesto) ⇒ Object
- #pasar_a_historico(pedido) ⇒ Object
- #pedidos_con_dvh_para_preparar(array_pedidos_puestos) ⇒ Object
-
#pedidos_con_dvh_para_preparar_old(pedidos) ⇒ Object
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.
- #terminados_de_medidas_en_puesto(item_medidas, puesto) ⇒ Object
Instance Method Details
#descontar_remito(puesto_control, item_medida, cantidad) ⇒ Object
60 61 62 63 64 65 66 67 |
# File 'lib/experto_trazabilidad.rb', line 60 def descontar_remito(puesto_control, item_medida, cantidad) if %w"Facturacion Expedicion Entregado".include?(puesto_control.nombre) facturacion = Facturacion.where(linea_item: item_medida).max_by{|x| x.created_at} new_cantidad = facturacion.cantidad == 0 ? 0 : facturacion.cantidad - cantidad Rails.logger.info "Del comprobante_medida_id #{facturacion.id} se le descuenta 1 a #{facturacion.cantidad} y queda #{new_cantidad}" facturacion.update_attribute :cantidad, new_cantidad end end |
#finalizar_y_pasar_a_historico(pedido) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/experto_trazabilidad.rb', line 5 def finalizar_y_pasar_a_historico(pedido) composicions_ids = pedido.composicions_ids # busco todas las filas en trazabilidads que tengan composicion perteneciente al pedido trazabilidads_ids = Trazabilidad.where(composicion_id: composicions_ids).ids ActiveRecord::Base.transaction do # si finaliza entonces sí hago el pasaje a historico if pedido.finalizar # pasaje de trabajos Trabajo.pasar_trabajos_a_historico(trazabilidads_ids) Trabajo.borrar_trabajo(trazabilidads_ids) # pasaje de trazabilidad Trazabilidad.pasar_trazabilidad_a_historico(composicions_ids) Trazabilidad.borrar_trazabilidad(composicions_ids) # pasaje de tango a tango_historico TangoHeader.pasar_a_historico(pedido.id) TangoBody.pasar_a_historico(pedido.id) TangoActivo.pasar_a_historico(pedido.id) # borro de las tablas de tango_ los registros TangoHeader.where(pedido_id: pedido.id).delete_all TangoBody.where(pedido_id: pedido.id).delete_all TangoActivo.where(pedido_id: pedido.id).delete_all return true end end end |
#items_que_pasan_por(pedido, puesto) ⇒ Object
74 75 76 |
# File 'lib/experto_trazabilidad.rb', line 74 def items_que_pasan_por(pedido, puesto) pedido.items.map{|i| i if i.composicion.composicion_pasa_por?(puesto)}.compact end |
#medidas_que_pasan_por(pedido, puesto) ⇒ Object
78 79 80 |
# File 'lib/experto_trazabilidad.rb', line 78 def medidas_que_pasan_por(pedido, puesto) items_que_pasan_por(pedido, puesto).map(&:item_medidas).flatten end |
#pasar_a_historico(pedido) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/experto_trazabilidad.rb', line 31 def pasar_a_historico(pedido) composicions_ids = pedido.composicions_ids # busco todas las filas en trazabilidads que tengan composicion perteneciente al pedido trazabilidads_ids = Trazabilidad.where(composicion_id: composicions_ids).ids ActiveRecord::Base.transaction do # si finaliza entonces sí hago el pasaje a historico # pasaje de trabajos Trabajo.pasar_trabajos_a_historico(trazabilidads_ids) Trabajo.borrar_trabajo(trazabilidads_ids) # pasaje de trazabilidad Trazabilidad.pasar_trazabilidad_a_historico(composicions_ids) Trazabilidad.borrar_trazabilidad(composicions_ids) # pasaje de tango a tango_historico TangoHeader.pasar_a_historico(pedido.id) TangoBody.pasar_a_historico(pedido.id) TangoActivo.pasar_a_historico(pedido.id) # borro de las tablas de tango_ los registros TangoHeader.where(pedido_id: pedido.id).delete_all TangoBody.where(pedido_id: pedido.id).delete_all TangoActivo.where(pedido_id: pedido.id).delete_all return true end end |
#pedidos_con_dvh_para_preparar(array_pedidos_puestos) ⇒ Object
89 90 91 92 93 94 95 96 97 98 99 100 101 |
# File 'lib/experto_trazabilidad.rb', line 89 def pedidos_con_dvh_para_preparar(array_pedidos_puestos) # me quedo solamente con pedidos que tengan activo Preparacion # para aplicarles el filtro siguiente pedidos_prepa = [] array_pedidos_puestos.each do |pedido| pedidos_prepa << pedido[0] if pedido[1].include?(PuestoControl.preparacion) end 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 end |
#pedidos_con_dvh_para_preparar_old(pedidos) ⇒ Object
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 86 87 |
# File 'lib/experto_trazabilidad.rb', line 85 def pedidos_con_dvh_para_preparar_old(pedidos) 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 end |
#terminados_de_medidas_en_puesto(item_medidas, puesto) ⇒ Object
69 70 71 72 |
# File 'lib/experto_trazabilidad.rb', line 69 def terminados_de_medidas_en_puesto(item_medidas, puesto) prd_tracks = puesto.get_prd_track.where(linea_item_type: "ItemMedida", linea_item_id: item_medidas.map(&:id)) prd_tracks.to_a.sum(&:terminado_listo) end |