- VERSION 5.06.10

- Cambios de Javy.
This commit is contained in:
2025-07-01 11:51:23 -06:00
parent a30096c3e6
commit afcd8129ec
10 changed files with 139 additions and 195 deletions

View File

@@ -198,8 +198,10 @@ Private Sub B4XPage_Created (Root1 As B4XView)
Subs.agregaColumna("HIST_ENCUESTA", "HE_LON", "TEXT")
Subs.agregaColumna("kmt_info3", "encuesta", "TEXT")
Subs.agregaColumna("kmt_info3", "CAT_CL_TIPOCLIENTE", "TEXT")
Subs.agregaColumna("kmt_info3", "CAT_CL_LIMITECREDITO", "TEXT")
Subs.agregaColumna("kmt_info3", "CAT_CL_BCREDITO", "TEXT") '########################## CODIGO PARA CREDITOS ####################
Subs.agregaColumna("CAT_GUNAPROD", "CAT_PA_BSEGMENTA", "TEXT")
Subs.agregaColumna("CAT_GUNAPROD", "CAT_LISTAPRECIO", "TEXT")
Subs.agregaColumna("CAT_GUNAPROD", "CAT_PA_SEGMENTAV", "TEXT")
Subs.agregaColumna("CAT_GUNAPROD2", "CAT_PA_BSEGMENTA", "TEXT")
Subs.agregaColumna("CAT_GUNAPROD2", "CAT_PA_SEGMENTAV", "TEXT")
@@ -822,7 +824,7 @@ End Sub
Sub i_engrane_Click
p_appUpdate.Left = (Root.Width/2) - (p_appUpdate.Width/2)
lv_server.Clear
lv_server.AddSingleLine("http://keymon.lat:1782")
lv_server.AddSingleLine("http://keymon.net:1782")
If user.Text = "KMTS1" Then lv_server.AddSingleLine("http://10.0.0.205:1782")
l_server.Text = Starter.server
et_server.Text = Starter.server

View File

@@ -461,6 +461,8 @@ Sub Class_Globals
Private lv_comentarios As ListView
Private ImageView4 As ImageView
Private p_cliente_ As Panel
Private l_limite As Label
Private l_credito As Label
End Sub
'You can add more parameters here.
@@ -538,7 +540,8 @@ Sub B4XPage_Appear
que_modulo = 1
dentroDeGeocerca = False
indicePregunta = 0
l_credito.Visible = False
l_limite.Visible = False
pnlPlanLealtad.Top = 0
pnlPlanLealtad.Left = 0
pnlPlanLealtad.Width = Root.Width
@@ -1184,6 +1187,19 @@ Sub B4XPage_Appear
If fac.GetString("PC_FACTURA") <> Null And IsNumber(fac.GetString("PC_FACTURA")) Then factura = fac.GetString("PC_FACTURA")
If factura = "1" Then CH_FACTURA.Checked = True
' If l_credito.IsInitialized Then
c=B4XPages.MainPage.skmt.ExecQuery("select IFNULL(CAT_CL_BCREDITO,0) AS CAT_CL_BCREDITO, CAT_CL_LIMITECREDITO from kmt_info3 where CAT_CL_CODIGO In (Select cuenta from cuentaa)")
c.Position = 0
If c.GetInt("CAT_CL_BCREDITO") = 1 Then
l_credito.Visible = True
l_limite.Visible = True
l_limite.Text = c.GetInt("CAT_CL_LIMITECREDITO")
Else If c.GetInt("CAT_CL_BCREDITO") = 0 Then
l_credito.Visible = False
l_limite.Visible = False
End If
' End If
End Sub
Sub GPS_LocationChanged (Location1 As Location)
@@ -1385,6 +1401,7 @@ Sub GPS_LocationChanged (Location1 As Location)
' If distance > 100 Then ToastMessageShow("Fuera de rango GPS", False)
B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM HIST_GPS")
B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO HIST_GPS (HGDATE, HGLAT, HGLON) VALUES(?,?,?) ", Array As Object (sDate & sTime, B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps))
CallSubDelayed(Tracker, "CreateLocationRequest")
@@ -2566,27 +2583,6 @@ Sub b_mapa_Click
B4XPages.ShowPage("mapas")
End Sub
Sub Printer1_Connected (Success As Boolean)
' If Logger Then Log("Printer1_Connected")
If Success Then
ToastMessageShow("Impresora conectada", False)
skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("MACIMP"))
skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("MACIMP",Starter.mac_impresora))
LogColor("Impresora conectada", Colors.Green)
' B_IMP2.Enabled = True
impresoraConectada = True
Else
' Msgbox(Printer1.ConnectedErrorMsg, "Error connecting.") 'ignore
' ToastMessageShow("Error conectando la impresora", False)
LogColor("Error conectando la impresora", Colors.Red)
errorImpresora = errorImpresora + 1
If errorImpresora > 1 Then
Starter.MAC_IMPRESORA = "0"
errorImpresora = 0
End If
End If
End Sub
Sub B_IMP_Click
' Printer1.Connect2
' c=Starter.skmt.ExecQuery2("select count(*) AS CUANTOS from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("PERFIL"))
@@ -2633,28 +2629,26 @@ Sub Impresion2
ProgressDialogShow("Imprimiendo, un momento ...")
Printer1.DisConnect
If Not(Printer1.IsConnected) Then
Log("Conectando a impresora ...")
' If logger Then Log("conectando 1")
Printer1.Connect
Private cont As Int = 0
Do While Not(impresoraConectada)
Sleep(1000)
Log("++++++ " & cont)
cont = cont + 1
If cont = 2 Then Printer1.Connect 'Tratamos de reconectar
If cont > 3 Then impresoraConectada = True
If cont = 7 Then Printer1.Connect 'Tratamos de reconectar
If cont > 15 Then impresoraConectada = True
Loop
Sleep(500)
impresoraConectada = False
Else
Log("conectando 2")
' If logger Then Log("conectando 2")
Printer1.Connect
Private cont As Int = 0
Do While Not(impresoraConectada) Or Not(Printer1.IsConnected)
Sleep(1000)
Log("****** " & cont)
cont = cont + 1
If cont = 2 Then Printer1.Connect
If cont > 3 Then impresoraConectada = True
If cont > 4 Then impresoraConectada = True
Loop
Sleep(500)
impresoraConectada = False
@@ -2835,28 +2829,26 @@ Sub Impresion
ProgressDialogShow("Imprimiendo, un momento ...")
Printer1.DisConnect
If Not(Printer1.IsConnected) Then
Log("Conectando a impresora ...")
' If logger Then Log("conectando 1")
Printer1.Connect
Private cont As Int = 0
Do While Not(impresoraConectada)
Sleep(1000)
Log("++++++ " & cont)
cont = cont + 1
If cont = 2 Then Printer1.Connect 'Tratamos de reconectar
If cont > 3 Then impresoraConectada = True
If cont = 7 Then Printer1.Connect 'Tratamos de reconectar
If cont > 15 Then impresoraConectada = True
Loop
Sleep(500)
impresoraConectada = False
Else
Log("conectando 2")
' If logger Then Log("conectando 2")
Printer1.Connect
Private cont As Int = 0
Do While Not(impresoraConectada) Or Not(Printer1.IsConnected)
Sleep(1000)
Log("****** " & cont)
cont = cont + 1
If cont = 2 Then Printer1.Connect
If cont > 3 Then impresoraConectada = True
If cont > 4 Then impresoraConectada = True
Loop
Sleep(500)
impresoraConectada = False
@@ -2896,16 +2888,17 @@ Sub Impresion
Printer1.WriteString("-----------PREVENTA-----------" & CRLF)
' aqui es donde esta el pedo de julieta de los descuentos quitar el precio2 pero meter un if para saber si es ruta especial o es normal o que show.
s=skmt.ExecQuery2("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU,PE_CANT * PE_COSTOU AS PE_COSTO_TOT, length(PE_CANT * PE_COSTOU) as L_COSTO_TOT,PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_CEDIS <> ? AND LENGTH(PE_CEDIS) < 4 AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_PROID", Array As String("DUR"))
' s=skmt.ExecQuery2("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU,PE_CANT * PE_COSTOU AS PE_COSTO_TOT, length(PE_CANT * PE_COSTOU) as L_COSTO_TOT,PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_CEDIS <> ? AND LENGTH(PE_CEDIS) < 4 AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_PROID", Array As String("DUR"))
s=skmt.ExecQuery2("select PE_PRONOMBRE, SUM(PE_CANT) AS PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU,SUM(PE_CANT) * PE_COSTOU AS PE_COSTO_TOT, length(PE_CANT * PE_COSTOU) as L_COSTO_TOT,PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_CEDIS <> ? AND PE_CLIENTE IN (Select CUENTA from cuentaa) AND PE_COSTOU > 0.01 GROUP by PE_PROID", Array As String("DUR"))
If S.RowCount>0 Then
For i=0 To S.RowCount -1
S.Position=i
If s.GetString("PE_CEDIS") = s.GetString("PE_PROID") Then
' If s.GetString("PE_CEDIS") = s.GetString("PE_PROID") Then
Printer1.WriteString(s.GetString("PE_PRONOMBRE") & CRLF)
Else
' Else
Printer1.WriteString(s.GetString("PE_CANT") & " " & s.GetString("PE_PRONOMBRE") & CRLF)
' Printer1.WriteString(s.GetString("PE_CANT") & " " & s.GetString("PE_PRONOMBRE") & CRLF)
TAMANO = s.GetLong("L_CANT") + TAMANO
TAMANO = s.GetLong("L_COSTOU") + TAMANO
TAMANO = s.GetLong("L_COSTO_TOT") + TAMANO
@@ -2919,22 +2912,24 @@ Sub Impresion
TAMANO = 0
ESPACIO = 21
BLANCO = " "
End If
' End If
Next
End If
s.Close
Printer1.WriteString(" " & CRLF)
s=skmt.ExecQuery("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU,PE_CANT * PE_COSTOU AS PE_COSTO_TOT, length(PE_CANT * PE_COSTOU) as L_COSTO_TOT,PE_PROID, PE_CEDIS FROM PEDIDO WHERE LENGTH(PE_CEDIS) > 3 AND PE_PROID NOT IN (SELECT CAT_PA_ID FROM PROMOS_COMP ) AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_CEDIS, PE_COSTOU")
' s=skmt.ExecQuery("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU,PE_CANT * PE_COSTOU AS PE_COSTO_TOT, length(PE_CANT * PE_COSTOU) as L_COSTO_TOT,PE_PROID, PE_CEDIS FROM PEDIDO WHERE LENGTH(PE_CEDIS) > 3 AND PE_PROID NOT IN (SELECT CAT_PA_ID FROM PROMOS_COMP ) AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_CEDIS, PE_COSTOU")
s=skmt.ExecQuery2("select PE_PRONOMBRE, SUM(PE_CANT) AS PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU,SUM(PE_CANT) * PE_COSTOU AS PE_COSTO_TOT, length(PE_CANT * PE_COSTOU) as L_COSTO_TOT,PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_CEDIS <> ? AND PE_CLIENTE IN (Select CUENTA from cuentaa) AND PE_COSTOU = 0.01 GROUP by PE_PROID", Array As String("DUR"))
If S.RowCount>0 Then
Printer1.WriteString("------------PROMOS------------" & CRLF)
Printer1.WriteString("--------BONIFICACIONES--------" & CRLF)
For i=0 To S.RowCount -1
S.Position=i
If s.GetString("PE_CEDIS") = s.GetString("PE_PROID") Then
' If s.GetString("PE_CEDIS") = s.GetString("PE_PROID") Then
Printer1.WriteString(s.GetString("PE_PRONOMBRE") & CRLF)
Else
' Else
Printer1.WriteString(s.GetString("PE_CANT") & " " & s.GetString("PE_PRONOMBRE") & CRLF)
' Printer1.WriteString(s.GetString("PE_CANT") & " " & s.GetString("PE_PRONOMBRE") & CRLF)
TAMANO = s.GetLong("L_CANT") + TAMANO
TAMANO = s.GetLong("L_COSTOU") + TAMANO
TAMANO = s.GetLong("L_COSTO_TOT") + TAMANO
@@ -2948,7 +2943,7 @@ Sub Impresion
TAMANO = 0
ESPACIO = 21
BLANCO = " "
End If
' End If
Next
Printer1.WriteString(" " & CRLF)
End If
@@ -3058,12 +3053,38 @@ End Sub
'' printer.Close
'End Sub
Sub Printer1_Connected (Success As Boolean)
' If Logger Then Log("Printer1_Connected")
If Success Then
ToastMessageShow("Impresora conectada", False)
Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("MACIMP"))
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("MACIMP",Starter.mac_impresora))
' If logger Then LogColor("Impresora conectada", Colors.Green)
' B_IMP2.Enabled = True
impresoraConectada = True
Else
' Msgbox(Printer1.ConnectedErrorMsg, "Error connecting.") 'ignore
' ToastMessageShow("Error conectando la impresora", False)
LogColor("Error conectando la impresora", Colors.Red)
errorImpresora = errorImpresora + 1
If errorImpresora > 1 Then
Starter.MAC_IMPRESORA = "0"
errorImpresora = 0
End If
End If
End Sub
Sub Printer1_Error
Log("error printer")
End Sub
Sub Printer_Connected (Success As Boolean)
If Success Then
B_IMP.Enabled = True
' B_IMP.Enabled = True
' PASA_IMP = "1"
Else
B_IMP.Enabled = False
If Msgbox2("", "Printer Error","Reprint","Cancel","",Null) = DialogResponse.POSITIVE Then 'Ignore
' B_IMP.Enabled = False
If Msgbox2("", "Printer Error","Reprint","Cancel","",Null) = DialogResponse.POSITIVE Then 'ignore
StartPrinter
End If
End If
@@ -3071,37 +3092,39 @@ End Sub
Sub StartPrinter
Dim PairedDevices As Map
Dim L As List
Dim L1 As List
Dim resimp As Int
ToastMessageShow("Printing.....",True)
PairedDevices.Initialize
Try
PairedDevices = cmp20.GetPairedDevices
Catch
Msgbox("Getting Paired Devices","Printer Error") 'Ignore
Msgbox("Getting Paired Devices","Printer Error") 'ignore
printer.Close
cmp20.Disconnect
End Try
If PairedDevices.Size = 0 Then
Msgbox("Error Connecting to Printer - Printer Not Found","") 'Ignore
Msgbox("Error Connecting to Printer - Printer Not Found","") 'ignore
Return
End If
If PairedDevices.Size = 1 Then
Try
cmp20.ConnectInsecure(btAdmin,PairedDevices.Get(PairedDevices.GetKeyAt(0)),1)
cmp20.Connect(PairedDevices.Get(PairedDevices.GetKeyAt(0)))
Catch
Msgbox("Connecting","Printer Error") 'Ignore
Msgbox("Connecting","Printer Error") 'ignore
printer.Close
cmp20.Disconnect
End Try
Else
L.Initialize
L1.Initialize
For i = 0 To PairedDevices.Size - 1
L.Add(PairedDevices.GetKeyAt(i))
L1.Add(PairedDevices.GetKeyAt(i))
Next
resimp = InputList(L, "Choose device", -1) 'Ignore
resimp = InputList(L1, "Choose device", -1) 'ignore
If resimp <> DialogResponse.CANCEL Then
cmp20.Connect(PairedDevices.Get(L.Get(resimp)))
cmp20.Connect(PairedDevices.Get(L1.Get(resimp)))
End If
End If
End Sub

View File

@@ -1390,10 +1390,11 @@ Sub JobDone(Job As HttpJob)
Dim CAT_CL_MTOCOMPRA As String = records(RESULT.Columns.Get("CAT_CL_MTOCOMPRA"))
Dim CAT_CL_NUM_SERIEFISICO As String = records(RESULT.Columns.Get("CAT_CL_NUM_SERIEFISICO"))
Dim CAT_CL_TIPOCLIENTE As String = records(RESULT.Columns.Get("CAT_CL_TIPOCLIENTE"))
Dim CAT_CL_LIMITECREDITO As String = records(RESULT.Columns.Get("CAT_CL_LIMITECREDITO"))
'########################## INICIA CODIGO PARA CREDITOS ####################
Dim CAT_CL_BCREDITO As String = records(RESULT.Columns.Get("CAT_CL_BCREDITO"))
B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO kmt_info3(CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO, gestion,CAT_CL_BCREDITO,CAT_CL_TIPOCLIENTE,FOTO) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,?,?,?)", Array As Object (CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO,CAT_CL_BCREDITO,CAT_CL_TIPOCLIENTE,CAT_CL_FOTO))
B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO kmt_info3(CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO, gestion,CAT_CL_BCREDITO,CAT_CL_TIPOCLIENTE,FOTO,CAT_CL_LIMITECREDITO) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,?,?,?,?)", Array As Object (CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO,CAT_CL_BCREDITO,CAT_CL_TIPOCLIENTE,CAT_CL_FOTO,CAT_CL_LIMITECREDITO))
'########################## TERMINA CODIGO PARA CREDITOS ####################
B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO HIST_STAY_STORE(HSS_CODIGO, HSS_IN , HSS_OUT , HSS_TOT) VALUES (?,0,0,0)", Array As Object (CAT_CL_CODIGO))
Next
@@ -1758,9 +1759,11 @@ Sub JobDone(Job As HttpJob)
' Dim CAT_GP_DEV As String = records(RESULT.Columns.Get("CAT_GP_DEV"))
Dim CAT_GP_TIPOPROD As Int = records(RESULT.Columns.Get("CAT_GP_TIPOPROD"))
Dim CAT_GP_INICIATIVA As Int = records(RESULT.Columns.Get("CAT_GP_INICIATIVA"))
Dim CAT_LISTAPRECIO As Int = records(RESULT.Columns.Get("CAT_LISTAPRECIO"))
Dim CAT_LISTAPRECIO As Int = 10
' CAT_GP_INICIATIVA = 5
' skmt.ExecNonQuery2("INSERT INTO CAT_GUNAPROD(CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_IMP1,CAT_GP_IMP2,CAT_GP_PRECIO,CAT_GP_CLASIF,CAT_GP_STS,CAT_GP_TIPO,CAT_GP_SUBTIPO,CAT_GP_IMG,CAT_GP_ALMACEN,CAT_GP_DEV) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)", Array As Object (CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_IMP1,CAT_GP_IMP2,CAT_GP_PRECIO,CAT_GP_CLASIF,CAT_GP_STS,CAT_GP_TIPO,CAT_GP_SUBTIPO,CAT_GP_IMG, CAT_GP_ALMACEN,CAT_GP_DEV))
B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO CAT_GUNAPROD(CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_IMP1,CAT_GP_IMP2,CAT_GP_PRECIO,CAT_GP_CLASIF,CAT_GP_STS,CAT_GP_TIPO,CAT_GP_SUBTIPO,CAT_GP_IMG,CAT_GP_ALMACEN,CAT_GP_TIPOPROD,CAT_GP_INICIATIVA) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?)", Array As Object (CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_IMP1,CAT_GP_IMP2,CAT_GP_PRECIO,CAT_GP_CLASIF,CAT_GP_STS,CAT_GP_TIPO,CAT_GP_SUBTIPO,CAT_GP_IMG, CAT_GP_ALMACEN,CAT_GP_TIPOPROD, CAT_GP_INICIATIVA))
B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO CAT_GUNAPROD(CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_IMP1,CAT_GP_IMP2,CAT_GP_PRECIO,CAT_GP_CLASIF,CAT_GP_STS,CAT_GP_TIPO,CAT_GP_SUBTIPO,CAT_GP_IMG,CAT_GP_ALMACEN,CAT_GP_TIPOPROD,CAT_GP_INICIATIVA,CAT_LISTAPRECIO) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?)", Array As Object (CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_IMP1,CAT_GP_IMP2,CAT_GP_PRECIO,CAT_GP_CLASIF,CAT_GP_STS,CAT_GP_TIPO,CAT_GP_SUBTIPO,CAT_GP_IMG, CAT_GP_ALMACEN,CAT_GP_TIPOPROD, CAT_GP_INICIATIVA,CAT_LISTAPRECIO))
Next
Listo2=1
If PB2.Progress = 0 Then

View File

@@ -1080,6 +1080,9 @@ Sub B4XPage_Appear
PCLV.B4XSeekBar1.mBase.Height=clv_prods_ll.AsView.Height
PCLV.pnlOverlay.Height = clv_prods_ll.AsView.Height
PCLV.B4XSeekBar1.Update
End Sub
Sub PCLV_AddProds
@@ -2423,6 +2426,7 @@ Sub LlenaProdsLL(p As ResultSet)
If hayPedido Then 'Si hay pedido obtenemos las cantidades de los productos para agregarlos al CLV.
Dim cantsMap As Map
cantsMap.Initialize
Dim pe As ResultSet = B4XPages.MainPage.skmt.ExecQuery($"select PE_PROID, PE_CANT from PEDIDO where PE_CLIENTE = '${clienteId}' and PE_CEDIS = '${Subs.traeAlmacen}' and PE_FOLIO = '${B4XPages.MainPage.tipo_venta}'"$)
' LogColor("Ponemos productos de pedido anterior: "&pe.RowCount, Colors.red)
Do While pe.NextRow
@@ -2449,13 +2453,26 @@ Sub LlenaProdsLL(p As ResultSet)
' Dim p As ResultSet = B4XPages.MainPage.skmt.ExecQuery($"select distinct CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_ALMACEN, CAT_GP_PRECIO, CAT_GP_TIPOPROD from ${Starter.tabla} LEFT JOIN PEDIDO ON CAT_GP_ID = PE_PROID where CAT_GP_PRECIO > 0 And CAT_GP_ALMACEN > 0 And CAT_GP_CLASIF <> 'PROMOS' union all select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_ALMACEN, CAT_GP_PRECIO, CAT_GP_TIPOPROD from ${Starter.tabla} LEFT JOIN PEDIDO ON CAT_GP_ID = PE_PROID where CAT_GP_PRECIO > 0 And CAT_GP_ALMACEN = 0 And CAT_GP_CLASIF <> 'PROMOS' and cat_gp_id in (select pe_proid from pedido where pe_cliente in (select cuenta from cuentaa)) order by 2"$)
Dim p As ResultSet = B4XPages.MainPage.skmt.ExecQuery($"select distinct CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_PRECIO, CAT_GP_ALMACEN, CAT_GP_IMG, CAT_GP_TIPOPROD, CAT_GP_INICIATIVA from ${Subs.traeTablaProds(tipo_venta)} where CAT_GP_PRECIO > 0 AND CAT_GP_ALMACEN > 0 and CAT_GP_TIPO <> 'PROMOS' and CAT_GP_TIPO <> 'PROMOCION'
If Subs.traeTipoCliente = "4" Then
Dim p As ResultSet = B4XPages.MainPage.skmt.ExecQuery($"select distinct CAT_GP_ID, CAT_GP_NOMBRE, CAT_LISTAPRECIO, CAT_GP_ALMACEN, CAT_GP_IMG, CAT_GP_TIPOPROD, CAT_GP_INICIATIVA from ${Subs.traeTablaProds(tipo_venta)} where CAT_GP_PRECIO > 0 AND CAT_GP_ALMACEN > 0 and CAT_GP_TIPO <> 'PROMOS' and CAT_GP_TIPO <> 'PROMOCION'
order by
Case CAT_GP_TIPOPROD when 'PRIORITARIO' THEN 0
WHEN 'ESTRATEGICO' THEN 1
WHEN 'COMPLEMENTARIO' then 2
Else 3
End, CAT_GP_NOMBRE"$)
Else
Dim p As ResultSet = B4XPages.MainPage.skmt.ExecQuery($"select distinct CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_PRECIO, CAT_GP_ALMACEN, CAT_GP_IMG, CAT_GP_TIPOPROD, CAT_GP_INICIATIVA from ${Subs.traeTablaProds(tipo_venta)} where CAT_GP_PRECIO > 0 AND CAT_GP_ALMACEN > 0 and CAT_GP_TIPO <> 'PROMOS' and CAT_GP_TIPO <> 'PROMOCION'
order by
Case CAT_GP_TIPOPROD when 'PRIORITARIO' THEN 0
WHEN 'ESTRATEGICO' THEN 1
WHEN 'COMPLEMENTARIO' then 2
Else 3
End, CAT_GP_NOMBRE"$)
End If
End If
' Do While p.NextRow
@@ -2478,11 +2495,28 @@ Sub LlenaProdsLL(p As ResultSet)
Log(p.GetString("CAT_GP_ID"))
cant = cantsMap.Get(p.GetString("CAT_GP_ID"))
End If
If p.GetString("CAT_GP_ID") <> "GUN141" And p.GetString("CAT_GP_ID") <> "GUN142" Then
If Subs.traeTipoCliente = "4" Then
If p.GetString("CAT_GP_ID") <> "GUN141" And p.GetString("CAT_GP_ID") <> "GUN142" Then
' Log(p.GetString("CAT_GP_NOMBRE"))
' ¡Importante! Crear un NUEVO mapa en cada iteración.
Dim tempMap As Map = CreateMap( _
' ¡Importante! Crear un NUEVO mapa en cada iteración.
Dim tempMap As Map = CreateMap( _
"prod": p.GetString("CAT_GP_NOMBRE"), _
"precio": p.GetString("CAT_LISTAPRECIO"), _
"prioridad": p.GetString("CAT_GP_TIPOPROD"), _
"almacen": p.GetString("CAT_GP_ALMACEN"), _
"id": p.GetString("CAT_GP_ID"), _
"cant": cant, _
"conversion": 1, _
"precio_caja": 0, _
"b_caja": 0 _
)
listaProds.Add(tempMap) ' Agregar el nuevo mapa a la lista
End If
Else
If p.GetString("CAT_GP_ID") <> "GUN141" And p.GetString("CAT_GP_ID") <> "GUN142" Then
' Log(p.GetString("CAT_GP_NOMBRE"))
' ¡Importante! Crear un NUEVO mapa en cada iteración.
Dim tempMap As Map = CreateMap( _
"prod": p.GetString("CAT_GP_NOMBRE"), _
"precio": p.GetString("CAT_GP_PRECIO"), _
"prioridad": p.GetString("CAT_GP_TIPOPROD"), _
@@ -2493,8 +2527,10 @@ Sub LlenaProdsLL(p As ResultSet)
"precio_caja": 0, _
"b_caja": 0 _
)
listaProds.Add(tempMap) ' Agregar el nuevo mapa a la lista
listaProds.Add(tempMap) ' Agregar el nuevo mapa a la lista
End If
End If
Loop
' p.Close
' Log(listaProds)

View File

@@ -997,9 +997,6 @@ Private Sub b_terminar1_Click
' B4XPages.MainPage.productos.prodsMap.Put(estaPromo&"|"&prodsIds2.Get(o), tmpMap)
' Next
' LogColor(B4XPages.MainPage.productos.prodsMap, Colors.red)
Subs.agrupaProdsPromo(Subs.traeCliente)
lv_prodsFijos.Clear
B4XPages.MainPage.bTerminarClicked = True
B4XPages.ShowPage("productos")
@@ -1038,9 +1035,6 @@ Private Sub b_continuar_Click
prodspage.lv_promos.Visible = False
prodspage.clv_productos.AsView.Visible = False
End If
Subs.agrupaProdsPromo(Subs.traeCliente)
B4XPages.MainPage.bTerminarClicked = True
B4XPages.ShowPage("productos")
End Sub

Binary file not shown.

View File

@@ -284,7 +284,7 @@ Version=12.8
#Region Project Attributes
#ApplicationLabel: Guna Preventa
#VersionCode: 1
#VersionName: 5.05.07
#VersionName: 5.06.10
'SupportedOrientations possible values: unspecified, landscape or portrait.
#SupportedOrientations: portrait
#CanInstallToExternalStorage: False

View File

@@ -82,6 +82,6 @@ ModuleClosedNodes6=
ModuleClosedNodes7=6,8,9,10,11
ModuleClosedNodes8=
ModuleClosedNodes9=
NavigationStack=C_Productos,B4XPage_Appear,1064,0,Diseñador Visual,promociones.bal,-100,1,C_Promos,b_promoMas_Click,953,0,C_Promos,b_continuar_Click,1035,5,C_Promos,b_terminar1_Click,994,0,Subs,traeTablaProds,1810,0,Subs,guardaProductoSinGestion,1794,0,Subs,revisaMaxPromosProdsVariablesPorInventario,2130,0,Subs,agrupaProdsPromo,2199,6
NavigationStack=Diseñador Visual,cliente.bal,-100,4,C_Cliente,GPS_LocationChanged,1382,6,C_Cliente,B4XPage_Appear,537,0,C_Cliente,b_mapa_Click,2577,0,C_Cliente,Printer1_Connected,3079,0,C_Cliente,StartPrinter,3123,0,C_Cliente,Printer_Connected,3077,0,C_Cliente,Impresion,2820,0,C_Principal,Subir_Click,536,0,C_Principal,JobDone,1382,0,C_Principal,cargar_Click,1121,0
SelectedBuild=0
VisibleModules=25,2,14,26,5,10,11,16,15
VisibleModules=25,2,14,26,5,10,11,20,19,16

View File

@@ -19,7 +19,7 @@ Sub Process_Globals
Public FLP As FusedLocationProvider
' Private flpStarted As Boolean
Dim reqManager As DBRequestManager
Dim server As String = "http://187.189.244.154:1782"
Dim server As String = "http://keymon.net:1782"
' Dim server As String = "http://10.0.0.205:1782"
Dim Timer1 As Timer
Dim Interval As Int = 300

View File

@@ -1814,7 +1814,7 @@ End Sub
'Regresa la tabla de productos (cat_gunaprod o cat_gunaprod2) dependiendo del tipo de venta.
Sub traeTablaProds(tipoventa As String) As String
' Log(tipoventa)
Log(tipoventa)
Private tablaProds As String = "cat_gunaprod2"
If tipoventa = "ABORDO" Or tipoventa = "PREVENTA" Then tablaProds = "cat_gunaprod"
' LogColor($"Tipo= ${tipoventa}, tabla=${tablaProds}"$, Colors.RGB(200,136,0))
@@ -1933,10 +1933,10 @@ Sub traeTipoCliente As Int
x = Starter.skmt.ExecQuery($"select IFNULL(cat_cl_tipocliente,3) AS CAT_CL_TIPOCLIENTE from kmt_info3 where cat_cl_codigo in (select cuenta from cuentaa)"$)
If x.RowCount > 0 Then
x.Position = 0
Log("ESTO LO HIZO GUERRA ------> "&x.GetInt("CAT_CL_TIPOCLIENTE"))
' Log("ESTO LO HIZO GUERRA ------> "&x.GetInt("CAT_CL_TIPOCLIENTE"))
tc = x.GetInt("CAT_CL_TIPOCLIENTE")
End If
Log("ESTO LO HIZO GUERRA X2------> "&tc)
' Log("ESTO LO HIZO GUERRA X2------> "&tc)
Return tc
End Sub
@@ -2189,118 +2189,4 @@ Sub alcanzanLosVariablesParaPromo(promoMap As Map, inventarioSinFijos As Map) As
End If
' Log(res)
Return res
End Sub
' Agrupa los productos de las promociones, porque si tenemos un producto fijo a precio x y un producto variabe al mismo precio
' y las mismas cantidades, el pasarInfoMovil las detecta como duplicados y las tira, con esta funcion en lugar de dos registros,
' solo va uno con cantidades y totales sumados.
Sub agrupaProdsPromo(cliente As String)
' Obtener la estructura de la tabla pedido con tipos de datos
Dim rs As ResultSet = Starter.skmt.ExecQuery("PRAGMA table_info(pedido)")
Dim columns As List
columns.Initialize
Dim columnTypes As Map
columnTypes.Initialize
' Obtener nombres y tipos de columnas
Do While rs.NextRow
Dim colName As String = rs.GetString("name")
Dim colType As String = rs.GetString("type")
columns.Add(colName)
columnTypes.Put(colName, colType)
Loop
rs.Close
' Construir la sentencia CREATE TABLE dinámica con tipos correctos
Dim createTableSQL As StringBuilder
createTableSQL.Initialize
createTableSQL.Append("CREATE TEMP TABLE IF NOT EXISTS PEDIDO_AGRUPADOR (")
For i = 0 To columns.Size - 1
Dim columnName As String = columns.Get(i)
If i > 0 Then createTableSQL.Append(", ")
createTableSQL.Append(columnName).Append(" ")
' Determinar el tipo de dato adecuado
Dim detectedType As String = columnTypes.Get(columnName)
If detectedType.Contains("INT") Then
createTableSQL.Append("INTEGER")
Else If detectedType.Contains("CHAR") Or detectedType.Contains("TEXT") Then
createTableSQL.Append("TEXT")
Else If detectedType.Contains("REAL") Or detectedType.Contains("FLOA") Or detectedType.Contains("DOUB") Then
createTableSQL.Append("REAL")
Else If detectedType.Contains("BLOB") Then
createTableSQL.Append("BLOB")
Else
' Por defecto usar TEXT si no se reconoce el tipo
createTableSQL.Append("TEXT")
End If
Next
createTableSQL.Append(")")
' Crear la tabla temporal con los tipos correctos
Starter.skmt.ExecNonQuery(createTableSQL.ToString)
Log("########################################################################")
Log(createTableSQL.ToString)
Log("########################################################################")
' Identificar columnas que deben sumarse (basado en nombre o tipo)
Dim sumColumns As List
sumColumns.Initialize
sumColumns.Add("PE_CANT") ' Estas son las que sabemos que deben sumarse
sumColumns.Add("PE_COSTO_TOT")
' Construir la lista de columnas para el GROUP BY (excluyendo las que se sumarán)
Dim groupByColumns As List
groupByColumns.Initialize
For Each col As String In columns
If sumColumns.IndexOf(col) = -1 Then ' Si no es una columna a sumar
groupByColumns.Add(col)
End If
Next
' Construir la consulta SELECT dinámica
Dim selectSQL As StringBuilder
selectSQL.Initialize
selectSQL.Append("INSERT INTO PEDIDO_AGRUPADOR SELECT ")
For i = 0 To columns.Size - 1
Dim columnName As String = columns.Get(i)
If i > 0 Then selectSQL.Append(", ")
If sumColumns.IndexOf(columnName) > -1 Then
' Columnas que requieren SUM()
selectSQL.Append("SUM(").Append(columnName).Append(") As ").Append(columnName)
Else
' Otras columnas
selectSQL.Append(columnName)
End If
Next
selectSQL.Append(" FROM pedido WHERE PE_CLIENTE = '").Append(cliente).Append("' GROUP BY ")
For i = 0 To groupByColumns.Size - 1
If i > 0 Then selectSQL.Append(", ")
selectSQL.Append(groupByColumns.Get(i))
Next
' Ejecutar la transacción
Starter.skmt.BeginTransaction
' Vaciar la tabla temporal
Starter.skmt.ExecNonQuery("DELETE FROM PEDIDO_AGRUPADOR")
' Insertar datos agrupados
Starter.skmt.ExecNonQuery(selectSQL.ToString)
' Reemplazar los datos originales
Starter.skmt.ExecNonQuery($"DELETE FROM PEDIDO WHERE PE_CLIENTE = '${cliente}'"$)
Starter.skmt.ExecNonQuery("INSERT INTO PEDIDO SELECT * FROM PEDIDO_AGRUPADOR")
Starter.skmt.TransactionSuccessful
Starter.skmt.EndTransaction
Log("LISTO!!")
End Sub