mirror of
https://github.com/KeymonSoft/DBCheck.git
synced 2026-04-17 19:37:09 +00:00
140 lines
4.8 KiB
QBasic
140 lines
4.8 KiB
QBasic
B4A=true
|
|
Group=Default Group
|
|
ModulesStructureVersion=1
|
|
Type=Class
|
|
Version=12.8
|
|
@EndOfDesignText@
|
|
Sub Class_Globals
|
|
Dim reqManager As DBRequestManager
|
|
Dim cmd As DBCommand
|
|
Dim b, c, d, f As Cursor
|
|
Dim almacen, perfil, cuantos, NUMERO_PEDIDO, usuario, cuantos_exib, cuantos_pedidosc, cuantos_noventa, cuantos_ped, cuantos_pedido As String
|
|
Dim l_ruta As Label
|
|
Dim foto1() As Byte
|
|
Dim enviando As Boolean = False
|
|
Dim validando As Boolean = False
|
|
Dim datos_iguales As String
|
|
End Sub
|
|
|
|
'Initializes the object. You can add parameters to this method if needed.
|
|
Public Sub Initialize
|
|
|
|
End Sub
|
|
|
|
Sub envia
|
|
enviando = True
|
|
c=B4XPages.MainPage.skmt.ExecQuery("select usuario from usuarioa")
|
|
c.Position = 0
|
|
usuario = c.GetString("USUARIO")
|
|
c.Close
|
|
'reparto rechazo REP_CLIENTE, REP_PRONOMBRE, REP_CANT, REP_COSTO_TOT
|
|
c=B4XPages.MainPage.skmt.ExecQuery("SELECT REP_CLIENTE, REP_PRONOMBRE, REP_CANT, REP_COSTO_TOT, REP_FECHA FROM REPARTO")
|
|
If c.RowCount>0 Then
|
|
For i=0 To c.RowCount -1
|
|
c.Position=i
|
|
Dim cmd As DBCommand
|
|
cmd.Initialize
|
|
cmd.Name = "insert_reparto_rechazo_dur"
|
|
' cmd.Parameters = Array As Object(C.GetString("REP_CLIENTE"),C.GetString("REP_PRONOMBRE"),C.GetString("REP_CANT"),C.GetString("REP_COSTO_TOT"),C.GetString("REP_FECHA"), ALMACEN)
|
|
cmd.Parameters = Array As Object(C.GetString("REP_CLIENTE"),C.GetString("REP_PRONOMBRE"),C.GetString("REP_CANT"),C.GetString("REP_COSTO_TOT"), almacen)
|
|
reqManager.ExecuteQuery(cmd , 0, "inst_noventa")
|
|
Next
|
|
c.Close
|
|
End If
|
|
|
|
' NOVENTA
|
|
c=B4XPages.MainPage.skmt.ExecQuery("SELECT NV_CLIENTE,NV_FECHA,NV_USER,NV_MOTIVO,NV_COMM,NV_LAT,NV_LON, NV_FOTO 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
|
|
foto1 = c.GetBlob("NV_FOTO")
|
|
Dim cmd As DBCommand
|
|
cmd.Initialize
|
|
cmd.Name = "insert_reparto_dur"
|
|
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, foto1)
|
|
reqManager.ExecuteQuery(cmd , 0, "inst_noventa")
|
|
Next
|
|
c.Close
|
|
End If
|
|
d.Position=0
|
|
cuantos_noventa = D.GetString("CUANTOS_NOVENTA")
|
|
d.Close
|
|
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 |