2 Commits

Author SHA1 Message Date
Javier
fb5898b38b 5.08.09 2025-09-01 13:31:13 -06:00
afcd8129ec - VERSION 5.06.10
- Cambios de Javy.
2025-07-01 11:51:28 -06:00
12 changed files with 512 additions and 267 deletions

View File

@@ -153,9 +153,12 @@ Private Sub B4XPage_Created (Root1 As B4XView)
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS COMENTARIOS (COMENTARTIO TEXT, CLIENTE TEXT, DESCARGADO TEXT)")
' skmt.ExecNonQuery("DROP TABLE IF EXISTS CAT_PROMOS_DESCUENTOS")
Subs.agregaColumna("PLAN_LEALTAD", "DESCARGADO", "TEXT")
Subs.agregaColumna("PEDIDO_CLIENTE", "PC_FACTURA", "INTEGER")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS GPS (HABILITADO)")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_PROMOS_DESCUENTOS (CAT_PD_ALMACEN TEXT, CAT_PD_COD_PROMO TEXT, CAT_PD_RANGO INT, CAT_PD_VIGENCIA TEXT, CAT_PD_DESCUENTO TEXT, CAT_PD_PRODUCTO TEXT, CAT_PD_TIER TEXT)")
Subs.agregaColumna("CAT_PROMOS_DESCUENTOS", "CAT_PD_RANGO2", "INT")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_GUNAPROD2 (CAT_GP_CODPROMO TEXT, CAT_GP_INICIATIVA TEXT, CAT_GP_TIPOPROD TEXT, CAT_GP_DEV TEXT, CAT_GP_ALMACEN NUM, CAT_GP_ID TEXT, CAT_GP_NOMBRE TEXT, CAT_GP_IMP1 TEXT, CAT_GP_IMP2 TEXT, CAT_GP_PRECIO TEXT, CAT_GP_CLASIF TEXT, CAT_GP_STS TEXT, CAT_GP_TIPO TEXT, CAT_GP_SUBTIPO TEXT, CAT_GP_IMG )")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS PROMO_ESP (HVD_CLIENTE)")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_PROMO_ESP(CAT_PE_ID TEXT,CAT_PE_IDPROMO TEXT,CAT_PE_MONTO TEXT)")
@@ -194,12 +197,15 @@ Private Sub B4XPage_Created (Root1 As B4XView)
Subs.agregaColumna("HIST_ENCUESTA", "HE_FOTO", "BLOB")
Subs.agregaColumna("kmt_info3", "foto", "BLOB")
Subs.agregaColumna("PEDIDO", "PE_RECALCULO", "TEXT")
Subs.agregaColumna("PEDIDO", "PE_RECCEDIS", "TEXT")
Subs.agregaColumna("PEDIDO", "PE_RECALCULOTOT", "TEXT")
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 +828,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,9 @@ 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
Private l_tipocliente As Label
End Sub
'You can add more parameters here.
@@ -532,13 +535,16 @@ End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
Sub B4XPage_Appear
TraeCantProd
ImageView4.Bitmap = LoadBitmap(File.DirAssets,"images.png")
btnPlanLealtad.Visible = False
bitacora.inicioFin
' iniciofin
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
@@ -584,6 +590,9 @@ Sub B4XPage_Appear
' Log("EnVenta NO Visible")
' b_Inicio_Fin_venta.Visible = False
' End If
If Subs.hayPedido Then 'Si hay pedido, deshabilitamos el boton de "No Venta"
Log(">>>>> HAY PEDIDO")
@@ -598,6 +607,24 @@ Sub B4XPage_Appear
End If
skmt.Initialize(ruta,"kmt.db", True)
reqManager.Initialize(Me, Starter.server)
Dim fotomostrar1 As Cursor = Starter.skmt.ExecQuery("SELECT foto FROM kmt_info3 where CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA) AND foto IS NULL")
If fotomostrar1.RowCount > 0 Then
ImageView4.Bitmap = LoadBitmap(File.DirAssets,"images.png")
Log("aqui no hay foto")
Else
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "select_cat_clientes2_guna_FOTO_GV2"
cmd.Parameters = Array As Object(la_cuenta.Text, Subs.traeAlmacen,Subs.traeRuta)
Log(la_cuenta.Text)
Log(Subs.traeRuta)
Log(Subs.traeAlmacen)
reqManager.ExecuteQuery(cmd , 0, "kmt_datos_foto")
End If
l_tipocliente.Text = Subs.traeTipoCliente
p_camara.Width = Root.Width
p_camara.Height = Root.Height
S2=B4XPages.MainPage.skmt.ExecQuery("select count(*) AS CUANTOS from HIST_VENTAS WHERE HVD_CLIENTE IN (Select CUENTA from cuentaa)")
@@ -1146,26 +1173,7 @@ Sub B4XPage_Appear
End If
End If
Dim fotomostrar As Cursor = Starter.skmt.ExecQuery("SELECT foto FROM kmt_info3 where CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA)")
If fotomostrar.RowCount > 0 Then
Dim fotomostrar1 As Cursor = Starter.skmt.ExecQuery("SELECT foto FROM kmt_info3 where CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA) AND foto IS NULL")
If fotomostrar1.RowCount > 0 Then
ImageView4.Bitmap = LoadBitmap(File.DirAssets,"images.png")
Log("aqui no hay foto")
Else
fotomostrar.Position = 0
Private fotomostrarfinal() As Byte = fotomostrar.GetBlob("foto")
Dim InputStream1 As InputStream
InputStream1.InitializeFromBytesArray(fotomostrarfinal, 0, fotomostrarfinal.Length)
Dim Bitmap1 As Bitmap
Bitmap1.Initialize2(InputStream1)
InputStream1.Close
ImageView4.Bitmap = Bitmap1
Log("aqui si hay foto")
End If
End If
SV_ENCUESTA.Visible = False
P_gallina.Visible = False
p_pregunta1.Visible = False
@@ -1184,6 +1192,50 @@ 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 TraeCantProd As Boolean
' Private c As Cursor = B4XPages.MainPage.skmt.ExecQuery2("SELECT* FROM PEDIDO JOIN CAT_PROMOS_DESCUENTOS ON CAT_PD_PRODUCTO = PE_PROID WHERE PE_CLIENTE IN (Select CUENTA FROM CUENTAA) AND PE_CEDIS = ? AND PE_CANT >= CAT_PD_RANGO AND CAT_PD_RANGO2 <= PE_CANT", Array As String(Subs.traeAlmacen))
Private c As Cursor = B4XPages.MainPage.skmt.ExecQuery2("SELECT * FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA FROM CUENTAA) AND PE_CEDIS = ? ", Array As String(Subs.traeAlmacen))
If c.RowCount > 0 Then
For promespdes = 0 To c.RowCount -1
c.Position = promespdes
Dim rangosel As Cursor= B4XPages.MainPage.skmt.ExecQuery2("SELECT * FROM CAT_PROMOS_DESCUENTOS WHERE CAT_PD_PRODUCTO = ? AND CAT_PD_RANGO <= ? AND CAT_PD_RANGO2 >= ?",Array As String(c.GetString("PE_PROID"),c.GetInt("PE_CANT"),c.GetInt("PE_CANT")))
If rangosel.RowCount > 0 Then
rangosel.Position = 0
If rangosel.GetString("CAT_PD_TIER").Contains(Subs.traeTipoCliente) Then
Log(c.GetString("PE_COSTOU"))
Log(rangosel.GetString("CAT_PD_DESCUENTO"))
Private recalculo As Float = c.GetString("PE_COSTOU") - NumberFormat2(((c.GetString("PE_COSTOU") * rangosel.GetString("CAT_PD_DESCUENTO"))/100),0,2,2,False)
LogColor(recalculo,Colors.Blue)
Private recalculototal As Float =c.GetString("PE_CANT") * recalculo
skmt.ExecNonQuery2("UPDATE PEDIDO set PE_RECALCULO = ?, PE_RECALCULOTOT = ?, PE_RECCEDIS = ? WHERE PE_PROID = ? AND PE_CLIENTE IN (SELECT CUENTA FROM CUENTAA) ",Array As String(NumberFormat2(recalculo,0,2,2,False) ,NumberFormat2(recalculototal,0,2,2,False), rangosel.GetString("CAT_PD_COD_PROMO"),c.GetString("PE_PROID")))
End If
Else
skmt.ExecNonQuery2("UPDATE PEDIDO set PE_RECALCULO = NULL, PE_RECALCULOTOT = NULL, PE_RECCEDIS = NULL WHERE PE_PROID = ? AND PE_CLIENTE IN (SELECT CUENTA FROM CUENTAA) ",Array As String(c.GetString("PE_PROID")))
End If
Next
End If
End Sub
Sub GPS_LocationChanged (Location1 As Location)
@@ -1385,6 +1437,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")
@@ -1539,6 +1592,42 @@ Sub JobDone(Job As HttpJob)
' End If
' End If
If result1.Tag = "kmt_datos_foto" Then 'query tag
For Each records() As Object In result1.Rows
Dim CAT_CL_FOTO() As Byte = records(result1.Columns.Get("CAT_CL_FOTO"))
Next
Log("si paso")
B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE kmt_info3 SET foto = (?) WHERE CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA)",Array As Object(CAT_CL_FOTO))
Dim fotomostrar As Cursor = Starter.skmt.ExecQuery("SELECT foto FROM kmt_info3 where CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA)")
If fotomostrar.RowCount > 0 Then
Dim fotomostrar1 As Cursor = Starter.skmt.ExecQuery("SELECT foto FROM kmt_info3 where CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA) AND foto IS NULL")
If fotomostrar1.RowCount > 0 Then
ImageView4.Bitmap = LoadBitmap(File.DirAssets,"images.png")
Log("aqui no hay foto")
Else
fotomostrar.Position = 0
Private fotomostrarfinal() As Byte = fotomostrar.GetBlob("foto")
Dim InputStream1 As InputStream
InputStream1.InitializeFromBytesArray(fotomostrarfinal, 0, fotomostrarfinal.Length)
Dim Bitmap1 As Bitmap
Bitmap1.Initialize2(InputStream1)
InputStream1.Close
ImageView4.Bitmap = Bitmap1
Log("aqui si hay foto")
End If
End If
End If
End If
Job.Release
@@ -2566,27 +2655,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"))
@@ -2610,13 +2678,207 @@ Sub B_IMP_Click
Else
Impresion
End If
Else
Else If ALMACEN = 88 OR ALMACEN = 92 Then
Impresion3
Else
Impresion
End If
B4XPages.MainPage.skmt.ExecNonQuery("delete from TICKET_IMPRESO where idCliente In (select cuenta from cuentaa)")
B4XPages.MainPage.skmt.ExecNonQuery($"insert into TICKET_IMPRESO (idCliente) values ('${Subs.traeCliente}')"$)
End Sub
Sub Impresion3
c=skmt.ExecQuery("select USUARIO from usuarioa")
c.Position=0
usuario = c.GetString("USUARIO")
DateTime.DateFormat = "MM/dd/yyyy"
sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now)
c.Close
' c=Starter.skmt.ExecQuery2("SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION =?", Array As String ("SUCURSAL"))
' c.Position = 0
' sucursal = c.GetString("CAT_VA_VALOR")
' c.Close
ProgressDialogShow("Imprimiendo, un momento ...")
Printer1.DisConnect
If Not(Printer1.IsConnected) Then
' If logger Then Log("conectando 1")
Printer1.Connect
Private cont As Int = 0
Do While Not(impresoraConectada)
Sleep(1000)
cont = cont + 1
If cont = 7 Then Printer1.Connect 'Tratamos de reconectar
If cont > 15 Then impresoraConectada = True
Loop
Sleep(500)
impresoraConectada = False
Else
' If logger Then Log("conectando 2")
Printer1.Connect
Private cont As Int = 0
Do While Not(impresoraConectada) Or Not(Printer1.IsConnected)
Sleep(1000)
cont = cont + 1
If cont = 2 Then Printer1.Connect
If cont > 4 Then impresoraConectada = True
Loop
Sleep(500)
impresoraConectada = False
End If
TAMANO = 0
ESPACIO = 21
BLANCO = " "
Dim bmp As Bitmap
bmp.InitializeResize(File.DirAssets, "guna.png", 192, 192, True) 'ignore
Dim myimage As AnImage = Printer1.ImageToBWIMage(bmp)
myimage = Printer1.DitherImage2D(myimage, 128)
myimage= Printer1.PackImage(myimage)
Printer1.WriteString(CRLF) ' nudge the printer to show the user something is happening
Printer1.WriteString(Printer1.REVERSE)
Printer1.PrintImage(myimage)
Printer1.WriteString(Printer1.UNREVERSE)
'Printer1.Justify = 1
'printer.Initialize(cmp20.OutputStream)
' Printer1.WriteString("DISTRIBUIDORA ROCHA TULA PACHUCA" & CRLF)
Printer1.WriteString("RFC: DRT-110316-9J1" & CRLF)
' Printer1.WriteString(sucursal & CRLF)
Printer1.WriteString(sDate & CRLF)
Printer1.WriteString(sTime & CRLF)
Printer1.WriteString("Vendedor:" & usuario & CRLF)
Printer1.WriteString("Tienda: " & La_nombre.Text & CRLF)
Printer1.WriteString("ID.Cliente: " & la_cuenta.Text & CRLF)
Printer1.WriteString("Calle: " & la_Calle.Text & CRLF)
Printer1.WriteString("Colonia: " & la_col.Text & CRLF)
' Printer1.WriteString("C.P.: " & la_cp.Text & CRLF)
Printer1.WriteString("Entre calle1: " & l_entre1.Text & CRLF)
Printer1.WriteString("Entre Calle2: " & l_entre2.Text & CRLF)
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,IFNULL(PE_RECALCULO,0) AS PE_RECALCULO, length(PE_COSTOU) as L_COSTOU, length(Ifnull(PE_RECALCULO,0)) as L_COSTOREC,PE_CANT * PE_COSTOU AS PE_COSTO_TOT,PE_CANT * IFNULL(PE_RECALCULO,0) AS PE_COSTO_TOTREC, length(PE_CANT * PE_COSTOU) as L_COSTO_TOT,length(PE_CANT * IFNULL(PE_RECALCULO,0)) as L_COSTO_TOTREC,PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_CEDIS = ? AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_PROID", Array As String(Subs.traeAlmacen))
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
Printer1.WriteString(s.GetString("PE_PRONOMBRE") & CRLF)
Else
If s.GetDouble("PE_RECALCULO") = 0 Then
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
ESPACIO = ESPACIO - TAMANO
For E=0 To ESPACIO -1
BLANCO = " " & BLANCO
Next
Printer1.WriteString(BLANCO & s.GETSTRING("PE_CANT") & " X $" & s.GETSTRING("PE_COSTOU") & " $" & s.GETSTRING("PE_COSTO_TOT") & CRLF )
TAMANO = 0
ESPACIO = 21
BLANCO = " "
Else
Printer1.WriteString(s.GetString("PE_CANT") & " " & s.GetString("PE_PRONOMBRE") & CRLF)
TAMANO = s.GetLong("L_CANT") + TAMANO
TAMANO = s.GetLong("L_COSTOREC") + TAMANO
TAMANO = s.GetLong("L_COSTO_TOTREC") + TAMANO
ESPACIO = ESPACIO - TAMANO
For E=0 To ESPACIO -1
BLANCO = " " & BLANCO
Next
Printer1.WriteString(BLANCO & s.GETSTRING("PE_CANT") & " X $" & s.GETSTRING("PE_RECALCULO") & " $" & s.GETSTRING("PE_COSTO_TOTREC") & CRLF )
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")
If S.RowCount>0 Then
Printer1.WriteString("------------PROMOS------------" & CRLF)
For i=0 To S.RowCount -1
S.Position=i
If s.GetString("PE_CEDIS") = s.GetString("PE_PROID") Then
Printer1.WriteString(s.GetString("PE_PRONOMBRE") & CRLF)
Else
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
ESPACIO = ESPACIO - TAMANO
For E=0 To ESPACIO -1
BLANCO = " " & BLANCO
Next
Printer1.WriteString(BLANCO & s.GETSTRING("PE_CANT") & " X $" & s.GETSTRING("PE_COSTOU") & " $" & s.GETSTRING("PE_COSTO_TOT") & CRLF )
TAMANO = 0
ESPACIO = 21
BLANCO = " "
End If
Next
Printer1.WriteString(" " & CRLF)
End If
s.Close
s=skmt.ExecQuery("select SUM(PE_COSTO_TOT) AS TOTAL FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
s.Position =0
' If s.GetString("TOTAL") - s.GetString("TOTAL2") <> 0 Then
' Printer1.WriteString("Descuento: $" & (s.GetString("TOTAL2") - s.GetString("TOTAL")))
' End If
Printer1.WriteString("Subtotal Preventa: $" & s.GetString("TOTAL") & CRLF)
s.Close
c= skmt.ExecQuery("select sum(PE_CANT) as PC_NOART from PEDIDO where PE_CLIENTE in (Select CUENTA from cuentaa) AND PE_PROID NOT IN (SELECT CAT_PA_ID FROM PROMOS_COMP )")
C.Position=0
Printer1.WriteString("Total Articulos: " & c.GetString("PC_NOART") & CRLF)
c.Close
s=skmt.ExecQuery("select IFNULL(SUM(PE_COSTO_TOT),0) AS TOTAL FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) and IFNULL(PE_RECALCULO,0) = 0")
s.Position =0
S2=skmt.ExecQuery("select IFNULL(SUM(PE_RECALCULOTOT),0) AS TOTAL FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) and IFNULL(PE_RECALCULO,0) <> 0")
S2.Position =0
' If s.GetString("TOTAL") - s.GetString("TOTAL2") <> 0 Then
' Printer1.WriteString("Descuento: $" & (s.GetString("TOTAL2") - s.GetString("TOTAL")))
' End If
' Printer1.WriteString("Descuento: $" & 150 & CRLF)
Printer1.WriteString("Total Preventa: $" & NumberFormat2((s.GetString("TOTAL") + S2.GetString("TOTAL")),0,2,2,False)& CRLF)
Printer1.WriteString(" " & CRLF)
Printer1.WriteString("------------------------------" & CRLF)
Printer1.WriteString("ENTREGA EN :" & CRLF)
Printer1.WriteString(la_Calle.Text & CRLF)
Printer1.WriteString("----ESTE TICKET NO ES UN -----" & CRLF)
Printer1.WriteString("--COMPROBANTE FISCAL, SOLO ES-" & CRLF)
Printer1.WriteString("--------INFORMATIVO-----------" & CRLF)
Printer1.WriteString("------------------------------" & CRLF)
Printer1.WriteString(" " & CRLF)
Sleep(1000)
Printer1.DisConnect
ProgressDialogHide
' printer.Flush
' printer.Close
End Sub
Sub Impresion2
c=skmt.ExecQuery("select USUARIO from usuarioa")
c.Position=0
@@ -2633,28 +2895,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
@@ -2751,37 +3011,7 @@ Sub Impresion2
Printer1.WriteString(" " & CRLF)
End If
s.Close
' Printer1.WriteString("-------------RMI..-----------" & 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_TIPO = ? AND PE_CEDIS = ? AND LENGTH(PE_CEDIS) < 4 AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_PROID", Array As String("PREVENTA","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
' Printer1.WriteString(s.GetString("PE_PRONOMBRE") & CRLF)
'
' Else
'
' 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
'
' ESPACIO = ESPACIO - TAMANO
'
' For E=0 To ESPACIO -1
' BLANCO = " " & BLANCO
' Next
' Printer1.WriteString(BLANCO & s.GETSTRING("PE_CANT") & " X $" & s.GETSTRING("PE_COSTOU") & " $" & s.GETSTRING("PE_COSTO_TOT") & CRLF )
' TAMANO = 0
' ESPACIO = 21
' BLANCO = " "
' End If
' Next
' End If
' s.Close
s=skmt.ExecQuery("select SUM(PE_COSTO_TOT) AS TOTAL FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
s.Position =0
' If s.GetString("TOTAL") - s.GetString("TOTAL2") <> 0 Then
@@ -2835,28 +3065,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 +3124,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 +3148,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 +3179,7 @@ Sub Impresion
TAMANO = 0
ESPACIO = 21
BLANCO = " "
End If
' End If
Next
Printer1.WriteString(" " & CRLF)
End If
@@ -3058,12 +3289,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 +3328,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
@@ -6112,7 +6371,7 @@ Sub Camera1_PictureTaken (Data()As Byte)
Log(nombrefoto)
Dim img As B4XBitmap = xui.LoadBitmapResize(File.DirInternal & Dir, filename, 450, 600, True)
Dim img As B4XBitmap = xui.LoadBitmapResize(File.DirInternal & Dir, filename, 225, 300, True)
Dim out As OutputStream = File.OpenOutput(File.DirInternal & Dir & Dir2, filename, False)
img.WriteToStream(out, 100, "PNG")
' foto4 = File.ReadBytes(File.DirInternal & Dir & Dir2, nombrefoto3)

View File

@@ -28,6 +28,8 @@ Sub Class_Globals
Dim q_buscar As String
Private p_clientes As Panel
Private Panel4 As Panel
Dim reqManager As DBRequestManager
End Sub
'You can add more parameters here.
@@ -66,6 +68,7 @@ Private Sub B4XPage_Created (Root1 As B4XView)
End Sub
Sub B4XPage_Appear
reqManager.Initialize(Me, Starter.server)
busca.Text = ""
entro = "2"
colonia = 0
@@ -150,6 +153,9 @@ Sub ListView1_ItemClick (Position As Int, Value As Object)
Log(B4XPages.MainPage.cliente.bitacora.enVenta)
End If
B4XPages.ShowPage("Cliente")
End If
Log(entro)
End Sub
@@ -241,4 +247,6 @@ End Sub
Private Sub p_clientes_Click
'Nada aqui, solo esta para que los clics no se pasen hacia atras.
End Sub
End Sub

View File

@@ -78,7 +78,7 @@ Sub B4XPage_Appear
C.Position=0
Existe = C.GetString("EXISTE")
C.Close
c=B4XPages.MainPage.skmt.ExecQuery("select PE_PRONOMBRE,PE_COSTO_TOT, PE_CANT, PE_FOLIO, PE_CEDIS FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_CEDIS desc")
c=B4XPages.MainPage.skmt.ExecQuery("select PE_PRONOMBRE,PE_COSTO_TOT, PE_CANT, PE_FOLIO, PE_CEDIS, IFNULL(PE_RECALCULOTOT,0) AS PE_RECALCULOTOT FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_CEDIS desc")
ListView1.Clear
ListView1.Height = Root.Height * 0.65
Private cs As CSBuilder
@@ -99,7 +99,11 @@ Sub B4XPage_Appear
label2.TextSize = 16
label2.TextColor = Colors.White
ListView1.AddSingleLine(cs.Color(textColor).Size(20).append(c.GetString("PE_PRONOMBRE") & " ").pop.Append(CRLF).Size(16).Color(Colors.White).Append("Cantidad #"& c.GetString("PE_CANT")).Append(" SubTotal $"& c.GetString("PE_COSTO_TOT")).Append(" " & c.GetString("PE_FOLIO")& " " &c.GetString("PE_CEDIS")).PopAll)
If c.GetDouble("PE_RECALCULOTOT") = 0 Then
ListView1.AddSingleLine(cs.Color(textColor).Size(20).append(c.GetString("PE_PRONOMBRE") & " ").pop.Append(CRLF).Size(16).Color(Colors.White).Append("Cantidad #"& c.GetString("PE_CANT")).Append(" SubTotal $"& c.GetString("PE_COSTO_TOT")).Append(" " & c.GetString("PE_FOLIO")& " " &c.GetString("PE_CEDIS")).PopAll)
Else
ListView1.AddSingleLine(cs.Color(textColor).Size(20).append(c.GetString("PE_PRONOMBRE") & " ").pop.Append(CRLF).Size(16).Color(Colors.White).Append("Cantidad #"& c.GetString("PE_CANT")).Append(" SubTotal $"& c.GetString("PE_RECALCULOTOT")).Append(" " & c.GetString("PE_FOLIO")& " " &c.GetString("PE_CEDIS")).PopAll)
End If
label1.Height = 90dip
' label2.Height = 60dip
'
@@ -262,6 +266,7 @@ Sub ListView1_ItemLongClick (Position As Int, Value As Object)
nom = nom.Trim
Private cedis As String = X(X.Length-1)
Log(nom)
Log(cedis)
Dim cx As Cursor = B4XPages.MainPage.skmt.ExecQuery($"select PE_PROID,PE_CANT, PE_FOLIO, PE_CEDIS, PE_PRONOMBRE, PE_CEDIS/1 AS is_numeric FROM PEDIDO where (pe_pronombre = '${nom}' or pe_pronombre = '${nom} ') AND PE_CEDIS = '${cedis}' and is_numeric > 0 and pe_cliente in (Select CUENTA from cuentaa) and PE_RECALCULO > 0"$)
Log("Recalculados: " & cx.RowCount)
If cx.RowCount > 0 Then ' Si hay recalculo (producto con promocion), al borrar el produto hay que borrar TODO el pedido.
@@ -285,6 +290,7 @@ Sub ListView1_ItemLongClick (Position As Int, Value As Object)
c=B4XPages.MainPage.skmt.ExecQuery($"select PE_PROID,PE_CANT, PE_FOLIO, PE_CEDIS, PE_PRONOMBRE FROM PEDIDO where (pe_pronombre = '${nom}' or pe_pronombre = '${nom} ') AND PE_CEDIS = '${cedis}' and pe_cliente in (Select CUENTA from cuentaa)"$)
Log($"select PE_PROID,PE_CANT, PE_FOLIO, PE_CEDIS FROM PEDIDO where pe_pronombre = '${nom}' AND PE_CEDIS = '${cedis}' and pe_cliente in (Select CUENTA from cuentaa)"$)
Log(c.RowCount)
' If c.RowCount > 0 Then
c.Position=0
' If c.RowCount > 0 Then
' B4XPages.MainPage.skmt.ExecNonQuery2("update cat_gunaprod set cat_gp_almacen = cat_gp_almacen + ? where cat_gp_id = ?", Array As Object(c.GetString("PE_CANT"),c.GetString("PE_PROID")))

View File

@@ -731,6 +731,7 @@ Sub Subir_Click
Next
End If
c.Close
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
@@ -748,22 +749,42 @@ Sub Subir_Click
cuantos_pedido = D.GetString("CUANTOS_PEDIDO")
d.Close
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"
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")
Next
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"
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")
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"
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")
Next
End If
c.Close
d.Position=0
cuantos_pedido = D.GetString("CUANTOS_PEDIDO")
d.Close
End If
c.Close
d.Position=0
cuantos_pedido = D.GetString("CUANTOS_PEDIDO")
d.Close
' 'CUESTIONARIO
c = B4XPages.MainPage.skmt.ExecQuery($"select * from cuestionario"$)
@@ -1000,6 +1021,7 @@ Sub cargar_Click
B4XPages.MainPage.skmt.ExecNonQuery("delete from HIST_CLIENTE_CANT_PROMOS")
B4XPages.MainPage.skmt.ExecNonQuery("delete from PROMOS_COMP")
B4XPages.MainPage.skmt.ExecNonQuery("delete from CAT_VERIFICACION")
B4XPages.MainPage.skmt.ExecNonQuery("delete from CAT_PROMOS_DESCUENTOS")
B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM MARCAS_RUTAS")
B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM HIST_STAY_STORE")
B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM HIST_GEOCERCA")
@@ -1056,6 +1078,11 @@ Sub cargar_Click
cmd.Parameters = Array As Object(ALMACEN)
B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "gunaprod")
cmd.Initialize
cmd.Name = "Select_promo_descuento_guna"
cmd.Parameters = Array As Object(ALMACEN)
B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "promodesp")
cmd.Initialize
cmd.Name = "select_cat_gunaprod2_GV2"
cmd.Parameters = Array As Object(ALMACEN, e_ruta.text)
@@ -1390,10 +1417,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
@@ -1568,6 +1596,23 @@ Sub JobDone(Job As HttpJob)
End If
End If
If Job.JobName = "DBRequest" Then
Dim RESULT As DBResult = B4XPages.MainPage.reqManager.HandleJob(Job)
If RESULT.Tag = "promodesp" Then 'query tag
For Each records() As Object In RESULT.Rows
Dim CAT_PD_ALMACEN As String = records(RESULT.Columns.Get("CAT_PD_ALMACEN"))
Dim CAT_PD_COD_PROMO As String = records(RESULT.Columns.Get("CAT_PD_COD_PROMO"))
Dim CAT_PD_RANGO As String = records(RESULT.Columns.Get("CAT_PD_RANGO"))
Dim CAT_PD_RANGO2 As String = records(RESULT.Columns.Get("CAT_PD_RANGO2"))
Dim CAT_PD_VIGENCIA As String = records(RESULT.Columns.Get("CAT_PD_VIGENCIA"))
Dim CAT_PD_DESCUENTO As String = records(RESULT.Columns.Get("CAT_PD_DESCUENTO"))
Dim CAT_PD_PRODUCTO As String = records(RESULT.Columns.Get("CAT_PD_PRODUCTO"))
Dim CAT_PD_TIER As String = records(RESULT.Columns.Get("CAT_PD_TIER"))
B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO CAT_PROMOS_DESCUENTOS(CAT_PD_ALMACEN, CAT_PD_COD_PROMO, CAT_PD_RANGO, CAT_PD_VIGENCIA, CAT_PD_DESCUENTO, CAT_PD_PRODUCTO, CAT_PD_TIER,CAT_PD_RANGO2) VALUES (?,?,?,?,?,?,?,?)", Array As Object (CAT_PD_ALMACEN, CAT_PD_COD_PROMO, CAT_PD_RANGO, CAT_PD_VIGENCIA, CAT_PD_DESCUENTO, CAT_PD_PRODUCTO, CAT_PD_TIER,CAT_PD_RANGO2))
Next
End If
End If
If Job.JobName = "DBRequest" Then
Dim RESULT As DBResult = B4XPages.MainPage.reqManager.HandleJob(Job)
If RESULT.Tag = "HIST_PROM" Then 'query tag
@@ -1758,9 +1803,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 String = 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
@@ -2366,6 +2413,7 @@ Log("--------> BORRAMOS")
B4XPages.MainPage.skmt.ExecNonQuery("delete from pedido")
B4XPages.MainPage.skmt.ExecNonQuery("delete from noventa")
B4XPages.MainPage.skmt.ExecNonQuery("delete from COMENTARIOS")
B4XPages.MainPage.skmt.ExecNonQuery("delete from CAT_PROMOS_DESCUENTOS")
B4XPages.MainPage.skmt.ExecNonQuery("delete from PLAN_LEALTAD")
B4XPages.MainPage.skmt.ExecNonQuery("delete from clie_act")
B4XPages.MainPage.skmt.ExecNonQuery("delete from kmt_info3")

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
@@ -2394,7 +2397,7 @@ Sub Busca_TextChanged (Old As String, New As String)
listaHints.Initialize
Sleep(0)
' Dim p As ResultSet = B4XPages.MainPage.skmt.ExecQuery($"select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_ALMACEN, CAT_GP_PRECIO, CAT_GP_TIPOPROD from ${Starter.tabla} where CAT_GP_NOMBRE like '%${New}%' and CAT_GP_PRECIO > 0 AND CAT_GP_ALMACEN > 0 and CAT_GP_CLASIF <> 'PROMOS' order by CAT_GP_NOMBRE"$)
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_NOMBRE like '%${New}%' AND CAT_GP_PRECIO > 0 And CAT_GP_ALMACEN > 0 And CAT_GP_CLASIF <> 'PROMOS' AND CAT_GP_TIPO <> 'PROMOCION' union all 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' 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_ALMACEN, CAT_GP_PRECIO, CAT_GP_TIPOPROD, CAT_LISTAPRECIO from ${Starter.tabla} LEFT JOIN PEDIDO ON CAT_GP_ID = PE_PROID where CAT_GP_NOMBRE like '%${New}%' AND CAT_GP_PRECIO > 0 And CAT_GP_ALMACEN > 0 And CAT_GP_CLASIF <> 'PROMOS' AND CAT_GP_TIPO <> 'PROMOCION' union all select DISTINCT CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_ALMACEN, CAT_GP_PRECIO, CAT_GP_TIPOPROD, CAT_LISTAPRECIO 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"$)
Log("Llamamos LlenaProdsLL")
LlenaProdsLL(p)
' Do While p.NextRow
@@ -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_GP_PRECIO, 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_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"$)
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.08.09
'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,2,Main,Activity_Resume,46,0,Main,Globals,22,0,Main,Activity_Create,28,0,Main,Activity_ActionBarHomeClick,37,0,C_Cliente,Class_Globals,0,0,C_Cliente,Impresion3,2685,0,C_Cliente,B_IMP_Click,2674,2,C_Cliente,B4XPage_Appear,1145,3,C_Cliente,TraeCantProd,1222,6
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

@@ -1334,6 +1334,8 @@ Sub TraeMontoProd As Boolean
Return x
End Sub
Sub TraeMontoProd2 As Boolean
'This subrutine checks if the total cost of a product is between 350 and 499.99
Private x As Boolean = False
@@ -1814,7 +1816,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 +1935,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 +2191,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