- VERSION 5.12.10

- Codigo de prueba para envio de pedido en BATCH
- Se amplio el panel de las notificaciones
- Si no hay presupuesto para bonificaciones NO se muestra la opcion de PROMOS en "Productos"
This commit is contained in:
2025-12-10 16:57:35 -06:00
parent 72ce7c8806
commit 409c224820
8 changed files with 241 additions and 18 deletions

View File

@@ -1870,6 +1870,19 @@ Sub JobDone(Job As HttpJob)
PB2.Progress = 100
S_CP.Text = "VALIDANDO"
End If
If RESULT.Tag.As(String).StartsWith("pedido_completo_") Then 'query tag
For Each records() As Object In RESULT.Rows
Private temp() As String = Regex.Split("_", RESULT.Tag)
' Log(temp(2))
If temp.Length > 1 Then
Starter.skmt.ExecNonQuery($"update pedido_cliente set pc_enviado = 1 where pc_cliente = '${temp(2)}'"$)
Log($"update pedido_cliente set pc_enviado = 1 where pc_cliente = '${temp(2)}'"$)
Starter.skmt.ExecNonQuery($"update pedido set pe_enviado = 1 where pe_cliente = '${temp(2)}'"$)
Log($"update pedido set pe_enviado = 1 where pe_cliente = '${temp(2)}'"$)
End If
Next
End If
If RESULT.Tag = "version" Then 'query tag
connecta.TextColor = Colors.White
@@ -3270,7 +3283,7 @@ Sub SUBIR_INFO_PEDIDO
If d.GetString("MONTO") <> Null And d.GetString("MONTO") <> "" Then monto1 = d.GetString("MONTO")
Private abordo1 As String = L_ABORDO.Text
If abordo1 = "" Then abordo1 = "0"
Log($"${monto1}, ${abordo1}"$)
' Log($"${monto1}, ${abordo1}"$)
monto1 = monto1 - abordo1
reqManager.trackInit
@@ -3280,7 +3293,7 @@ Sub SUBIR_INFO_PEDIDO
cmd.Name ="insert_drop2_KELL"
cmd.Parameters = Array As Object(usuario, l_ruta.Text, fecha, l_porvisitar.Text, l_drop.Text, l_efectiva.Text, l_cuantosc.Text, l_cuantosn.Text, monto1, "ENVIO", ALMACEN, abordo1)
reqManager.ExecuteCommand(cmd , "inst_noventa_ins_drop_kell")
Log($"${usuario}, ${l_ruta.Text}, ${fecha}, ${l_porvisitar.Text}, ${l_drop.Text}, ${l_efectiva.Text}, ${l_cuantosc.Text}, ${l_cuantosn.Text}, ${monto1}, "ENVIO", ${ALMACEN}, ${abordo1}"$)
' Log($"${usuario}, ${l_ruta.Text}, ${fecha}, ${l_porvisitar.Text}, ${l_drop.Text}, ${l_efectiva.Text}, ${l_cuantosc.Text}, ${l_cuantosn.Text}, ${monto1}, "ENVIO", ${ALMACEN}, ${abordo1}"$)
Log("################## inst_noventa_ins_drop_kell")
img2.Visible =True
contador_env = contador_env + 1
@@ -3383,7 +3396,7 @@ Sub SUBIR_INFO_PEDIDO
PB2.Progress = 1
' PEDIO_CLIENTE
enviaPedidoCliente("Todos")
' enviaPedidoCliente("Todos")
d = Starter.skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDOSC FROM PEDIDO_CLIENTE ")
d.Position=0
@@ -3395,10 +3408,12 @@ Sub SUBIR_INFO_PEDIDO
PORENVIAR = 0
' PEDIDO
t3.Initialize("T3", 500) ' 1000 = 1 second
t3.Enabled = True
Wait For t3_tick
enviaPedido("Todos")
' t3.Initialize("T3", 500) ' 1000 = 1 second
' t3.Enabled = True
' Wait For t3_tick
' enviaPedido("Todos")
enviaPedidoBatch("Todos") ' ****** AQUI VA PEDIDO_CLIENTE Y PEDIDO JUNTOS *****
d = Starter.skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDO FROM PEDIDO")
d.Position=0
@@ -3498,6 +3513,72 @@ Sub SUBIR_INFO_PEDIDO
DateTime.TimeFormat = "HH:mm:ss"
End Sub
Sub enviaPedidoBatch(filtro As String)
' Crear una lista para almacenar TODAS las operaciones de UN pedido
Dim BatchCommands As List
BatchCommands.Initialize
' DE PEDIDO_CLIENTE
Log($"enviaPedidoBatch(${filtro})"$)
Private condicion As String = ""
If filtro <> "Todos" Then condicion = "where PC_ENVIADO = 0"
Private cx As Cursor = Starter.skmt.ExecQuery($"SELECT PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT, PC_COSTO_SIN, PC_RUTA, PC_ALMACEN, PC_ENVIADO FROM PEDIDO_CLIENTE ${condicion}"$)
Log($"SELECT PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT, PC_COSTO_SIN, PC_RUTA, PC_ALMACEN, PC_ENVIADO FROM PEDIDO_CLIENTE ${condicion}"$)
Log("pedido_cliente: " & cx.RowCount)
' DE PEDIDO
Private condicion As String = ""
If filtro <> "Todos" Then condicion = "where PE_ENVIADO = 0"
c = Starter.skmt.ExecQuery2("SELECT COUNT(*) as CANTIDAD FROM HIST_ENVIOS WHERE HE_TIPO = ?",Array As String("ABORDO") )
c.Position = 0
If c.GetString("CANTIDAD") > 0 Then
Log($"pe_cedis_0"$)
Starter.skmt.ExecNonQuery2("update PEDIDO set PE_CEDIS = ? where PE_CLIENTE =? AND PE_FOLIO IS NULL ", Array As Object("RECARGA", "0"))
End If
Starter.skmt.ExecNonQuery("UPDATE PEDIDO SET PE_FOLIO = rowid where PE_FOLIO = 0 or PE_FOLIO = 1")
If cx.RowCount > 0 Then ' Si hay pedido entonces lo enviamos.
For j = 0 To cx.RowCount - 1
Log("===== ENVIAMOS PRODUCTOS DE PEDIDO =====")
cx.Position = j
Dim Arch As String = Subs.traeAlmacen & "_" & Subs.traeRuta & "_" & cx.GetString("PC_CLIENTE") & "_" & DateTime.Now
' 1. Agregar comando del Encabezado (PEDIDO_CLIENTE)
Dim cmdHeader As DBCommand
cmdHeader.Initialize
cmdHeader.Name = "insert_pedidos_KELL_arch"
cmdHeader.Parameters = Array As Object(cx.GetString("PC_CLIENTE"),cx.GetString("PC_FECHA"),cx.GetString("PC_USER"),cx.GetString("PC_NOART"),cx.GetString("PC_MONTO"),cx.GetString("PC_LON"),cx.GetString("PC_LAT"),ALMACEN,l_ruta.text,cx.GetString("PC_COSTO_SIN"), Arch)
BatchCommands.Add(cmdHeader)
' 2. Agregar comandos del Detalle (PEDIDO) dentro del bucle
Private cPed As Cursor = Starter.skmt.ExecQuery($"SELECT PE_CEDIS, PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_FECHA, PE_USUARIO, PE_COSTO_SIN, PE_RUTA, PE_DESC, PE_FOLIO, PE_TIPO, PE_ARCH FROM PEDIDO ${condicion} ${(IIf(condicion = "","where", "and"))} pe_cliente = '${cx.GetString("PC_CLIENTE")}' "$)
' Log($"SELECT PE_CEDIS, PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_FECHA, PE_USUARIO, PE_COSTO_SIN, PE_RUTA, PE_DESC, PE_FOLIO, PE_TIPO, PE_ARCH FROM PEDIDO ${condicion} ${(IIf(condicion = "","where ", "and"))} pe_cliente = '${cx.GetString("PC_CLIENTE")}' "$)
If cPed.RowCount > 0 Then
For i = 0 To cPed.RowCount - 1
Log("==== ENVIAMOS PRODS ====")
cPed.Position = i
Dim cmdDetail As DBCommand
cmdDetail.Initialize
If PERFIL = "V-ESPECIAL" Then
Log("===== V-ESPECIAL =====")
cmd.Name = "insert_pedido_esp_KELL"
cmd.Parameters = Array As Object(cPed.GetString("PE_CEDIS"),ALMACEN,cPed.GetString("PE_COSTO_TOT"),cPed.GetString("PE_COSTOU"),cPed.GetString("PE_CANT"),cPed.GetString("PE_PRONOMBRE"),cPed.GetString("PE_PROID"),cPed.GetString("PE_CLIENTE"),cPed.GetString("PE_FECHA"),cPed.GetString("PE_USUARIO"),cPed.GetString("PE_RUTA"),cPed.GetString("PE_COSTO_SIN"),cPed.GetString("PE_DESC"),cPed.GetString("PE_FOLIO"),cPed.GetString("PE_TIPO"),NUMERO_PEDIDO)
Else
cmdDetail.Name = "insert_pedido_KELL_arch"
cmdDetail.Parameters = Array As Object (cPed.GetString("PE_CEDIS"),ALMACEN,cPed.GetString("PE_COSTO_TOT"),cPed.GetString("PE_COSTOU"),cPed.GetString("PE_CANT"),cPed.GetString("PE_PRONOMBRE"),cPed.GetString("PE_PROID"),cPed.GetString("PE_CLIENTE"),cPed.GetString("PE_FECHA"),cPed.GetString("PE_USUARIO"),cPed.GetString("PE_RUTA"), cPed.GetString("PE_COSTO_SIN"),cPed.GetString("PE_DESC"),cPed.GetString("PE_FOLIO"), cPed.GetString("PE_TIPO"), Arch)
End If
BatchCommands.Add(cmdDetail)
Next
End If
Next
' 3. Enviar TODO junto en una sola petición HTTP
' Si esto falla, no se guarda nada en Oracle y el pedido sigue pendiente en local.
reqManager.ExecuteBatch(BatchCommands, "pedido_completo_" & cx.GetString("PC_CLIENTE"))
End If
c.Close
cx.Close
End Sub
'Envio de la tabla pedido
Sub enviaPedido(filtro As String)
Log($"enviaPedido(${filtro})"$)
@@ -3510,11 +3591,11 @@ Sub enviaPedido(filtro As String)
Starter.skmt.ExecNonQuery2("update PEDIDO set PE_CEDIS = ? where PE_CLIENTE =? AND PE_FOLIO IS NULL ", Array As Object("RECARGA", "0"))
End If
Starter.skmt.ExecNonQuery("UPDATE PEDIDO SET PE_FOLIO = rowid where PE_FOLIO = 0 or PE_FOLIO = 1")
Log("####################################################")
Log(PERFIL)
Log("####################################################")
If PERFIL = "V-ESPECIAL" Then
Log($"pe_cedis_1"$)
c = Starter.skmt.ExecQuery($"SELECT PE_CEDIS, PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_FECHA, PE_USUARIO, PE_COSTO_SIN, PE_RUTA, PE_DESC, PE_FOLIO, PE_TIPO FROM PEDIDO ${condicion} ORDER BY PE_CLIENTE"$)
@@ -3535,7 +3616,7 @@ Sub enviaPedido(filtro As String)
Else
' Log($"pe_cedis_3"$)
Private cPed As Cursor = Starter.skmt.ExecQuery($"SELECT PE_CEDIS, PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_FECHA, PE_USUARIO, PE_COSTO_SIN, PE_RUTA, PE_DESC, PE_FOLIO, PE_TIPO FROM PEDIDO ${condicion}"$)
Log($"SELECT PE_CEDIS, PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_FECHA, PE_USUARIO, PE_COSTO_SIN, PE_RUTA, PE_DESC, PE_FOLIO, PE_TIPO FROM PEDIDO ${condicion}"$)
' Log($"SELECT PE_CEDIS, PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_FECHA, PE_USUARIO, PE_COSTO_SIN, PE_RUTA, PE_DESC, PE_FOLIO, PE_TIPO FROM PEDIDO ${condicion}"$)
' TIEMPO = 0
S_CP.Text = "Envio de Pedidos"
PB2.Progress = 1