mirror of
https://github.com/KeymonSoft/Intmex_Multiventa.git
synced 2026-04-17 21:06:08 +00:00
- VERSION 5.05.11
- Se agrego en "Principal" que cuando haya pedidos pendientes, aparezca un mensaje y el estatus del envio de los pedidos. - Se agregó en "Principal" un icono de "conexion" en la esquina superior derecha, que dependiendo de la conexion se pone verde o rojo. - Se agrego la version y el estatus de la conexion a tmp_drop. - Se agrego la version y el estatus de la conexion a la ubicacion em tiempo real (CAT_RUTAS)
This commit is contained in:
@@ -7,16 +7,21 @@ Version=12.8
|
||||
Sub Class_Globals
|
||||
Private Root As B4XView 'ignore
|
||||
Private xui As XUI 'ignore
|
||||
Private EventName As String 'ignore
|
||||
Private CallBack As Object 'ignore
|
||||
Dim reqManager As DBRequestManager
|
||||
Dim timerValidador As Timer
|
||||
Dim intervalo As Int = 300
|
||||
Dim skmt As SQL
|
||||
Dim c As Cursor
|
||||
Dim sDate, sTime As String
|
||||
dim totalAValidar as int = 0
|
||||
End Sub
|
||||
|
||||
'You can add more parameters here.
|
||||
Public Sub Initialize As Object
|
||||
Public Sub Initialize (vCallback As Object, vEventName As String) As Object
|
||||
EventName = vEventName
|
||||
CallBack = vCallback
|
||||
reqManager.Initialize(Me, Starter.DBReqServer)
|
||||
timerValidador.Initialize("timerValidador", intervalo * 1000)
|
||||
timerValidador.Enabled = True
|
||||
@@ -57,6 +62,17 @@ Sub timerValidador_Tick
|
||||
iniciaValidacion
|
||||
End Sub
|
||||
|
||||
' Regresa cuantos pedidos sin gardar o enviar hay.
|
||||
Sub buscaSinEnviar As Int
|
||||
Private x As Int = 0
|
||||
Private f As Cursor = skmt.ExecQuery("SELECT count(*) as cuantos FROM PEDIDO_CLIENTE where PC_ENVIO_OK < 2 and PC_GUARDADO = 1")
|
||||
If f.RowCount > 0 Then
|
||||
f.Position = 0
|
||||
x = f.GetInt("cuantos")
|
||||
End If
|
||||
Return x
|
||||
End Sub
|
||||
|
||||
'Manda a web los pedidos GUARDADOS con ENVIO_OK = 0 y los pone en 1.
|
||||
Sub mandaGuardados
|
||||
Log(">>>>>>> MANDA GUARDADOS")
|
||||
@@ -67,6 +83,7 @@ Sub mandaGuardados
|
||||
c = skmt.ExecQuery("SELECT * FROM PEDIDO_CLIENTE where PC_ENVIO_OK < 2 and PC_GUARDADO = 1")
|
||||
Log($"Pedido_Cliente PENDIENTE: ${c.RowCount}"$)
|
||||
If c.RowCount > 0 Then
|
||||
pedidoGuardando($"Guardando ..."$)
|
||||
For i = 0 To c.RowCount - 1
|
||||
c.Position = i
|
||||
Log($"${c.GetString("PC_CLIENTE")}|${c.GetString("PC_FECHA")}|${c.GetString("PC_ENVIO_OK")}|"$)
|
||||
@@ -100,30 +117,16 @@ End Sub
|
||||
'Revisa que los pedidos con envio_ok < 2 esten completos en web y los pone en 2.
|
||||
Sub revisaGuardados
|
||||
Log(">>>>>>> VALIDA GUARDADOS")
|
||||
'' Dim PCNoArts As String
|
||||
'' Dim PCMonto As String
|
||||
'' Dim PCNoArts As String
|
||||
'' Dim PCMonto As String
|
||||
Private almacen As String = Subs.traeAlmacen
|
||||
Private laRuta As String = Subs.traeRuta
|
||||
c = skmt.ExecQuery("SELECT * FROM PEDIDO_CLIENTE where PC_ENVIO_OK = 1")
|
||||
Log($"Pedido_Cliente VALIDAR: ${c.RowCount}"$)
|
||||
If c.RowCount > 0 Then
|
||||
For i = 0 To c.RowCount - 1
|
||||
c.Position = i
|
||||
Log($"${c.GetString("PC_CLIENTE")}|${c.GetString("PC_FECHA")}|${c.GetString("PC_ENVIO_OK")}|"$)
|
||||
Dim cmd As DBCommand
|
||||
cmd.Initialize
|
||||
cmd.Name = "validaPC_Intmex"
|
||||
cmd.Parameters = Array As Object(c.GetString("PC_CLIENTE"), c.GetString("PC_USER"), c.GetString("PC_FECHA"), almacen, laRuta)
|
||||
' PCNoArts = c.GetString("PC_NOART")
|
||||
' PCMonto = c.GetString("PC_MONTO")
|
||||
reqManager.ExecuteCommand(cmd , $"ins_revisaGuardados_head_${c.GetString("PC_CLIENTE")}"$)
|
||||
Next
|
||||
End If
|
||||
|
||||
'PEDIDO (Pendientes)
|
||||
c = skmt.ExecQuery($"SELECT * FROM PEDIDO where PE_ENVIO_OK = 1"$)
|
||||
Log($"Pedido VALIDAR: ${c.RowCount}"$)
|
||||
Log($"Pedidos a VALIDAR: ${c.RowCount}"$)
|
||||
If c.RowCount > 0 Then
|
||||
pedidoEnviando($"Enviando ..."$)
|
||||
For i = 0 To c.RowCount - 1
|
||||
c.Position=i
|
||||
Dim cmd As DBCommand
|
||||
@@ -134,6 +137,40 @@ Sub revisaGuardados
|
||||
' Log($">>>> INS_PEDIDO= ${C.GetString("PE_CEDIS")},${almacen},${C.GetString("PE_COSTO_TOT")},${C.GetString("PE_COSTOU")},${C.GetString("PE_CANT")}, ${C.GetString("PE_PRONOMBRE")}, ${C.GetString("PE_PROID")}, ${C.GetString("PE_CLIENTE")}, ${C.GetString("PE_FECHA")}, ${C.GetString("PE_USUARIO")}, ${C.GetString("PE_RUTA")}, ${C.GetString("PE_COSTO_SIN")}, ${C.GetString("PE_DESC")}, ${c.GetString("PE_FOLIO")}, ${PCNoArts}, ${PCMonto}, ${PCMonto}, ${c.GetString("PE_TICKET")}"$)
|
||||
Next
|
||||
End If
|
||||
|
||||
Sleep(5000)
|
||||
|
||||
' Subir los productos del pedido, y en el jobdone revisar si ya se enviaron todos los de ese pedido (verificar con AffectedRows = 1), si ya se enviaron,
|
||||
' entonces Y SOLO ENTONCES, subir el header del pedido y validarlo con AffectedRows = 1.
|
||||
|
||||
'PEDIDO CLIENTE
|
||||
c = skmt.ExecQuery("SELECT * FROM PEDIDO_CLIENTE where PC_ENVIO_OK = 1")
|
||||
Log($"Pedidos_Cliente a VALIDAR: ${c.RowCount}"$)
|
||||
If c.RowCount > 0 Then
|
||||
pedidoEnviando($"Enviando ..."$)
|
||||
For i = 0 To c.RowCount - 1
|
||||
Private cuantosProdsPedido As Int = 0
|
||||
c.Position = i
|
||||
' Traemos la cantidad de productos "validados" de PEDIDO.
|
||||
Private x As Cursor = Starter.skmt.ExecQuery($"select sum(pe_cant) as cuantos from pedido where pe_cliente = '${c.GetString("PC_CLIENTE")}' and pe_envio_ok = 2"$)
|
||||
If x.RowCount > 0 Then
|
||||
x.Position = 0
|
||||
cuantosProdsPedido = x.GetInt("cuantos")
|
||||
End If
|
||||
Log($"Articulos en cliente ${c.GetString("PC_CLIENTE")}: P:${cuantosProdsPedido}, PC:${c.GetInt("PC_NOART")}"$)
|
||||
' Si los productos validados en PEDIDO coinciden con los productos de PEDIDO_CLIENTE, entonces validamos el header.
|
||||
If cuantosProdsPedido = c.GetInt("PC_NOART") Then
|
||||
Log($"${c.GetString("PC_CLIENTE")}|${c.GetString("PC_FECHA")}|${c.GetString("PC_ENVIO_OK")}|"$)
|
||||
Dim cmd As DBCommand
|
||||
cmd.Initialize
|
||||
cmd.Name = "validaPC_Intmex"
|
||||
cmd.Parameters = Array As Object(c.GetString("PC_CLIENTE"), c.GetString("PC_USER"), c.GetString("PC_FECHA"), almacen, laRuta)
|
||||
' PCNoArts = c.GetString("PC_NOART")
|
||||
' PCMonto = c.GetString("PC_MONTO")
|
||||
reqManager.ExecuteCommand(cmd , $"ins_revisaGuardados_head_${c.GetString("PC_CLIENTE")}"$)
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
c.Close
|
||||
End Sub
|
||||
|
||||
@@ -145,7 +182,8 @@ Sub revisaCantsYMontosTotales
|
||||
Private laRuta As String = Subs.traeRuta
|
||||
c = skmt.ExecQuery("SELECT * FROM PEDIDO_CLIENTE where PC_ENVIO_OK = 2 or 1") ' El uno del final es para que SIEMPRE revise las cantidades y montos, por si se borra la orden desde web, para que se envíe NUEVAMENTE.
|
||||
Log($"Pedidos a VALIDAR (Cants y Montos): ${c.RowCount}"$)
|
||||
If c.RowCount>0 Then
|
||||
If c.RowCount > 0 Then
|
||||
totalAValidar = c.RowCount
|
||||
For i=0 To c.RowCount -1
|
||||
c.Position=i
|
||||
Dim cmd As DBCommand
|
||||
@@ -172,7 +210,6 @@ Sub JobDone(Job As HttpJob)
|
||||
Log("JOBDONE VALIDADOR RUTA")
|
||||
Subs.logJobDoneResultados(resultado)
|
||||
End If
|
||||
|
||||
' PEDIDOS GUARDADOS HEAD
|
||||
If resultado.Tag.As(String).IndexOf("ins_mandaGuardados_head_") > -1 Then
|
||||
Log("ins_mandaGuardados_head_")
|
||||
@@ -185,6 +222,7 @@ Sub JobDone(Job As HttpJob)
|
||||
skmt.ExecNonQuery($"update PEDIDO_CLIENTE set PC_ENVIO_OK = 1 where PC_CLIENTE = '${pars(3)}'"$)
|
||||
End If
|
||||
Next
|
||||
' pedidoGuardando("Listo")
|
||||
End If
|
||||
' PEDIDOS GUARDADOS PRODS
|
||||
Dim resultado As DBResult = reqManager.HandleJob(Job)
|
||||
@@ -224,7 +262,7 @@ Sub JobDone(Job As HttpJob)
|
||||
' REVISA GUARDADOS HEAD
|
||||
If resultado.Tag.As(String).IndexOf("ins_revisaGuardados_head_") > -1 Then
|
||||
Log("ins_revisaGuardados_head_")
|
||||
Subs.logJobDoneResultados(resultado)
|
||||
Subs.logJobDoneResultados(resultado)
|
||||
Private cliente As String= resultado.Tag
|
||||
cliente = cliente.SubString(cliente.IndexOf("_") + 22)
|
||||
Log(cliente)
|
||||
@@ -238,7 +276,10 @@ Sub JobDone(Job As HttpJob)
|
||||
End If
|
||||
' REVISA CANTIDADES Y MONTOS TOTALES
|
||||
If resultado.Tag.As(String).IndexOf("validaCantsCostosTotales_") > -1 Then
|
||||
pedidoValidando($"Validando ..."$)
|
||||
totalAValidar = totalAValidar - 1
|
||||
Log("validaCantsCostosTotales_")
|
||||
Log("totalAValidar: " & totalAValidar)
|
||||
Subs.logJobDoneResultados(resultado)
|
||||
Private cliente As String= resultado.Tag
|
||||
cliente = cliente.SubString(cliente.IndexOf("_")+1)
|
||||
@@ -270,6 +311,10 @@ Sub JobDone(Job As HttpJob)
|
||||
skmt.ExecNonQuery($"update PEDIDO set PE_ENVIO_OK = 0 where PE_CLIENTE = '${pars(1)}'"$)
|
||||
End If
|
||||
Next
|
||||
If totalAValidar <= 0 Then
|
||||
totalAValidar = 0
|
||||
validacionTerminada("Listo!!")
|
||||
End If
|
||||
End If
|
||||
' VALIDA CANTIDADES Y COSTOS TOTALES
|
||||
If resultado.Tag.As(String).IndexOf("validaCCT2_") > -1 Then
|
||||
@@ -284,4 +329,36 @@ Sub JobDone(Job As HttpJob)
|
||||
End If
|
||||
Job.Release
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Sub pedidoGuardando(msg As String)
|
||||
Log("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& - Guardando")
|
||||
If SubExists(CallBack, EventName & "_Guardando") Then
|
||||
Log("GGG")
|
||||
CallSub2(CallBack, EventName & "_Guardando", msg)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Sub pedidoEnviando(msg As String)
|
||||
' Log("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& - Enviando")
|
||||
If SubExists(CallBack, EventName & "_Enviando") Then
|
||||
' Log("EEE")
|
||||
CallSub2(CallBack, EventName & "_Enviando", msg)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Sub pedidoValidando(msg As String)
|
||||
' Log("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& - Validadndo")
|
||||
If SubExists(CallBack, EventName & "_Validando") Then
|
||||
' Log("VVVV")
|
||||
CallSub2(CallBack, EventName & "_Validando", msg)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Sub validacionTerminada(msg As String)
|
||||
Log("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& - Terminado")
|
||||
If SubExists(CallBack, EventName & "_Terminado") Then
|
||||
' Log("VVVV")
|
||||
CallSub2(CallBack, EventName & "_Terminado", msg)
|
||||
End If
|
||||
End Sub
|
||||
Reference in New Issue
Block a user