diff --git a/B4A/B4XMainPage.bas b/B4A/B4XMainPage.bas
index 114f56b..aedcdb9 100644
--- a/B4A/B4XMainPage.bas
+++ b/B4A/B4XMainPage.bas
@@ -147,6 +147,9 @@ Private Sub B4XPage_Created (Root1 As B4XView)
End If
skmt.Initialize(File.DirInternal,"kmt.db", True)
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS IMPRESORA (HABILITADA)")
+ skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS PLAN_LEALTAD (PL_CLIENTE TEXT, PL_BANDERA TEXT)")
+ skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS COMENTARIOS (COMENTARTIO TEXT, CLIENTE TEXT, DESCARGADO TEXT)")
+ Subs.agregaColumna("PLAN_LEALTAD", "DESCARGADO", "TEXT")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS GPS (HABILITADO)")
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)")
@@ -184,6 +187,7 @@ Private Sub B4XPage_Created (Root1 As B4XView)
' skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_VARIABLES (CAT_VA_DESCRIPCION TEXT, CAT_VA_VALOR TEXT)")
Subs.agregaColumna("HIST_ENCUESTA", "HE_LAT", "TEXT")
Subs.agregaColumna("HIST_ENCUESTA", "HE_FOTO", "BLOB")
+ Subs.agregaColumna("kmt_info3", "foto", "BLOB")
Subs.agregaColumna("PEDIDO", "PE_RECALCULO", "TEXT")
Subs.agregaColumna("PEDIDO", "PE_RECALCULOTOT", "TEXT")
Subs.agregaColumna("HIST_ENCUESTA", "HE_LON", "TEXT")
diff --git a/B4A/C_Cliente.bas b/B4A/C_Cliente.bas
index 9945e5d..263526b 100644
--- a/B4A/C_Cliente.bas
+++ b/B4A/C_Cliente.bas
@@ -450,6 +450,16 @@ Sub Class_Globals
Private btnAceptaPlanLealtad As Button
Private btnCancelarPlanLealtad As Button
Private BCREDITO As String
+
+
+ Private p_comentarios As Panel
+ Private p_comentario As Panel
+ Private b_agregarcom As Button
+ Private b_cerarcom As Button
+ Private Label19 As Label
+ Private et_comentario As EditText
+ Private lv_comentarios As ListView
+ Private ImageView4 As ImageView
End Sub
'You can add more parameters here.
@@ -506,6 +516,9 @@ Private Sub B4XPage_Created (Root1 As B4XView)
p_transparentePDF.Width = Root.Width : p_transparentePDF.Height = Root.Height
Subs.centraPanel(p_ticketImpreso, p_transparenteTicketImpreso.Width)
Subs.centraPanel(p_envioPDF, p_transparentePDF.Width)
+ p_comentario.Left = 0 : p_comentario.top = 0
+ p_comentario.Width = Root.Width : p_comentario.Height = Root.Height
+ Subs.centraPanel(p_comentarios, p_comentario.Width)
Tels.Visible = False
gest.Visible = False
l_version.Left = Root.Width - (l_version.Width + 10)
@@ -947,6 +960,7 @@ Sub B4XPage_Appear
l_atiende.Text = c.GetString("CAT_CL_ATIENDE1")
l_atiende2.Text = c.GetString("CAT_CL_ATIENTE2")
telefono = c.GetString("CAT_CL_TELEFONO")
+ Label19.Text = c.GetString("CAT_CL_TELEFONO")
BCREDITO = c.GetString("CAT_CL_BCREDITO") '########################## CODIGO PARA CREDITOS ####################
If s.GetString("TOTAL_CLIE") = Null Then
@@ -994,6 +1008,7 @@ Sub B4XPage_Appear
l_atiende.Text = c.GetString("CAT_CL_ATIENDE1")
l_atiende2.Text = c.GetString("CAT_CL_ATIENTE2")
telefono = c.GetString("CAT_CL_TELEFONO")
+ Label19.Text = c.GetString("CAT_CL_TELEFONO")
BCREDITO = c.GetString("CAT_CL_BCREDITO") '########################## CODIGO PARA CREDITOS ####################
' Log(s.GetString("TOTAL_CLIE"))
@@ -1076,6 +1091,39 @@ Sub B4XPage_Appear
Else
btnPlanLealtad.Visible = False
End If
+
+' fotomostrar.Position = 0
+' Private imagencompara() As Byte
+' imagencompara = fotomostrar.GetBlob("foto")
+'' Log(imagencompara.Length)
+' If imagencompara.Length = Null Then
+'' ImageView4 = fotomostrar.GetBlob("foto")
+' Log("LO LOGRAMOS")
+' 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
+
+
End Sub
Sub GPS_LocationChanged (Location1 As Location)
@@ -2321,6 +2369,7 @@ Sub Guardar_Click
End Try
DateTime.TimeFormat = "HH:mm:ss"
'########################## INICIA CODIGO PARA CREDITOS ####################
+ Log(BCREDITO)
If BCREDITO = 1 And suma > 0 Then
Msgbox2Async("¿La venta va a ser a crédito o contado?" , "AVISO", "Crédito", "", "Efectivo", LoadBitmap(File.DirAssets,"alert2.png"), False)
Wait For Msgbox_Result (resultado As Int)
@@ -4937,110 +4986,110 @@ End Sub
'tomar foto
-Private Sub InitializeCamera2
- Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_CAMERA)
- Wait For B4XPage_PermissionResult (Permission As String, resultC As Boolean)
- If resultC Then
- camEx.Initialize(p_cam, frontCamera, Me, "Camera1")
- frontCamera = camEx.Front
- Log("inicializamos Camara")
- Else
- ToastMessageShow("No permission!!!", True)
- End If
-' Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_WRITE_EXTERNAL_STORAGE)
-' Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean)
-' If Result Then
-' Log("conpermisos para escritura")
+'Private Sub InitializeCamera2
+' Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_CAMERA)
+' Wait For B4XPage_PermissionResult (Permission As String, resultC As Boolean)
+' If resultC Then
+' camEx.Initialize(p_cam, frontCamera, Me, "Camera1")
+' frontCamera = camEx.Front
+' Log("inicializamos Camara")
' Else
' ToastMessageShow("No permission!!!", True)
' End If
+'' Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_WRITE_EXTERNAL_STORAGE)
+'' Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean)
+'' If Result Then
+'' Log("conpermisos para escritura")
+'' Else
+'' ToastMessageShow("No permission!!!", True)
+'' End If
+''
+'' Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_READ_EXTERNAL_STORAGE)
+'' Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean)
+'' If Result Then
+'' Log("conpermisos para escritura")
+'' Else
+'' ToastMessageShow("No permission!!!", True)
+'' End If
+'End Sub
+
+'Sub Camera1_Ready (Success As Boolean)
+' Log("Camara ready")
+' If Success Then
+' camEx.SetJpegQuality(90)
+' camEx.SetContinuousAutoFocus
+' camEx.CommitParameters
+' camEx.StartPreview
+' Log(camEx.GetPreviewSize)
+' Else
+' ToastMessageShow("Cannot open camera.", True)
+' Log("Cannot open camera")
+' End If
+'End Sub
+'
+'Sub Camera1_PictureTaken (Data()As Byte)
+' Log("tome foto")
+' Dim filename As String = DateTime.Now & "GUNA.jpg"
+' Dim Dirp As String = File.DirInternal
+' Dim Dir As String
+' Dim Dir2 As String
+' Try
+' File.MakeDir(Dirp,"/guna")
+' Dir = "/guna"
+' Log("creado en promotoria " & Dirp & Dir)
+' Catch
+' Dir = ""
+' Log("creado en raiz")
+' End Try
'
-' Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_READ_EXTERNAL_STORAGE)
-' Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean)
-' If Result Then
-' Log("conpermisos para escritura")
-' Else
-' ToastMessageShow("No permission!!!", True)
+' Try
+' File.MakeDir(Dirp & Dir,"/reduccion")
+' Dir2 = "/reduccion"
+' Log("creado en promotoria " & Dirp & Dir & Dir2)
+' Catch
+' Dir = ""
+' Log("creado en raiz")
+' End Try
+'
+' camEx.SavePictureToFile(Data, Dirp&Dir, filename)
+' Log(Dirp&Dir &" ALGO BONITO COMO UN COLOR PARA GUERRA "& filename)
+' camEx.StartPreview 'restart preview
+'' ToastMessageShow("Picture saved." & CRLF & "File size: " & File.Size(Dir, filename) & Dir &"," & filename, True)
+' Log("Picture saved." & CRLF & "File size: " & File.Size(Dir, filename) & Dir &"," & filename)
+' p_camara.Visible = False
+'
+' Log(filename)
+'
+'
+' If filename <> "0" Then
+' Dim img As B4XBitmap = xui.LoadBitmapResize(File.DirInternal & Dir, filename, 300, 450, True)
+' Dim out As OutputStream = File.OpenOutput(File.DirInternal & Dir & Dir2, filename, True)
+' img.WriteToStream(out, 100, "PNG")
+' out.Close
+' Private fecha As String = $"${DateTime.Date(DateTime.Now)} ${DateTime.Time(DateTime.Now)}"$
+' B4XPages.MainPage.skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_FOTO, HE_FECHA, HE_TIPO, HE_LAT, HE_LON,HE_RES) VALUES (?,?,?,?,?,?,?)", Array As Object(la_cuenta.Text, File.ReadBytes(File.DirInternal & Dir & Dir2, filename), fecha, idencuestaaguardar, B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps,"FOTO"))
' End If
-End Sub
-
-Sub Camera1_Ready (Success As Boolean)
- Log("Camara ready")
- If Success Then
- camEx.SetJpegQuality(90)
- camEx.SetContinuousAutoFocus
- camEx.CommitParameters
- camEx.StartPreview
- Log(camEx.GetPreviewSize)
- Else
- ToastMessageShow("Cannot open camera.", True)
- Log("Cannot open camera")
- End If
-End Sub
-
-Sub Camera1_PictureTaken (Data()As Byte)
- Log("tome foto")
- Dim filename As String = DateTime.Now & "GUNA.jpg"
- Dim Dirp As String = File.DirInternal
- Dim Dir As String
- Dim Dir2 As String
- Try
- File.MakeDir(Dirp,"/guna")
- Dir = "/guna"
- Log("creado en promotoria " & Dirp & Dir)
- Catch
- Dir = ""
- Log("creado en raiz")
- End Try
-
- Try
- File.MakeDir(Dirp & Dir,"/reduccion")
- Dir2 = "/reduccion"
- Log("creado en promotoria " & Dirp & Dir & Dir2)
- Catch
- Dir = ""
- Log("creado en raiz")
- End Try
-
- camEx.SavePictureToFile(Data, Dirp&Dir, filename)
- Log(Dirp&Dir &" ALGO BONITO COMO UN COLOR PARA GUERRA "& filename)
- camEx.StartPreview 'restart preview
-' ToastMessageShow("Picture saved." & CRLF & "File size: " & File.Size(Dir, filename) & Dir &"," & filename, True)
- Log("Picture saved." & CRLF & "File size: " & File.Size(Dir, filename) & Dir &"," & filename)
- p_camara.Visible = False
-
- Log(filename)
-
-
- If filename <> "0" Then
- Dim img As B4XBitmap = xui.LoadBitmapResize(File.DirInternal & Dir, filename, 300, 450, True)
- Dim out As OutputStream = File.OpenOutput(File.DirInternal & Dir & Dir2, filename, True)
- img.WriteToStream(out, 100, "PNG")
- out.Close
- Private fecha As String = $"${DateTime.Date(DateTime.Now)} ${DateTime.Time(DateTime.Now)}"$
- B4XPages.MainPage.skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_FOTO, HE_FECHA, HE_TIPO, HE_LAT, HE_LON,HE_RES) VALUES (?,?,?,?,?,?,?)", Array As Object(la_cuenta.Text, File.ReadBytes(File.DirInternal & Dir & Dir2, filename), fecha, idencuestaaguardar, B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps,"FOTO"))
- End If
- StopCamera2
-' nombrefoto = "0"
- ocultaPanelEncuesta
-End Sub
-
-Private Sub p_camara_Click
-
-End Sub
-
-Private Sub b_foto_Click
- camEx.TakePicture
- p_camara.Visible = False
' StopCamera2
-End Sub
-
-Private Sub StopCamera2
-' Capturing = False
- If camEx.IsInitialized Then
- camEx.Release
- End If
-End Sub
+'' nombrefoto = "0"
+' ocultaPanelEncuesta
+'End Sub
+'
+'Private Sub p_camara_Click
+'
+'End Sub
+'
+'Private Sub b_foto_Click
+' camEx.TakePicture
+' p_camara.Visible = False
+'' StopCamera2
+'End Sub
+'
+'Private Sub StopCamera2
+'' Capturing = False
+' If camEx.IsInitialized Then
+' camEx.Release
+' End If
+'End Sub
Private Sub b_Inicio_Fin_venta_Click
'' b_Inicio_Fin_venta.Visible = False
@@ -5580,3 +5629,243 @@ Sub mandaWAMsgCredito(numTel As String, monto As String)
Log("Whatsapp enviado con exito: " & job.Success)
End Sub
'########################## TERMINA CODIGO PARA CREDITOS ####################
+
+
+
+
+Private Sub p_comentario_Click
+
+End Sub
+
+Private Sub p_comentarios_Click
+
+End Sub
+
+Private Sub b_comentarios_Click
+ p_comentario.Visible = True
+ et_comentario.Text = ""
+ Dim label1 As Label
+ label1 = lv_comentarios.SingleLineLayout.Label
+ label1.TextSize = 16
+ label1.TextColor = Colors.White
+
+
+
+
+ label1.Typeface = Typeface.CreateNew(Typeface.DEFAULT_BOLD, Typeface.STYLE_BOLD)
+
+
+' Subs.centraListView(lv_comentarios,Root.Width)
+
+ Private c As Cursor = Starter.skmt.ExecQuery("select COMENTARTIO FROM COMENTARIOS WHERE CLIENTE IN (SELECT CUENTA FROM CUENTAA)")
+ lv_comentarios.SingleLineLayout.Label.TextColor = Colors.BlacK
+ lv_comentarios.Clear
+ If c.RowCount > 0 Then
+ For i = 0 To c.RowCount - 1
+ c.Position = i
+ Dim itemText As String
+
+ itemText = $"${c.GetString("COMENTARTIO")}"$
+ lv_comentarios.AddSingleLine(itemText)
+
+ Next
+ Else
+ lv_comentarios.AddSingleLine("No hay datos disponibles.")
+ End If
+' skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS COMENTARIOS (COMENTARTIO TEXT, CLIENTE TEXT, DESCARGADO TEXT)")
+
+
+End Sub
+
+Private Sub b_cerarcom_Click
+ p_comentario.Visible = False
+ et_comentario.Text = ""
+End Sub
+
+Private Sub b_agregarcom_Click
+
+ If et_comentario.Text <> "" Then
+ B4XPages.MainPage.skmt.ExecNonQuery($"insert into COMENTARIOS (COMENTARTIO, CLIENTE) values ('${et_comentario.Text}','${Subs.traeCliente}')"$)
+
+ Dim label1 As Label
+ label1 = lv_comentarios.SingleLineLayout.Label
+ label1.TextSize = 16
+ label1.TextColor = Colors.White
+
+
+
+
+ label1.Typeface = Typeface.CreateNew(Typeface.DEFAULT_BOLD, Typeface.STYLE_BOLD)
+
+
+' Subs.centraListView(lv_comentarios,Root.Width)
+
+ Private c As Cursor = Starter.skmt.ExecQuery("select COMENTARTIO FROM COMENTARIOS WHERE CLIENTE IN (SELECT CUENTA FROM CUENTAA)")
+ lv_comentarios.SingleLineLayout.Label.TextColor = Colors.BlacK
+ lv_comentarios.Clear
+ If c.RowCount > 0 Then
+ For i = 0 To c.RowCount - 1
+ c.Position = i
+ Dim itemText As String
+
+ itemText = $"${c.GetString("COMENTARTIO")}"$
+ lv_comentarios.AddSingleLine(itemText)
+
+ Next
+ Else
+ lv_comentarios.AddSingleLine("No hay datos disponibles.")
+ End If
+ c.Close
+ et_comentario.Text = ""
+ End If
+
+End Sub
+
+Private Sub Label19_Click
+
+End Sub
+
+Private Sub Label19_LongClick
+
+ Dim numeroTel As String = Label19.Text
+
+ numeroTel = numeroTel.Replace(" ", "").Replace("-", "").Replace("(", "").Replace(")", "")
+
+ If numeroTel.Length > 0 Then
+ Dim Intent1 As Intent
+ Intent1.Initialize("android.intent.action.DIAL", "tel:" & numeroTel)
+ StartActivity(Intent1)
+ Else
+ ToastMessageShow("Número no válido", False)
+ End If
+
+ Return True
+
+End Sub
+
+Private Sub ImageView4_Click
+ InitializeCamera2
+ p_camara.Visible = True
+ Subs.centraPanel(p_cam,p_camara.Width)
+
+ p_camara.BringToFront
+End Sub
+
+
+Private Sub InitializeCamera2
+ Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_CAMERA)
+ Wait For B4XPage_PermissionResult (Permission As String, resultC As Boolean)
+ If resultC Then
+ camEx.Initialize(p_cam, frontCamera, Me, "Camera1")
+ frontCamera = camEx.Front
+ Log("inicializamos Camara")
+ Else
+ ToastMessageShow("No permission Camara!!!", True)
+ End If
+End Sub
+
+Sub Camera1_Ready (Success As Boolean)
+ Log("Camara ready")
+ If Success Then
+ camEx.SetJpegQuality(90)
+ camEx.SetContinuousAutoFocus
+ camEx.CommitParameters
+ camEx.StartPreview
+ Log(camEx.GetPreviewSize)
+ Else
+ ToastMessageShow("Cannot open camera.", True)
+ Log("Cannot open camera")
+ End If
+End Sub
+
+Sub Camera1_PictureTaken (Data()As Byte)
+
+ DateTime.DateFormat="ddMMyyyyHHmmss"
+ nombrefoto = DateTime.Now & "_FOTO1.jpg"
+ teclado.HideKeyboard
+ fototomada = nombrefoto
+
+
+ Log("tome foto")
+ Dim filename As String = fototomada
+ Dim Dirp As String = File.DirInternal
+ Dim Dir As String
+ Dim Dir2 As String
+ Try
+ File.MakeDir(Dirp,"/md")
+ Dir = "/md"
+ Log("creado en promotoria " & Dirp & Dir)
+ Catch
+ Dir = ""
+ Log("creado en raiz")
+ End Try
+
+ Try
+ File.MakeDir(Dirp & Dir,"/reduccion")
+ Dir2 = "/reduccion"
+ Log("creado en promotoria " & Dirp & Dir & Dir2)
+ Catch
+ Dir = ""
+ Log("creado en raiz")
+ End Try
+
+ camEx.SavePictureToFile(Data, Dirp&Dir, filename)
+ camEx.StartPreview 'restart preview
+' ToastMessageShow("Picture saved." & CRLF & "File size: " & File.Size(Dir, filename) & Dir &"," & filename, True)
+ Log("Picture saved." & CRLF & "File size: " & File.Size(Dir, filename) & Dir &"," & filename)
+ p_camara.Visible = False
+
+ Log(nombrefoto)
+
+ Dim img As B4XBitmap = xui.LoadBitmapResize(File.DirInternal & Dir, filename, 450, 600, 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)
+
+ out.Close
+ ImageView4.Bitmap = LoadBitmap(File.DirInternal & Dir & Dir2,nombrefoto)
+
+ skmt.ExecNonQuery2("UPDATE kmt_info3 SET foto = (?) WHERE CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA)",Array As Object(File.ReadBytes(File.DirInternal & Dir & Dir2, nombrefoto)))
+ StopCamera2
+
+End Sub
+
+Private Sub p_camara_Click
+
+End Sub
+
+Private Sub b_foto_Click
+' Log(nombrefoto)
+' Dim Dirp As String = File.DirInternal
+' Dim Dir As String
+' Dim Dir2 As String
+' Try
+' File.MakeDir(Dirp,"/md")
+' Dir = "/md"
+' Log("creado en promotoria " & Dirp & Dir)
+' Catch
+' Dir = ""
+' Log("creado en raiz")
+' End Try
+'
+' Try
+' File.MakeDir(Dirp & Dir,"/reduccion")
+' Dir2 = "/reduccion"
+' Log("creado en promotoria " & Dirp & Dir & Dir2)
+' Catch
+' Dir = ""
+' Log("creado en raiz")
+' End Try
+ camEx.TakePicture
+ p_camara.Visible = False
+
+' skmt.ExecNonQuery2("UPDATE kmt_info3 SET foto = (?) WHERE CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA)",Array As Object(File.ReadBytes(File.DirInternal & Dir & Dir2, nombrefoto)))
+' StopCamera2
+End Sub
+
+Private Sub StopCamera2
+' Capturing = False
+ If camEx.IsInitialized Then
+ camEx.Release
+ End If
+End Sub
\ No newline at end of file
diff --git a/B4A/C_Principal.bas b/B4A/C_Principal.bas
index 8fb8373..6c30838 100644
--- a/B4A/C_Principal.bas
+++ b/B4A/C_Principal.bas
@@ -616,6 +616,34 @@ Sub Subir_Click
Next
End If
c.Close
+
+ ' Plan Lealtad
+ c=B4XPages.MainPage.skmt.ExecQuery("SELECT * FROM PLAN_LEALTAD WHERE DESCARGADO IS NULL")
+ If c.RowCount>0 Then
+ For i=0 To c.RowCount -1
+ c.Position=i
+ Dim cmd As DBCommand
+ cmd.Initialize
+ cmd.Name = "insert_plan_lealtad_GUNA"
+ cmd.Parameters = Array As Object(C.GetString("PL_BANDERA"),C.GetString("PL_CLIENTE"),Subs.traeAlmacen,Subs.traeRuta)
+ B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "insPlanLealtad")
+ Next
+ End If
+ c.Close
+
+ ' Plan Lealtad
+ c=B4XPages.MainPage.skmt.ExecQuery("SELECT * FROM COMENTARIOS WHERE DESCARGADO IS NULL")
+ If c.RowCount>0 Then
+ For i=0 To c.RowCount -1
+ c.Position=i
+ Dim cmd As DBCommand
+ cmd.Initialize
+ cmd.Name = "insert_coments_GUNA"
+ cmd.Parameters = Array As Object(C.GetString("COMENTARTIO"),C.GetString("CLIENTE"),Subs.traeAlmacen,Subs.traeRuta)
+ B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "INS_coment")
+ Next
+ End If
+ c.Close
c=B4XPages.MainPage.skmt.ExecQuery("SELECT CAT_CL_NUM_SERIEFISICO,CAT_CL_CODIGO ,CAT_CL_LONG,CAT_CL_LAT, CAT_CL_FOTO FROM kmt_info3 where CAT_CL_NUM_SERIEFISICO IS NOT NULL and gestion <> '0'")
If c.RowCount>0 Then
@@ -965,6 +993,10 @@ Sub cargar_Click
DateTime.DateFormat = "MM/dd/yyyy"
sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now)
+ cmd.Initialize
+ cmd.Name = "select_planLealtad_GUNA"
+ cmd.Parameters = Array As Object(ALMACEN, e_ruta.text)
+ B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "planLealtad")
Subs.guardaVariable("RUTA", e_ruta.text)
@@ -980,6 +1012,11 @@ Sub cargar_Click
cmd.Parameters = Array As Object(ALMACEN, e_ruta.text)
B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "tipoVenta")
+ cmd.Initialize
+ cmd.Name = "select_coments_GUNA"
+ cmd.Parameters = Array As Object(ALMACEN, e_ruta.text)
+ B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "coments")
+
cmd.Initialize
cmd.Name = "select_cat_gunaprod_GV2"
cmd.Parameters = Array As Object(ALMACEN)
@@ -2100,6 +2137,24 @@ Sub JobDone(Job As HttpJob)
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("TIPO_VENTA", tipoVenta))
Log($">>>> GUARDAMOS TIPO_VENTA: ${tipoVenta}"$)
End If
+ If RESULT.Tag = "planLealtad" Then 'query tag
+ B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM PLAN_LEALTAD WHERE DESCARGADO = 1")
+ For Each records() As Object In RESULT.Rows
+ Dim PL_CLIENTE As String = records(RESULT.Columns.Get("TMP_PL_CLIENTE"))
+ Dim PL_BANDERA As String = records(RESULT.Columns.Get("TMP_PL_BANDERA"))
+ B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO PLAN_LEALTAD(PL_CLIENTE, PL_BANDERA, DESCARGADO) VALUES (?,?,?)", Array As Object (PL_CLIENTE, PL_BANDERA,1))
+ Next
+ End If
+
+ If RESULT.Tag = "coments" Then 'query tag
+ B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM COMENTARIOS WHERE DESCARGADO = 1")
+ For Each records() As Object In RESULT.Rows
+ Dim COMENTARIO As String = records(RESULT.Columns.Get("TMP_COM_COMENTARIO"))
+ Dim CLIENTECOM As String = records(RESULT.Columns.Get("TMP_COM_CLIENTE"))
+ B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO COMENTARIOS(COMENTARTIO, CLIENTE, DESCARGADO) VALUES (?,?,?)", Array As Object (COMENTARIO, CLIENTECOM,1))
+ Next
+ End If
+
End If
End If
If B4XPages.MainPage.reqManager.reqsList.IsInitialized Then
@@ -2240,6 +2295,7 @@ Log("--------> BORRAMOS")
B4XPages.MainPage.skmt.ExecNonQuery("delete from pedido_cliente")
B4XPages.MainPage.skmt.ExecNonQuery("delete from pedido")
B4XPages.MainPage.skmt.ExecNonQuery("delete from noventa")
+ B4XPages.MainPage.skmt.ExecNonQuery("delete from PLAN_LEALTAD")
B4XPages.MainPage.skmt.ExecNonQuery("delete from clie_act")
B4XPages.MainPage.skmt.ExecNonQuery("delete from kmt_info3")
B4XPages.MainPage.skmt.ExecNonQuery("delete from cat_gunaprod")
diff --git a/B4A/C_Productos.bas b/B4A/C_Productos.bas
index 973e0c8..571d1ff 100644
--- a/B4A/C_Productos.bas
+++ b/B4A/C_Productos.bas
@@ -141,6 +141,7 @@ Sub B4XPage_Appear
l_totProds.Width = Root.Width * 0.19
l_total.Left = l_totProds.Width + 20
l_total.Width = Root.Width * 0.25
+
' llenaCatalogo(False)
End Sub
@@ -163,12 +164,11 @@ Sub lv_catalogos_ItemClick (Position As Int, Value As Object)
' Else
Private cd As Cursor = B4XPages.MainPage.skmt.ExecQuery("SELECT HVD_CLIENTE FROM PROMO_ESP WHERE HVD_CLIENTE IN (SELECT CUENTA FROM CUENTAA)")
If cd.RowCount = 0 Then
-
- LogColor("Promos" & " | " & marca & " | " & tipo, Colors.red)
- c2 = B4XPages.MainPage.skmt.ExecQuery2($"Select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_PRECIO, CAT_GP_ALMACEN, CAT_GP_IMG from ${Subs.traeTablaProds(tipo_venta)} where CAT_GP_PRECIO > 0 And CAT_GP_ALMACEN > 0 And CAT_GP_TIPOPROD = ? AND CAT_GP_ID NOT IN (SELECT DISTINCT CAT_PE_IDPROMO FROM CAT_PROMO_ESP) AND CAT_GP_TIPO = ? AND CAT_GP_SUBTIPO = ? AND CAT_GP_ID NOT IN (SELECT PE_PROID FROM PEDIDO WHERE PE_CLIENTE IN (Select cuenta from cuentaa))"$, Array As String(Value, marca, tipo))
+ LogColor("1- Promos" & " | " & marca & " | " & tipo, Colors.red)
+ c2 = B4XPages.MainPage.skmt.ExecQuery2($"Select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_PRECIO, CAT_GP_ALMACEN, CAT_GP_IMG, cat_pa_bsegmenta, cat_pa_segmentav from ${Subs.traeTablaProds(tipo_venta)} where CAT_GP_PRECIO > 0 And CAT_GP_ALMACEN > 0 And CAT_GP_TIPOPROD = ? AND CAT_GP_ID NOT IN (SELECT DISTINCT CAT_PE_IDPROMO FROM CAT_PROMO_ESP) AND CAT_GP_TIPO = ? AND CAT_GP_SUBTIPO = ? AND CAT_GP_ID NOT IN (SELECT PE_PROID FROM PEDIDO WHERE PE_CLIENTE IN (Select cuenta from cuentaa))"$, Array As String(Value, marca, tipo))
Else If cd.RowCount > 0 Then
- LogColor("Promos" & " | " & marca & " | " & tipo, Colors.red)
- c2 = B4XPages.MainPage.skmt.ExecQuery2($"Select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_PRECIO, CAT_GP_ALMACEN, CAT_GP_IMG from ${Subs.traeTablaProds(tipo_venta)} where CAT_GP_PRECIO > 0 And CAT_GP_ALMACEN > 0 And CAT_GP_TIPOPROD = ? and CAT_GP_ID <> 'PRO2265' AND CAT_GP_ID NOT IN (SELECT DISTINCT CAT_PE_IDPROMO FROM CAT_PROMO_ESP) AND CAT_GP_TIPO = ? AND CAT_GP_SUBTIPO = ? AND CAT_GP_ID NOT IN (SELECT PE_PROID FROM PEDIDO WHERE PE_CLIENTE IN (Select cuenta from cuentaa))"$, Array As String(Value, marca, tipo))
+ LogColor("2- Promos" & " | " & marca & " | " & tipo, Colors.red)
+ c2 = B4XPages.MainPage.skmt.ExecQuery2($"Select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_PRECIO, CAT_GP_ALMACEN, CAT_GP_IMG, cat_pa_bsegmenta, cat_pa_segmentav from ${Subs.traeTablaProds(tipo_venta)} where CAT_GP_PRECIO > 0 And CAT_GP_ALMACEN > 0 And CAT_GP_TIPOPROD = ? and CAT_GP_ID <> 'PRO2265' AND CAT_GP_ID NOT IN (SELECT DISTINCT CAT_PE_IDPROMO FROM CAT_PROMO_ESP) AND CAT_GP_TIPO = ? AND CAT_GP_SUBTIPO = ? AND CAT_GP_ID NOT IN (SELECT PE_PROID FROM PEDIDO WHERE PE_CLIENTE IN (Select cuenta from cuentaa))"$, Array As String(Value, marca, tipo))
End If
' End If
Else
@@ -194,6 +194,7 @@ Sub lv_catalogos_ItemClick (Position As Int, Value As Object)
ProgressDialogHide
c2.Close
Else
+ Log("--PROMOS--")
clv_productos.AsView.Visible = False
lv_promos.Visible = True
lv_catalogos.Visible = False
@@ -221,9 +222,19 @@ Sub lv_catalogos_ItemClick (Position As Int, Value As Object)
Private yaComproPRO2265 As Boolean = Subs.revisaPRO2265(Subs.traeCliente)
Private yaComproPRO3054 As Boolean = Subs.revisaPRO3054(Subs.traeCliente)
Private yaComproPRO3055 As Boolean = Subs.revisaPRO3055(Subs.traeCliente)
+ Private tipoCliente = Subs.traeTipoCliente
If c2.RowCount > 0 Then
For i=0 To c2.RowCount - 1
c2.Position = i
+ Private muestraPromo As Boolean = True
+ Log($"SEGMENTADA: ${c2.GetString("CAT_PA_BSEGMENTA")}"$)
+ If c2.GetInt("CAT_PA_BSEGMENTA") = 1 Then
+ LogColor("####### PROMO SEGMENTADA ####", Colors.Blue)
+ LogColor($"####### SEGV: ${c2.GetString("CAT_PA_SEGMENTAV")} ####"$, Colors.Blue)
+ LogColor($"####### TIPOCLIE: ${tipoCliente} ####"$, Colors.Blue)
+ LogColor($"####### ¿ENTRA?: ${c2.GetString("CAT_PA_SEGMENTAV").Contains(tipoCliente)} ####"$, Colors.Blue)
+ If Not(c2.GetString("CAT_PA_SEGMENTAV").Contains(tipoCliente)) Then muestraPromo = False
+ End If
' jpeg = c2.GetBlob("CAT_GP_IMG")
' ins.InitializeFromBytesArray(jpeg, 0, jpeg.Length)
' bmp.Initialize2(ins)
@@ -238,7 +249,8 @@ Sub lv_catalogos_ItemClick (Position As Int, Value As Object)
(yaComproPRO3055 And c2.GetString("CAT_GP_ID") = "PRO3055") Then ' Si la promo es la PRO3054 o PRO3055 y ya compro, NO la mostramos.
LogColor("Ya compro prods de la PRO3054 o PRO3055 o es cliente nuevo, ya no se muestra.", Colors.Red)
Else
- lv_promos.AddTwoLines(c2.GetString("CAT_GP_NOMBRE"),"# " & c2.GetString("CAT_GP_ALMACEN") & " $ " & c2.GetString("CAT_GP_PRECIO") & " F:" & tm.Get("mp").As(Map).Get("prodsFijosCant") & " V:" & tm.Get("mp").As(Map).Get("prodsVariablesCant"))
+ Log($"################################${CRLF} ${muestraPromo}${CRLF}################################"$)
+ If muestraPromo Then lv_promos.AddTwoLines(c2.GetString("CAT_GP_NOMBRE"),"# " & c2.GetString("CAT_GP_ALMACEN") & " $ " & c2.GetString("CAT_GP_PRECIO") & " F:" & tm.Get("mp").As(Map).Get("prodsFijosCant") & " V:" & tm.Get("mp").As(Map).Get("prodsVariablesCant"))
End If
End If
End If
@@ -272,7 +284,7 @@ Sub lv_promos_ItemClick (Position As Int, Value As Object)
B4XPages.ShowPage("Cliente")
End If
If entro = "3" Then
- LogColor("Promos YYY", Colors.red)
+ LogColor("Promos YYY", Colors.red)
c2=B4XPages.MainPage.skmt.ExecQuery2($"select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_PRECIO, CAT_GP_ALMACEN, CAT_GP_IMG from ${Subs.traeTablaProds(tipo_venta)} where CAT_GP_PRECIO > 0 AND CAT_GP_ALMACEN > 0 and CAT_GP_TIPOPROD = ? AND CAT_GP_TIPO = ? AND CAT_GP_SUBTIPO = ? AND CAT_GP_ID NOT IN (SELECT PE_PROID FROM PEDIDO WHERE PE_CLIENTE IN (Select cuenta from cuentaa) )"$, Array As String(Value, marca, tipo))
clv_productos.AsView.Visible = False
lv_promos.Visible = True
@@ -377,7 +389,7 @@ Private Sub B4XPage_CloseRequest As ResumableSub
' ya_entro ="0" : Log("ya_entro=0")
If lv_catalogos.visible = True Then
B4XPages.ShowPage("Cliente")
- Return False
+ Return False
ELSE If l_info.Visible Then
l_info.Visible = False
Return False
@@ -549,22 +561,22 @@ End Sub
Private Sub et_pCant_TextChanged (Old As String, New As String)
' LogColor($"txt changed: ${Old}|${New}, hasfocus=${etCantHasFocus}"$,Colors.Magenta)
' Try
- Dim index As Int = clv_productos.GetItemFromView(Sender)
- Dim pnl0 As B4XView = clv_productos.GetPanel(index)
- Dim pnl As B4XView = pnl0.GetView(0)
- Dim laCant As B4XView = pnl.GetView(2).GetView(3)
- Dim esteTag As List = Regex.Split("\|", laCant.Tag)
+ Dim index As Int = clv_productos.GetItemFromView(Sender)
+ Dim pnl0 As B4XView = clv_productos.GetPanel(index)
+ Dim pnl As B4XView = pnl0.GetView(0)
+ Dim laCant As B4XView = pnl.GetView(2).GetView(3)
+ Dim esteTag As List = Regex.Split("\|", laCant.Tag)
' Log($"${esteTag}, ${laCant.text}"$)
- If New = "" Then
- laCant.Text = "0"
- New = "0"
- End If
- If esteTag.Get(1) < New Then laCant.Text = esteTag.Get(1)
- If Not(Old = "0" And New = "") And etCantHasFocus Then
+ If New = "" Then
+ laCant.Text = "0"
+ New = "0"
+ End If
+ If esteTag.Get(1) < New Then laCant.Text = esteTag.Get(1)
+ If Not(Old = "0" And New = "") And etCantHasFocus Then
' Log(esteTag)
Subs.actualizaProducto(Subs.traeAlmacen, esteTag.Get(0), laCant.Text, Subs.traeProdNombre(esteTag.Get(2)), esteTag.Get(2), Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaActual, 0, B4XPages.MainPage.tipo_venta)
- cuentaProds
- End If
+ cuentaProds
+ End If
' Catch
' Log(LastException)
' End Try
@@ -597,17 +609,17 @@ Sub cuentaProds
Log("-= CUENTAPRODS =-")
' totalProds = 0
' totalCompra = 0
-'' Private inicioContador As String = DateTime.Now
+ '' Private inicioContador As String = DateTime.Now
' For i = 0 To clv_productos.GetSize - 1
' Private p0 As B4XView = clv_productos.GetPanel(i)
' Private p As B4XView = p0.GetView(0)
' Private cant1 As B4XView = p.GetView(2).GetView(3)
' If cant1.Text = "" Then cant1.Text = 0
-'' Private cant2 As Int = 0
-'' If cant1.Text <> "" Then cant2 = cant1.Text
-'' Private laCant As Int = cant1.text.Replace (",", "")
-'' cant1.Text = cant1.text
-'' cant1.Text = laCant
+ '' Private cant2 As Int = 0
+ '' If cant1.Text <> "" Then cant2 = cant1.Text
+ '' Private laCant As Int = cant1.text.Replace (",", "")
+ '' cant1.Text = cant1.text
+ '' cant1.Text = laCant
' Log($"${totalProds}, ${cant1.text}, ${cant1.text}"$)
' totalProds = totalProds + cant1.text
' Private esteTag As List = Regex.Split("\|", cant1.Tag)
@@ -772,4 +784,3 @@ End Sub
' Sabores GUN003, GUN005, GUN004, GUN050
' Basicas PRO3054, GUN141
' Sabores PRO3055, GUN142
-
diff --git a/B4A/Files/cliente.bal b/B4A/Files/cliente.bal
index 9b03357..10b7ab3 100644
Binary files a/B4A/Files/cliente.bal and b/B4A/Files/cliente.bal differ
diff --git a/B4A/Files/images.png b/B4A/Files/images.png
new file mode 100644
index 0000000..d21dd9d
Binary files /dev/null and b/B4A/Files/images.png differ
diff --git a/B4A/Guna Vistas V3.1.b4a b/B4A/Guna Vistas V3.1.b4a
index 311fb6c..6bdee75 100644
--- a/B4A/Guna Vistas V3.1.b4a
+++ b/B4A/Guna Vistas V3.1.b4a
@@ -33,69 +33,70 @@ File37=Hacer pedido.jpg
File38=hacerpedido30.png
File39=ic_cloud_download_white_24dp.png
File4=amarillo.png
-File40=infonavit1.jpg
-File41=inicioFinVenta.bal
-File42=itembuttonblue.png
-File43=keymon_logo.png
-File44=kmt.db
-File45=login.bal
-File46=Logo Guna_192x192.png
-File47=Logo Guna-01.png
-File48=logo sanfer.jpg
-File49=logo_exitus1.jpg
+File40=images.png
+File41=infonavit1.jpg
+File42=inicioFinVenta.bal
+File43=itembuttonblue.png
+File44=keymon_logo.png
+File45=kmt.db
+File46=login.bal
+File47=Logo Guna_192x192.png
+File48=Logo Guna-01.png
+File49=logo sanfer.jpg
File5=anterior.jpg
-File50=logo-guna-18.png
-File51=MainPage.bal
-File52=Malo.jpg
-File53=mapa.bal
-File54=mapa_rutas.bal
-File55=maparutas.bal
-File56=mas-azul.png
-File57=mas-azul-red.png
-File58=mas-azul-red1.png
-File59=menos.png
+File50=logo_exitus1.jpg
+File51=logo-guna-18.png
+File52=MainPage.bal
+File53=Malo.jpg
+File54=mapa.bal
+File55=mapa_rutas.bal
+File56=maparutas.bal
+File57=mas-azul.png
+File58=mas-azul-red.png
+File59=mas-azul-red1.png
File6=bus-ar.png
-File60=menosred.png
-File61=menos-red.png
-File62=nota (conflict 2022-07-08-00-16-40).bal
-File63=nota.bal
-File64=noventa.bal
-File65=nuevocliente.bal
-File66=nuevo-cliente20.png
-File67=Nvo Cliente.jpg
-File68=p&g.png
-File69=palomita_verde.png
+File60=menos.png
+File61=menosred.png
+File62=menos-red.png
+File63=nota (conflict 2022-07-08-00-16-40).bal
+File64=nota.bal
+File65=noventa.bal
+File66=nuevocliente.bal
+File67=nuevo-cliente20.png
+File68=Nvo Cliente.jpg
+File69=p&g.png
File7=carrito.png
-File70=pedido.bal
-File71=planfia_logo.png
-File72=planfia_logo_old.png
-File73=planfia_logo_old2.png
-File74=principal.bal
-File75=proditem.bal
-File76=proditem2.bal
-File77=productos.bal
-File78=promociones.bal
-File79=qr.bal
+File70=palomita_verde.png
+File71=pedido.bal
+File72=planfia_logo.png
+File73=planfia_logo_old.png
+File74=planfia_logo_old2.png
+File75=principal.bal
+File76=proditem.bal
+File77=proditem2.bal
+File78=productos.bal
+File79=promociones.bal
File8=celltitle.bal
-File80=qr_gallina.jpg
-File81=QRPlanLealtad.png
-File82=resdia.bal
-File83=ResDia.jpg
-File84=resdia20.png
-File85=rojo.png
-File86=salma.jpg
-File87=salma.png
-File88=seleccion.bal
-File89=senial.jpg
+File80=qr.bal
+File81=qr_gallina.jpg
+File82=QRPlanLealtad.png
+File83=resdia.bal
+File84=ResDia.jpg
+File85=resdia20.png
+File86=rojo.png
+File87=salma.jpg
+File88=salma.png
+File89=seleccion.bal
File9=cliente.bal
-File90=sync.png
-File91=tache_rojo.png
-File92=telefonos.bal
-File93=Ticket dia.jpg
-File94=ticketdia20.png
-File95=ticketsdia.bal
-File96=Tiendita.jpg
-File97=verde.png
+File90=senial.jpg
+File91=sync.png
+File92=tache_rojo.png
+File93=telefonos.bal
+File94=Ticket dia.jpg
+File95=ticketdia20.png
+File96=ticketsdia.bal
+File97=Tiendita.jpg
+File98=verde.png
FileGroup1=Default Group
FileGroup10=Default Group
FileGroup11=Default Group
@@ -193,41 +194,43 @@ FileGroup94=Default Group
FileGroup95=Default Group
FileGroup96=Default Group
FileGroup97=Default Group
+FileGroup98=Default Group
Group=Default Group
Library1=appupdating
-Library10=fileprovider
-Library11=firebaseanalytics
-Library12=firebasenotifications
-Library13=fusedlocationprovider
-Library14=googlemaps
-Library15=googlemapsextras
-Library16=gps
-Library17=ime
-Library18=javaobject
-Library19=jhsicezxing1
+Library10=core
+Library11=fileprovider
+Library12=firebaseanalytics
+Library13=firebasenotifications
+Library14=fusedlocationprovider
+Library15=googlemaps
+Library16=googlemapsextras
+Library17=gps
+Library18=ime
+Library19=javaobject
Library2=b4xpages
-Library20=json
-Library21=okhttputils2
-Library22=phone
-Library23=preoptimizedclv
-Library24=randomaccessfile
-Library25=rspopupmenu
-Library26=runtimepermissions
-Library27=serial
-Library28=sql
-Library29=togglelibrary
+Library20=jhsicezxing1
+Library21=json
+Library22=okhttputils2
+Library23=phone
+Library24=preoptimizedclv
+Library25=randomaccessfile
+Library26=rspopupmenu
+Library27=runtimepermissions
+Library28=serial
+Library29=sql
Library3=baqrcode
-Library30=xcustomlistview
-Library31=xui
-Library32=xui views
-Library33=contentresolver
+Library30=togglelibrary
+Library31=xcustomlistview
+Library32=xui
+Library33=xui views
+Library34=clipboard
Library4=batteryprogressview
Library5=bitmapcreator
Library6=byteconverter
Library7=camera
Library8=compressstrings
-Library9=core
-ManifestCode='This code will be applied to the manifest file during compilation.~\n~'You do not need to modify it in most cases.~\n~'See this link for for more information: https://www.b4x.com/forum/showthread.php?p=78136~\n~AddManifestText(~\n~~\n~)~\n~SetApplicationAttribute(android:icon, "@drawable/icon")~\n~SetApplicationAttribute(android:label, "$LABEL$")~\n~CreateResourceFromFile(Macro, Themes.LightTheme)~\n~AddApplicationText(~\n~)~\n~CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)~\n~ 'End of default text.~\n~ ~\n~ ''''' CAMBIA LA CLAVE API~\n~AddApplicationText(~\n~~\n~ ~\n~)~\n~AddApplicationText(~\n~~\n~)~\n~AddManifestText(~\n~~\n~)~\n~~\n~''CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)~\n~ 'End of default text.~\n~ ~\n~SetApplicationAttribute(android:usesCleartextTraffic, "true")~\n~ AddManifestText(~\n~~\n~)~\n~AddPermission(android.permission.ACCESS_BACKGROUND_LOCATION)~\n~AddManifestText(~\n~~\n~)~\n~AddManifestText(~\n~~\n~) 'in order to access the device non-resettable identifiers such as IMEI and serial number.~\n~~\n~'///////////////////////// FLP Y PUSH /////////////~\n~ CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)~\n~ CreateResourceFromFile(Macro, FirebaseAnalytics.Firebase)~\n~ CreateResourceFromFile(Macro, FirebaseAnalytics.FirebaseAnalytics)~\n~ CreateResourceFromFile(Macro, FirebaseNotifications.FirebaseNotifications)~\n~ SetServiceAttribute(Tracker, android:foregroundServiceType, "location")~\n~'//////////////////////////////////////////////////////~\n~~\n~'/////////////////////// App Updating ////////////////~\n~ AddManifestText(~\n~ )~\n~ AddApplicationText(~\n~ ~\n~ ~\n~ ~\n~ )~\n~ CreateResource(xml, provider_paths,~\n~ ~\n~ ~\n~ ~\n~ ~\n~ ~\n~ )~\n~AddManifestText()~\n~AddManifestText()~\n~AddManifestText()~\n~AddManifestText()~\n~~\n~AddPermission(android.permission.REQUEST_INSTALL_PACKAGES)~\n~AddPermission(android.permission.INTERNET)~\n~AddPermission(android.permission.INSTALL_PACKAGES)~\n~AddPermission(android.permission.READ_EXTERNAL_STORAGE)~\n~AddPermission(android.permission.WRITE_EXTERNAL_STORAGE)~\n~AddPermission(android.permission.READ_PHONE_STATE)~\n~AddPermission(android.permission.WAKE_LOCK)~\n~CreateResourceFromFile(Macro, JhsIceZxing1.CaturePortrait)~\n~ ~\n~SetApplicationAttribute(android:largeHeap, "true")~\n~SetApplicationAttribute(android:allowBackup, "false")~\n~AddPermission(android.permission.BLUETOOTH_ADVERTISE)~\n~AddPermission(android.permission.BLUETOOTH_CONNECT)~\n~AddPermission(android.permission.BLUETOOTH_SCAN)~\n~AddManifestText(~\n~ ~\n~ )~\n~AddManifestText()~\n~~\n~AddManifestText(~\n~ ~\n~ )~\n~ AddPermission(android.permission.MANAGE_EXTERNAL_STORAGE)~\n~ SetApplicationAttribute(android:allowBackup, "false")~\n~ ~\n~ ~\n~ AddManifestText(~\n~ )~\n~ AddPermission(android.permission.READ_EXTERNAL_STORAGE)~\n~~\n~ 'Para que se registre para abrir bases de datos~\n~' AddActivityText(main,~\n~'~\n~'~\n~'~\n~'~\n~')~\n~~\n~ 'Para que se registre para abrir bases de datos~\n~ AddActivityText(main,~\n~~\n~~\n~~\n~~\n~~\n~)~\n~~\n~
+Library9=contentresolver
+ManifestCode='This code will be applied to the manifest file during compilation.~\n~'You do not need to modify it in most cases.~\n~'See this link for for more information: https://www.b4x.com/forum/showthread.php?p=78136~\n~AddManifestText(~\n~~\n~)~\n~SetApplicationAttribute(android:icon, "@drawable/icon")~\n~SetApplicationAttribute(android:label, "$LABEL$")~\n~CreateResourceFromFile(Macro, Themes.LightTheme)~\n~AddApplicationText(~\n~)~\n~CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)~\n~ 'End of default text.~\n~ ~\n~ ''''' CAMBIA LA CLAVE API~\n~AddApplicationText(~\n~~\n~ ~\n~)~\n~AddApplicationText(~\n~~\n~)~\n~AddManifestText(~\n~~\n~)~\n~~\n~''CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)~\n~ 'End of default text.~\n~ ~\n~SetApplicationAttribute(android:usesCleartextTraffic, "true")~\n~ AddManifestText(~\n~~\n~)~\n~AddPermission(android.permission.ACCESS_BACKGROUND_LOCATION)~\n~AddManifestText(~\n~~\n~)~\n~AddManifestText(~\n~~\n~) 'in order to access the device non-resettable identifiers such as IMEI and serial number.~\n~~\n~'///////////////////////// FLP Y PUSH /////////////~\n~ CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)~\n~ CreateResourceFromFile(Macro, FirebaseAnalytics.Firebase)~\n~ CreateResourceFromFile(Macro, FirebaseAnalytics.FirebaseAnalytics)~\n~ CreateResourceFromFile(Macro, FirebaseNotifications.FirebaseNotifications)~\n~ SetServiceAttribute(Tracker, android:foregroundServiceType, "location")~\n~'//////////////////////////////////////////////////////~\n~~\n~'/////////////////////// App Updating ////////////////~\n~ AddManifestText(~\n~ )~\n~ AddApplicationText(~\n~ ~\n~ ~\n~ ~\n~ )~\n~ CreateResource(xml, provider_paths,~\n~ ~\n~ ~\n~ ~\n~ ~\n~ ~\n~ )~\n~AddManifestText()~\n~AddManifestText()~\n~AddManifestText()~\n~AddManifestText()~\n~~\n~AddPermission(android.permission.REQUEST_INSTALL_PACKAGES)~\n~AddPermission(android.permission.INTERNET)~\n~AddPermission(android.permission.INSTALL_PACKAGES)~\n~AddPermission(android.permission.READ_EXTERNAL_STORAGE)~\n~AddPermission(android.permission.WRITE_EXTERNAL_STORAGE)~\n~AddPermission(android.permission.READ_PHONE_STATE)~\n~AddPermission(android.permission.WAKE_LOCK)~\n~CreateResourceFromFile(Macro, JhsIceZxing1.CaturePortrait)~\n~ ~\n~SetApplicationAttribute(android:largeHeap, "true")~\n~SetApplicationAttribute(android:allowBackup, "false")~\n~AddPermission(android.permission.BLUETOOTH_ADVERTISE)~\n~AddPermission(android.permission.BLUETOOTH_CONNECT)~\n~AddPermission(android.permission.BLUETOOTH_SCAN)~\n~AddManifestText(~\n~ ~\n~ )~\n~AddManifestText()~\n~~\n~AddManifestText(~\n~ ~\n~ )~\n~ AddPermission(android.permission.MANAGE_EXTERNAL_STORAGE)~\n~ SetApplicationAttribute(android:allowBackup, "false")~\n~ ~\n~ ~\n~ AddManifestText(~\n~ )~\n~ AddPermission(android.permission.READ_EXTERNAL_STORAGE)~\n~~\n~ 'Para que se registre para abrir bases de datos~\n~' AddActivityText(main,~\n~'~\n~'~\n~'~\n~'~\n~')~\n~~\n~ 'Para que se registre para abrir bases de datos~\n~ AddActivityText(main,~\n~~\n~~\n~~\n~~\n~~\n~)~\n~AddPermission(android.permission.CALL_PHONE)~\n~AddPermission(android.permission.READ_EXTERNAL_STORAGE)~\n~AddPermission(android.permission.WRITE_EXTERNAL_STORAGE)~\n~AddPermission("android.permission.MANAGE_EXTERNAL_STORAGE")~\n~AddPermission(android.permission.READ_PHONE_STATE)~\n~
Module1=appUpdater
Module10=C_Nota
Module11=C_NoVenta
@@ -255,15 +258,15 @@ Module6=C_Clientes
Module7=C_Cuestionario
Module8=C_Historico
Module9=C_Mapas
-NumberOfFiles=97
-NumberOfLibraries=33
+NumberOfFiles=98
+NumberOfLibraries=34
NumberOfModules=27
Version=12.8
@EndOfDesignText@
#Region Project Attributes
#ApplicationLabel: Guna Preventa
#VersionCode: 1
- #VersionName: 5.03.23
+ #VersionName: 5.03.24
'SupportedOrientations possible values: unspecified, landscape or portrait.
#SupportedOrientations: portrait
#CanInstallToExternalStorage: False
diff --git a/B4A/Guna Vistas V3.1.b4a.meta b/B4A/Guna Vistas V3.1.b4a.meta
index 559883d..44ee934 100644
--- a/B4A/Guna Vistas V3.1.b4a.meta
+++ b/B4A/Guna Vistas V3.1.b4a.meta
@@ -61,7 +61,7 @@ ModuleClosedNodes11=
ModuleClosedNodes12=
ModuleClosedNodes13=
ModuleClosedNodes14=
-ModuleClosedNodes15=3,17
+ModuleClosedNodes15=
ModuleClosedNodes16=
ModuleClosedNodes17=
ModuleClosedNodes18=4
@@ -82,6 +82,6 @@ ModuleClosedNodes6=
ModuleClosedNodes7=5,6,8,9,10,11
ModuleClosedNodes8=
ModuleClosedNodes9=
-NavigationStack=C_Principal,cargar_Click,1030,0,C_Principal,b_mapa_Click,2225,0,C_Principal,t2_tick,2235,4,C_Principal,inv_Click,2315,0,Diseñador Visual,cliente.bal,-100,1,C_Nota,ListView1_ItemLongClick,270,0,Diseñador Visual,principal.bal,-100,2,C_Principal,B_OK_PAS_Click,2438,0,C_Principal,JobDone,1316,0,B4XMainPage,B4XPage_Created,183,2
+NavigationStack=C_Productos,cuentaProds,615,0,C_Principal,Subir_Click,648,0,C_Principal,JobDone,1378,0,C_Cliente,B4XPage_Created,516,0,C_Cliente,Cuestionario,4675,0,C_Cliente,ImageView4_Click,5743,6,C_Cliente,Label19_LongClick,5734,0,C_Cliente,b_comentarios_Click,5658,0,Diseñador Visual,cliente.bal,-100,4,C_Cliente,B4XPage_Appear,1104,6
SelectedBuild=0
-VisibleModules=25,2,14,26,5,10,15,11,20
+VisibleModules=25,2,14,26,5,10,15,11,20,19
diff --git a/B4A/Subs.bas b/B4A/Subs.bas
index 5a6ae9f..17c7c48 100644
--- a/B4A/Subs.bas
+++ b/B4A/Subs.bas
@@ -45,6 +45,10 @@ Sub getPhnId As String 'ignore
Return devModel
End Sub
+'Centra un listview dentro de un elemento superior
+Sub centraListView(elemento As ListView, anchoElementoSuperior As Int) 'ignore
+ elemento.Left = Round(anchoElementoSuperior/2)-(elemento.Width/2)
+End Sub
'Comprime y regresa un texto (str) en base64
@@ -1826,4 +1830,20 @@ Sub enviaWhatsappMsg()
' Wait For (job) JobDone(job As HttpJob)
'
' Log("Whatsapp enviado con exito: " & job.Success)
+End Sub
+
+
+'Regresa el tipo de cliente:
+' - 1 = platinum
+' - 2 = oro
+' - 3 = bronze
+Sub traeTipoCliente As Int
+ Private x As Cursor
+ Private tc As Int = 0
+ x = Starter.skmt.ExecQuery($"select cat_cl_tipocliente from kmt_info3 where cat_cl_codigo in (select cuenta from cuentaa)"$)
+ If x.RowCount > 0 Then
+ x.Position = 0
+ tc = x.GetInt("CAT_CL_TIPOCLIENTE")
+ End If
+ Return tc
End Sub
\ No newline at end of file