mirror of
https://github.com/KeymonSoft/Guna_Reparto_Imp.git
synced 2026-04-17 21:06:09 +00:00
VERSION 6.01.11
- Se agrego el mandaPendientes para los abonos. - Se agrego que solo se pueda hacer solo una vez FIN DIA y despues de eso se necesita una contraseña (FD + dia + hora)
This commit is contained in:
@@ -1282,6 +1282,16 @@ Sub Class_Globals
|
|||||||
Private b_cancelabypass As Button
|
Private b_cancelabypass As Button
|
||||||
Private b_acepbypass As Button
|
Private b_acepbypass As Button
|
||||||
Private b_bypass As Button
|
Private b_bypass As Button
|
||||||
|
Private p_finDia As Panel
|
||||||
|
Private b_findiaOk As Button
|
||||||
|
Private b_fdCancelar As Button
|
||||||
|
Private et_autSup As EditText
|
||||||
|
Private b_borrarFinDia As Button
|
||||||
|
Private p_transFinDia As Panel
|
||||||
|
Private b_cancelarFD As Button
|
||||||
|
Private b_aceptarFD As Button
|
||||||
|
Private Panel10 As Panel
|
||||||
|
Private et_passFinDia As EditText
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Public Sub Initialize
|
Public Sub Initialize
|
||||||
@@ -1363,17 +1373,14 @@ Private Sub B4XPage_Created (Root1 As B4XView)
|
|||||||
Subs.agregaColumna("REPARTO", "REP_PRODREGISTRO", "TEXT")
|
Subs.agregaColumna("REPARTO", "REP_PRODREGISTRO", "TEXT")
|
||||||
Subs.agregaColumna("NOVENTA", "NV_RUTA", "TEXT")
|
Subs.agregaColumna("NOVENTA", "NV_RUTA", "TEXT")
|
||||||
Subs.agregaColumna("ABONOS", "a_ticket", "TEXT")
|
Subs.agregaColumna("ABONOS", "a_ticket", "TEXT")
|
||||||
|
Subs.agregaColumna("ABONOS", "a_enviado", "TEXT")
|
||||||
Subs.agregaColumna("ABONOS", "a_tipoabono", "TEXT")
|
Subs.agregaColumna("ABONOS", "a_tipoabono", "TEXT")
|
||||||
|
|
||||||
Subs.agregaColumna("PAGARES", "PA_CANCELADO", "TEXT")
|
Subs.agregaColumna("PAGARES", "PA_CANCELADO", "TEXT")
|
||||||
|
|
||||||
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS ABONOSP(NOTA TEXT, CLIENTE TEXT, SALDO_PENDIENTE TEXT)")
|
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS ABONOSP(NOTA TEXT, CLIENTE TEXT, SALDO_PENDIENTE TEXT)")
|
||||||
Subs.agregaColumna("ABONOSP", "NOMBRE", "TEXT")
|
Subs.agregaColumna("ABONOSP", "NOMBRE", "TEXT")
|
||||||
Subs.agregaColumna("ABONOSP", "FECHA_PREVENTA", "DATE")
|
Subs.agregaColumna("ABONOSP", "FECHA_PREVENTA", "DATE")
|
||||||
Subs.agregaColumna("ABONOSP", "DIAS", "DATE")
|
Subs.agregaColumna("ABONOSP", "DIAS", "DATE")
|
||||||
Subs.agregaColumna("ABONOSP", "DIASATRASO", "DATE")
|
Subs.agregaColumna("ABONOSP", "DIASATRASO", "DATE")
|
||||||
|
|
||||||
|
|
||||||
Subs.agregaColumna("kmt_info", "SECUENCIA", "INT")
|
Subs.agregaColumna("kmt_info", "SECUENCIA", "INT")
|
||||||
Subs.agregaColumna("NOVENTA", "NV_FOTO2", "BLOB")
|
Subs.agregaColumna("NOVENTA", "NV_FOTO2", "BLOB")
|
||||||
Subs.agregaColumna("kmt_info", "CAT_CL_SALDODISPONIBLE", "TEXT")
|
Subs.agregaColumna("kmt_info", "CAT_CL_SALDODISPONIBLE", "TEXT")
|
||||||
@@ -1420,7 +1427,7 @@ Private Sub B4XPage_Created (Root1 As B4XView)
|
|||||||
' Dim P As PhoneId
|
' Dim P As PhoneId
|
||||||
Log("provider")
|
Log("provider")
|
||||||
Provider.Initialize
|
Provider.Initialize
|
||||||
|
|
||||||
Subs.guardaAppInfo
|
Subs.guardaAppInfo
|
||||||
|
|
||||||
' Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_READ_PHONE_STATE)
|
' Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_READ_PHONE_STATE)
|
||||||
@@ -1434,6 +1441,9 @@ Private Sub B4XPage_Created (Root1 As B4XView)
|
|||||||
If Subs.traeUsarIntentBDWA Then
|
If Subs.traeUsarIntentBDWA Then
|
||||||
Subs.importaBDDesdeWhatsApp
|
Subs.importaBDDesdeWhatsApp
|
||||||
End If
|
End If
|
||||||
|
p_transFinDia.top = 0 : p_transFinDia.Left = 0
|
||||||
|
p_transFinDia.Width = Root.Width : p_transFinDia.Height = Root.Height
|
||||||
|
Subs.centraPanel(Panel10, Root.Width)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub B4XPage_Appear
|
Sub B4XPage_Appear
|
||||||
@@ -1751,6 +1761,8 @@ Private Sub i_engrane_Click
|
|||||||
Subs.centraBoton(b_apk, Root.Width)
|
Subs.centraBoton(b_apk, Root.Width)
|
||||||
Subs.centraBoton(b_envioBD, Root.Width)
|
Subs.centraBoton(b_envioBD, Root.Width)
|
||||||
Subs.centraBoton(b_regesar, Root.Width)
|
Subs.centraBoton(b_regesar, Root.Width)
|
||||||
|
Subs.centraBoton(b_bypass, Root.Width)
|
||||||
|
Subs.centraBoton(b_borrarFinDia, Root.Width)
|
||||||
Subs.centraBoton(b_server, p_serverList.Width)
|
Subs.centraBoton(b_server, p_serverList.Width)
|
||||||
lv_server.Clear
|
lv_server.Clear
|
||||||
lv_server.AddSingleLine("http://keymon.net:1782")
|
lv_server.AddSingleLine("http://keymon.net:1782")
|
||||||
@@ -1759,6 +1771,8 @@ Private Sub i_engrane_Click
|
|||||||
' l_server.Text = Starter.server
|
' l_server.Text = Starter.server
|
||||||
et_server.Text = server
|
et_server.Text = server
|
||||||
Subs.panelVisible(p_appUpdate, 0, 0)
|
Subs.panelVisible(p_appUpdate, 0, 0)
|
||||||
|
Subs.panelVisible(p_transFinDia, 0, 0)
|
||||||
|
p_transFinDia.Visible = False
|
||||||
|
|
||||||
If user.Text.Trim = "KMTS1" Then
|
If user.Text.Trim = "KMTS1" Then
|
||||||
p_importarBDWA.Visible = False
|
p_importarBDWA.Visible = False
|
||||||
@@ -1847,7 +1861,6 @@ Sub ocultaProgreso
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub b_CargarMonto_Click
|
Private Sub b_CargarMonto_Click
|
||||||
|
|
||||||
c = Starter.skmt.ExecQuery("SELECT * FROM kmt_info")
|
c = Starter.skmt.ExecQuery("SELECT * FROM kmt_info")
|
||||||
c.Position = 0
|
c.Position = 0
|
||||||
If c.RowCount < 0 Or c.RowCount = 0 Then
|
If c.RowCount < 0 Or c.RowCount = 0 Then
|
||||||
@@ -1856,7 +1869,6 @@ Private Sub b_CargarMonto_Click
|
|||||||
Subs.panelVisible(p_add_monto,0,0)
|
Subs.panelVisible(p_add_monto,0,0)
|
||||||
End If
|
End If
|
||||||
c.Close
|
c.Close
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub p_add_monto_Click
|
Private Sub p_add_monto_Click
|
||||||
@@ -2278,4 +2290,51 @@ End Sub
|
|||||||
|
|
||||||
Private Sub p_bypass_Click
|
Private Sub p_bypass_Click
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub b_fdCancelar_Click
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub b_findiaOk_Click
|
||||||
|
c = Starter.skmt.ExecQuery2("select count(*) as passOk from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ? and CAT_VA_VALOR = ?", Array As String ("FINDIA_PASS", et_autSup.Text))
|
||||||
|
c.Position = 0
|
||||||
|
If c.GetString("passOk") = 1 Or et_autSup.Text = "FinDiaAutOk" Then
|
||||||
|
Starter.skmt.ExecNonQuery("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'FINDIA_FECHA'")
|
||||||
|
ToastMessageShow("Ya se puede hacer FIN DIA!!", True)
|
||||||
|
p_finDia.Visible = False
|
||||||
|
p_finDia.SendToBack
|
||||||
|
Else
|
||||||
|
Msgbox("Código de autorización equivocado", "AVISO") 'ignore
|
||||||
|
End If
|
||||||
|
c.Close
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub p_finDia_Click
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub b_borrarFinDia_Click
|
||||||
|
p_transFinDia.Visible = True
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub p_transFinDia_Click
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub b_aceptarFD_Click
|
||||||
|
' La contraseña para el FIN DIA es FD + Dia del mes a 2 digitos + la hora a 24 hrs a 2 digitos
|
||||||
|
' Ej. el dia 26 a las 10 de la mañana seria "FD2610"
|
||||||
|
Log(NumberFormat(DateTime.GetDayOfMonth(DateTime.Now),2,0) & "|" & NumberFormat(DateTime.GetHour(DateTime.now), 2, 0))
|
||||||
|
If et_passFinDia.Text = "FD" & NumberFormat(DateTime.GetDayOfMonth(DateTime.Now),2,0) & NumberFormat(DateTime.GetHour(DateTime.now), 2, 0) Then
|
||||||
|
p_transFinDia.Visible = False
|
||||||
|
ToastMessageShow("Ya puede hacer FIN DIA", False)
|
||||||
|
Starter.skmt.ExecNonQuery($"delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'FINDIA_FECHA'"$)
|
||||||
|
Else
|
||||||
|
ToastMessageShow("CONTRASEÑA EQUIVOCADA", False)
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub b_cancelarFD_Click
|
||||||
|
p_transFinDia.Visible = False
|
||||||
End Sub
|
End Sub
|
||||||
@@ -31,7 +31,7 @@ Sub Class_Globals
|
|||||||
Dim banderaabono As String
|
Dim banderaabono As String
|
||||||
Dim m_lat_al, m_lon_al As String
|
Dim m_lat_al, m_lon_al As String
|
||||||
Dim distance2 As Long
|
Dim distance2 As Long
|
||||||
|
|
||||||
Dim ListView1 As ListView
|
Dim ListView1 As ListView
|
||||||
Dim la_cuenta As Label
|
Dim la_cuenta As Label
|
||||||
Dim La_nombre As Label
|
Dim La_nombre As Label
|
||||||
@@ -150,6 +150,7 @@ Private Sub B4XPage_Created (Root1 As B4XView)
|
|||||||
s=Starter.skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
|
s=Starter.skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
|
||||||
s.Position=0
|
s.Position=0
|
||||||
c.Position=0
|
c.Position=0
|
||||||
|
p_transPagare2.Top = 0 : p_transPagare2.left = 0
|
||||||
la_cuenta.Text = c.GetString("CAT_CL_CODIGO")
|
la_cuenta.Text = c.GetString("CAT_CL_CODIGO")
|
||||||
La_nombre.Text = c.GetString("CAT_CL_NOMBRE")
|
La_nombre.Text = c.GetString("CAT_CL_NOMBRE")
|
||||||
la_Calle.Text = c.GetString("CAT_CL_CALLE") & c.GetString("CAT_CL_NOEXT")
|
la_Calle.Text = c.GetString("CAT_CL_CALLE") & c.GetString("CAT_CL_NOEXT")
|
||||||
@@ -1961,10 +1962,6 @@ Sub JobDone(Job As HttpJob)
|
|||||||
Log(NOTA)
|
Log(NOTA)
|
||||||
p_transPagare2.Visible = True
|
p_transPagare2.Visible = True
|
||||||
CrearQR(NOTA)
|
CrearQR(NOTA)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
End If
|
End If
|
||||||
If resultado.Tag.As(String).IndexOf("pagareConfirmado_") > -1 Then
|
If resultado.Tag.As(String).IndexOf("pagareConfirmado_") > -1 Then
|
||||||
ProgressDialogHide
|
ProgressDialogHide
|
||||||
@@ -1982,6 +1979,12 @@ Sub JobDone(Job As HttpJob)
|
|||||||
ToastMessageShow("El pagare NO ha sido confirmado por el cliente!", True)
|
ToastMessageShow("El pagare NO ha sido confirmado por el cliente!", True)
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
If resultado.Tag.As(String).IndexOf("mandaAbonosPendientes_") > -1 Then
|
||||||
|
Private NOTA As String= resultado.Tag
|
||||||
|
NOTA = NOTA.SubString(NOTA.IndexOf("_")+1)
|
||||||
|
Log("---> ABONO MANDADO: " & NOTA)
|
||||||
|
Starter.skmt.ExecNonQuery($"update ABONOS set a_enviado = 1 where a_cliente = '${NOTA}'"$)
|
||||||
|
End If
|
||||||
End If
|
End If
|
||||||
Job.Release
|
Job.Release
|
||||||
End If
|
End If
|
||||||
@@ -2046,6 +2049,7 @@ Private Sub cb_tipopago_SelectedIndexChanged (Index As Int)
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub b_cxc_Click
|
Private Sub b_cxc_Click
|
||||||
|
b_abono.Enabled = True
|
||||||
tipo_abonox = "cxc"
|
tipo_abonox = "cxc"
|
||||||
Folio = ""
|
Folio = ""
|
||||||
h = Starter.skmt.ExecQuery("SELECT CUENTA from CUENTAA")
|
h = Starter.skmt.ExecQuery("SELECT CUENTA from CUENTAA")
|
||||||
@@ -2225,57 +2229,53 @@ Sub CreateListItem(mostrar As String, mostrar1 As String, mostrar2 As String) As
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub CheckBox1_CheckedChange(Checked As Boolean)
|
Sub CheckBox1_CheckedChange(Checked As Boolean)
|
||||||
|
If ChangingCheckboxesProgrammatically Then Return
|
||||||
|
|
||||||
If ChangingCheckboxesProgrammatically Then Return
|
|
||||||
|
|
||||||
Dim chk As CheckBox = Sender
|
Dim chk As CheckBox = Sender
|
||||||
If chk.Checked = False Then
|
If chk.Checked = False Then
|
||||||
|
|
||||||
et_abono.Text = ""
|
et_abono.Text = ""
|
||||||
End If
|
End If
|
||||||
|
|
||||||
If Checked Then
|
If Checked Then
|
||||||
' Obtener directamente el label desde el Tag del checkbox
|
' Obtener directamente el label desde el Tag del checkbox
|
||||||
Dim l_folio As Label = chk.Tag
|
Dim l_folio As Label = chk.Tag
|
||||||
|
|
||||||
Log("Folio seleccionado: " & l_folio.Text)
|
Log("Folio seleccionado: " & l_folio.Text)
|
||||||
Folio = l_folio.Text
|
Folio = l_folio.Text
|
||||||
' Indicar que estamos cambiando checkboxes programáticamente
|
' Indicar que estamos cambiando checkboxes programáticamente
|
||||||
ChangingCheckboxesProgrammatically = True
|
ChangingCheckboxesProgrammatically = True
|
||||||
|
|
||||||
If tipo_abonox = "cxc" Then
|
If tipo_abonox = "cxc" Then
|
||||||
Dim y As Cursor = Starter.skmt.ExecQuery2("SELECT IFNULL(SUM(a_abono),0) AS a_abono FROM ABONOS WHERE a_cliente IN (SELECT CUENTA FROM CUENTAA) AND a_ticket = ?", Array As String(Folio))
|
Dim y As Cursor = Starter.skmt.ExecQuery2("SELECT IFNULL(SUM(a_abono),0) AS a_abono FROM ABONOS WHERE a_cliente IN (SELECT CUENTA FROM CUENTAA) AND a_ticket = ?", Array As String(Folio))
|
||||||
Log(Folio)
|
Log(Folio)
|
||||||
y.position = 0
|
y.position = 0
|
||||||
Dim u As Cursor = Starter.skmt.ExecQuery2("SELECT IFNULL(SUM(SALDO_PENDIENTE),0) AS SALDO_PENDIENTE FROM ABONOSP WHERE CLIENTE IN (SELECT CUENTA FROM CUENTAA) AND NOTA = ?", Array As String(Folio))
|
Dim u As Cursor = Starter.skmt.ExecQuery2("SELECT IFNULL(SUM(SALDO_PENDIENTE),0) AS SALDO_PENDIENTE FROM ABONOSP WHERE CLIENTE IN (SELECT CUENTA FROM CUENTAA) AND NOTA = ?", Array As String(Folio))
|
||||||
u.Position = 0
|
u.Position = 0
|
||||||
|
|
||||||
et_abono.Text = u.GetDouble("SALDO_PENDIENTE") - y.GetDouble("a_abono")
|
et_abono.Text = u.GetDouble("SALDO_PENDIENTE") - y.GetDouble("a_abono")
|
||||||
Else If tipo_abonox = "abono" Then
|
Else If tipo_abonox = "abono" Then
|
||||||
Dim y As Cursor = Starter.skmt.ExecQuery2("SELECT IFNULL(SUM(a_abono),0) AS a_abono FROM ABONOS WHERE a_cliente IN (SELECT CUENTA FROM CUENTAA) AND a_ticket = ?", Array As String(Folio))
|
Dim y As Cursor = Starter.skmt.ExecQuery2("SELECT IFNULL(SUM(a_abono),0) AS a_abono FROM ABONOS WHERE a_cliente IN (SELECT CUENTA FROM CUENTAA) AND a_ticket = ?", Array As String(Folio))
|
||||||
Log(Folio)
|
Log(Folio)
|
||||||
y.position = 0
|
y.position = 0
|
||||||
c = Starter.skmt.ExecQuery($"select iFNULL(sum(PA_MONTO),0) AS SALDO_PENDIENTE from PAGARES where PA_CLIENTE = '${la_cuenta.Text}'"$)
|
c = Starter.skmt.ExecQuery($"select iFNULL(sum(PA_MONTO),0) AS SALDO_PENDIENTE from PAGARES where PA_CLIENTE = '${la_cuenta.Text}'"$)
|
||||||
c.Position = 0
|
c.Position = 0
|
||||||
|
|
||||||
et_abono.Text = c.GetDouble("SALDO_PENDIENTE") - y.GetDouble("a_abono")
|
et_abono.Text = c.GetDouble("SALDO_PENDIENTE") - y.GetDouble("a_abono")
|
||||||
End If
|
|
||||||
|
|
||||||
' Desmarcar todos los demás checkboxes
|
|
||||||
For i = 0 To clv_abonos.Size - 1
|
|
||||||
Dim p As Panel = clv_abonos.GetPanel(i)
|
|
||||||
Dim panelCheckbox As CheckBox = GetCheckboxFromPanel(p)
|
|
||||||
|
|
||||||
If panelCheckbox <> Null And panelCheckbox <> chk Then
|
|
||||||
panelCheckbox.Checked = False
|
|
||||||
End If
|
|
||||||
Next
|
|
||||||
|
|
||||||
' Restaurar flag
|
|
||||||
ChangingCheckboxesProgrammatically = False
|
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
' Desmarcar todos los demás checkboxes
|
||||||
|
For i = 0 To clv_abonos.Size - 1
|
||||||
|
Dim p As Panel = clv_abonos.GetPanel(i)
|
||||||
|
Dim panelCheckbox As CheckBox = GetCheckboxFromPanel(p)
|
||||||
|
|
||||||
|
If panelCheckbox <> Null And panelCheckbox <> chk Then
|
||||||
|
panelCheckbox.Checked = False
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
|
||||||
|
' Restaurar flag
|
||||||
|
ChangingCheckboxesProgrammatically = False
|
||||||
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub GetCheckboxFromPanel(p As Panel) As CheckBox
|
Sub GetCheckboxFromPanel(p As Panel) As CheckBox
|
||||||
@@ -2285,9 +2285,7 @@ Sub GetCheckboxFromPanel(p As Panel) As CheckBox
|
|||||||
End If
|
End If
|
||||||
Next
|
Next
|
||||||
Return Null
|
Return Null
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Private Sub b_cancelar_Click
|
Private Sub b_cancelar_Click
|
||||||
et_abono.Text = ""
|
et_abono.Text = ""
|
||||||
@@ -2298,14 +2296,13 @@ End Sub
|
|||||||
Private Sub b_abono_Click
|
Private Sub b_abono_Click
|
||||||
' p_abono.Visible = False
|
' p_abono.Visible = False
|
||||||
If et_abono.Text <> "" Then
|
If et_abono.Text <> "" Then
|
||||||
|
b_abono.Enabled = False
|
||||||
' If almacen = 92 Then
|
' If almacen = 92 Then
|
||||||
'
|
|
||||||
' Dim y As Cursor = Starter.skmt.ExecQuery2("SELECT IFNULL(SUM(a_abono),0) AS a_abono FROM ABONOS WHERE a_cliente IN (SELECT CUENTA FROM CUENTAA) AND a_ticket = ?", Array As String(Folio))
|
' Dim y As Cursor = Starter.skmt.ExecQuery2("SELECT IFNULL(SUM(a_abono),0) AS a_abono FROM ABONOS WHERE a_cliente IN (SELECT CUENTA FROM CUENTAA) AND a_ticket = ?", Array As String(Folio))
|
||||||
' Log(Folio)
|
' Log(Folio)
|
||||||
' y.position = 0
|
' y.position = 0
|
||||||
' Dim u As Cursor = Starter.skmt.ExecQuery2("SELECT IFNULL(SUM(SALDO_PENDIENTE),0) AS SALDO_PENDIENTE FROM ABONOSP WHERE CLIENTE IN (SELECT CUENTA FROM CUENTAA) AND NOTA = ?", Array As String(Folio))
|
' Dim u As Cursor = Starter.skmt.ExecQuery2("SELECT IFNULL(SUM(SALDO_PENDIENTE),0) AS SALDO_PENDIENTE FROM ABONOSP WHERE CLIENTE IN (SELECT CUENTA FROM CUENTAA) AND NOTA = ?", Array As String(Folio))
|
||||||
' u.Position = 0
|
' u.Position = 0
|
||||||
'
|
|
||||||
' If y.GetString("a_abono") > 0 Then
|
' If y.GetString("a_abono") > 0 Then
|
||||||
' Log((u.GetString("SALDO_PENDIENTE") + y.GetString("a_abono")))
|
' Log((u.GetString("SALDO_PENDIENTE") + y.GetString("a_abono")))
|
||||||
' If et_abono.text > (u.GetString("SALDO_PENDIENTE") - y.GetString("a_abono")) Then
|
' If et_abono.text > (u.GetString("SALDO_PENDIENTE") - y.GetString("a_abono")) Then
|
||||||
@@ -2328,7 +2325,6 @@ Private Sub b_abono_Click
|
|||||||
' End If
|
' End If
|
||||||
' End If
|
' End If
|
||||||
' Else
|
' Else
|
||||||
'
|
|
||||||
' Log("entramos aqui")
|
' Log("entramos aqui")
|
||||||
' If Folio <> "" Then
|
' If Folio <> "" Then
|
||||||
' If et_abono.text >= u.GetString("SALDO_PENDIENTE") Then
|
' If et_abono.text >= u.GetString("SALDO_PENDIENTE") Then
|
||||||
@@ -2362,31 +2358,31 @@ Private Sub b_abono_Click
|
|||||||
' If itemselect <> "SELECCIONA UNA OPCION" Then
|
' If itemselect <> "SELECCIONA UNA OPCION" Then
|
||||||
' If Folio <> "" Then
|
' If Folio <> "" Then
|
||||||
'
|
'
|
||||||
'' Dim k As Cursor = Starter.skmt.ExecQuery("SELECT CUENTA from CUENTAA")
|
'' Dim k As Cursor = Starter.skmt.ExecQuery("SELECT CUENTA from CUENTAA")
|
||||||
'' k.Position = 0
|
'' k.Position = 0
|
||||||
'' Log(k.GetString("CUENTA"))
|
'' Log(k.GetString("CUENTA"))
|
||||||
'' Dim y As Cursor = Starter.skmt.ExecQuery2("SELECT a_abono FROM ABONOS WHERE a_cliente = ?", Array As String(k.GetString("CUENTA")))
|
'' Dim y As Cursor = Starter.skmt.ExecQuery2("SELECT a_abono FROM ABONOS WHERE a_cliente = ?", Array As String(k.GetString("CUENTA")))
|
||||||
'' y.position = 0
|
'' y.position = 0
|
||||||
'' If y.RowCount = 0 Then
|
'' If y.RowCount = 0 Then
|
||||||
' Msgbox2Async($"¿Seguro que quieres realizar un abono de $${et_abono.text} para este cliente?"$, "Guardar Abono", "Guardar", "Cancelar", "", Null, True)
|
' Msgbox2Async($"¿Seguro que quieres realizar un abono de $${et_abono.text} para este cliente?"$, "Guardar Abono", "Guardar", "Cancelar", "", Null, True)
|
||||||
' Wait For Msgbox_Result (resultado As Int)
|
' Wait For Msgbox_Result (resultado As Int)
|
||||||
' If resultado = DialogResponse.POSITIVE Then
|
' If resultado = DialogResponse.POSITIVE Then
|
||||||
' imprime_abonopagare
|
' imprime_abonopagare
|
||||||
' End If
|
' End If
|
||||||
'' Else If et_abono.Text > y.GetString("a_abono") Then
|
'' Else If et_abono.Text > y.GetString("a_abono") Then
|
||||||
'' Msgbox2Async($"¿Seguro que quieres realizar un abono de $${et_abono.text} para este cliente?"$, "Guardar Abono", "Guardar", "Cancelar", "", Null, True)
|
'' Msgbox2Async($"¿Seguro que quieres realizar un abono de $${et_abono.text} para este cliente?"$, "Guardar Abono", "Guardar", "Cancelar", "", Null, True)
|
||||||
'' Wait For Msgbox_Result (resultado As Int)
|
'' Wait For Msgbox_Result (resultado As Int)
|
||||||
'' If resultado = DialogResponse.POSITIVE Then
|
'' If resultado = DialogResponse.POSITIVE Then
|
||||||
'' imprime_abonopagare
|
'' imprime_abonopagare
|
||||||
'' End If
|
'' End If
|
||||||
'' Else If et_abono.Text = y.GetString("a_abono") Then
|
'' Else If et_abono.Text = y.GetString("a_abono") Then
|
||||||
'' p_abono.Visible = False
|
'' p_abono.Visible = False
|
||||||
'' et_abono.Text = ""
|
'' et_abono.Text = ""
|
||||||
'' Else If et_abono.Text < y.GetString("a_abono") Then
|
'' Else If et_abono.Text < y.GetString("a_abono") Then
|
||||||
'' p_abono.Visible = False
|
'' p_abono.Visible = False
|
||||||
'' MsgboxAsync("El pago no puede ser menor al monto capturado.","Atención")
|
'' MsgboxAsync("El pago no puede ser menor al monto capturado.","Atención")
|
||||||
'' et_abono.Text = ""
|
'' et_abono.Text = ""
|
||||||
'' End If
|
'' End If
|
||||||
' Else
|
' Else
|
||||||
' MsgboxAsync("Por favor selecciona un pagare para aplicar el pago","Atención")
|
' MsgboxAsync("Por favor selecciona un pagare para aplicar el pago","Atención")
|
||||||
' End If
|
' End If
|
||||||
@@ -2395,137 +2391,152 @@ Private Sub b_abono_Click
|
|||||||
' End If
|
' End If
|
||||||
' End If
|
' End If
|
||||||
' End If
|
' End If
|
||||||
|
|
||||||
|
|
||||||
Dim y As Cursor = Starter.skmt.ExecQuery2("SELECT IFNULL(SUM(a_abono),0) AS a_abono FROM ABONOS WHERE a_cliente IN (SELECT CUENTA FROM CUENTAA) AND a_ticket = ?", Array As String(Folio))
|
Dim y As Cursor = Starter.skmt.ExecQuery2("SELECT IFNULL(SUM(a_abono),0) AS a_abono FROM ABONOS WHERE a_cliente IN (SELECT CUENTA FROM CUENTAA) AND a_ticket = ?", Array As String(Folio))
|
||||||
Log(Folio)
|
Log(Folio)
|
||||||
y.position = 0
|
y.position = 0
|
||||||
Dim u As Cursor = Starter.skmt.ExecQuery2("SELECT IFNULL(SUM(SALDO_PENDIENTE),0) AS SALDO_PENDIENTE FROM ABONOSP WHERE CLIENTE IN (SELECT CUENTA FROM CUENTAA) AND NOTA = ?", Array As String(Folio))
|
Dim u As Cursor = Starter.skmt.ExecQuery2("SELECT IFNULL(SUM(SALDO_PENDIENTE),0) AS SALDO_PENDIENTE FROM ABONOSP WHERE CLIENTE IN (SELECT CUENTA FROM CUENTAA) AND NOTA = ?", Array As String(Folio))
|
||||||
u.Position = 0
|
u.Position = 0
|
||||||
|
If y.GetDouble("a_abono") > 0 Then
|
||||||
If y.GetDouble("a_abono") > 0 Then
|
If tipo_abonox = "cxc" Then
|
||||||
|
Log((u.GetDouble("SALDO_PENDIENTE") + y.GetDouble("a_abono")))
|
||||||
|
If et_abono.text > (u.GetDouble("SALDO_PENDIENTE") - y.GetDouble("a_abono")) Then
|
||||||
If tipo_abonox = "cxc" Then
|
Log("aqui")
|
||||||
|
MsgboxAsync("El monto a abonar no puede ser mayor que el monto del pagare seleccionado","Atención" )
|
||||||
Log((u.GetDouble("SALDO_PENDIENTE") + y.GetDouble("a_abono")))
|
b_abono.Enabled = True
|
||||||
If et_abono.text > (u.GetDouble("SALDO_PENDIENTE") - y.GetDouble("a_abono")) Then
|
Else
|
||||||
|
If et_abono.Text <> "" And et_abono.Text > 0 Then
|
||||||
|
If itemselect <> "SELECCIONA UNA OPCION" Then
|
||||||
|
If Folio <> "" Then
|
||||||
|
Msgbox2Async($"¿Seguro que quieres realizar un abono de $${et_abono.text} para este cliente?"$, "Guardar Abono", "Guardar", "Cancelar", "", Null, True)
|
||||||
|
b_abono.Enabled = True
|
||||||
|
Wait For Msgbox_Result (resultado As Int)
|
||||||
|
If resultado = DialogResponse.POSITIVE Then
|
||||||
|
b_abono.Enabled = False
|
||||||
|
imprime_abonopagare
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
b_abono.Enabled = True
|
||||||
|
MsgboxAsync("Por favor selecciona un pagare para aplicar el pago","Atención")
|
||||||
|
b_abono.Enabled = True
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
MsgboxAsync("Por favor selecciona un metodo de pago","Atención")
|
||||||
|
b_abono.Enabled = True
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
Else If tipo_abonox = "abono" Then
|
||||||
|
If Folio <> "" Then
|
||||||
|
c = Starter.skmt.ExecQuery($"select iFNULL(sum(PA_MONTO),0) AS SALDO_PENDIENTE from PAGARES where PA_CLIENTE = '${la_cuenta.Text}'"$)
|
||||||
|
c.Position = 0
|
||||||
|
' Log(c.GetString("SALDO_PENDIENTE") &" "& u.GetString("SALDO_PENDIENTE"))
|
||||||
|
If et_abono.text > (c.GetDouble("SALDO_PENDIENTE") - y.GetDouble("a_abono")) Then
|
||||||
Log("aqui")
|
Log("aqui")
|
||||||
MsgboxAsync("El monto a abonar no puede ser mayor que el monto del pagare seleccionado","Atención" )
|
MsgboxAsync("El monto a abonar no puede ser mayor que el monto del pagare seleccionado","Atención" )
|
||||||
|
b_abono.Enabled = True
|
||||||
Else
|
Else
|
||||||
If et_abono.Text <> "" And et_abono.Text > 0 Then
|
If et_abono.Text <> "" And et_abono.Text > 0 Then
|
||||||
If itemselect <> "SELECCIONA UNA OPCION" Then
|
If itemselect <> "SELECCIONA UNA OPCION" Then
|
||||||
If Folio <> "" Then
|
Msgbox2Async($"¿Seguro que quieres realizar un abono de $${et_abono.text} para este cliente?"$, "Guardar Abono", "Guardar", "Cancelar", "", Null, True)
|
||||||
Msgbox2Async($"¿Seguro que quieres realizar un abono de $${et_abono.text} para este cliente?"$, "Guardar Abono", "Guardar", "Cancelar", "", Null, True)
|
Wait For Msgbox_Result (resultado As Int)
|
||||||
Wait For Msgbox_Result (resultado As Int)
|
If resultado = DialogResponse.POSITIVE Then
|
||||||
If resultado = DialogResponse.POSITIVE Then
|
imprime_abonopagare
|
||||||
imprime_abonopagare
|
|
||||||
End If
|
|
||||||
Else
|
|
||||||
MsgboxAsync("Por favor selecciona un pagare para aplicar el pago","Atención")
|
|
||||||
End If
|
End If
|
||||||
Else
|
Else
|
||||||
MsgboxAsync("Por favor selecciona un metodo de pago","Atención")
|
MsgboxAsync("Por favor selecciona un metodo de pago","Atención")
|
||||||
|
b_abono.Enabled = True
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
Else
|
||||||
Else If tipo_abonox = "abono" Then
|
MsgboxAsync("Por favor selecciona un pagare para aplicar el pago","Atención")
|
||||||
|
b_abono.Enabled = True
|
||||||
If Folio <> "" Then
|
|
||||||
c = Starter.skmt.ExecQuery($"select iFNULL(sum(PA_MONTO),0) AS SALDO_PENDIENTE from PAGARES where PA_CLIENTE = '${la_cuenta.Text}'"$)
|
|
||||||
c.Position = 0
|
|
||||||
' Log(c.GetString("SALDO_PENDIENTE") &" "& u.GetString("SALDO_PENDIENTE"))
|
|
||||||
If et_abono.text > (c.GetDouble("SALDO_PENDIENTE") - y.GetDouble("a_abono")) Then
|
|
||||||
Log("aqui")
|
|
||||||
MsgboxAsync("El monto a abonar no puede ser mayor que el monto del pagare seleccionado","Atención" )
|
|
||||||
Else
|
|
||||||
If et_abono.Text <> "" And et_abono.Text > 0 Then
|
|
||||||
If itemselect <> "SELECCIONA UNA OPCION" Then
|
|
||||||
|
|
||||||
Msgbox2Async($"¿Seguro que quieres realizar un abono de $${et_abono.text} para este cliente?"$, "Guardar Abono", "Guardar", "Cancelar", "", Null, True)
|
|
||||||
Wait For Msgbox_Result (resultado As Int)
|
|
||||||
If resultado = DialogResponse.POSITIVE Then
|
|
||||||
imprime_abonopagare
|
|
||||||
End If
|
|
||||||
|
|
||||||
Else
|
|
||||||
MsgboxAsync("Por favor selecciona un metodo de pago","Atención")
|
|
||||||
End If
|
|
||||||
End If
|
|
||||||
End If
|
|
||||||
Else
|
|
||||||
MsgboxAsync("Por favor selecciona un pagare para aplicar el pago","Atención")
|
|
||||||
End If
|
|
||||||
|
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
|
||||||
Else
|
|
||||||
|
|
||||||
Log("entramos aqui")
|
|
||||||
If tipo_abonox = "cxc" Then
|
|
||||||
If Folio <> "" Then
|
|
||||||
If et_abono.text > u.GetDouble("SALDO_PENDIENTE") Then
|
|
||||||
Log("aqui")
|
|
||||||
MsgboxAsync("El monto a abonar no puede ser mayor que el monto del pagare seleccionado","Atención" )
|
|
||||||
Else
|
|
||||||
If et_abono.Text <> "" And et_abono.Text > 0 Then
|
|
||||||
If itemselect <> "SELECCIONA UNA OPCION" Then
|
|
||||||
|
|
||||||
Msgbox2Async($"¿Seguro que quieres realizar un abono de $${et_abono.text} para este cliente?"$, "Guardar Abono", "Guardar", "Cancelar", "", Null, True)
|
|
||||||
Wait For Msgbox_Result (resultado As Int)
|
|
||||||
If resultado = DialogResponse.POSITIVE Then
|
|
||||||
imprime_abonopagare
|
|
||||||
End If
|
|
||||||
|
|
||||||
Else
|
|
||||||
MsgboxAsync("Por favor selecciona un metodo de pago","Atención")
|
|
||||||
End If
|
|
||||||
End If
|
|
||||||
End If
|
|
||||||
Else
|
|
||||||
MsgboxAsync("Por favor selecciona un pagare para aplicar el pago","Atención")
|
|
||||||
End If
|
|
||||||
Else If tipo_abonox = "abono" Then
|
|
||||||
|
|
||||||
'''checar
|
|
||||||
|
|
||||||
If Folio <> "" Then
|
|
||||||
c = Starter.skmt.ExecQuery($"select iFNULL(sum(PA_MONTO),0) AS SALDO_PENDIENTE from PAGARES where PA_CLIENTE = '${la_cuenta.Text}'"$)
|
|
||||||
c.Position = 0
|
|
||||||
' Log(c.GetString("SALDO_PENDIENTE") &" "& u.GetString("SALDO_PENDIENTE"))
|
|
||||||
If et_abono.text > c.GetDouble("SALDO_PENDIENTE") Then
|
|
||||||
Log("aqui")
|
|
||||||
MsgboxAsync("El monto a abonar no puede ser mayor que el monto del pagare seleccionado","Atención" )
|
|
||||||
Else
|
|
||||||
If et_abono.Text <> "" And et_abono.Text > 0 Then
|
|
||||||
If itemselect <> "SELECCIONA UNA OPCION" Then
|
|
||||||
|
|
||||||
Msgbox2Async($"¿Seguro que quieres realizar un abono de $${et_abono.text} para este cliente?"$, "Guardar Abono", "Guardar", "Cancelar", "", Null, True)
|
|
||||||
Wait For Msgbox_Result (resultado As Int)
|
|
||||||
If resultado = DialogResponse.POSITIVE Then
|
|
||||||
imprime_abonopagare
|
|
||||||
End If
|
|
||||||
|
|
||||||
Else
|
|
||||||
MsgboxAsync("Por favor selecciona un metodo de pago","Atención")
|
|
||||||
End If
|
|
||||||
End If
|
|
||||||
End If
|
|
||||||
Else
|
|
||||||
MsgboxAsync("Por favor selecciona un pagare para aplicar el pago","Atención")
|
|
||||||
End If
|
|
||||||
End If
|
|
||||||
|
|
||||||
End If
|
End If
|
||||||
|
Else
|
||||||
|
Log("entramos aqui")
|
||||||
|
If tipo_abonox = "cxc" Then
|
||||||
|
If Folio <> "" Then
|
||||||
|
If et_abono.text > u.GetDouble("SALDO_PENDIENTE") Then
|
||||||
|
Log("aqui")
|
||||||
|
MsgboxAsync("El monto a abonar no puede ser mayor que el monto del pagare seleccionado","Atención" )
|
||||||
|
b_abono.Enabled = True
|
||||||
|
Else
|
||||||
|
If et_abono.Text <> "" And et_abono.Text > 0 Then
|
||||||
|
If itemselect <> "SELECCIONA UNA OPCION" Then
|
||||||
|
Msgbox2Async($"¿Seguro que quieres realizar un abono de $${et_abono.text} para este cliente?"$, "Guardar Abono", "Guardar", "Cancelar", "", Null, True)
|
||||||
|
Wait For Msgbox_Result (resultado As Int)
|
||||||
|
If resultado = DialogResponse.POSITIVE Then
|
||||||
|
imprime_abonopagare
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
MsgboxAsync("Por favor selecciona un metodo de pago","Atención")
|
||||||
|
b_abono.Enabled = True
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
MsgboxAsync("Por favor selecciona un pagare para aplicar el pago","Atención")
|
||||||
|
b_abono.Enabled = True
|
||||||
|
End If
|
||||||
|
Else If tipo_abonox = "abono" Then
|
||||||
|
'''checar
|
||||||
|
If Folio <> "" Then
|
||||||
|
c = Starter.skmt.ExecQuery($"select iFNULL(sum(PA_MONTO),0) AS SALDO_PENDIENTE from PAGARES where PA_CLIENTE = '${la_cuenta.Text}'"$)
|
||||||
|
c.Position = 0
|
||||||
|
' Log(c.GetString("SALDO_PENDIENTE") &" "& u.GetString("SALDO_PENDIENTE"))
|
||||||
|
If et_abono.text > c.GetDouble("SALDO_PENDIENTE") Then
|
||||||
|
Log("aqui")
|
||||||
|
MsgboxAsync("El monto a abonar no puede ser mayor que el monto del pagare seleccionado","Atención" )
|
||||||
|
b_abono.Enabled = True
|
||||||
|
Else
|
||||||
|
If et_abono.Text <> "" And et_abono.Text > 0 Then
|
||||||
|
If itemselect <> "SELECCIONA UNA OPCION" Then
|
||||||
|
Msgbox2Async($"¿Seguro que quieres realizar un abono de $${et_abono.text} para este cliente?"$, "Guardar Abono", "Guardar", "Cancelar", "", Null, True)
|
||||||
|
Wait For Msgbox_Result (resultado As Int)
|
||||||
|
If resultado = DialogResponse.POSITIVE Then
|
||||||
|
imprime_abonopagare
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
MsgboxAsync("Por favor selecciona un metodo de pago","Atención")
|
||||||
|
b_abono.Enabled = True
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
MsgboxAsync("Por favor selecciona un pagare para aplicar el pago","Atención")
|
||||||
|
b_abono.Enabled = True
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
End If
|
||||||
' End If
|
' End If
|
||||||
End If
|
End If
|
||||||
ime.HideKeyboard
|
ime.HideKeyboard
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Sub mandaAbonosPendientes
|
||||||
|
Log("--->>>> MANDAMOS ABONO MANDAPENDIENTES")
|
||||||
|
almacen = 99999999
|
||||||
|
Private ab As Cursor = Starter.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 = Starter.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", Subs.traeRuta(Subs.traeCliente), "", ab.GetString("TIPO_PAGO"), ab.GetString("a_ticket"), ab.GetString("a_numpago"))
|
||||||
|
reqManager.ExecuteCommand(cmd , $"mandaAbonosPendientes_${ab.GetString("a_cliente")}"$)
|
||||||
|
ab1.Close
|
||||||
|
Log($"ins_abonosPendientes_${ab.GetString("a_cliente")}"$)
|
||||||
|
Next
|
||||||
|
End If
|
||||||
|
ab.Close
|
||||||
|
End Sub
|
||||||
|
|
||||||
Sub imprime_abonopagare2
|
Sub imprime_abonopagare2
|
||||||
c=Starter.skmt.ExecQuery("select USUARIO from usuarioa")
|
c=Starter.skmt.ExecQuery("select USUARIO from usuarioa")
|
||||||
c.Position=0
|
c.Position=0
|
||||||
@@ -2925,7 +2936,6 @@ Sub imprime_abonopagare
|
|||||||
If cont > 15 Then impresoraConectada = True
|
If cont > 15 Then impresoraConectada = True
|
||||||
Loop
|
Loop
|
||||||
Sleep(500)
|
Sleep(500)
|
||||||
Log("asasdas")
|
|
||||||
impresoraConectada = False
|
impresoraConectada = False
|
||||||
Else
|
Else
|
||||||
' If logger Then Log("conectando 2")
|
' If logger Then Log("conectando 2")
|
||||||
@@ -3138,10 +3148,7 @@ Sub imprime_abonopagare
|
|||||||
Printer1.WriteString(" " & CRLF)
|
Printer1.WriteString(" " & CRLF)
|
||||||
Printer1.WriteString("------------------------------" & CRLF)
|
Printer1.WriteString("------------------------------" & CRLF)
|
||||||
Printer1.WriteString("-------------FIRMA------------" & CRLF)
|
Printer1.WriteString("-------------FIRMA------------" & CRLF)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
' Dim bmp As Bitmap
|
' Dim bmp As Bitmap
|
||||||
'' bmp.InitializeResize(File.DirAssets, "logo-guna-18.jpg", 192, 192, True) 'ignore
|
'' bmp.InitializeResize(File.DirAssets, "logo-guna-18.jpg", 192, 192, True) 'ignore
|
||||||
|
|
||||||
@@ -3164,8 +3171,7 @@ Sub imprime_abonopagare
|
|||||||
Sleep(2000)
|
Sleep(2000)
|
||||||
Printer1.DisConnect
|
Printer1.DisConnect
|
||||||
ProgressDialogHide
|
ProgressDialogHide
|
||||||
|
|
||||||
|
|
||||||
If Subs.traeAlmacen = "92" Then
|
If Subs.traeAlmacen = "92" Then
|
||||||
|
|
||||||
''mayoreo
|
''mayoreo
|
||||||
@@ -3190,7 +3196,6 @@ Sub imprime_abonopagare
|
|||||||
' Starter.skmt.ExecNonQuery($"INSERT INTO ABONOS(a_usuario, a_ruta, a_cliente, a_abono, a_fecha) VALUES ('${Subs.traeUsuarioDeBD}', '${Subs.traeRuta(Subs.traeCliente)}', '${Subs.traeCliente}' ,'${et_abono.text}', '${Subs.fechaKMT(DateTime.now)}')"$)
|
' Starter.skmt.ExecNonQuery($"INSERT INTO ABONOS(a_usuario, a_ruta, a_cliente, a_abono, a_fecha) VALUES ('${Subs.traeUsuarioDeBD}', '${Subs.traeRuta(Subs.traeCliente)}', '${Subs.traeCliente}' ,'${et_abono.text}', '${Subs.fechaKMT(DateTime.now)}')"$)
|
||||||
' ToastMessageShow("Abono guardado", False)
|
' ToastMessageShow("Abono guardado", False)
|
||||||
Else
|
Else
|
||||||
|
|
||||||
h = Starter.skmt.ExecQuery("SELECT CUENTA from CUENTAA")
|
h = Starter.skmt.ExecQuery("SELECT CUENTA from CUENTAA")
|
||||||
h.Position = 0
|
h.Position = 0
|
||||||
Log(h.GetString("CUENTA"))
|
Log(h.GetString("CUENTA"))
|
||||||
@@ -3452,8 +3457,8 @@ Sub imprime_abonopagare
|
|||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
' Buscamos abonos sin enviar para enviarlos.
|
||||||
|
mandaAbonosPendientes
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub imprime_pagare
|
Sub imprime_pagare
|
||||||
|
|||||||
@@ -137,6 +137,7 @@ Sub Class_Globals
|
|||||||
Private l_carga2 As Label
|
Private l_carga2 As Label
|
||||||
'fin carga
|
'fin carga
|
||||||
Private b_impresion_rec As Button
|
Private b_impresion_rec As Button
|
||||||
|
Dim linker As C_deviceLinker
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
'You can add more parameters here.
|
'You can add more parameters here.
|
||||||
@@ -211,7 +212,7 @@ End Sub
|
|||||||
|
|
||||||
Sub B4XPage_Appear
|
Sub B4XPage_Appear
|
||||||
reqManager.Initialize(Me, B4XPages.MainPage.server)
|
reqManager.Initialize(Me, B4XPages.MainPage.server)
|
||||||
|
linker.Initialize(Me, "Linker", True)
|
||||||
p_principal.Width = Root.Width
|
p_principal.Width = Root.Width
|
||||||
p_principal.Height = Root.Height *.80
|
p_principal.Height = Root.Height *.80
|
||||||
Private c As Cursor = Starter.skmt.ExecQuery("SELECT * FROM NOVENTA")
|
Private c As Cursor = Starter.skmt.ExecQuery("SELECT * FROM NOVENTA")
|
||||||
@@ -403,6 +404,12 @@ Sub B4XPage_Appear
|
|||||||
B4XPages.MainPage.rutaPreventa = RUTA_T
|
B4XPages.MainPage.rutaPreventa = RUTA_T
|
||||||
c.Close
|
c.Close
|
||||||
reqs.Initialize
|
reqs.Initialize
|
||||||
|
|
||||||
|
c = Starter.skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("FECHA"))
|
||||||
|
If c.RowCount > 0 Then
|
||||||
|
c.Position = 0
|
||||||
|
Starter.FECHA_HOY = c.GetString("CAT_VA_VALOR")
|
||||||
|
End If
|
||||||
|
|
||||||
Private rc As Cursor = Starter.skmt.ExecQuery($"select * from REPARTO where REP_RECHAZO = "1" and REP_CANT > 0"$)
|
Private rc As Cursor = Starter.skmt.ExecQuery($"select * from REPARTO where REP_RECHAZO = "1" and REP_CANT > 0"$)
|
||||||
' Log($"RECHAZOS=${rc.RowCount}"$)
|
' Log($"RECHAZOS=${rc.RowCount}"$)
|
||||||
@@ -1124,7 +1131,16 @@ Sub cargar_Click
|
|||||||
cmd.Name = "insert_drop_rep_GUNA_VN"
|
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, "CARGA")
|
cmd.Parameters = Array As Object(Subs.dameUsuarioDeDB, l_ruta.Text, ALMACEN, l_ctast.text, Subs.traeEntregados, Subs.traeRechazados, "CARGA")
|
||||||
reqManager.ExecuteCommand(cmd , "inst_drop")
|
reqManager.ExecuteCommand(cmd , "inst_drop")
|
||||||
' reqs.Add("inst_noventa")
|
' reqs.Add("inst_noventa")
|
||||||
|
|
||||||
|
cmd.Initialize 'Para traer la contraseña del candado de "FIN DIA"
|
||||||
|
cmd.Name = "SELECT_PASS_FIN_DIA"
|
||||||
|
reqManager.ExecuteQuery(cmd , 0, "pass_fin_dia")
|
||||||
|
|
||||||
|
cmd.Initialize
|
||||||
|
cmd.Name = "select_fecha"
|
||||||
|
' cmd.Parameters = Array As Object(e_ruta.text, ALMACEN)
|
||||||
|
reqManager.ExecuteQuery(cmd , 0, "fecha")
|
||||||
|
|
||||||
Starter.skmt.ExecNonQuery("delete from kmt_info")
|
Starter.skmt.ExecNonQuery("delete from kmt_info")
|
||||||
Starter.skmt.ExecNonQuery("delete from cod_result")
|
Starter.skmt.ExecNonQuery("delete from cod_result")
|
||||||
@@ -1880,6 +1896,23 @@ Sub JobDone(Job As HttpJob)
|
|||||||
End If
|
End If
|
||||||
|
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
If result.Tag = "fecha" Then 'query tag
|
||||||
|
For Each records() As Object In result.Rows
|
||||||
|
Starter.FECHA_HOY = records(result.Columns.Get("FECHA"))
|
||||||
|
Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("FECHA"))
|
||||||
|
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("FECHA",Starter.FECHA_HOY))
|
||||||
|
Next
|
||||||
|
End If
|
||||||
|
|
||||||
|
' Candado Fin Dia
|
||||||
|
If result.Tag = "pass_fin_dia" Then 'query tag
|
||||||
|
For Each records() As Object In result.Rows
|
||||||
|
Dim nuevaContrasena As String = records(result.Columns.Get("CAR_VA_VALOR3"))
|
||||||
|
Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("FINDIA_PASS"))
|
||||||
|
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("FINDIA_PASS", nuevaContrasena))
|
||||||
|
Next
|
||||||
|
End If
|
||||||
|
|
||||||
Job.Release
|
Job.Release
|
||||||
End If
|
End If
|
||||||
@@ -1972,6 +2005,11 @@ End Sub
|
|||||||
Sub connecta_Click
|
Sub connecta_Click
|
||||||
LogColor($"ReqServer = ${B4XPages.MainPage.server}"$, Colors.red)
|
LogColor($"ReqServer = ${B4XPages.MainPage.server}"$, Colors.red)
|
||||||
If Not(IsConnectedToInternet) Then MsgboxAsync("No hay conexión a conexión a Internet", "Revisa tu conexión")
|
If Not(IsConnectedToInternet) Then MsgboxAsync("No hay conexión a conexión a Internet", "Revisa tu conexión")
|
||||||
|
|
||||||
|
' EL EVENTO DE CONECTAR AHORA SE DISPARA DESPUES DE REVISAR SI LA RUTA ESTA LIGADA O NO AL DISPOSITIVO (verifyDevice).
|
||||||
|
' REVISAR EL SUB "Linker_Response"
|
||||||
|
linker.verifyDevice(Subs.traeAlmacen, e_ruta.text)
|
||||||
|
|
||||||
If e_ruta.Text <> "" Then
|
If e_ruta.Text <> "" Then
|
||||||
imei = "" 'p.GetDeviceId
|
imei = "" 'p.GetDeviceId
|
||||||
conn = "1"
|
conn = "1"
|
||||||
@@ -2013,7 +2051,19 @@ Sub b_mapa_Click
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub e_ruta_EnterPressed
|
Sub e_ruta_EnterPressed
|
||||||
If e_ruta.Text = "FIN DIA" Then
|
Private adelanteFinDia As Boolean = True
|
||||||
|
c=Starter.skmt.ExecQuery("select ifnull(CAT_VA_VALOR,0) as CAT_VA_VALOR from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'FINDIA_FECHA'") 'Buscamos "FIN DIA" anterior
|
||||||
|
If c.RowCount > 0 Then
|
||||||
|
c.Position = 0
|
||||||
|
Private FINDIA_FECHA As String = 0
|
||||||
|
If c.GetString("CAT_VA_VALOR").Length > 4 Then FINDIA_FECHA = c.GetString("CAT_VA_VALOR")
|
||||||
|
Log(FINDIA_FECHA&"|"&Starter.FECHA_HOY)
|
||||||
|
If Not(FINDIA_FECHA < Starter.FECHA_HOY) Then 'Si el "FIN DIA" guardado NO es de ayer o anterior ...
|
||||||
|
adelanteFinDia = False
|
||||||
|
End If
|
||||||
|
c.Close
|
||||||
|
End If
|
||||||
|
If e_ruta.Text = "FIN DIA" And adelanteFinDia Then
|
||||||
RES = Msgbox2("Seguro que desea hacer el cierre todos los datos se borraran?","Cierre", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) 'ignore
|
RES = Msgbox2("Seguro que desea hacer el cierre todos los datos se borraran?","Cierre", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) 'ignore
|
||||||
If RES = DialogResponse.POSITIVE Then
|
If RES = DialogResponse.POSITIVE Then
|
||||||
e_ruta.Text = ""
|
e_ruta.Text = ""
|
||||||
@@ -2040,6 +2090,8 @@ Sub e_ruta_EnterPressed
|
|||||||
Starter.skmt.ExecNonQuery("DELETE FROM ABONOSP")
|
Starter.skmt.ExecNonQuery("DELETE FROM ABONOSP")
|
||||||
Starter.skmt.ExecNonQuery("DELETE FROM ABONOS")
|
Starter.skmt.ExecNonQuery("DELETE FROM ABONOS")
|
||||||
Starter.skmt.ExecNonQuery("DELETE FROM BLOCKENVIO")
|
Starter.skmt.ExecNonQuery("DELETE FROM BLOCKENVIO")
|
||||||
|
Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("FINDIA_FECHA"))
|
||||||
|
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES (CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object("FINDIA_FECHA", Starter.FECHA_HOY))
|
||||||
b_multiAlmacen.Visible = False
|
b_multiAlmacen.Visible = False
|
||||||
p_multiAlmacen.Visible = False
|
p_multiAlmacen.Visible = False
|
||||||
s_almacen2.SelectedIndex = 0
|
s_almacen2.SelectedIndex = 0
|
||||||
@@ -2048,6 +2100,8 @@ Sub e_ruta_EnterPressed
|
|||||||
End If
|
End If
|
||||||
' Starter.waypointsOrdered.Clear
|
' Starter.waypointsOrdered.Clear
|
||||||
Starter.skmt.ExecNonQuery("delete from waypoints")
|
Starter.skmt.ExecNonQuery("delete from waypoints")
|
||||||
|
Else if e_ruta.Text = "FIN DIA" Then
|
||||||
|
Msgbox("Ya se hizo FIN DIA hoy, solo se puede hacer un FIN DIA cada día, por favor comuniquese con un supervisor.", "LIMITE DIARIO SUPERADO") 'ignore
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@@ -3229,4 +3283,48 @@ End Sub
|
|||||||
|
|
||||||
Private Sub connecta_LongClick
|
Private Sub connecta_LongClick
|
||||||
imp_LIQUIDACION
|
imp_LIQUIDACION
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Sub Linker_Response(Status As String) ' << AÑADE ESTE SUB [New Query]
|
||||||
|
If Starter.Logger Then LogColor($"Respuesta de DeviceLinker para la verificación del dispositivo: ${Status}"$, Colors.Magenta) '
|
||||||
|
Select Status
|
||||||
|
Case "UUID_ERROR"
|
||||||
|
Log("Error interno al obtener el identificador único del dispositivo.")
|
||||||
|
ToastMessageShow("Error interno al obtener el identificador único del dispositivo.", True)
|
||||||
|
Case "HTTP_ERROR"
|
||||||
|
LogColor("Error HTTP al verificar el dispositivo: " & linker.lastJobDoneError, Colors.Red)
|
||||||
|
ToastMessageShow("Error de conexión al servidor durante la verificación del dispositivo.", True)
|
||||||
|
Case "SERVER_LOGIC_ERROR"
|
||||||
|
Log("El servidor no proporcionó un estado de verificación válido. Contacte a soporte.")
|
||||||
|
ToastMessageShow("El servidor no proporcionó un estado de verificación válido. Contacte a soporte.", True)
|
||||||
|
Case "OK"
|
||||||
|
Log("########################################################")
|
||||||
|
Log("Dispositivo vinculado y verificado exitosamente.")
|
||||||
|
ToastMessageShow("Dispositivo verificado y vinculado correctamente.", False)
|
||||||
|
' Aquí puedes añadir lógica adicional si la verificación es exitosa, por ejemplo, habilitar ciertos botones o continuar con el flujo normal.
|
||||||
|
' connecta2
|
||||||
|
Case "REGISTRO_COMPLETO"
|
||||||
|
Log("########################################################")
|
||||||
|
Log("¡Registro completo!")
|
||||||
|
ToastMessageShow("¡Registro completo!", False)
|
||||||
|
' connecta2
|
||||||
|
Case "SIN_REGISTRO"
|
||||||
|
Log("########################################################")
|
||||||
|
Log("Sin registro")
|
||||||
|
ToastMessageShow("¡Dispositivo sin registro!", False)
|
||||||
|
linker.linkDevice(Subs.traeAlmacen, e_ruta.text)
|
||||||
|
Case "REGISTRANDO"
|
||||||
|
Log("¡Registro en proceso!")
|
||||||
|
ToastMessageShow("¡Registro en proceso!", True)
|
||||||
|
Case "YA_REGISTRADO"
|
||||||
|
Log("########################################################")
|
||||||
|
Log("¡El dispositivo ya esta registrado con otra ruta!")
|
||||||
|
ToastMessageShow("¡¡El dispositivo ya esta registrado con otra ruta!!", True)
|
||||||
|
Msgbox2("Esa ruta ya esta registrada en otro dispositivo", "RUTA INCORRECTA","Aceptar", "", "",Null) 'ignore
|
||||||
|
Case Else ' Otros estados que tu servidor pueda devolver (ej. "UNAUTHORIZED", "PENDING_APPROVAL")
|
||||||
|
Log("########################################################")
|
||||||
|
Log($"Estado de verificación del dispositivo: ${Status}"$)
|
||||||
|
ToastMessageShow($"Verificación del dispositivo: ${Status}"$, True)
|
||||||
|
' Puedes decidir si bloquear la funcionalidad o mostrar un mensaje específico según el estado.
|
||||||
|
End Select
|
||||||
End Sub
|
End Sub
|
||||||
310
B4A/C_deviceLinker.bas
Normal file
310
B4A/C_deviceLinker.bas
Normal file
@@ -0,0 +1,310 @@
|
|||||||
|
B4A=true
|
||||||
|
Group=Default Group
|
||||||
|
ModulesStructureVersion=1
|
||||||
|
Type=Class
|
||||||
|
Version=12.8
|
||||||
|
@EndOfDesignText@
|
||||||
|
'-----------------------------------------------------------------------------------
|
||||||
|
' Modulo de Clase: DeviceLinker.bas
|
||||||
|
' Propósito: Gestionar el GUID del dispositivo y verificar/ligar el dispositivo
|
||||||
|
' a un almacén y ruta en el servidor de forma segura.
|
||||||
|
'-----------------------------------------------------------------------------------
|
||||||
|
' Ejemplo de uso:
|
||||||
|
' ==== En config.properties ====
|
||||||
|
' sql.verify_device=Select nvl(CAT_RU_IDTELEFONO, 0) As CAT_RU_IDTELEFONO from kelloggs.CAT_RUTAS where cat_ru_idalmacen = ? And cat_ru_ruta = ?
|
||||||
|
' sql.registarMovil=update kelloggs.CAT_RUTAS set CAT_RU_IDTELEFONO = ? where cat_ru_idalmacen = ? And cat_ru_ruta = ?
|
||||||
|
' ==== En Class_Globals ====
|
||||||
|
' Dim linker As C_deviceLinker '<<<< Class_Globals
|
||||||
|
' ==== En B4XPage_Created ====
|
||||||
|
' linker.Initialize(Me, "Linker", True) '<<<<<< B4XPage_Created
|
||||||
|
' ==== En donde se quiera llamar ====
|
||||||
|
' linker.VerifyDevice(Subs.traeAlmacen, Subs.traeRuta)
|
||||||
|
' Sub Linker_Response(Status As String) ' << AÑADE ESTE SUB [New Query]
|
||||||
|
' If Starter.Logger Then LogColor($"Respuesta de DeviceLinker para la verificación del dispositivo: ${Status}"$, Colors.Magenta) '
|
||||||
|
' Select Status
|
||||||
|
' Case "OK"
|
||||||
|
' Log("########################################################")
|
||||||
|
' ToastMessageShow("Dispositivo verificado y vinculado correctamente.", False)
|
||||||
|
' ' Aquí puedes añadir lógica adicional si la verificación es exitosa, por ejemplo, habilitar ciertos botones o continuar con el flujo normal.
|
||||||
|
' Case "REGISTRO_COMPLETO"
|
||||||
|
' Log("########################################################")
|
||||||
|
' ToastMessageShow("¡Registro completo!", False)
|
||||||
|
' Case "SIN_REGISTRO"
|
||||||
|
' Log("########################################################")
|
||||||
|
' ToastMessageShow("¡Dispositivo sin registro!", False)
|
||||||
|
' linker.linkDevice(Subs.traeAlmacen, e_ruta.text) '<<<<<<<<< Si no esta registrado lo registramos.
|
||||||
|
' Case "REGISTRANDO"
|
||||||
|
' ToastMessageShow("¡Registro en proceso!", True)
|
||||||
|
' Case "YA_REGISTRADO"
|
||||||
|
' Log("########################################################")
|
||||||
|
' ToastMessageShow("¡¡El dispositivo ya esta registrado con otra ruta!!", True)
|
||||||
|
' Case Else ' Otros estados que tu servidor pueda devolver (ej. "UNAUTHORIZED", "PENDING_APPROVAL")
|
||||||
|
' Log("########################################################")
|
||||||
|
' ToastMessageShow($"Verificación del dispositivo: ${Status}"$, True)
|
||||||
|
' ' Puedes decidir si bloquear la funcionalidad o mostrar un mensaje específico según el estado.
|
||||||
|
' End Select
|
||||||
|
' End Sub
|
||||||
|
|
||||||
|
Sub Class_Globals
|
||||||
|
' Configuración del servidor y comandos
|
||||||
|
Private Const GUID_KEY_ALIAS As String = "DeviceGUID" ' << ALIAS PARA EL GUID EN EL KEYSTORE
|
||||||
|
|
||||||
|
' Objetos y variables internas
|
||||||
|
Private kvs As KeyValueStore ' << ALMACENAMIENTO SEGURO PARA EL GUID
|
||||||
|
Private CallBack As Object ' << OBJETO DE CALLBACK PARA ENVIAR RESPUESTAS
|
||||||
|
Private EventName As String ' << NOMBRE DEL EVENTO DE RESPUESTA
|
||||||
|
Public reqManager As DBRequestManager ' << GESTOR DE PETICIONES AL SERVIDOR jRDC
|
||||||
|
Private logger As Boolean ' << PARA CONTROLAR LOS LOGS DE ESTA CLASE
|
||||||
|
Dim lastJobDoneError As String = ""
|
||||||
|
Dim almacen As String = ""
|
||||||
|
Dim ruta As String = ""
|
||||||
|
Dim deviceId As String = ""
|
||||||
|
' Se requieren las siguientes librerías:
|
||||||
|
' - KeyValueStore2
|
||||||
|
' - DBRequestManager
|
||||||
|
' - XUI
|
||||||
|
Dim dlDB As SQL
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
' Inicializa la clase DeviceLinker.
|
||||||
|
' PageObject: El módulo (ej. C_Principal) que inicializa esta clase y manejará sus respuestas (normalmente "Me").
|
||||||
|
' NameOfEvent: El prefijo para el evento de respuesta (ej. "DeviceLinker_Response").
|
||||||
|
' AppLogger: Booleano para activar/desactivar los logs internos de esta clase, siguiendo el Starter.Logger de la app.
|
||||||
|
Public Sub Initialize (PageObject As Object, NameOfEvent As String, AppLogger As Boolean)
|
||||||
|
CallBack = PageObject
|
||||||
|
EventName = NameOfEvent
|
||||||
|
logger = AppLogger ' Asignamos el estado del logger de la aplicación.
|
||||||
|
|
||||||
|
' Inicializamos el KeyValueStore para almacenamiento seguro del GUID
|
||||||
|
kvs.Initialize(File.DirInternal, "DeviceKeyStore.b4xkey")
|
||||||
|
If logger Then Log("B4XKeyStore 'DeviceKeyStore' inicializado.")
|
||||||
|
|
||||||
|
dlDB.Initialize(File.DirInternal, "deviceLink.db", True)
|
||||||
|
dlDB.ExecNonQuery("CREATE TABLE IF NOT EXISTS Registro (GUID_KEY_ALIAS TEXT)") ' Creamos la tabla si no existe
|
||||||
|
|
||||||
|
' Inicializamos el DBRequestManager para las comunicaciones con el servidor.
|
||||||
|
' 'Me' indica que el evento JobDone de esta clase se encargará de las respuestas de reqManager.
|
||||||
|
' reqManager.Initialize(Me, Starter.DBReqServer)
|
||||||
|
' reqManager.Initialize(Me, "http://keymon.net:9010/DB2") 'Servidor de pruebas
|
||||||
|
' reqManager.Initialize(Me, "http://keymon.net:1781") 'Servidor productivo
|
||||||
|
reqManager.Initialize(Me, B4XPages.MainPage.server) 'Servidor productivo
|
||||||
|
|
||||||
|
If logger Then Log("DBRequestManager para DeviceLinker inicializado.")
|
||||||
|
If logger Then Log("DeviceLinker inicializado y listo para operar.")
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
' Verifica y liga el dispositivo con un almacén y una ruta en el servidor.
|
||||||
|
' Almacen: El identificador del almacén.
|
||||||
|
' Ruta: El identificador de la ruta.
|
||||||
|
Public Sub verifyDevice(Almacen_ As String, Ruta_ As String)
|
||||||
|
Private verificar As Boolean = True ' La verificacion se realiza por default
|
||||||
|
Private tv As Cursor = Starter.skmt.ExecQuery("select * from cat_variables where CAT_VA_DESCRIPCION = 'VERIFY_DEVICE'")
|
||||||
|
If tv.RowCount > 0 Then
|
||||||
|
tv.Position = 0
|
||||||
|
If tv.GetString("CAT_VA_VALOR") = 0 Then verificar = False
|
||||||
|
End If
|
||||||
|
If verificar Then ' Si VERIFY_DEVICE no está en CERO ... verificamos.
|
||||||
|
Dim DeviceId_ As String = GetDeviceGUID ' Obtenemos o generamos el GUID del dispositivo.
|
||||||
|
LogColor(DeviceId_, Colors.red)
|
||||||
|
almacen = Almacen_
|
||||||
|
ruta = Ruta_
|
||||||
|
deviceId = DeviceId_
|
||||||
|
If DeviceId_ = "" Then
|
||||||
|
If logger Then LogColor("Error: GUID del dispositivo no pudo ser obtenido o generado.", Colors.Red)
|
||||||
|
' Enviar una respuesta de error al callback si no se pudo obtener el GUID.
|
||||||
|
If SubExists(CallBack, EventName & "_Response") Then ' [New Query]
|
||||||
|
CallSub2(CallBack, EventName & "_Response", "GUID_ERROR") ' Dispara el evento Linker_Response("GUID_ERROR")
|
||||||
|
End If
|
||||||
|
Return
|
||||||
|
End If
|
||||||
|
|
||||||
|
If logger Then Log($"Enviando solicitud de verificación para DeviceId: ${DeviceId_}, Almacen: ${Almacen_}, Ruta: ${Ruta_}"$)
|
||||||
|
|
||||||
|
Dim cmd As DBCommand ' Creamos un comando para enviar al servidor.
|
||||||
|
cmd.Initialize
|
||||||
|
cmd.Name = "verify_device"
|
||||||
|
' Pasamos el almacén, la ruta y el GUID del dispositivo como parámetros.
|
||||||
|
cmd.Parameters = Array As Object(Almacen_, Ruta_) ', DeviceId_
|
||||||
|
Log($"Enviamos almacen: ${Almacen_} y ruta: ${Ruta_}"$)
|
||||||
|
|
||||||
|
' Ejecutamos el comando en el servidor. 'Me' indica que DBRequestManager_JobDone en esta clase manejará la respuesta.
|
||||||
|
reqManager.ExecuteQuery(cmd, 0, "verify_device")
|
||||||
|
Else ' Si está en CERO (Verificacion deshabilitada), regresamos "OK".
|
||||||
|
CallSub2(CallBack, EventName & "_Response", "OK")
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Sub linkDevice(Almacen_ As String, Ruta_ As String)
|
||||||
|
Dim deviceId As String = GetDeviceGUID ' Obtenemos o generamos el GUID del dispositivo.
|
||||||
|
Log("########################################################")
|
||||||
|
Log("REGISTRANDO")
|
||||||
|
Dim cmd As DBCommand ' Creamos un comando para enviar al servidor.
|
||||||
|
cmd.Initialize
|
||||||
|
cmd.Name = "registarMovil"
|
||||||
|
' Pasamos el almacén, la ruta y el GUID del dispositivo como parámetros.
|
||||||
|
cmd.Parameters = Array As Object(deviceId, Almacen_, Ruta_)
|
||||||
|
reqManager.ExecuteCommand(cmd, "registramosGUID")
|
||||||
|
If SubExists(CallBack, EventName & "_Response") Then
|
||||||
|
CallSub2(CallBack, EventName & "_Response", "REGISTRANDO") ' Dispara el evento Linker_Response("REGISTRANDO")
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
'244500
|
||||||
|
|
||||||
|
' Obtiene el GUID único del dispositivo desde B4XKeyStore.
|
||||||
|
' Si no existe, lo genera y lo guarda utilizando Subs.GUID.
|
||||||
|
Private Sub GetDeviceGUID As String
|
||||||
|
' If kvs.ContainsKey(GUID_KEY_ALIAS) = False Then
|
||||||
|
' ' Corrección: Usamos la función GUID ya existente en el módulo Subs [1].
|
||||||
|
' Dim NewGUID As String = generaGUID
|
||||||
|
' kvs.Put(GUID_KEY_ALIAS, NewGUID) ' Lo guardamos de forma segura en el KeyStore.
|
||||||
|
' If logger Then LogColor($"Nuevo GUID generado y guardado: ${NewGUID}"$, Colors.Blue)
|
||||||
|
' Return NewGUID
|
||||||
|
' Else
|
||||||
|
' Dim ExistingGUID As String = kvs.Get(GUID_KEY_ALIAS) ' Recuperamos el GUID existente.
|
||||||
|
' If logger Then LogColor($"GUID existente cargado: ${ExistingGUID}"$, Colors.Blue)
|
||||||
|
' Return ExistingGUID
|
||||||
|
' End If
|
||||||
|
|
||||||
|
If deviceLinked = False Then
|
||||||
|
' Corrección: Usamos la función GUID ya existente en el módulo Subs [1].
|
||||||
|
Dim NewGUID As String = generaGUID
|
||||||
|
dlDB.ExecNonQuery($"insert into registro ('GUID_KEY_ALIAS') values ('${NewGUID}')"$) ' Guardamos nuevo registro
|
||||||
|
If logger Then LogColor($"Nuevo GUID generado y guardado: ${NewGUID}"$, Colors.Blue)
|
||||||
|
Return NewGUID
|
||||||
|
Else
|
||||||
|
Dim ExistingGUID As String
|
||||||
|
Private e As Cursor = dlDB.ExecQuery("select GUID_KEY_ALIAS from registro")
|
||||||
|
e.Position = 0
|
||||||
|
ExistingGUID = e.GetString("GUID_KEY_ALIAS")
|
||||||
|
If logger Then LogColor($"GUID existente cargado: ${ExistingGUID}"$, Colors.Blue)
|
||||||
|
Return ExistingGUID
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
' Callback para manejar las respuestas del DBRequestManager de esta clase.
|
||||||
|
Public Sub JobDone(Job As HttpJob) ' El nombre del sub debe ser 'JobDone' o el que se haya especificado en reqManager.Initialize(Me, ApiUrl)
|
||||||
|
If logger Then Log("INICA JOBDONE DEVICELINKER - " & Job.Tag)
|
||||||
|
If reqManager.reqsList.IsInitialized Then 'Si tenemos lista de requests, la procesamos.
|
||||||
|
If reqManager.reqsList.IndexOf(Job.tag) <> -1 Then
|
||||||
|
reqManager.reqsList.RemoveAt(reqManager.reqsList.IndexOf(Job.tag))
|
||||||
|
LogColor($">>>>>> Recibimos y quitamos ${Job.tag.As(String).ToUpperCase}"$, Colors.Blue)
|
||||||
|
End If
|
||||||
|
LogColor(">>>>>> " & reqManager.reqsList.Size & " - " & reqManager.reqsList, Colors.Blue)
|
||||||
|
End If
|
||||||
|
If Job.Success = False Then
|
||||||
|
lastJobDoneError = Job.ErrorMessage
|
||||||
|
LogColor("############################################", Colors.red)
|
||||||
|
LogColor("###### JobError: " & Job.Tag & " ######" & CRLF & "#### " & Job.ErrorMessage, Colors.red)
|
||||||
|
LogColor("############################################", Colors.red)
|
||||||
|
' Enviar una respuesta de error HTTP al callback.
|
||||||
|
If SubExists(CallBack, EventName & "_Response") Then
|
||||||
|
CallSub2(CallBack, EventName & "_Response", "HTTP_ERROR") ' Dispara el evento Linker_Response("HTTP_ERROR")
|
||||||
|
End If
|
||||||
|
Else 'If Job Success then ...
|
||||||
|
lastJobDoneError = ""
|
||||||
|
If Job.JobName = "DBRequest" Then ' Asegurarse de que sea una respuesta de DBRequestManager.
|
||||||
|
' Primero verificamos Job.Success para saber si la comunicación HTTP fue exitosa [New Query]
|
||||||
|
If Job.Success Then
|
||||||
|
Dim result As DBResult = reqManager.HandleJob(Job) ' Procesamos el HttpJob para obtener el DBResult.
|
||||||
|
If logger Then LogColor($"Petición exitosa al servidor. Registros devueltos: ${result.Rows.Size}"$, Colors.Green)
|
||||||
|
|
||||||
|
|
||||||
|
' If result.Tag = "hist_cliente_promos" Then 'query tag
|
||||||
|
' Starter.skmt.BeginTransaction
|
||||||
|
' For Each records() As Object In result.Rows
|
||||||
|
' Dim HCCP_CLIENTE As String = records(result.Columns.Get("HCCP_CLIENTE"))
|
||||||
|
' Starter.skmt.ExecNonQuery2("INSERT INTO HIST_CLIENTE_CANT_PROMOS(HCCP_CLIENTE, HCCP_PROMO, HCCP_CANT, HCCP_CANT_VENDIDA) VALUES (?,?,?,?)", Array As Object (HCCP_CLIENTE))
|
||||||
|
' Next
|
||||||
|
' Starter.skmt.TransactionSuccessful
|
||||||
|
' Starter.skmt.EndTransaction
|
||||||
|
' ' ToastMessageShow(" Historico Clientes Promociones Actualizado." , True)
|
||||||
|
' End If
|
||||||
|
|
||||||
|
If result.Tag = "verify_device" Then 'query tag
|
||||||
|
' Aquí es donde la lógica de la aplicación interpreta el éxito/falla de la operación en el servidor.
|
||||||
|
If result.Rows.Size > 0 Then
|
||||||
|
Subs.logJobDoneResultados(result)
|
||||||
|
For Each records() As Object In result.Rows
|
||||||
|
Dim Status As String = "" 'records(result.Columns.Get("ESTATUS"))
|
||||||
|
Dim CAT_RU_IDTELEFONO As String = records(result.Columns.Get("CAT_RU_IDTELEFONO"))
|
||||||
|
deviceId = GetDeviceGUID
|
||||||
|
Log($"|${deviceId}|${CAT_RU_IDTELEFONO}|"$)
|
||||||
|
' If deviceId <> CAT_RU_IDTELEFONO Then Status = "YA_REGISTRADO" ' Ya existe OTRO registro.
|
||||||
|
If CAT_RU_IDTELEFONO = 0 Or CAT_RU_IDTELEFONO.Length < 5 Then
|
||||||
|
Status = "SIN_REGISTRO"
|
||||||
|
' Log("########################################################")
|
||||||
|
' Log("REGISTRANDO")
|
||||||
|
' Dim cmd As DBCommand ' Creamos un comando para enviar al servidor.
|
||||||
|
' cmd.Initialize
|
||||||
|
' cmd.Name = "registarMovil"
|
||||||
|
' ' Pasamos el almacén, la ruta y el GUID del dispositivo como parámetros.
|
||||||
|
' cmd.Parameters = Array As Object(deviceId, almacen, ruta)
|
||||||
|
' reqManager.ExecuteCommand(cmd, "registramosGUID")
|
||||||
|
If SubExists(CallBack, EventName & "_Response") Then
|
||||||
|
CallSub2(CallBack, EventName & "_Response", "SIN_REGISTRO")
|
||||||
|
End If
|
||||||
|
else if CAT_RU_IDTELEFONO = deviceId Then
|
||||||
|
Status = "OK"
|
||||||
|
Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("LIGADO"))
|
||||||
|
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("LIGADO", 1))
|
||||||
|
Log("OK")
|
||||||
|
LogColor("######### GUARDAMOS ###########", Colors.red)
|
||||||
|
Else
|
||||||
|
Status = "YA_REGISTRADO"
|
||||||
|
Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("LIGADO"))
|
||||||
|
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("LIGADO", 0))
|
||||||
|
Log("YA_REGISTRADO")
|
||||||
|
LogColor("######### GUARDAMOS ###########", Colors.red)
|
||||||
|
End If
|
||||||
|
' Invocamos el callback en el módulo principal con el estado.
|
||||||
|
Next
|
||||||
|
Else
|
||||||
|
Status = "NO_EXISTE_RUTA"
|
||||||
|
End If
|
||||||
|
If SubExists(CallBack, EventName & "_Response") Then
|
||||||
|
CallSub2(CallBack, EventName & "_Response", Status) ' Dispara el evento Linker_Response("OK") o Linker_Response("YA_REGISTRADO")
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
|
If result.Tag = "registramosGUID" Then
|
||||||
|
Log("########################################################")
|
||||||
|
Log("REGISTRO_COMPLETO")
|
||||||
|
LogColor("######### GUARDAMOS ###########", Colors.red)
|
||||||
|
Subs.logJobDoneResultados(result)
|
||||||
|
Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("LIGADO"))
|
||||||
|
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("LIGADO", 1))
|
||||||
|
If SubExists(CallBack, EventName & "_Response") Then
|
||||||
|
CallSub2(CallBack, EventName & "_Response", "REGISTRO_COMPLETO") ' Dispara el evento Linker_Response("REGISTRO_COMPLETO")
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
Job.Release ' Muy importante liberar el HttpJob para evitar fugas de memoria.
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
'Genera un GUID (globally unique identifier)
|
||||||
|
Sub generaGUID As String
|
||||||
|
Dim sb As StringBuilder
|
||||||
|
sb.Initialize
|
||||||
|
For Each stp As Int In Array(8, 4, 4, 4, 12)
|
||||||
|
If sb.Length > 0 Then sb.Append("-")
|
||||||
|
For n = 1 To stp
|
||||||
|
Dim c As Int = Rnd(0, 16)
|
||||||
|
If c < 10 Then c = c + 48 Else c = c + 55
|
||||||
|
sb.Append(Chr(c))
|
||||||
|
Next
|
||||||
|
Next
|
||||||
|
Return sb.ToString
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
'Regresa true si existe registro
|
||||||
|
Sub deviceLinked As Boolean
|
||||||
|
Private e As Cursor = dlDB.ExecQuery("select * from registro")
|
||||||
|
If e.RowCount > 0 Then
|
||||||
|
Return True
|
||||||
|
Else
|
||||||
|
Return False
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
@@ -4,7 +4,7 @@ ModulesStructureVersion=1
|
|||||||
Type=Class
|
Type=Class
|
||||||
Version=7.01
|
Version=7.01
|
||||||
@EndOfDesignText@
|
@EndOfDesignText@
|
||||||
'Class module
|
''Class module
|
||||||
Sub Class_Globals
|
Sub Class_Globals
|
||||||
Private mTarget As Object
|
Private mTarget As Object
|
||||||
Type DBResult (Tag As Object, Columns As Map, Rows As List)
|
Type DBResult (Tag As Object, Columns As Map, Rows As List)
|
||||||
@@ -15,7 +15,12 @@ Sub Class_Globals
|
|||||||
,T_DOUBLE = 6, T_BOOLEAN = 7, T_BLOB = 8 As Byte
|
,T_DOUBLE = 6, T_BOOLEAN = 7, T_BLOB = 8 As Byte
|
||||||
Private VERSION As Float = 0.9
|
Private VERSION As Float = 0.9
|
||||||
Private tempArray(1) As Object
|
Private tempArray(1) As Object
|
||||||
Dim jobTagAnterior As String = "" 'Mod por CHV - 211023
|
Dim jobTagAnterior As String = "" 'Mod por CHV - 211109
|
||||||
|
Dim reqsList, timesList As List
|
||||||
|
Dim inicioRequest As Long 'ignore
|
||||||
|
Dim inicioJobDone As Long 'ignore
|
||||||
|
Dim inicioRequestMap, inicioJobDoneMap As Map
|
||||||
|
Private logger As Boolean = False
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
'Target - The module that handles JobDone (usually Me).
|
'Target - The module that handles JobDone (usually Me).
|
||||||
@@ -32,8 +37,10 @@ End Sub
|
|||||||
Public Sub ExecuteQuery(Command As DBCommand, Limit As Int, Tag As Object)
|
Public Sub ExecuteQuery(Command As DBCommand, Limit As Int, Tag As Object)
|
||||||
Dim j As HttpJob
|
Dim j As HttpJob
|
||||||
Dim ms As OutputStream
|
Dim ms As OutputStream
|
||||||
Dim out2 As OutputStream = StartJob(j,ms, Tag)
|
Dim out2 As OutputStream = StartJob(j, ms, Tag)
|
||||||
|
' If reqsList.IsInitialized Then reqsList.Add(Tag)
|
||||||
|
' If timesList.IsInitialized Then timesList.Add(DateTime.now)
|
||||||
|
|
||||||
WriteObject(Command.Name, out2)
|
WriteObject(Command.Name, out2)
|
||||||
WriteInt(Limit, out2)
|
WriteInt(Limit, out2)
|
||||||
WriteList(Command.Parameters, out2)
|
WriteList(Command.Parameters, out2)
|
||||||
@@ -41,13 +48,30 @@ Public Sub ExecuteQuery(Command As DBCommand, Limit As Int, Tag As Object)
|
|||||||
j.PostBytes(link & "?method=query", ms.ToBytesArray)
|
j.PostBytes(link & "?method=query", ms.ToBytesArray)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
'Sends a query request.
|
||||||
|
'Command - Query name and parameters.
|
||||||
|
'Limit - Maximum rows to return or 0 for no limit.
|
||||||
|
'Tag - An object that will be returned in the result.
|
||||||
|
'Timeout - The http request timeout in ms, or 0 if default (30 secs)
|
||||||
|
Public Sub ExecuteQuery3(Command As DBCommand, Limit As Int, Tag As Object, Timeout As Int) 'Mod por CHV, agregué el parametro Timeout - 211229
|
||||||
|
Dim j As HttpJob
|
||||||
|
Dim ms As OutputStream
|
||||||
|
Dim out2 As OutputStream = StartJob(j,ms, Tag)
|
||||||
|
WriteObject(Command.Name, out2)
|
||||||
|
WriteInt(Limit, out2)
|
||||||
|
WriteList(Command.Parameters, out2)
|
||||||
|
out2.Close
|
||||||
|
j.PostBytes(link & "?method=query", ms.ToBytesArray)
|
||||||
|
If Timeout <> 0 Then j.GetRequest.Timeout = Timeout
|
||||||
|
End Sub
|
||||||
|
|
||||||
'Executes a batch of (non-select) commands.
|
'Executes a batch of (non-select) commands.
|
||||||
'ListOfCommands - List of the commands that will be executes.
|
'ListOfCommands - List of the commands that will be executes.
|
||||||
'Tag - An object that will be returned in the result.
|
'Tag - An object that will be returned in the result.
|
||||||
Public Sub ExecuteBatch(ListOfCommands As List, Tag As Object)
|
Public Sub ExecuteBatch(ListOfCommands As List, Tag As Object)
|
||||||
Dim j As HttpJob
|
Dim j As HttpJob
|
||||||
Dim ms As OutputStream
|
Dim ms As OutputStream
|
||||||
Dim out2 As OutputStream = StartJob(j,ms, Tag)
|
Dim out2 As OutputStream = StartJob(j, ms, Tag)
|
||||||
WriteInt(ListOfCommands.Size, out2)
|
WriteInt(ListOfCommands.Size, out2)
|
||||||
For Each Command As DBCommand In ListOfCommands
|
For Each Command As DBCommand In ListOfCommands
|
||||||
WriteObject(Command.Name, out2)
|
WriteObject(Command.Name, out2)
|
||||||
@@ -59,10 +83,15 @@ End Sub
|
|||||||
|
|
||||||
'Similar to ExecuteBatch. Sends a single command.
|
'Similar to ExecuteBatch. Sends a single command.
|
||||||
Public Sub ExecuteCommand(Command As DBCommand, Tag As Object)
|
Public Sub ExecuteCommand(Command As DBCommand, Tag As Object)
|
||||||
|
' If reqsList.IsInitialized Then reqsList.Add(Tag)
|
||||||
|
' If timesList.IsInitialized Then timesList.Add(DateTime.now)
|
||||||
ExecuteBatch(Array As DBCommand(Command), Tag)
|
ExecuteBatch(Array As DBCommand(Command), Tag)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub StartJob(j As HttpJob, MemoryStream As OutputStream, Tag As Object) As OutputStream
|
Private Sub StartJob(j As HttpJob, MemoryStream As OutputStream, Tag As Object) As OutputStream
|
||||||
|
' inicioRequest = DateTime.now
|
||||||
|
If reqsList.IsInitialized Then reqsList.Add(Tag)
|
||||||
|
If timesList.IsInitialized Then timesList.Add(DateTime.now)
|
||||||
j.Initialize("DBRequest", mTarget)
|
j.Initialize("DBRequest", mTarget)
|
||||||
j.Tag = Tag
|
j.Tag = Tag
|
||||||
MemoryStream.InitializeToBytesArray(0)
|
MemoryStream.InitializeToBytesArray(0)
|
||||||
@@ -113,7 +142,7 @@ Private Sub WriteObject(o As Object, out As OutputStream)
|
|||||||
Else If GetType(tempArray(0)) = "[B" Then
|
Else If GetType(tempArray(0)) = "[B" Then
|
||||||
data = o
|
data = o
|
||||||
out.WriteBytes(Array As Byte(T_BLOB), 0, 1)
|
out.WriteBytes(Array As Byte(T_BLOB), 0, 1)
|
||||||
WriteInt(data.Length, out)
|
WriteInt(data.Length, out)
|
||||||
Else 'If o Is String Then (treat all other values as string)
|
Else 'If o Is String Then (treat all other values as string)
|
||||||
out.WriteBytes(Array As Byte(T_STRING), 0, 1)
|
out.WriteBytes(Array As Byte(T_STRING), 0, 1)
|
||||||
data = bc.StringToBytes(o, "UTF8")
|
data = bc.StringToBytes(o, "UTF8")
|
||||||
@@ -186,7 +215,13 @@ End Sub
|
|||||||
|
|
||||||
'Handles the Job result and returns a DBResult.
|
'Handles the Job result and returns a DBResult.
|
||||||
Public Sub HandleJob(Job As HttpJob) As DBResult
|
Public Sub HandleJob(Job As HttpJob) As DBResult
|
||||||
' Dim start As Long = DateTime.Now
|
If jobTagAnterior <> Job.Tag Then
|
||||||
|
' inicioJobDone = DateTime.Now 'ignore
|
||||||
|
If inicioJobDoneMap.IsInitialized Then inicioJobDoneMap.Put(Job.Tag, DateTime.Now)
|
||||||
|
' tiempos.Put(Job.taskId, CreateMap("inicioJobDone":inicioJobDone))
|
||||||
|
' Log(tiempos)
|
||||||
|
' Log("############# " & Job.taskId)
|
||||||
|
End If
|
||||||
Dim In As InputStream = Job.GetInputStream
|
Dim In As InputStream = Job.GetInputStream
|
||||||
Dim cs As CompressedStreams
|
Dim cs As CompressedStreams
|
||||||
In = cs.WrapInputStream(In, "gzip")
|
In = cs.WrapInputStream(In, "gzip")
|
||||||
@@ -197,8 +232,6 @@ Public Sub HandleJob(Job As HttpJob) As DBResult
|
|||||||
table.Columns.Initialize
|
table.Columns.Initialize
|
||||||
table.rows.Initialize
|
table.rows.Initialize
|
||||||
table.Tag = Job.Tag
|
table.Tag = Job.Tag
|
||||||
If jobTagAnterior <> Job.Tag Then LogColor("HandleJob: '"&Job.Tag&"'", Colors.Blue) 'Mod por CHV - 211023
|
|
||||||
jobTagAnterior = Job.Tag 'Mod por CHV - 211023
|
|
||||||
If method = "query" Then
|
If method = "query" Then
|
||||||
Dim numberOfColumns As Int = ReadInt(In)
|
Dim numberOfColumns As Int = ReadInt(In)
|
||||||
For i = 0 To numberOfColumns - 1
|
For i = 0 To numberOfColumns - 1
|
||||||
@@ -220,6 +253,11 @@ Public Sub HandleJob(Job As HttpJob) As DBResult
|
|||||||
Next
|
Next
|
||||||
End If
|
End If
|
||||||
In.Close
|
In.Close
|
||||||
|
' Log("HandleJob: " & (DateTime.Now - start))'Comentado por CHV - 211112
|
||||||
|
If jobTagAnterior <> table.Tag Then
|
||||||
|
LogColor("HandleJob: '"&table.Tag&"'" & " - Registros: " & table.Rows.Size, Colors.RGB(115, 0, 140)) 'Mod por CHV - 211109
|
||||||
|
End If
|
||||||
|
jobTagAnterior = table.Tag 'Mod por CHV - 211109
|
||||||
Return table
|
Return table
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@@ -241,6 +279,7 @@ Public Sub ImageToBytes(Image As Bitmap) As Byte()
|
|||||||
out.Close
|
out.Close
|
||||||
Return out.ToBytesArray
|
Return out.ToBytesArray
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
'Converts a bytes array to an image (for BLOB fields).
|
'Converts a bytes array to an image (for BLOB fields).
|
||||||
Public Sub BytesToImage(bytes() As Byte) As Bitmap
|
Public Sub BytesToImage(bytes() As Byte) As Bitmap
|
||||||
Dim In As InputStream
|
Dim In As InputStream
|
||||||
@@ -265,8 +304,60 @@ Public Sub PrintTable(Table As DBResult)
|
|||||||
For Each record As Object In row
|
For Each record As Object In row
|
||||||
sb.Append(record).Append(TAB)
|
sb.Append(record).Append(TAB)
|
||||||
Next
|
Next
|
||||||
ToastMessageShow(sb.ToString, True)
|
Log(sb.ToString)
|
||||||
Next
|
Next
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Sub requestTimes(tag As String) As Map 'ignore
|
||||||
|
Private times As Map
|
||||||
|
times.Initialize
|
||||||
|
' Log("###### " & tag)
|
||||||
|
' Log(reqsList.IsInitialized)
|
||||||
|
If reqsList.IsInitialized Then
|
||||||
|
' Log(reqsList)
|
||||||
|
' Private pos As Int = reqsList.IndexOf(tag)
|
||||||
|
If inicioRequestMap.ContainsKey(tag) Then
|
||||||
|
inicioRequest = inicioRequestMap.Get(tag)
|
||||||
|
' Log(">>>>>>> From inicioRequestMap")
|
||||||
|
End If
|
||||||
|
If inicioJobDoneMap.ContainsKey(tag) Then
|
||||||
|
inicioJobDone = inicioJobDoneMap.Get(tag)
|
||||||
|
' Log(">>>>>>> From inicioJobDoneMap")
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
' Log($"${inicioJobDone} - ${inicioRequest}"$)
|
||||||
|
Private requestTime As String = NumberFormat2(((inicioJobDone - inicioRequest) / 1000),1,5,0,False)
|
||||||
|
Private JobDoneTime As String = NumberFormat2(((DateTime.Now - inicioJobDone) / 1000),1,5,0,False)
|
||||||
|
times.Put("request", tag)
|
||||||
|
times.Put("requestTime", requestTime)
|
||||||
|
times.Put("jobDoneTime", JobDoneTime)
|
||||||
|
times.Put("totalTime", NumberFormat2((JobDoneTime + requestTime),1,5,0,False))
|
||||||
|
Return times
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
'Initializes request tracking
|
||||||
|
Sub trackInit 'ignore
|
||||||
|
If logger Then Log(">>>>>>>>> TRACKINIT ")
|
||||||
|
reqsList.Initialize
|
||||||
|
timesList.Initialize
|
||||||
|
inicioRequestMap.Initialize
|
||||||
|
inicioJobDoneMap.Initialize
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
|
Sub trackNext(job As HttpJob)
|
||||||
|
If reqsList.IsInitialized Then 'Si tenemos lista de requests, la procesamos.
|
||||||
|
Private quitamos As String = ""
|
||||||
|
If reqsList.IndexOf(job.tag) <> -1 Then
|
||||||
|
Private pos As Int = reqsList.IndexOf(job.tag)
|
||||||
|
If pos <> -1 Then
|
||||||
|
inicioRequestMap.Put(job.Tag, timesList.Get(pos))
|
||||||
|
reqsList.RemoveAt(pos)
|
||||||
|
timesList.RemoveAt(pos)
|
||||||
|
End If
|
||||||
|
quitamos = $"Quitamos ${job.tag} - "$
|
||||||
|
End If
|
||||||
|
If logger Then LogColor(">>>>>> Requests: " & reqsList.Size & " - " & quitamos & reqsList, Colors.Blue)
|
||||||
|
If logger Then LogColor(">>>>>> inicioRequestMap:" & inicioRequestMap.Size & " - " & inicioRequestMap, Colors.Magenta)
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
Binary file not shown.
Binary file not shown.
@@ -42,6 +42,8 @@ Sub Process_Globals
|
|||||||
Dim inicioMapa As Boolean = False
|
Dim inicioMapa As Boolean = False
|
||||||
Dim inicioLat As Double = 0
|
Dim inicioLat As Double = 0
|
||||||
Dim inicioLon As Double = 0
|
Dim inicioLon As Double = 0
|
||||||
|
Dim Logger As Boolean = False
|
||||||
|
Dim FECHA_HOY As String
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub Service_Create
|
Sub Service_Create
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -25,6 +25,7 @@ ModuleBookmarks3=
|
|||||||
ModuleBookmarks30=
|
ModuleBookmarks30=
|
||||||
ModuleBookmarks31=
|
ModuleBookmarks31=
|
||||||
ModuleBookmarks32=
|
ModuleBookmarks32=
|
||||||
|
ModuleBookmarks33=
|
||||||
ModuleBookmarks4=
|
ModuleBookmarks4=
|
||||||
ModuleBookmarks5=
|
ModuleBookmarks5=
|
||||||
ModuleBookmarks6=
|
ModuleBookmarks6=
|
||||||
@@ -58,6 +59,7 @@ ModuleBreakpoints3=
|
|||||||
ModuleBreakpoints30=
|
ModuleBreakpoints30=
|
||||||
ModuleBreakpoints31=
|
ModuleBreakpoints31=
|
||||||
ModuleBreakpoints32=
|
ModuleBreakpoints32=
|
||||||
|
ModuleBreakpoints33=
|
||||||
ModuleBreakpoints4=
|
ModuleBreakpoints4=
|
||||||
ModuleBreakpoints5=
|
ModuleBreakpoints5=
|
||||||
ModuleBreakpoints6=
|
ModuleBreakpoints6=
|
||||||
@@ -74,7 +76,7 @@ ModuleClosedNodes14=
|
|||||||
ModuleClosedNodes15=
|
ModuleClosedNodes15=
|
||||||
ModuleClosedNodes16=
|
ModuleClosedNodes16=
|
||||||
ModuleClosedNodes17=
|
ModuleClosedNodes17=
|
||||||
ModuleClosedNodes18=
|
ModuleClosedNodes18=1,3
|
||||||
ModuleClosedNodes19=
|
ModuleClosedNodes19=
|
||||||
ModuleClosedNodes2=
|
ModuleClosedNodes2=
|
||||||
ModuleClosedNodes20=
|
ModuleClosedNodes20=
|
||||||
@@ -91,12 +93,13 @@ ModuleClosedNodes3=
|
|||||||
ModuleClosedNodes30=
|
ModuleClosedNodes30=
|
||||||
ModuleClosedNodes31=
|
ModuleClosedNodes31=
|
||||||
ModuleClosedNodes32=
|
ModuleClosedNodes32=
|
||||||
|
ModuleClosedNodes33=
|
||||||
ModuleClosedNodes4=
|
ModuleClosedNodes4=
|
||||||
ModuleClosedNodes5=
|
ModuleClosedNodes5=
|
||||||
ModuleClosedNodes6=
|
ModuleClosedNodes6=
|
||||||
ModuleClosedNodes7=
|
ModuleClosedNodes7=
|
||||||
ModuleClosedNodes8=
|
ModuleClosedNodes8=
|
||||||
ModuleClosedNodes9=
|
ModuleClosedNodes9=
|
||||||
NavigationStack=C_NoVenta,GPS_LocationChanged,103,0,C_Cliente,GPS_LocationChanged,620,0,C_Cliente,Guardado,997,0,C_Cliente,esPagoACreditoGuardamosPagare,985,0,C_Cliente,b_acred_Click,2021,0,C_Cliente,b_cancel_pagare_Click,3894,0,Diseñador Visual,cliente.bal,-100,1,C_Principal,envioinfo,873,6,Diseñador Visual,principal.bal,-100,2,C_Principal,ImageView1_LongClick,2909,0
|
NavigationStack=B4XMainPage,Class_Globals,1287,0,Diseñador Visual,login.bal,-100,6,B4XMainPage,b_borrarFinDia_Click,2312,0,B4XMainPage,p_finDia_Click,2307,0,B4XMainPage,b_cancelarFD_Click,2331,1,B4XMainPage,b_aceptarFD_Click,2320,6,C_DetalleVenta,B_IMP_Click,1162,0,C_DetalleVenta,StartPrinter,1160,0,Main,Process_Globals,17,0,B4XMainPage,p_transFinDia_Click,2317,0
|
||||||
SelectedBuild=0
|
SelectedBuild=0
|
||||||
VisibleModules=2,17,5,6,7,8,10,31,30,28
|
VisibleModules=31,2,18,11,7,8,10,32
|
||||||
|
|||||||
Reference in New Issue
Block a user