mirror of
https://github.com/KeymonSoft/DBCheck.git
synced 2026-04-17 19:37:09 +00:00
311 lines
14 KiB
QBasic
311 lines
14 KiB
QBasic
B4A=true
|
|
Group=Default Group
|
|
ModulesStructureVersion=1
|
|
Type=Class
|
|
Version=12.8
|
|
@EndOfDesignText@
|
|
Sub Class_Globals
|
|
Private Root As B4XView 'ignore
|
|
Private xui As XUI 'ignore
|
|
Dim reqManager As DBRequestManager
|
|
Dim b, c, d, e, f As Cursor
|
|
Dim usuario, almacen As String
|
|
Dim datos_iguales, almacen, carga, paso, conteo, porcentaje, perfil, cuantos, NUMERO_PEDIDO, usuario, cuantos_exib, cuantos_pedidosc, cuantos_noventa, cuantos_ped, cuantos_pedido As String
|
|
Dim l_ruta As Label
|
|
Dim enviando As Boolean = False
|
|
Dim validando As Boolean = False
|
|
End Sub
|
|
|
|
'Initializes the object. You can add parameters to this method if needed.
|
|
Public Sub Initialize
|
|
' reqManager.Initialize(Me, "http://keymon.net:1782")
|
|
l_ruta.Initialize("l")
|
|
Return Me
|
|
End Sub
|
|
|
|
Sub envia
|
|
enviando = True
|
|
' NOVENTA
|
|
l_ruta.text = Subs.traeRuta
|
|
c = B4XPages.MainPage.skmt.ExecQuery("SELECT NV_CLIENTE,NV_FECHA,NV_USER,NV_MOTIVO,NV_COMM,NV_LAT,NV_LON, NV_FOTO,NV_FOTO2, NV_REPROGRAMAR FROM NOVENTA")
|
|
D=B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) AS CUANTOS_NOVENTA FROM NOVENTA")
|
|
If c.RowCount>0 Then
|
|
For i=0 To c.RowCount -1
|
|
c.Position=i
|
|
Dim fotoenvio() As Byte = C.GetBlob("NV_FOTO2")
|
|
Dim cmd As DBCommand
|
|
cmd.Initialize
|
|
cmd.Name = "insert_reparto_REPG_GUNA_VN2"
|
|
cmd.Parameters = Array As Object(C.GetString("NV_CLIENTE"),C.GetString("NV_FECHA"),C.GetString("NV_USER"),C.GetString("NV_MOTIVO"),C.GetString("NV_COMM"),C.GetString("NV_LAT"),C.GetString("NV_LON"), almacen, l_ruta.Text, C.GetString("NV_REPROGRAMAR"),fotoenvio)
|
|
reqManager.ExecuteCommand(cmd , "inst_noventa_")
|
|
Next
|
|
c.Close
|
|
End If
|
|
d.Position=0
|
|
cuantos_noventa = D.GetString("CUANTOS_NOVENTA")
|
|
d.Close
|
|
|
|
'PAGARES.
|
|
Dim pa As Cursor=B4XPages.MainPage.skmt.ExecQuery("select PA_ALMACEN,PA_RUTA_REP,PA_RUTAPREV,PA_FECHA_PREV,PA_CAPTURA,PA_MONTO,PA_USUARIO,PA_CLIENTE,IFNULL(PA_CANCELADO,0) AS PA_CANCELADO from PAGARES")
|
|
If pa.RowCount > 0 Then
|
|
For pag = 0 To pa.RowCount - 1
|
|
pa.Position = pag
|
|
Dim cmd As DBCommand
|
|
cmd.Initialize
|
|
cmd.Name = "insert_reparto_PAGARES_GUNA_VN"
|
|
Dim fechaenvio() As String
|
|
fechaenvio = Regex.Split(" ",pa.GetString("PA_FECHA_PREV"))
|
|
' Log(fechaenvio(0))
|
|
Dim fechaenvio1() As String
|
|
fechaenvio1 = Regex.Split("/",fechaenvio(0))
|
|
Dim fechaano As String = fechaenvio1(2).SubString(2)
|
|
Dim fechareal As String = fechaenvio1(0)&"/"&fechaenvio1(1)&"/"&fechaano
|
|
' Log(fechareal)
|
|
Dim fechacap() As String
|
|
fechacap = Regex.Split("/",pa.GetString("PA_CAPTURA"))
|
|
Dim fechacapano As String = fechacap(2).SubString(2)
|
|
Dim fechacapreal As String = fechacap(0)&"/"&fechacap(1)&"/"&fechacapano
|
|
If pa.GetString("PA_CANCELADO") = "2" Then
|
|
cmd.Parameters = Array As Object(pa.GetString("PA_CLIENTE"),pa.GetString("PA_MONTO"),fechacapreal,pa.GetString("PA_ALMACEN"),pa.GetString("PA_RUTAPREV"),pa.GetString("PA_RUTA_REP"),fechareal,pa.GetString("PA_USUARIO"),2)
|
|
Else
|
|
cmd.Parameters = Array As Object(pa.GetString("PA_CLIENTE"),pa.GetString("PA_MONTO"),fechacapreal,pa.GetString("PA_ALMACEN"),pa.GetString("PA_RUTAPREV"),pa.GetString("PA_RUTA_REP"),fechareal,pa.GetString("PA_USUARIO"),"")
|
|
End If
|
|
reqManager.ExecuteCommand(cmd , "ins_pagares")
|
|
Next
|
|
End If
|
|
pa.Close
|
|
|
|
'ABONOS
|
|
d = B4XPages.MainPage.skmt.ExecQuery("SELECT RUTAA FROM RUTAA")
|
|
d.Position = 0
|
|
Dim ab As Cursor = B4XPages.MainPage.skmt.ExecQuery($"SELECT * from ABONOS where a_enviado is null and a_tipoabono IS NULL"$)
|
|
Log(ab.RowCount)
|
|
If ab.RowCount > 0 Then
|
|
For i=0 To ab.RowCount -1
|
|
ab.Position = i
|
|
' Dim ab1 As Cursor = B4XPages.MainPage.skmt.ExecQuery($"SELECT SUM(a_abono) AS a_abono from ABONOS where a_cliente = '${ab.GetString("a_cliente")}' and a_tipoabono IS NULL"$)
|
|
Dim ab1 As Cursor = B4XPages.MainPage.skmt.ExecQuery($"SELECT a_abono from ABONOS where a_cliente = '${ab.GetString("a_cliente")}' and a_tipoabono IS NULL"$)
|
|
ab1.Position = 0
|
|
|
|
Dim cmd As DBCommand
|
|
cmd.Initialize
|
|
cmd.Name = "insert_abono_REP_GUNA_VN2"
|
|
cmd.Parameters = Array As Object( ab.GetString("a_usuario"), ab.GetString("a_ruta"), ab.GetString("a_cliente"), ab.GetString("a_abono"), ab.GetString("a_fecha"),almacen,"REPARTO",d.GetString("RUTAA"), "", ab.GetString("TIPO_PAGO"),ab.GetString("a_ticket"),ab.GetString("a_numpago"))
|
|
reqManager.ExecuteCommand(cmd , $"ins_abonosPendientes_${ab.GetString("a_cliente")}"$)
|
|
ab1.Close
|
|
Log($"ins_abonosPendientes_${ab.GetString("a_cliente")}"$)
|
|
Next
|
|
End If
|
|
ab.Close
|
|
d.Close
|
|
|
|
'ABONOS NUEVOS
|
|
d = B4XPages.MainPage.skmt.ExecQuery("SELECT RUTAA FROM RUTAA")
|
|
d.Position = 0
|
|
Dim ab As Cursor = B4XPages.MainPage.skmt.ExecQuery($"SELECT * from ABONOS where a_enviado is null and a_tipoabono IS NOT NULL"$)
|
|
Log(ab.RowCount)
|
|
If ab.RowCount > 0 Then
|
|
For i=0 To ab.RowCount -1
|
|
ab.Position = i
|
|
' Dim ab1 As Cursor = B4XPages.MainPage.skmt.ExecQuery($"SELECT SUM(a_abono) AS a_abono from ABONOS where a_cliente = '${ab.GetString("a_cliente")}' and a_tipoabono IS NOT NULL"$)
|
|
Dim ab1 As Cursor = B4XPages.MainPage.skmt.ExecQuery($"SELECT a_abono from ABONOS where a_cliente = '${ab.GetString("a_cliente")}' and a_tipoabono IS NOT NULL"$)
|
|
ab1.Position = 0
|
|
|
|
Dim cmd As DBCommand
|
|
cmd.Initialize
|
|
cmd.Name = "insert_abono_REP_GUNA_VN2"
|
|
cmd.Parameters = Array As Object( ab.GetString("a_usuario"), ab.GetString("a_ruta"), ab.GetString("a_cliente"), ab.GetString("a_abono"), ab.GetString("a_fecha"),almacen,"REPARTO",d.GetString("RUTAA"), "1", ab.GetString("TIPO_PAGO"),ab.GetString("a_ticket"),ab.GetString("a_numpago") )
|
|
reqManager.ExecuteCommand(cmd , $"ins_abonosPendientes_${ab.GetString("a_cliente")}"$)
|
|
ab1.Close
|
|
Log($"ins_abonosPendientes_${ab.GetString("a_cliente")}"$)
|
|
Next
|
|
End If
|
|
ab.Close
|
|
d.Close
|
|
|
|
' pedido
|
|
c=B4XPages.MainPage.skmt.ExecQuery("SELECT PE_TIPO, PE_RUTA, PE_CEDIS, PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_FECHA, PE_USUARIO, PE_CLIENTEOR, PE_CAJAS, PE_BCAJAS, CONSECUTIVO, FECHA_PREV, RUTA_REP, PE_REGALO FROM PEDIDO")
|
|
If c.RowCount>0 Then
|
|
For i=0 To c.RowCount -1
|
|
c.Position=i
|
|
Dim cmd As DBCommand
|
|
cmd.Initialize
|
|
cmd.Name = "insert_pedido_REP_GUNA_VN"
|
|
cmd.Parameters = Array As Object(c.GetString("PE_TIPO"), c.GetString("PE_RUTA"), c.GetString("PE_CEDIS"), 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_CLIENTEOR"), c.GetString("PE_CAJAS"), c.GetString("PE_BCAJAS"), c.GetString("CONSECUTIVO"), c.GetString("FECHA_PREV"), c.GetString("RUTA_REP"), c.GetString("PE_REGALO"))
|
|
reqManager.ExecuteCommand(cmd , "ins_pedido_Inmtex")
|
|
Next
|
|
c.Close
|
|
End If
|
|
|
|
'TABULADOR
|
|
c = B4XPages.MainPage.skmt.ExecQuery("SELECT VEINTE, DIEZ, CINCO, DOS, PESO, CENTAVO, TOTAL FROM TABULADOR_MONEDAS")
|
|
d = B4XPages.MainPage.skmt.ExecQuery("SELECT RUTAA FROM RUTAA")
|
|
b = B4XPages.MainPage.skmt.ExecQuery("SELECT ID_ALMACEN FROM CAT_ALMACEN")
|
|
f = B4XPages.MainPage.skmt.ExecQuery("SELECT HVD_FECHA FROM HIST_VENTAS")
|
|
d.Position = 0
|
|
b.Position = 0
|
|
f.Position = 0
|
|
If c.RowCount > 0 Then
|
|
For i = 0 To c.RowCount - 1
|
|
c.Position=i
|
|
Dim cmd As DBCommand
|
|
Dim fechatabulador() As String = Regex.Split(" ", f.GetString("HVD_FECHA"))
|
|
|
|
Dim fechatabulador3 As String = fechatabulador(0)
|
|
cmd.Initialize
|
|
cmd.Name = "insert_tabulador_monedas_GUNA_VN"
|
|
cmd.Parameters = Array As Object(d.GetString("RUTAA"), b.GetString("ID_ALMACEN"),c.GetString("VEINTE"),c.GetString("DIEZ"),c.GetString("CINCO"),c.GetString("DOS"),c.GetString("PESO"),c.GetString("CENTAVO"),fechatabulador3)
|
|
reqManager.ExecuteCommand(cmd , "ins_tabulador_mon")
|
|
Next
|
|
c.Close
|
|
d.Close
|
|
b.Close
|
|
f.Close
|
|
End If
|
|
c = B4XPages.MainPage.skmt.ExecQuery("SELECT MIL, QUINIENTOS, DOCIENTOS, CIEN, CINCUENTA, VEINTE FROM TABULADOR_BILLETES")
|
|
d = B4XPages.MainPage.skmt.ExecQuery("SELECT RUTAA FROM RUTAA")
|
|
b = B4XPages.MainPage.skmt.ExecQuery("SELECT ID_ALMACEN FROM CAT_ALMACEN")
|
|
f = B4XPages.MainPage.skmt.ExecQuery("SELECT HVD_FECHA FROM HIST_VENTAS")
|
|
d.Position = 0
|
|
b.Position = 0
|
|
f.Position = 0
|
|
If c.RowCount > 0 Then
|
|
For i = 0 To c.RowCount - 1
|
|
c.Position=i
|
|
Dim cmd As DBCommand
|
|
Dim fechatabulador() As String = Regex.Split(" ", f.GetString("HVD_FECHA"))
|
|
Dim fechatabulador3 As String = fechatabulador(0)
|
|
cmd.Initialize
|
|
cmd.Name = "insert_tabulador_billetes_GUNA_VN"
|
|
cmd.Parameters = Array As Object(b.GetString("ID_ALMACEN"), d.GetString("RUTAA"),c.GetString("MIL"),c.GetString("QUINIENTOS"),c.GetString("DOCIENTOS"),c.GetString("CIEN"),c.GetString("CINCUENTA"),c.GetString("VEINTE"),fechatabulador3)
|
|
reqManager.ExecuteCommand(cmd , "ins_tabulador_bill")
|
|
Next
|
|
c.Close
|
|
d.Close
|
|
b.Close
|
|
f.Close
|
|
End If
|
|
'FIN TABULADOR
|
|
|
|
c = B4XPages.MainPage.skmt.ExecQuery("SELECT IFNULL(HVD_RECHAZOCANT,0) AS HVD_RECHAZOCANT, HVD_CLIENTE, HVD_PROID, HVD_FECHA, HVD_CODPROMO, HVD_NUM_TICKET, HVD_CANT, CONSECUTIVO, BCAJAS, CANTC FROM HIST_VENTAS where HVD_PRONOMBRE <> 'Cobranza Pendiente'")
|
|
If c.RowCount > 0 Then
|
|
For i=0 To c.RowCount -1
|
|
c.Position = i
|
|
Log(c.GetString("HVD_CLIENTE"))
|
|
Private d4 As Cursor = B4XPages.MainPage.skmt.ExecQuery($"SELECT CAT_CL_RUTA FROM kmt_info WHERE CAT_CL_CODIGO = '${c.GetString("HVD_CLIENTE")}'"$)
|
|
d4.Position = 0
|
|
Log(d4.GetString("CAT_CL_RUTA"))
|
|
Private d5 As Cursor = B4XPages.MainPage.skmt.ExecQuery($"SELECT IFNULL(Sum(PE_CANT),0) AS PE_CANT FROM PEDIDO WHERE PE_CLIENTEOR = '${c.GetString("HVD_CLIENTE")}' AND PE_PROID = '${c.GetString("HVD_PROID")}' AND CONSECUTIVO = '${c.GetString("CONSECUTIVO")}'"$)
|
|
d5.Position = 0
|
|
Private restacant As String = d5.GetString("PE_CANT")
|
|
d5.Close
|
|
Dim fecha1() As String = Regex.Split(" ", c.GetString("HVD_FECHA"))
|
|
Dim fecha3 As String = fecha1(0)
|
|
Log(fecha3)
|
|
Dim hora() As String = Regex.Split("\.", fecha1(1))
|
|
Log(hora(0))
|
|
Dim sDate, sTime As String
|
|
DateTime.DateFormat = "dd/MM/yyyy"
|
|
DateTime.TimeFormat = "HH:mm:ss"
|
|
sDate = DateTime.Date(DateTime.Now)
|
|
sTime = DateTime.Time(DateTime.Now)
|
|
If c.GetString("HVD_RECHAZOCANT") <> "0" Then
|
|
Log((c.GetString("HVD_RECHAZOCANT")-restacant))
|
|
cmd.Initialize
|
|
cmd.Name = "update_HVD_GUNA_VN2"
|
|
cmd.Parameters = Array As String(c.GetString("HVD_RECHAZOCANT"),sDate& " "& sTime,1,Subs.traeUsuario, c.GetString("HVD_CLIENTE"), c.GetString("HVD_PROID"),fecha3&" "&hora(0), d4.GetString("CAT_CL_RUTA"),almacen,l_ruta.Text,c.GetString("HVD_CODPROMO"),c.GetString("HVD_NUM_TICKET"), c.GetString("HVD_CANT"))
|
|
reqManager.ExecuteCommand(cmd, "update_hvd")
|
|
Log("ENVIE RECHAZO")
|
|
Else
|
|
cmd.Initialize
|
|
cmd.Name = "update_HVD_GUNA_VN2"
|
|
Log( c.GetString("CANTC")& c.GetString("HVD_CLIENTE")& c.GetString("HVD_PROID")&fecha3&" "&hora(0)& d4.GetString("CAT_CL_RUTA")&almacen&l_ruta.Text&c.GetString("HVD_CODPROMO")&c.GetString("HVD_NUM_TICKET")& c.GetString("HVD_CANT"))
|
|
cmd.Parameters = Array As String("","","",Subs.traeUsuario, c.GetString("HVD_CLIENTE"), c.GetString("HVD_PROID"),fecha3&" "&hora(0), d4.GetString("CAT_CL_RUTA"),almacen,l_ruta.Text,c.GetString("HVD_CODPROMO"),c.GetString("HVD_NUM_TICKET"), c.GetString("HVD_CANT"))
|
|
reqManager.ExecuteCommand(cmd, "update_hvd")
|
|
End If
|
|
d4.Close
|
|
Next
|
|
End If
|
|
c.Close
|
|
' Dim cmd As DBCommand
|
|
' cmd.Initialize
|
|
' cmd.Name = "insert_drop_rep_GUNA_VN"
|
|
' cmd.Parameters = Array As Object(Subs.dameUsuarioDeDB, l_ruta.Text, almacen, l_ctast.text, Subs.traeEntregados, Subs.traeRechazados, "ENVIO")
|
|
' reqManager.ExecuteCommand(cmd , "inst_drop")
|
|
' ToastMessageShow("Se Actualizaran los datos, Este proceso podria tardar hasta un minuto, gracias "& l_ruta.text , True)
|
|
End Sub
|
|
|
|
' Nuevo método para inicializar el manager con el Target correcto
|
|
Public Sub ConfigurarYEnviar(ServidorURL As String)
|
|
' 'Me' aquí es C_Intmex, asegurando que C_Intmex.JobDone sea llamado.
|
|
reqManager.Initialize(Me, ServidorURL)
|
|
envia ' Llama a la función de envío original de C_Intmex
|
|
End Sub
|
|
|
|
Sub JobDone(Job As HttpJob)
|
|
Log("JOBDONE - " & almacen)
|
|
|
|
' 1. Tachamos el request de la lista
|
|
If reqManager.reqsList.IsInitialized Then
|
|
Dim index As Int = reqManager.reqsList.IndexOf(Job.tag)
|
|
If index <> -1 Then reqManager.reqsList.RemoveAt(index)
|
|
End If
|
|
|
|
If Not(Job.Success) Then
|
|
LogColor("Error en red: " & Job.tag & " : " & Subs.parseHTTPError(Job.ErrorMessage), Colors.Red)
|
|
Else
|
|
' 2. Procesamos validaciones
|
|
Dim RESULT As DBResult = reqManager.HandleJob(Job)
|
|
|
|
If Job.JobName = "DBRequest" Then
|
|
If RESULT.Tag = "valida_pedido" Then
|
|
Subs.logJobDoneResultados(RESULT)
|
|
For Each records() As Object In RESULT.Rows
|
|
Dim CUANTOSP As Int = records(RESULT.Columns.Get("CUANTOSP"))
|
|
B4XPages.MainPage.l_vProds2.Text = $"${CUANTOSP}/${cuantos_pedido}"$
|
|
' Mantenemos tu lógica permisiva
|
|
If cuantos_pedido <= CUANTOSP Then
|
|
datos_iguales = "ok"
|
|
Else
|
|
LogColor("Faltan pedidos. Envíe nuevamente: " & CUANTOSP & "/" & cuantos_pedido, Colors.Red)
|
|
End If
|
|
Next
|
|
Else If RESULT.Tag = "valida_pedidoc" Then
|
|
Subs.logJobDoneResultados(RESULT)
|
|
For Each records() As Object In RESULT.Rows
|
|
Dim CUANTOSC As Int = records(RESULT.Columns.Get("CUANTOSC"))
|
|
B4XPages.MainPage.l_vPedidos2.Text = $"${CUANTOSC}/${cuantos_pedidosc}"$
|
|
Next
|
|
Else If RESULT.Tag = "valida_noventa" Then
|
|
Subs.logJobDoneResultados(RESULT)
|
|
For Each records() As Object In RESULT.Rows
|
|
Dim CUANTOSN As Int = records(RESULT.Columns.Get("CUANTOSN"))
|
|
B4XPages.MainPage.l_vNoVenta2.Text = $"${CUANTOSN}/${cuantos_noventa}"$
|
|
Next
|
|
End If
|
|
End If
|
|
End If
|
|
|
|
Job.Release
|
|
|
|
' 3. Control de flujo seguro
|
|
If reqManager.reqsList.size = 0 Then
|
|
B4XPages.MainPage.p_progressDialog.Visible = False
|
|
If enviando Then
|
|
enviando = False
|
|
B4XPages.MainPage.l_progressDialog.Text = "Validando "
|
|
B4XPages.MainPage.p_progressDialog.Visible = True
|
|
Sleep(200)
|
|
valida
|
|
Else If validando Then
|
|
validando = False
|
|
Sleep(300)
|
|
B4XPages.MainPage.p_validacion.Visible = True
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
Sub valida
|
|
B4XPages.MainPage.p_progressDialog.Visible = False
|
|
ToastMessageShow("Envío de Reparto Finalizado", True)
|
|
End Sub |