B4A=true Group=Default Group ModulesStructureVersion=1 Type=Class Version=11.5 @EndOfDesignText@ Sub Class_Globals Private Root As B4XView 'ignore Private xui As XUI 'ignore ' Dim skmt As SQL Dim c As Cursor Dim c2 As Cursor Dim s As Cursor Dim ListView1 As ListView Dim entro As String Dim gest As Button Dim lfila As Label Dim busca As EditText Dim colonia As String Private b_qr As Button Private qr As QRCode ' Dim sc As Zxing_scanner Dim CODIGO As String Dim STIME As String Dim ruta As String Dim q_buscar As String Private p_clientes As Panel Private Panel4 As Panel End Sub 'You can add more parameters here. Public Sub Initialize As Object Return Me End Sub 'This event will be called once, before the page becomes visible. Private Sub B4XPage_Created (Root1 As B4XView) Root = Root1 'load the layout to Root Root.LoadLayout("clientes") 'Dim ruta As String entro ="2" p_clientes.Height = Root.Height p_clientes.Width = Root.Width Panel4.Left = Round(Root.Width/2)-(Panel4.Width/2) Panel4.Height = Root.Height * 0.70 ListView1.Height = Panel4.Height * 0.95 ' valido donde escribo el archivo de la base de datos de kmt ' If File.ExternalWritable Then ' ruta = File.DirDefaultExternal ' Else ruta = File.DirInternal ' End If ' se crea o no el archivo de la base de ddatos de kmt 'NOTAS SI SE MODIFICA LA ESTRUCTURA SE QUITA EL IF Y SE VA DIRECTO A LA SENTENCIA FILE.COPY PARA QUE 'TOME LA NUEVA ESTRUCTURA ES MUY IMPORTANTE TENER EL IF DE LO CONTRARIO SOLO LO ESCRIBE UNA VEZ Y LO BORRA 'SI SE REGRESA A ESTE ACTIVIDAD. If File.Exists(ruta, "kmt.db") = False Then File.Copy(File.DirAssets, "kmt.db", ruta, "kmt.db") End If qr.initialize End Sub Sub B4XPage_Appear busca.Text = "" entro = "2" colonia = 0 c = B4XPages.MainPage.skmt.ExecQuery("select CAT_CL_NOMBRE, CAT_CL_CALLE, CAT_CL_CODIGO from kmt_info3 where gestion = 0 ORDER BY CAT_CL_CODIGO") ListView1.Clear lfila.Text = "NOMBRE" Subs.SetDivider(ListView1, Colors.White, 2) If c.RowCount>0 Then For i = 0 To c.RowCount - 1 c.Position=i Dim label1 As Label label1 = ListView1.TwoLinesLayout.Label label1.TextSize = 20 label1.TextColor = Colors.White Dim label2 As Label label2 = ListView1.TwoLinesLayout.SecondLabel label2.TextSize = 20 label2.TextColor = Colors.White label1.Height = 25dip label2.Height = 60dip ListView1.TwoLinesLayout.ItemHeight = 95dip label1.Typeface = Typeface.CreateNew(Typeface.DEFAULT_BOLD, Typeface.STYLE_BOLD) label2.Typeface = Typeface.CreateNew(Typeface.DEFAULT_BOLD, Typeface.STYLE_BOLD) ListView1.AddTwoLines(c.GetString("CAT_CL_CODIGO"), c.GetString("CAT_CL_NOMBRE")) Next End If If B4XPages.MainPage.cliente.cuest.IsInitialized Then 'Borramos las encuestas que no hayan respondido la pregunta 7, es decir que si no completaron la encuesta, se borra todo para que les vuelva a aparecer. B4XPages.MainPage.skmt.ExecNonQuery("delete from CUESTIONARIO where Q_IDCLIENTE not in (select Q_IDCLIENTE from CUESTIONARIO where Q_IDPREGUNTA = '7')") Log("Borramos encuestas incompletas") End If entro = "4" End Sub Sub ListView1_ItemClick (Position As Int, Value As Object) If colonia = 0 Then colonia = Value End If If entro = "2" Then c2=B4XPages.MainPage.skmt.ExecQuery2("select CAT_CL_CALLE, CAT_CL_COLONIA, count(*) as cuantos from kmt_info3 where gestion = 0 and CAT_CL_COLONIA = ? GROUP BY CAT_CL_CALLE, CAT_CL_COLONIA order by CAT_CL_CALLE ", Array As String(Value)) ListView1.Clear lfila.text = "Calle" If c2.RowCount>0 Then For i=0 To c2.RowCount -1 c2.Position=i ListView1.AddTwoLines(c2.GetString("CAT_CL_CALLE"),c2.GetString("cuantos") ) Next End If entro = "3" Else If entro = "3" Then c2=B4XPages.MainPage.skmt.ExecQuery2("select CAT_CL_NOMBRE, CAT_CL_CALLE, CAT_CL_CODIGO from kmt_info3 where gestion = 0 and CAT_CL_CALLE = ? AND CAT_CL_COLONIA = ? order by CAT_CL_NOMBRE ", Array As String(Value, colonia)) ListView1.Clear lfila.text = "Nombre" If c2.RowCount>0 Then For i=0 To c2.RowCount -1 c2.Position = i ListView1.AddTwoLines(c2.GetString("CAT_CL_CODIGO"), c2.GetString("CAT_CL_NOMBRE")) Next End If entro = "4" Else If entro = "4" Then B4XPages.MainPage.skmt.ExecNonQuery("delete from CUENTAA") B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO CUENTAA VALUES (?)", Array As Object(Value)) DateTime.TimeFormat = "HHmmss" STIME=DateTime.Time(DateTime.Now) s=B4XPages.MainPage.skmt.ExecQuery2("SELECT COUNT(*) AS CUANTOS FROM HIST_STAY_STORE WHERE HSS_IN = ? AND HSS_CODIGO In (select cuenta from cuentaa)", Array As String("0")) s.Position = 0 If s.GetString("CUANTOS") = 1 Then B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE HIST_STAY_STORE set HSS_IN = ? where HSS_IN = 0 AND HSS_CODIGO In (select cuenta from cuentaa)", Array As Object(STIME)) Else B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO HIST_STAY_STORE(HSS_CODIGO, HSS_IN , HSS_OUT , HSS_TOT) VALUES (?,0,0,0)", Array As Object (Value)) B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE HIST_STAY_STORE set HSS_IN = ? where HSS_IN = 0 AND HSS_CODIGO In (select cuenta from cuentaa)", Array As Object(STIME)) End If B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE HIST_STAY_OUT set HSO_INI = ? where HSO_INI = 0 ", Array As Object(STIME)) DateTime.TimeFormat = "HH:mm:ss" ' Log(entro) If B4XPages.MainPage.cliente.bitacora.IsInitialized Then Log("VAMOS A CLIENTE CON ENVENTA = FALSO") B4XPages.MainPage.cliente.bitacora.iniciamosVenta Log(B4XPages.MainPage.cliente.bitacora.enVenta) End If B4XPages.ShowPage("Cliente") End If Log(entro) End Sub Private Sub B4XPage_CloseRequest As ResumableSub ' BACK key pressed 'Return True to close, False to cancel ' If key=KeyCodes.KEYCODE_BACK Then ' StartActivity(seleccion) ' Return False ' End If Return True End Sub Sub BUSCA_TextChanged (Old As String, New As String) q_buscar = "%" & busca.Text & "%" c2=B4XPages.MainPage.skmt.ExecQuery2("select CAT_CL_NOMBRE, CAT_CL_CALLE, CAT_CL_CODIGO from kmt_info3 where (CAT_CL_NOMBRE like ? OR CAT_CL_CODIGO LIKE ? OR CAT_CL_CALLE LIKE ?)and gestion = 0 order by CAT_CL_NOMBRE ", Array As String(q_buscar,q_buscar,q_buscar)) ListView1.Clear Subs.SetDivider(ListView1, Colors.White, 2) lfila.text = "Nombre y Calle" If c2.RowCount>0 Then For i=0 To c2.RowCount -1 c2.Position=i Dim label1 As Label label1 = ListView1.TwoLinesLayout.Label label1.TextSize = 20 label1.TextColor = Colors.White Dim label2 As Label label2 = ListView1.TwoLinesLayout.SecondLabel label2.TextSize = 20 label2.TextColor = Colors.White label1.Height = 25dip label2.Height = 60dip ListView1.TwoLinesLayout.ItemHeight = 95dip label1.Typeface = Typeface.CreateNew(Typeface.DEFAULT_BOLD, Typeface.STYLE_BOLD) label2.Typeface = Typeface.CreateNew(Typeface.DEFAULT_BOLD, Typeface.STYLE_BOLD) ListView1.AddTwoLines(c2.GetString("CAT_CL_CODIGO"), c2.GetString("CAT_CL_NOMBRE")& CRLF &"CALLE: "& c2.GetString("CAT_CL_CALLE")) Next End If entro = "4" c2.Close End Sub Sub b_qr_Click Dim scan_width As Int Dim scan_height As Int scan_width = 400 scan_height = 400 End Sub Sub sc_result(atype As String,Values As String) CODIGO = Values c2=B4XPages.MainPage.skmt.ExecQuery2("select COUNT(*) AS ENCONTRADO from kmt_info3 where CAT_CL_NUM_SERIEFISICO = ? order by CAT_CL_NOMBRE ", Array As String(CODIGO)) c2.Position =0 If c2.GetString("ENCONTRADO") > 0 Then s=B4XPages.MainPage.skmt.ExecQuery2("select CAT_CL_CODIGO from kmt_info3 where CAT_CL_NUM_SERIEFISICO = ? order by CAT_CL_NOMBRE ", Array As String(CODIGO)) s.Position =0 B4XPages.MainPage.skmt.ExecNonQuery("delete from CUENTAA") B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO CUENTAA VALUES (?)", Array As Object(s.GetString("CAT_CL_CODIGO"))) s.Close ' b_qr.Visible = False B4XPages.ShowPage("clientes") Else Msgbox("CODIGO " & CODIGO & " NO ENCONTRADO","AVISO") 'ignore End If End Sub Sub sc_noScan Log("nothing returned from the scan !!!!!") End Sub Sub calc_ean_checksum(number As String) As String 'this has now become redundant as I am only interested in QR Codes Dim i As Int Dim cO As Char Dim soma As Int Dim n As Int Dim digit As Float soma = 0 For i=0 To number.Length - 1 digit = number.SubString2(i,i+1) n= digit * ((i Mod 2) * 2 + 1) soma=soma+n Next Return number & ( ( 10 - ( soma Mod 10 )) Mod 10 ) End Sub 'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage. Private Sub p_clientes_Click 'Nada aqui, solo esta para que los clics no se pasen hacia atras. End Sub