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