Version 5.11.25

This commit is contained in:
2026-03-18 10:53:45 -06:00
parent 257ab5018a
commit 831bec62fc
22 changed files with 7642 additions and 115 deletions

View File

@@ -20,6 +20,21 @@ Version=9.85
'###########################################################################################################
#End Region
'Faltan:
' - Venta: Izca, Kelloggs, Profina, (Danvit y Salma no tienen forma de enviar la base de datos)
' - Reparto: Guna, Intmex, Durakelo, Profina, Marquez, Mazapa, Izca
'Reparto:
'HIST_VENTAS - Son los pedidos que el repartidor tiene que entregar.
'kmt_info - Cientes.
'NOVENTA - Cuantos entregados y cuantos no entregados.
'PAGARES - Pagares Nuevos.
'ABONOS_P - Pagares pendientes de cobro.
'ABONOS - Pagos realizados de pagares de ABONOS_P.
'PEDIDO - Ventas de rechazo (si hubo rechazo y se vendió, ahi aparece).
'PEDIDO_CLIENTE - Igual que pedido (solo encabezado de la venta).
'REPARTO -
'Ctrl + click ide://run?file=%WINDIR%\System32\cmd.exe&Args=/c&Args=github&Args=..\..\
Sub Class_Globals
@@ -29,7 +44,7 @@ Sub Class_Globals
Dim b_enviar As Button
Dim ime As IME
Dim skmt As SQL
Dim reqManager As DBRequestManager
Dim reqManager, thisReq As DBRequestManager
Dim cmd As DBCommand
Dim l_pedidos2 As Label
Dim l_diasVenta As Label
@@ -83,13 +98,38 @@ Sub Class_Globals
Dim i_progress As B4XGifView
Dim in As Intent
Dim intentUsado As Boolean = False
Dim Guna_Reparto As C_Guna_Reparto
Dim Intmex_Reparto As C_Intmex_Reparto
Dim Marquez_Reparto As C_Marquez_Reparto
Dim Durakelo_Reparto As C_Durakelo_Reparto
Dim Profina_Reparto As C_Profina_Reparto
Dim Mazapa_Reparto As C_Mazapa_Reparto
Dim Intmex As C_Intmex
Dim Kelloggs As C_Kelloggs
Dim Izca As C_Izca
Dim Durakelo As C_Durakelo
Dim Marquez As C_Marquez
Dim Mazapa As C_Mazapa
Dim Profina As C_Profina
Private l_version0 As Label
Private b_guardaRutaTodos As Button
Private b_guardaRuta As Button
Private p_datos_reparto As Panel
Dim tipoApp As String
Private l_ctast As Label
Private l_porvisitar As Label
Private Label9 As Label
Private l_e As Label
Private l_cuantosc As Label
Private l_r As Label
Private l_cuantosn As Label
Private L_MONTOE As Label
Private l_rechazo As Label
Private l_pagarescobrados As Label
Private l_pagaresnuevos As Label
Private l_montoaliquidar As Label
Private l_rutasP As Label
Private l_rutaRep As Label
End Sub
Public Sub Initialize
@@ -108,7 +148,7 @@ Sub B4XPage_Created (Root1 As B4XView)
Subs.centraPanel(p_datos, Root.Width)
Subs.centraPanel(p_validacion, Root.Width)
p_validacion.Top = l_diasVenta.Top
reqManager.Initialize(Me, "http://keymon.lat:1781")
reqManager.Initialize(Me, "http://keymon.net:1781")
B4XPages.SetTitle(Me, "Revisión de BD")
Subs.centraPanel(p_progressDialog, Root.Width)
Subs.centraPanel(p_editaRuta, Root.Width)
@@ -116,25 +156,43 @@ Sub B4XPage_Created (Root1 As B4XView)
Subs.centraPanel(p_editaUsuario, Root.Width)
Subs.centraPanel(p_clientes, Root.Width)
ime.Initialize("ime")
lv_DBRServer.AddSingleLine("http://keymon.lat:1781")
lv_DBRServer.AddSingleLine("http://keymon.lat:1782")
lv_DBRServer.AddSingleLine("http://192.99.93.204:1782")
et_server.Text = "http://keymon.lat:1781"
lv_DBRServer.AddSingleLine("http://keymon.net:1781")
' lv_DBRServer.AddSingleLine("http://keymon.net:1782")
lv_DBRServer.AddSingleLine("http://keymon.net:1782")
et_server.Text = "http://keymon.net:1781"
B_SERVER.Left = (Root.Width / 2) - (B_SERVER.Width / 2) 'Centramos B_SERVER
et_server.Left = (Root.Width / 2) - (et_server.Width / 2) 'Centramos et_server
lv_DBRServer.Left = (Root.Width / 2) - (lv_DBRServer.Width / 2) 'Centramos lv_DBRServer
sp_empresa.Add("------------")
sp_empresa.Add("Durakelo")
sp_empresa.Add("Guna")
sp_empresa.Add("Guna_Reparto")
sp_empresa.Add("Durakelo_Reparto")
sp_empresa.Add("Intmex")
sp_empresa.Add("Intmex_Reparto")
sp_empresa.Add("Mazapa_Reparto")
sp_empresa.Add("Marquez_Reparto")
sp_empresa.Add("Profina_Reparto")
sp_empresa.Add("Izca")
sp_empresa.Add("Kelloggs")
sp_empresa.Add("Mariana")
sp_empresa.Add("Marquez")
sp_empresa.Add("Mazapa")
sp_empresa.Add("Profina")
i_engrane.Left = Root.Width - i_engrane.Width - 5dip
Intmex.Initialize
Kelloggs.Initialize
Guna_Reparto.Initialize
Intmex_Reparto.Initialize
Mazapa_Reparto.Initialize
Marquez_Reparto.Initialize
Durakelo_Reparto.Initialize
Profina_Reparto.Initialize
Izca.Initialize
Durakelo.Initialize
Marquez.Initialize
Mazapa.Initialize
Profina.Initialize
End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
@@ -203,65 +261,26 @@ Sub B4XPage_Appear
Log(LastException)
LogColor("Error en CAT_VARIABLES", Colors.red)
End Try
Try
Dim c As Cursor = skmt.ExecQuery($"select count(distinct pe_cliente) as pedidos, group_concat(distinct substr(pe_fecha, 4,2)) as diasVenta, sum(pe_costo_tot) as total, (select PE_CANT from pedido where PE_CANT = 0) as cantsEnCero, (select count(distinct PE_CLIENTE) from pedido where printf("%d", PE_CLIENTE) <> PE_CLIENTE ) as clienteNoNumerico from pedido"$)
' Log(c.RowCount)
If c.RowCount > 0 Then
c.Position = 0
l_pedidos2.Text = c.GetString("pedidos")
l_diasVenta.Text = "N/A"
If c.GetString("diasVenta") <> Null Then l_diasVenta.Text = c.GetString("diasVenta")
If c.GetString("diasVenta").Length > 2 Then
l_diasVenta.TextColor = Colors.Red
Else
l_diasVenta.TextColor = Colors.Black
End If
If c.GetString("total") <> Null Then l_totalVenta.Text = "$" & NumberFormat2(c.GetString("total"), 1, 2, 2, True) Else l_totalVenta.Text = "0"
l_cantsEnCero.Text = "0"
If c.GetString("cantsEnCero") <> Null Then l_cantsEnCero.Text = c.GetString("cantsEnCero")
l_clienteNoNumerico.Text = c.GetString("clienteNoNumerico")
End If
c.Close
Catch
Log(LastException)
LogColor("Error en PEDIDO", Colors.red)
End Try
Try
Dim c As Cursor = skmt.ExecQuery("select pe_ruta from pedido")
If c.RowCount > 0 Then
c.Position = 0
ruta = c.GetString("PE_RUTA")
l_ruta2.Text = ruta
End If
c.Close
Catch
Log(LastException)
LogColor("Error en PEDIDO", Colors.red)
End Try
Try
Dim c As Cursor = skmt.ExecQuery("select USUARIO from usuarioa")
If c.RowCount > 0 Then
c.Position = 0
usuario = c.GetString("USUARIO")
l_usuario2.Text = usuario
End If
c.Close
Catch
Log(LastException)
LogColor("Error en USUARIOA", Colors.red)
End Try
Try
Dim c As Cursor = skmt.ExecQuery("select ID_ALMACEN from cat_almacen")
If c.RowCount > 0 Then
c.Position = 0
almacen = c.GetString("ID_ALMACEN")
l_almacen2.Text = almacen
End If
c.Close
Catch
Log(LastException)
LogColor("Error en CAT_ALMACEN", Colors.red)
End Try
If empresa.ToUpperCase.Contains("REPARTO") Then
p_datos_reparto.Top = p_datos.Top
p_datos_reparto.Left = p_datos.Left
p_datos_reparto.BringToFront
p_datos_reparto.Visible = True
tipoApp = "REPARTO"
Else
tipoApp = "VENTA"
p_datos_reparto.Visible = False
End If
If tipoApp = "VENTA" Then
leeInfoVenta
Else
p_datos_reparto.Top = p_datos.Top + 20dip
p_datos_reparto.Left = p_datos.Left
p_datos_reparto.BringToFront
p_datos_reparto.Visible = True
i_engrane.BringToFront
leeInfoReparto
End If
End If
Try
usuario = Subs.traeUsuarioDeBD
@@ -285,11 +304,51 @@ Sub B4XPage_Appear
b_valida.Text = "Validar Guna"
b_enviar.Enabled = True
Log("Cargamos GUNA")
else if empresa.ToUpperCase.Contains("GUNA_REPARTO") Then
b_enviar.Text = "Enviar Guna_Reparto"
b_valida.Text = "Validar Guna_Reparto"
b_enviar.Enabled = True
Log("Cargamos Guna_Reparto")
else if empresa.ToUpperCase.Contains("INTMEX_REPARTO") Then
b_enviar.Text = "Enviar Intmex_Reparto"
b_valida.Text = "Validar Intmex_Reparto"
b_enviar.Enabled = True
Log("Cargamos Intmex_Reparto")
else if empresa.ToUpperCase.Contains("MARQUEZ_REPARTO") Then
b_enviar.Text = "Enviar Marquez_Reparto"
b_valida.Text = "Validar Marquez_Reparto"
b_enviar.Enabled = True
Log("Cargamos Marquez_Reparto")
else if empresa.ToUpperCase.Contains("MAZAPA_REPARTO") Then
b_enviar.Text = "Enviar Mazapa_Reparto"
b_valida.Text = "Validar Mazapa_Reparto"
b_enviar.Enabled = True
Log("Cargamos Mazapa_Reparto")
else if empresa.ToUpperCase.Contains("DURAKELO_REPARTO") Then
b_enviar.Text = "Enviar Durakelo_Reparto"
b_valida.Text = "Validar Durakelo_Reparto"
b_enviar.Enabled = True
Log("Cargamos Durakelo_Reparto")
else if empresa.ToUpperCase.Contains("PROFINA_REPARTO") Then
b_enviar.Text = "Enviar Profina_Reparto"
b_valida.Text = "Validar Profina_Reparto"
b_enviar.Enabled = True
Log("Cargamos Profina_Reparto")
else if empresa.ToUpperCase.Contains("INTMEX") Then
b_enviar.Text = "Enviar Intmex"
b_valida.Text = "Validar Intmex"
b_enviar.Enabled = True
Log("Cargamos INTMEX")
else if empresa.ToUpperCase.Contains("KELLOGGS") Then
b_enviar.Text = "Enviar Kelloggs"
b_valida.Text = "Validar Kelloggs"
b_enviar.Enabled = True
Log("Cargamos KELLOGGS")
else if empresa.ToUpperCase.Contains("IZCA") Then
b_enviar.Text = "Enviar Izca"
b_valida.Text = "Validar Izca"
b_enviar.Enabled = True
Log("Cargamos IZCA")
else if empresa.ToUpperCase.Contains("DURAKELO") Then
b_enviar.Text = "Enviar Durakelo"
b_valida.Text = "Validar Durakelo"
@@ -305,12 +364,313 @@ Sub B4XPage_Appear
b_valida.Text = "Validar Mazapa"
b_enviar.Enabled = True
Log("Cargamos MAZAPA")
else if empresa.ToUpperCase.Contains("PROFINA") Then
b_enviar.Text = "Enviar Profina"
b_valida.Text = "Validar Profina"
b_enviar.Enabled = True
Log("Cargamos PROFINA")
Else
p_empresa.Visible = True
b_enviar.Enabled = False
End If
End Sub
Sub leeInfoVenta
Try
Dim c As Cursor = skmt.ExecQuery($"select count(distinct pe_cliente) as pedidos, group_concat(distinct substr(pe_fecha, 4,2)) as diasVenta, sum(pe_costo_tot) as total, (select PE_CANT from pedido where PE_CANT = 0) as cantsEnCero, (select count(distinct PE_CLIENTE) from pedido where printf("%d", PE_CLIENTE) <> PE_CLIENTE ) as clienteNoNumerico from pedido"$)
' Log(c.RowCount)
If c.RowCount > 0 Then
c.Position = 0
l_pedidos2.Text = c.GetString("pedidos")
l_diasVenta.Text = "N/A"
If c.GetString("diasVenta") <> Null Then l_diasVenta.Text = c.GetString("diasVenta")
If c.GetString("diasVenta").Length > 2 Then
l_diasVenta.TextColor = Colors.Red
Else
l_diasVenta.TextColor = Colors.Black
End If
If c.GetString("total") <> Null Then l_totalVenta.Text = "$" & NumberFormat2(c.GetString("total"), 1, 2, 2, True) Else l_totalVenta.Text = "0"
l_cantsEnCero.Text = "0"
If c.GetString("cantsEnCero") <> Null Then l_cantsEnCero.Text = c.GetString("cantsEnCero")
l_clienteNoNumerico.Text = c.GetString("clienteNoNumerico")
End If
c.Close
Catch
Log(LastException)
LogColor("Error en PEDIDO", Colors.red)
End Try
Try
Dim c As Cursor = skmt.ExecQuery("select pe_ruta from pedido")
If c.RowCount > 0 Then
c.Position = 0
ruta = c.GetString("PE_RUTA")
l_ruta2.Text = ruta
End If
c.Close
Catch
Log(LastException)
LogColor("Error en PEDIDO", Colors.red)
End Try
Try
Dim c As Cursor = skmt.ExecQuery("select USUARIO from usuarioa")
If c.RowCount > 0 Then
c.Position = 0
usuario = c.GetString("USUARIO")
l_usuario2.Text = usuario
End If
c.Close
Catch
Log(LastException)
LogColor("Error en USUARIOA", Colors.red)
End Try
Try
Dim c As Cursor = skmt.ExecQuery("select ID_ALMACEN from cat_almacen")
If c.RowCount > 0 Then
c.Position = 0
almacen = c.GetString("ID_ALMACEN")
l_almacen2.Text = almacen
End If
c.Close
Catch
Log(LastException)
LogColor("Error en CAT_ALMACEN", Colors.red)
End Try
End Sub
Sub leeInfoReparto
Private rescant As String
Private totalcantped As String
Private rescant2 As Double = 0
Dim f As Cursor = skmt.ExecQuery("select rutaa from rutaa")
If f.RowCount > 0 Then
f.Position = 0
l_rutaRep.Text = f.GetString("RUTAA")
End If
f = skmt.ExecQuery("select distinct CAT_CL_RUTA from kmt_info WHERE CAT_CL_RUTA <> 1000 order by CAT_CL_RUTA")
l_rutasP.Text = ""
For i = 0 To f.RowCount - 1
f.Position = i
If i = 0 Then
l_rutasP.Text = f.GetString("CAT_CL_RUTA")
Else
l_rutasP.Text = l_rutasP.Text & ", " & f.GetString("CAT_CL_RUTA")
End If
Next
f.Close
ActualizarEtiquetasReparto
End Sub
' Esta subrutina calcula y actualiza las etiquetas de totales en la página principal.
Sub ActualizarEtiquetasReparto
' --- Declaraciones de variables para cálculos ---
Private r5 As Cursor
Private r6 As Cursor
Private r55 As Cursor
Private r5r As Cursor
Private r6r As Cursor
Private rescant As String = 0
Private rescant2 As Double = 0
Private rescant3 As Double = 0
Private rescant4 As Double = 0
Private rescant5 As Double = 0
Private rescant6 As Double = 0
Private rescant7 As Double = 0
Dim b As Cursor = skmt.ExecQuery("Select count(*) as CUANTOS from pedido_cliente")
b.Position=0
Private Cuantos As String = b.GetString("CUANTOS")
Dim d As Cursor = skmt.ExecQuery("select count(distinct(CAT_CL_NOMBRE)) as TOTAL_VISITAR from kmt_info where gestion = 0 AND CAT_CL_RUTA <> 1000")
D.Position=0
Dim e As Cursor = skmt.ExecQuery("select COUNT(distinct(CAT_CL_NOMBRE)) as POR_VISITAR from kmt_info WHERE CAT_CL_RUTA <> 1000")
e.Position=0
Log(Cuantos)
If Cuantos = 0 Then
l_cuantosc.Text = 0
l_cuantosn.Text = 0
l_ctast.Text = d.GetString("TOTAL_VISITAR")
l_porvisitar.Text = e.GetString("POR_VISITAR")
End If
b = skmt.ExecQuery("select count(DISTINCT NV_CLIENTE) as CUANTOS from noventa where nv_motivo <> 'ENTREGA' and NV_CLIENTE <> 63403")
l_cuantosn.Text = 0
b.Position = 0
If b.RowCount > 0 Then l_cuantosn.Text = b.GetString("CUANTOS")
b.Close
Dim L As Cursor = skmt.ExecQuery("select count(DISTINCT NV_CLIENTE) as CLIENTES_DIA from noventa where nv_motivo = 'ENTREGA' and NV_CLIENTE <> 63403")
L.Position = 0
If L.RowCount > 0 Then l_cuantosc.Text = L.GetString("CLIENTES_DIA")
' --- Cálculo de l_rechazo y L_MONTOE ---
' Cálculo de rescant (Rechazos Cajas=0)
Try
r5 = skmt.ExecQuery($"select IFNULL(HVD_COSTO_TOT,0) AS HVD_COSTO_TOT, IFNULL(HVD_CANT,0) AS HVD_CANT, IFNULL(HVD_RECHAZOCANT,0) AS HVD_RECHAZOCANT, HVD_PROID, HVD_CLIENTE, CONSECUTIVO from HIST_VENTAS where HVD_RECHAZO = '1' and BCAJAS = '0' ORDER BY HVD_PROID "$)
rescant = 0
If r5.RowCount > 0 Then
For j4 = 0 To r5.RowCount -1
r5.Position = j4
Private r6 As Cursor = skmt.ExecQuery($"select IFNULL(SUM(PE_CANT),0) AS PE_CANT from PEDIDO where PE_CLIENTEOR = '${r5.GetString("HVD_CLIENTE")}' AND PE_PROID = '${r5.GetString("HVD_PROID")}' AND CONSECUTIVO = '${r5.GetString("CONSECUTIVO")}' "$)
Dim totalcantped As String
If r6.RowCount > 0 Then
r6.Position = 0
totalcantped = r6.GetString("PE_CANT")
Else
totalcantped = 0
End If
Log(r5.GetString("HVD_RECHAZOCANT") &" - "& totalcantped)
rescant = rescant + ((r5.GetString("HVD_COSTO_TOT")/(r5.GetString("HVD_CANT")))*((r5.GetString("HVD_RECHAZOCANT") - totalcantped)))
r6.Close
Next
End If
If rescant = "NaN" Then rescant = 0
r5.Close
Catch
ToastMessageShow("Falta columna HVD_RECHAZO_CANT", False)
Log(LastException)
End Try
Try
' Cálculo de rescant2 (Rechazos Cajas=1)
r5 = skmt.ExecQuery($"select IFNULL(HVD_COSTO_TOT,0) AS HVD_COSTO_TOT, IFNULL(HVD_CANT,0) AS HVD_CANT,IFNULL(CANTC,0) AS CANTC, IFNULL(HVD_RECHAZOCANT,0) AS HVD_RECHAZOCANT, HVD_PROID, HVD_CLIENTE, CONSECUTIVO from HIST_VENTAS where HVD_RECHAZO = '1' and BCAJAS = '1' "$)
rescant2 = 0
If r5.RowCount > 0 Then
For j5 = 0 To r5.RowCount -1
r5.Position = j5
Private r6 As Cursor = skmt.ExecQuery($"select IFNULL(SUM(PE_CANT),0) AS PE_CANT from PEDIDO where PE_CLIENTEOR = '${r5.GetString("HVD_CLIENTE")}' AND PE_PROID = '${r5.GetString("HVD_PROID")}' AND CONSECUTIVO = '${r5.GetString("CONSECUTIVO")}'"$)
r6.Position = 0
rescant2 = rescant2 + ((r5.GetString("HVD_COSTO_TOT")/(r5.GetString("CANTC")))*((r5.GetString("HVD_RECHAZOCANT") - r6.GetString("PE_CANT"))/Subs.traeConversion(r5.GetString("HVD_PROID"))))
rescant2 = NumberFormat2(rescant2, 0, 2, 2, False)
r6.Close
Next
End If
If rescant2 = "NaN" Then rescant2 = 0
Log(rescant2)
r5.Close
Catch
ToastMessageShow("Falta columna CANTC", False)
Log(LastException)
End Try
' Asignación de l_rechazo
l_rechazo.text = NumberFormat2((rescant + rescant2),0,2,2,False)
Try
' Cálculo de rescant3 (Entregado Cajas=0)
Private r55 As Cursor = skmt.ExecQuery($"select HVD_COSTO_TOT from HIST_VENTAS where HVD_RECHAZO = '0' and BCAJAS = '0' "$)
rescant3 = 0
If r55.RowCount > 0 Then
For r75 = 0 To r55.RowCount -1
r55.Position = r75
rescant3 = rescant3 + r55.GetString("HVD_COSTO_TOT")
rescant3 = NumberFormat2(rescant3, 0, 2, 2, False)
Next
End If
r55.Close
Catch
Log(LastException)
ToastMessageShow("Falta columna BCAJAS", False)
End Try
Try
' Cálculo de rescant4 (Entregado Cajas=1)
r5 = skmt.ExecQuery($"select IFNULL(SUM(HVD_COSTO_TOT),0) AS HVD_COSTO_TOT from HIST_VENTAS where HVD_RECHAZO = '0' and BCAJAS = '1' "$)
rescant4 = 0
If r5.RowCount > 0 Then
r5.Position = 0
rescant4 = r5.GetString("HVD_COSTO_TOT")
End If
Log(rescant4)
r5.Close
Catch
Log(LastException)
ToastMessageShow("Falta columna BCAJAS", False)
End Try
' Cálculo de rescant5 (Venta nueva en PEDIDO)
r5 = skmt.ExecQuery($"select IFNULL(SUM(PE_COSTO_TOT),0) AS PE_COSTO_TOT from PEDIDO "$)
rescant5 = 0
If r5.RowCount > 0 Then
r5.Position = 0
rescant5 = r5.GetString("PE_COSTO_TOT")
End If
Log(rescant5)
r5.Close
Try
' Cálculo de rescant6 (Entregado parcial Cajas=0)
r5 = skmt.ExecQuery($"select IFNULL(HVD_COSTO_TOT,0) AS HVD_COSTO_TOT, IFNULL(HVD_CANT,0) AS HVD_CANT, IFNULL(HVD_RECHAZOCANT,0) AS HVD_RECHAZOCANT, HVD_PROID, HVD_CLIENTE, CONSECUTIVO from HIST_VENTAS where HVD_RECHAZO = '1' and BCAJAS = '0' "$)
rescant6 = 0
If r5.RowCount > 0 Then
For j4 = 0 To r5.RowCount -1
r5.Position = j4
Private r6 As Cursor = skmt.ExecQuery($"select IFNULL(SUM(PE_CANT),0) AS PE_CANT from PEDIDO where PE_CLIENTEOR = '${r5.GetString("HVD_CLIENTE")}' AND PE_PROID = '${r5.GetString("HVD_PROID")}' AND CONSECUTIVO = '${r5.GetString("CONSECUTIVO")}' "$)
r6.Position = 0
rescant6 = rescant6 + ((r5.GetString("HVD_COSTO_TOT")/(r5.GetString("HVD_CANT")))*(r5.GetString("HVD_CANT")- r5.GetString("HVD_RECHAZOCANT")))
r6.Close
Next
End If
If rescant6 = "NaN" Then rescant6 = 0
LogColor(rescant6,Colors.Red)
r5.Close
Catch
Log(LastException)
ToastMessageShow("Falta columna HVD_CANT", False)
End Try
Try
' Cálculo de rescant7 (Entregado parcial Cajas=1)
r5 = skmt.ExecQuery($"select IFNULL(HVD_COSTO_TOT,0) AS HVD_COSTO_TOT, IFNULL(HVD_CANT,0) AS HVD_CANT,IFNULL(CANTC,0) AS CANTC, IFNULL(HVD_RECHAZOCANT,0) AS HVD_RECHAZOCANT, HVD_PROID, HVD_CLIENTE, CONSECUTIVO from HIST_VENTAS where HVD_RECHAZO = '1' and BCAJAS = '1' "$)
rescant7 = 0
If r5.RowCount > 0 Then
For j5 = 0 To r5.RowCount -1
r5.Position = j5
Private r6 As Cursor = skmt.ExecQuery($"select IFNULL(SUM(PE_CANT),0) AS PE_CANT from PEDIDO where PE_CLIENTEOR = '${r5.GetString("HVD_CLIENTE")}' AND PE_PROID = '${r5.GetString("HVD_PROID")}' AND CONSECUTIVO = '${r5.GetString("CONSECUTIVO")}'"$)
r6.Position = 0
rescant7 = rescant7 + ((r5.GetString("HVD_COSTO_TOT")/(r5.GetString("CANTC")))*((r5.GetString("HVD_CANT") - r5.GetString("HVD_RECHAZOCANT") )/Subs.traeConversion(r5.GetString("HVD_PROID"))))
r6.Close
Next
End If
If rescant7 = "NaN" Then rescant7 = 0
Log(rescant7)
r5.Close
Catch
Log(LastException)
End Try
' Asignación de L_MONTOE (Monto Entregado)
L_MONTOE.Text = NumberFormat2((rescant3 + rescant4 + rescant5 + rescant6 + rescant7),0,2,2,False)
Try
' --- Cálculo de l_pagarescobrados ---
Dim pagarescobrados As Cursor = skmt.ExecQuery("SELECT IfNull(SUM(a_abono),0) as a_abono FROM ABONOS")
pagarescobrados.Position = 0
l_pagarescobrados.Text = NumberFormat2(pagarescobrados.GetDouble("a_abono"),0,2,2,False)
pagarescobrados.Close
Catch
Log(LastException)
ToastMessageShow("Falta tabla ABONOS", False)
End Try
Try
' --- Cálculo de l_pagaresnuevos ---
Dim pagaresnuevos As Cursor = skmt.ExecQuery("SELECT IfNull(SUM(PA_MONTO),0) as PA_MONTO FROM PAGARES")
pagaresnuevos.Position = 0
l_pagaresnuevos.Text = NumberFormat2(pagaresnuevos.GetDouble("PA_MONTO"),0,2,2,False)
pagaresnuevos.Close
Catch
Log(LastException)
ToastMessageShow("Falta columna PA_MONTO", False)
End Try
Try
' --- Cálculo de l_montoaliquidar ---
l_montoaliquidar.Text = NumberFormat2((l_pagarescobrados.Text+ L_MONTOE.Text - l_pagaresnuevos.Text),0,2,2,False)
Catch
Log(LastException)
ToastMessageShow("Campo de pagares en blanco", False)
End Try
End Sub
Sub b_enviar_Click
Dim resultado = Msgbox2("Se va a enviar la venta de la BD", "AVISO", "Continuar", "Cancelar", "", Null) 'ignore
If resultado = DialogResponse.POSITIVE Then
@@ -323,14 +683,45 @@ Sub b_enviar_Click
envioMariana
else if empresa.ToUpperCase.Contains("GUNA") Then
envioGuna
else if empresa.ToUpperCase.Contains("GUNA_REPARTO") Then
' envioGuna_Reparto
Guna_Reparto.ConfigurarYEnviar("http://keymon.net:1782")
else if empresa.ToUpperCase.Contains("INTMEX_REPARTO") Then
' envioGuna_Reparto
Intmex_Reparto.ConfigurarYEnviar("http://keymon.net:1781")
else if empresa.ToUpperCase.Contains("MARQUEZ_REPARTO") Then
' envioGuna_Reparto
Marquez_Reparto.ConfigurarYEnviar("http://keymon.net:1781")
else if empresa.ToUpperCase.Contains("MAZAPA_REPARTO") Then
' envioGuna_Reparto
Mazapa_Reparto.ConfigurarYEnviar("http://keymon.net:1781")
else if empresa.ToUpperCase.Contains("DURAKELO_REPARTO") Then
' envioGuna_Reparto
Durakelo_Reparto.ConfigurarYEnviar("http://keymon.net:1781")
else if empresa.ToUpperCase.Contains("INTMEX") Then
envioIntmex
Intmex.ConfigurarYEnviar("http://keymon.net:1781")
' envioIntmex
else if empresa.ToUpperCase.Contains("KELLOGGS") Then
Kelloggs.ConfigurarYEnviar("http://keymon.net:1781")
' envioKelloggs
Kelloggs.ConfigurarYEnviar("http://keymon.net:1781")
else if empresa.ToUpperCase.Contains("IZCA") Then
' envioIzca
Izca.ConfigurarYEnviar("http://keymon.net:1781")
else if empresa.ToUpperCase.Contains("DURAKELO") Then
envioDurakelo
else if empresa.ToUpperCase.Contains("MARQUEZ") Then
envioMarquez
' envioMarquez
Marquez.ConfigurarYEnviar("http://keymon.net:1781")
else if empresa.ToUpperCase.Contains("MAZAPA") Then
envioMazapa
' envioMazapa
Mazapa.ConfigurarYEnviar("http://keymon.net:1781")
else if empresa.ToUpperCase.Contains("PROFINA") Then
' envioProfina
Profina.ConfigurarYEnviar("http://keymon.net:1781")
else if empresa.ToUpperCase.Contains("PROFINA_REPARTO") Then
' envioProfina
Profina_Reparto.ConfigurarYEnviar("http://keymon.net:1781")
End If
' Sleep(5000)
End If
@@ -338,6 +729,7 @@ Sub b_enviar_Click
End Sub
Sub JobDone(Job As HttpJob)
Log("JOBDONE MAINPAGE")
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))
@@ -603,6 +995,17 @@ Private Sub sp_empresa_ItemClick (Position As Int, Value As Object)
b_enviar.Enabled = False
b_valida.Enabled = False
End If
If Value.As(String).ToUpperCase.Contains("REPARTO") Then
p_datos_reparto.Top = p_datos.Top + 20dip
p_datos_reparto.Left = p_datos.Left
p_datos_reparto.BringToFront
p_datos_reparto.Visible = True
i_engrane.BringToFront
leeInfoReparto
Else
p_datos_reparto.Visible = False
leeInfoVenta
End If
Log(Value)
End Sub
@@ -731,10 +1134,38 @@ Sub envioMariana 'ignore
' reqManager.ExecuteCommand(cmd , "inst_noventa")
End Sub
Sub envioGuna_Reparto 'ignore
Guna_Reparto.envia
End Sub
Sub envioIntmex 'ignore
Intmex.envia
End Sub
Sub envioDurakeloReparto 'ignore
Durakelo_Reparto.envia
End Sub
Sub envioIntmexReparto 'ignore
Intmex_Reparto.envia
End Sub
Sub envioMarquezReparto 'ignore
Marquez_Reparto.envia
End Sub
Sub envioMazapaReparto 'ignore
Mazapa_Reparto.envia
End Sub
Sub envioKelloggs 'ignore
Kelloggs.envia
End Sub
Sub envioIzca 'ignore
Izca.envia
End Sub
Sub envioDurakelo 'ignore
Durakelo.envia
End Sub
@@ -747,8 +1178,17 @@ Sub envioMazapa 'ignore
Mazapa.envia
End Sub
Sub envioProfina 'ignore
Profina.envia
End Sub
Sub envioProfinaReparto 'ignore
Profina_Reparto.envia
End Sub
Sub envioGuna 'ignore
Private PASO As Int = 1
reqManager.Initialize(Me, "http://keymon.net:1782")
reqManager.reqsList.Initialize 'inicializamos lista de requests.
If PASO = 1 Then
B4XPages.MainPage.skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE not In (select PE_CLIENTE from pedido)")
@@ -762,6 +1202,7 @@ Sub envioGuna 'ignore
cmd.Name = "insert_pedidos_GV2"
cmd.Parameters = Array As Object(C.GetString("PC_CLIENTE"),C.GetString("PC_FECHA"),C.GetString("PC_USER"),C.GetString("PC_NOART"),C.GetString("PC_MONTO"),C.GetString("PC_LON"),C.GetString("PC_LAT"), almacen, ruta, C.GetString("PC_COSTO_SIN") )
B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "ins_pedidos")
Log("ins_pedidos")
Next
End If
c.Close
@@ -814,23 +1255,64 @@ Sub envioGuna 'ignore
Next
End If
c.Close
c = B4XPages.MainPage.skmt.ExecQuery("SELECT PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO, PE_COSTO_SIN, PE_RUTA, PE_DESC, PE_FOLIO FROM PEDIDO")
d = B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDO FROM PEDIDO")
If c.RowCount > 0 Then
For i = 0 To c.RowCount - 1
c.Position = i
c=B4XPages.MainPage.skmt.ExecQuery2("SELECT PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO, PE_COSTO_SIN, PE_RUTA, PE_DESC, PE_FOLIO FROM PEDIDO WHERE (PE_RECALCULO = ? or PE_RECALCULO = ? or PE_RECALCULO IS NULL)",Array As String("","null"))
d=B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDO 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_GV2"
cmd.Parameters = Array As Object(C.GetString("PE_CEDIS"), almacen, C.GetString("PE_COSTO_TOT"), C.GetString("PE_COSTOU"), C.GetString("PE_CANT"), C.GetString("PE_PRONOMBRE"), C.GetString("PE_PROID"), C.GetString("PE_CLIENTE"),C.GetString("PE_FECHA"),C.GetString("PE_USUARIO"),C.GetString("PE_RUTA"), C.GetString("PE_COSTO_SIN"),C.GetString("PE_DESC"),c.GetString("PE_FOLIO"))
' Log($"${C.GetString("PE_CEDIS")}, ${almacen}, ${C.GetString("PE_COSTO_TOT")}, ${C.GetString("PE_COSTOU")}, ${C.GetString("PE_CANT")}, C.GetString("PE_PRONOMBRE"), C.GetString("PE_PROID"), ${C.GetString("PE_CLIENTE")},${C.GetString("PE_FECHA")},${C.GetString("PE_USUARIO")},${C.GetString("PE_RUTA")}, C.GetString("PE_COSTO_SIN"),C.GetString("PE_DESC"),c.GetString("PE_FOLIO")"$)
B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "ins_pedido")
Log("ins_pedido")
Next
End If
c.Close
d.Position=0
Private cuantos_pedido As String = D.GetString("CUANTOS_PEDIDO")
cuantos_pedido = D.GetString("CUANTOS_PEDIDO")
d.Close
If almacen = "88" Or almacen = "6" Then
c=B4XPages.MainPage.skmt.ExecQuery2("SELECT PE_RECALCULO,PE_RECALCULOTOT,PE_RECCEDIS,PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO, PE_COSTO_SIN, PE_RUTA, PE_DESC, PE_FOLIO FROM PEDIDO WHERE PE_RECALCULO <> ? or PE_RECALCULO <> ? or PE_RECALCULO IS NOT NULL",Array As String("","null"))
d=B4XPages.MainPage.skmt.ExecQuery($"SELECT COUNT(*) as CUANTOS_PEDIDO FROM PEDIDO where PE_RUTA = '${Subs.traeRuta}'"$)
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_GV2_06"
cmd.Parameters = Array As Object(C.GetString("PE_RECCEDIS"), almacen, C.GetString("PE_RECALCULOTOT"), C.GetString("PE_RECALCULO"), C.GetString("PE_CANT"), C.GetString("PE_PRONOMBRE"), C.GetString("PE_PROID"), C.GetString("PE_CLIENTE"),C.GetString("PE_FECHA"),C.GetString("PE_USUARIO"),C.GetString("PE_RUTA"), C.GetString("PE_COSTO_SIN"),C.GetString("PE_DESC"),c.GetString("PE_FOLIO"))
B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "ins_pedido")
Log("ins_pedido")
Next
End If
c.Close
d.Position=0
cuantos_pedido = D.GetString("CUANTOS_PEDIDO")
d.Close
Else
c=B4XPages.MainPage.skmt.ExecQuery2("SELECT PE_RECALCULO,PE_RECALCULOTOT,PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO, PE_COSTO_SIN, PE_RUTA, PE_DESC, PE_FOLIO FROM PEDIDO WHERE PE_RECALCULO <> ? or PE_RECALCULO <> ? or PE_RECALCULO IS NOT NULL",Array As String("","null"))
d=B4XPages.MainPage.skmt.ExecQuery($"SELECT COUNT(*) as CUANTOS_PEDIDO FROM PEDIDO where PE_RUTA = '${Subs.traeRuta}'"$)
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_GV2_06"
cmd.Parameters = Array As Object(C.GetString("PE_CEDIS"), almacen, C.GetString("PE_RECALCULOTOT"), C.GetString("PE_RECALCULO"), C.GetString("PE_CANT"), C.GetString("PE_PRONOMBRE"), C.GetString("PE_PROID"), C.GetString("PE_CLIENTE"),C.GetString("PE_FECHA"),C.GetString("PE_USUARIO"),C.GetString("PE_RUTA"), C.GetString("PE_COSTO_SIN"),C.GetString("PE_DESC"),c.GetString("PE_FOLIO"))
B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "ins_pedido")
Log("ins_pedido")
Next
End If
c.Close
d.Position=0
cuantos_pedido = D.GetString("CUANTOS_PEDIDO")
d.Close
End If
' NOVENTA
c = B4XPages.MainPage.skmt.ExecQuery("SELECT NV_CLIENTE,NV_FECHA,NV_USER,NV_MOTIVO,NV_COMM,NV_LAT,NV_LON FROM NOVENTA")
If c.RowCount > 0 Then
@@ -849,7 +1331,7 @@ Sub envioGuna 'ignore
d.Position = 0
cuantos_noventa = D.GetString("CUANTOS_NOVENTA")
d.Close
' DATOS DE KMTS PARA EL TIPO DE ABARROTE.
'''CAT_CL_GIRO = ? WHERE CAT_CL_CODIGO = ? And CAT_CL_NOMBRE = ? kmt_info
c = B4XPages.MainPage.skmt.ExecQuery("Select CAT_CL_GIRO, CAT_CL_CODIGO from kmt_info")
@@ -978,10 +1460,10 @@ Sub valida(identificador As String)
Log("Validamos " & identificador)
If empresa.ToUpperCase.Contains("GUNA") Then
' reqManager.Initialize(Me, "http://keymon.lat:1782")
reqManager.Initialize(Me, "http://192.99.93.204:1782")
reqManager.Initialize(Me, "http://keymon.net:1782")
Else
' reqManager.Initialize(Me, "http://keymon.lat:1781")
reqManager.Initialize(Me, "http://192.99.93.204:1781")
reqManager.Initialize(Me, "http://keymon.net:1781")
End If
d = skmt.ExecQuery("SELECT COUNT(*) AS CUANTOS_NOVENTA FROM NOVENTA")
d.Position = 0
@@ -1015,6 +1497,7 @@ Sub valida(identificador As String)
End Sub
Private Sub p_empresa_Click
End Sub
Private Sub b_valida_Click
@@ -1027,16 +1510,24 @@ Private Sub b_valida_Click
else if empresa.ToUpperCase.Contains("GUNA") Then
valida("GV2")
else if empresa.ToUpperCase.Contains("INTMEX") Then
' valida("INTMEX")
Intmex.valida
else if empresa.ToUpperCase.Contains("KELLOGGS") Then
Kelloggs.valida
else if empresa.ToUpperCase.Contains("IZCA") Then
Izca.valida
else if empresa.ToUpperCase.Contains("MAZAPA") Then
Mazapa.valida
else if empresa.ToUpperCase.Contains("DURAKELO") Then
Durakelo.valida
else if empresa.ToUpperCase.Contains("MARQUEZ") Then
Marquez.valida
else if empresa.ToUpperCase.Contains("PROFINA") Then
Profina.valida
End If
End Sub
Private Sub p_engrane_Click
End Sub
Private Sub p_validacion_Click