diff --git a/B4A/C_UpdateAvailable.bas b/B4A/C_UpdateAvailable.bas new file mode 100644 index 0000000..122de2b --- /dev/null +++ b/B4A/C_UpdateAvailable.bas @@ -0,0 +1,74 @@ +B4A=true +Group=Default Group +ModulesStructureVersion=1 +Type=Class +Version=12.2 +@EndOfDesignText@ +Sub Class_Globals + Private Root As B4XView 'ignore + Private xui As XUI 'ignore +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.Color = Colors.Transparent +End Sub + +Sub B4XPage_Appear + Try + Do While Not(CanRequestPackageInstalls) + MsgboxAsync($"Por favor permita que ${Application.PackageName} instale actualizaciones"$, "Instalar actualización") + Wait For Msgbox_Result(Result As Int) + Dim in As Intent + in.Initialize("android.settings.", "package:" & Application.PackageName) + StartActivity(in) + Loop + Catch + Log("updateAvailable() Error - " & LastException.Message) + End Try + If appUpdater.newApp.update Then + ofreceActualizacion + Else + sinActualizacion + End If +End Sub + +'//////////////////////////////////////////////////////////////////////////////////////////// +'//// Esta es una actividad usada por el servicio appUpdater para mostrar notificaciones +'//// cuando hay alguna actualizacion de apk. +'//////////////////////////////////////////////////////////////////////////////////////////// + + +public Sub CanRequestPackageInstalls As Boolean + ' // https://www.b4x.com/android/forum/threads/version-safe-apk-installation.87667/#content + Dim ctxt As JavaObject + ctxt.InitializeContext + Dim PackageManager As JavaObject = ctxt.RunMethod("getPackageManager", Null) + Return PackageManager.RunMethod("canRequestPackageInstalls", Null) +End Sub + +Sub ofreceActualizacion + If Msgbox2(appUpdater.newApp.newMsg,"Actualización disponible","Si","","No",Null) = DialogResponse.Positive Then 'ignore +' StartService(DownloadService) + CallSubDelayed(appUpdater, "download_newApk") +' ToastMessageShow("Descargando actualización", True) + End If + B4XPages.MainPage.ocultaProgreso + StartActivity(Main) +' Activity.Finish + B4XPages.ShowPage("Mainpage") +End Sub + +Sub sinActualizacion + Msgbox(appUpdater.newApp.okMsg, "Aplicación al corriente") 'ignore +' StartActivity(Main) + B4XPages.MainPage.ocultaProgreso + B4XPages.ShowPage("Mainpage") +End Sub \ No newline at end of file diff --git a/B4A/C_principal.bas b/B4A/C_principal.bas new file mode 100644 index 0000000..e7ea9de --- /dev/null +++ b/B4A/C_principal.bas @@ -0,0 +1,598 @@ +B4A=true +Group=Default Group +ModulesStructureVersion=1 +Type=Class +Version=12.2 +@EndOfDesignText@ +Sub Class_Globals + Private Root As B4XView 'ignore + Private xui As XUI 'ignore + Private l_cuentasportrabajar As Label + Private l_cuentrastrabajadas As Label + Private l_credito As Label + Private l_estatus As Label + Private l_nombre As Label + Private l_direccion As Label + Private clv_cuentas As CustomListView + Dim reqManager As DBRequestManager + Dim trabajos = 0 As Int + Dim c As Cursor + Dim d As Cursor + Dim e As Cursor + Private p_cuenta As Panel + Dim lb As Label + + Private et_findia As EditText + Private b_enviar As Button + Private et_busqueda As EditText + Private l_creditoges As Label + Private l_estatusges As Label + Private l_nombreges As Label + Private l_direccionges As Label + Private l_fechagestion As Label + Private l_resultadoges As Label + Private Label3 As Label + Private paneltop As Panel + Private Panel4 As Panel + Dim IME As IME +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("principal") + + + IME.Initialize("IME") + IME.AddHeightChangedEvent + IME_HeightChanged(100%y, 0) + + Starter.skmt.ExecNonQuery("delete from TIPO_VIVIENDA") + Starter.skmt.ExecNonQuery("delete from NIVEL_SOCIO") + Starter.skmt.ExecNonQuery("delete from CARACTERISTICAS") + + Starter.skmt.ExecNonQuery2("INSERT INTO TIPO_VIVIENDA(TIPO, NUMERO) VALUES(?,?)", Array As Object ("Selecciona una opción","0")) + Starter.skmt.ExecNonQuery2("INSERT INTO TIPO_VIVIENDA(TIPO, NUMERO) VALUES(?,?)", Array As Object ("DEPTO","1")) + Starter.skmt.ExecNonQuery2("INSERT INTO TIPO_VIVIENDA(TIPO, NUMERO) VALUES(?,?)", Array As Object ("CASA","2")) + Starter.skmt.ExecNonQuery2("INSERT INTO TIPO_VIVIENDA(TIPO, NUMERO) VALUES(?,?)", Array As Object ("BODEGA","3")) + Starter.skmt.ExecNonQuery2("INSERT INTO TIPO_VIVIENDA(TIPO, NUMERO) VALUES(?,?)", Array As Object ("TERRENO","4")) + Starter.skmt.ExecNonQuery2("INSERT INTO TIPO_VIVIENDA(TIPO, NUMERO) VALUES(?,?)", Array As Object ("LOCAL COMERCIAL","5")) + Starter.skmt.ExecNonQuery2("INSERT INTO TIPO_VIVIENDA(TIPO, NUMERO) VALUES(?,?)", Array As Object ("OFICINA","6")) + Starter.skmt.ExecNonQuery2("INSERT INTO TIPO_VIVIENDA(TIPO, NUMERO) VALUES(?,?)", Array As Object ("OTRO","7")) + Starter.skmt.ExecNonQuery2("INSERT INTO NIVEL_SOCIO(NIVEL, NUMERO) VALUES(?,?)", Array As Object ("Selecciona una opción","0")) + Starter.skmt.ExecNonQuery2("INSERT INTO NIVEL_SOCIO(NIVEL, NUMERO) VALUES(?,?)", Array As Object ("ALTO","1")) + Starter.skmt.ExecNonQuery2("INSERT INTO NIVEL_SOCIO(NIVEL, NUMERO) VALUES(?,?)", Array As Object ("MEDIO","2")) + Starter.skmt.ExecNonQuery2("INSERT INTO NIVEL_SOCIO(NIVEL, NUMERO) VALUES(?,?)", Array As Object ("BAJO","3")) + Starter.skmt.ExecNonQuery2("INSERT INTO NIVEL_SOCIO(NIVEL, NUMERO) VALUES(?,?)", Array As Object ("OTRO","4")) + Starter.skmt.ExecNonQuery2("INSERT INTO CARACTERISTICAS(TIPO, NUMERO) VALUES(?,?)", Array As Object ("Selecciona una opción","0")) + Starter.skmt.ExecNonQuery2("INSERT INTO CARACTERISTICAS(TIPO, NUMERO) VALUES(?,?)", Array As Object ("PROPIA","1")) + Starter.skmt.ExecNonQuery2("INSERT INTO CARACTERISTICAS(TIPO, NUMERO) VALUES(?,?)", Array As Object ("RENTADA","2")) + Starter.skmt.ExecNonQuery2("INSERT INTO CARACTERISTICAS(TIPO, NUMERO) VALUES(?,?)", Array As Object ("OTRO","3")) + +End Sub + +Sub B4XPage_Appear + reqManager.Initialize(Me, Starter.DBReqServer) + d = Starter.skmt.ExecQuery("SELECT COUNT(*) AS CUANTOS, CARGADO FROM CARGADO") + d.Position = 0 + If d.GetString("CUANTOS") > 0 Then + If d.GetString("CARGADO") = "1" Then + c = Starter.skmt.ExecQuery("SELECT CREDITO, NOMBRE, CALLE, N_EXT, N_INT, ALCALDIA, ESTATUS FROM HIST_DATOS_GENERALES WHERE ESTATUS2 <> 2 order by 1") + + clv_cuentas.Clear + For i = 0 To c.RowCount - 1 + c.Position = i + clv_cuentas.Add(CreateListItem(c.GetString("CREDITO"), c.GetString("NOMBRE"), ("CALLE: " & c.GetString("CALLE") &" NO. EXT: "& c.GetString("N_EXT") & CRLF & "No. INT: "& c.GetString("N_INT") &" COL.: "&c.GetString("ALCALDIA")), c.GetString("ESTATUS")),i) + Next + c.Close + End If + End If + d.Close + + c = Starter.skmt.ExecQuery2("SELECT COUNT(*) AS CUANTOS FROM HIST_DATOS_GENERALES WHERE ESTATUS2 <> ?",Array As String(2)) + c.Position = 0 + Log(c.GetString("CUANTOS")) + l_cuentasportrabajar.Text = c.GetString("CUANTOS") + c.Close + + c = Starter.skmt.ExecQuery("SELECT COUNT(*) AS CUANTOS FROM HIST_DATOS_GENERALES WHERE ESTATUS2 = 2") + c.Position = 0 + Log(c.GetString("CUANTOS")) + l_cuentrastrabajadas.Text = c.GetString("CUANTOS") + c.Close + + Label3.Text = "Cuentas" + l_cuentasportrabajar.TextColor = Colors.White + l_cuentasportrabajar.Color = Colors.RGB(83,22,22.255) + l_cuentrastrabajadas.TextColor = Colors.Black + l_cuentrastrabajadas.Color = Colors.White +End Sub + +Sub IME_HeightChanged(NewHeight As Int, OldHeight As Int) + paneltop.Top = NewHeight - paneltop.Height + Panel4.Height = paneltop.Top - Panel4.Top +End Sub + +Private Sub b_carga_Click + trabajos = 0 + + Dim cmd As DBCommand + cmd.Initialize + + + cmd.Name = "select_datosgenerales_TORRADO" + cmd.Parameters = Array As Object(B4XPages.MainPage.user) + reqManager.ExecuteQuery(cmd , 0, "datosgenerales") + trabajos = trabajos + 1 + + cmd.Name = "select_datosfinancieros_TORRADO" + cmd.Parameters = Array As Object(B4XPages.MainPage.user) + reqManager.ExecuteQuery(cmd , 0, "datosfinancieros") + trabajos = trabajos + 1 + + cmd.Name = "select_fuentes_AR" + cmd.Parameters = Array As Object() + reqManager.ExecuteQuery(cmd , 0, "fuente") + trabajos = trabajos + 1 + + cmd.Name = "select_parentesco_AR" + cmd.Parameters = Array As Object() + reqManager.ExecuteQuery(cmd , 0, "parentesco") + trabajos = trabajos + 1 + + cmd.Name = "select_accion_AR" + cmd.Parameters = Array As Object() + reqManager.ExecuteQuery(cmd , 0, "accion") + trabajos = trabajos + 1 + + cmd.Name = "select_resultado_MA_AR" + cmd.Parameters = Array As Object() + reqManager.ExecuteQuery(cmd , 0, "resultado_MA") + trabajos = trabajos + 1 + + cmd.Name = "select_resultado_VC_AR" + cmd.Parameters = Array As Object() + reqManager.ExecuteQuery(cmd , 0, "resultado_VC") + trabajos = trabajos + 1 + + cmd.Name = "select_resultado_CA_AR" + cmd.Parameters = Array As Object() + reqManager.ExecuteQuery(cmd , 0, "resultado_CA") + trabajos = trabajos + 1 + + cmd.Name = "select_resultado_BR_AR" + cmd.Parameters = Array As Object() + reqManager.ExecuteQuery(cmd , 0, "resultado_BR") + trabajos = trabajos + 1 + + ProgressDialogShow("Cargando") +End Sub + +Private Sub l_cuentrastrabajadas_Click + + d = Starter.skmt.ExecQuery("SELECT RESULTADO, FECHA, CREDITO FROM HIST_VISITA WHERE ESTATUS = 2") + + clv_cuentas.Clear + For i = 0 To d.RowCount - 1 + d.Position = i + c = Starter.skmt.ExecQuery2("SELECT NOMBRE, CALLE, N_EXT, N_INT, ALCALDIA, ESTATUS FROM HIST_DATOS_GENERALES WHERE CREDITO = ? ",Array As String(d.GetString("CREDITO"))) + c.Position = 0 + clv_cuentas.Add(CreateListItem2(d.GetString("CREDITO"), c.GetString("NOMBRE"), ("CALLE: " & c.GetString("CALLE") &" NO. EXT: "& c.GetString("N_EXT") & CRLF & "No. INT: "& c.GetString("N_INT") &" COL.: "&c.GetString("ALCALDIA")), c.GetString("ESTATUS"), d.GetString("FECHA"),d.GetString("RESULTADO")),i) + Next + d.Close + l_cuentasportrabajar.TextColor = Colors.Black + l_cuentasportrabajar.Color = Colors.White + l_cuentrastrabajadas.TextColor = Colors.White + l_cuentrastrabajadas.Color = Colors.RGB(83,22,22.255) + Label3.Text = "Cuentas gestionadas" + +End Sub + +Private Sub l_cuentasportrabajar_Click + d = Starter.skmt.ExecQuery("SELECT COUNT(*) AS CUANTOS, CARGADO FROM CARGADO") + d.Position = 0 + If d.GetString("CUANTOS") > 0 Then + If d.GetString("CARGADO") = "1" Then + c = Starter.skmt.ExecQuery("SELECT CREDITO, NOMBRE, CALLE, N_EXT, N_INT, ALCALDIA, ESTATUS FROM HIST_DATOS_GENERALES WHERE ESTATUS2 <> 2 order by 1") + + clv_cuentas.Clear + For i = 0 To c.RowCount - 1 + c.Position = i + clv_cuentas.Add(CreateListItem(c.GetString("CREDITO"), c.GetString("NOMBRE"), ("CALLE: " & c.GetString("CALLE") &" NO. EXT: "& c.GetString("N_EXT") & CRLF & "No. INT: "& c.GetString("N_INT") &" COL.: "&c.GetString("ALCALDIA")), c.GetString("ESTATUS")),i) + Next + c.Close + End If + End If + d.Close + + Label3.Text = "Cuentas" + l_cuentasportrabajar.TextColor = Colors.White + l_cuentasportrabajar.Color = Colors.RGB(83,22,22.255) + l_cuentrastrabajadas.TextColor = Colors.Black + l_cuentrastrabajadas.Color = Colors.White +End Sub + +Sub CreateListItem2(cred As String, nom As String, call As String, status As String, fechages As String, resulges As String) As Panel + Dim p As B4XView = xui.CreatePanel("") +' p.SetLayoutAnimated(0, 0, 0, 1, 115) + p.LoadLayout("gestionadas") + p.Height= 183dip +' p.Width = clv_orden.GetBase.Width + l_creditoges.Text = cred + l_estatusges.Text = status + l_nombreges.Text = nom + l_direccionges.Text = call + l_fechagestion.Text = fechages + l_resultadoges.Text = resulges +' Log(p.Width) + Return p +End Sub + +Sub CreateListItem(cred As String, nom As String, call As String, status As String) As Panel + Dim p As B4XView = xui.CreatePanel("") +' p.SetLayoutAnimated(0, 0, 0, 1, 115) + p.LoadLayout("cuenta") + p.Height= 112dip +' p.Width = clv_orden.GetBase.Width + l_credito.Text = cred + l_estatus.Text = status + l_nombre.Text = nom + l_direccion.Text = call +' Log(p.Width) + Return p +End Sub + +Private Sub p_cuenta_Click + Log("si lo hice") + + Dim Index As Int = clv_cuentas.GetItemFromView(Sender) + Dim pnl As B4XView = clv_cuentas.GetPanel(Index).GetView(0) + lb = pnl.GetView(0) + Log(lb.Text) + + + + B4XPages.ShowPage("datos") +End Sub + +Sub JobDone(Job As HttpJob) + If Not(Job.Success) Then + ToastMessageShow("Error: " & Job.ErrorMessage, True) + Else + LogColor("JobDone: '" & reqManager.HandleJob(Job).tag & "' - Registros: " & reqManager.HandleJob(Job).Rows.Size, Colors.Green) + If Job.JobName = "DBRequest" Then + Dim result As DBResult = reqManager.HandleJob(Job) + + If result.Tag = "datosgenerales" Then 'query tag + Starter.skmt.ExecNonQuery("delete from HIST_DATOS_GENERALES2") + Starter.skmt.ExecNonQuery("delete from HIST_DATOS_GENERALES WHERE ESTATUS2 <> 2") + Starter.skmt.ExecNonQuery("delete from HIST_VISITA WHERE ESTATUS <> 2") + Starter.skmt.ExecNonQuery("delete from CARGADO") + Starter.skmt.ExecNonQuery2("INSERT INTO CARGADO(CARGADO) VALUES(?)", Array As Object ("0")) + trabajos = trabajos - 1 + + Starter.skmt.BeginTransaction + + For Each records() As Object In result.Rows + + Dim credito As String = records(result.Columns.Get("PR_KT_CREDITO")) + Dim nombre As String = records(result.Columns.Get("PR_CD_NOMBRE")) + Dim calle As String = records(result.Columns.Get("PR_CD_CALLE")) + Dim colonia As String = records(result.Columns.Get("PR_CD_COL")) + Dim ciudad As String = records(result.Columns.Get("PR_CD_CITY")) + Dim estado As String = records(result.Columns.Get("PR_CD_EDO")) + Dim cp As String = records(result.Columns.Get("PR_CD_CD")) + + Starter.skmt.ExecNonQuery2("INSERT INTO HIST_DATOS_GENERALES2(CREDITO, NOMBRE, CALLE, COLONIA, CIUDAD, ESTADO, CP, ESTATUS, ESTATUS2) values(?,?,?,?,?,?,?,?,?)", Array As Object (credito, nombre,calle, colonia, ciudad,estado, cp,"Asignado",0)) + + + c = Starter.skmt.ExecQuery2("SELECT COUNT(*) AS CUANTOS FROM HIST_DATOS_GENERALES WHERE CREDITO = ?",Array As String(credito)) + c.Position= 0 + LogColor(c.GetString("CUANTOS"),Colors.Magenta) + If c.GetString("CUANTOS") > 0 Then + Starter.skmt.ExecNonQuery2("UPDATE HIST_DATOS_GENERALES SET CREDITO = ?, NOMBRE = ?, CALLE = ?, COLONIA = ?, CIUDAD = ?, ESTADO = ?, CP = ? WHERE CREDITO = ?",Array As Object (credito, nombre,calle, colonia, ciudad,estado, cp)) + Else If c.GetString("CUANTOS") = 0 Then + Starter.skmt.ExecNonQuery2("INSERT INTO HIST_DATOS_GENERALES(CREDITO, NOMBRE, CALLE, COLONIA, CIUDAD, ESTADO, CP, ESTATUS, ESTATUS2) values(?,?,?,?,?,?,?,?,?)", Array As Object (credito, nombre,calle, colonia, ciudad,estado, cp,"Asignado",0)) + + End If + c.Close + + Next + + Starter.skmt.TransactionSuccessful 'Si no se pone TransactionSuccessful no se escribe NADA!! + Starter.skmt.EndTransaction + + c = Starter.skmt.ExecQuery("SELECT CREDITO, NOMBRE, CALLE, COLONIA, CIUDAD, ESTADO, CP, ESTATUS FROM HIST_DATOS_GENERALES WHERE ESTATUS2 <> 2 order by 1") + + clv_cuentas.Clear + For i = 0 To c.RowCount - 1 + c.Position = i + clv_cuentas.Add(CreateListItem(c.GetString("CREDITO"), c.GetString("NOMBRE"), ("CALLE: " & c.GetString("CALLE") &" COL: "& c.GetString("COLONIA") & CRLF & "CIUDAD: "& c.GetString("CIUDAD") &" ESTADO: "&c.GetString("ESTADO") & "C.P.: " & c.GetString("CP")), c.GetString("ESTATUS")),i) + Next + c.Close + + c = Starter.skmt.ExecQuery("SELECT COUNT(*) AS CUANTOS FROM HIST_DATOS_GENERALES WHERE ESTATUS2 <> 2") + c.Position = 0 + Log(c.GetString("CUANTOS")) + l_cuentasportrabajar.Text = c.GetString("CUANTOS") + c.Close + + c = Starter.skmt.ExecQuery("SELECT COUNT(*) AS CUANTOS FROM HIST_DATOS_GENERALES WHERE ESTATUS2 = 2") + c.Position = 0 + Log(c.GetString("CUANTOS")) + l_cuentrastrabajadas.Text = c.GetString("CUANTOS") + c.Close + + Label3.Text = "Cuentas" + l_cuentasportrabajar.TextColor = Colors.White + l_cuentasportrabajar.Color = Colors.RGB(83,22,22.255) + l_cuentrastrabajadas.TextColor = Colors.Black + l_cuentrastrabajadas.Color = Colors.White + + End If + + If result.Tag = "datosfinancieros" Then 'query tag + Starter.skmt.ExecNonQuery("delete from HIST_FINANCIEROS2") + Starter.skmt.ExecNonQuery("delete from HIST_FINANCIEROS WHERE ESTATUS2 <> 2") + trabajos = trabajos - 1 + + For Each records() As Object In result.Rows + + Dim creditof As String = records(result.Columns.Get("PR_KT_CREDITO")) + Dim diasv As String = records(result.Columns.Get("PR_CF_DIASATRASO")) + Dim mesv As String = records(result.Columns.Get("PR_CF_MESESVEN")) + Dim saldov As String = records(result.Columns.Get("PR_CF_SDOVEN")) + Dim saldot As String = records(result.Columns.Get("PR_CF_SDOTOTAL")) + Dim tipouni As String = records(result.Columns.Get("PR_CA_TIPOUNIDAD")) + Dim marca As String = records(result.Columns.Get("PR_CA_MARCA_AUTO")) + Dim anio As String = records(result.Columns.Get("PR_CA_ANIO")) + Dim serie As String = records(result.Columns.Get("PR_CA_NUM_SERIE")) + Dim resultado As String = records(result.Columns.Get("PR_KT_RESULTADO")) + + Starter.skmt.ExecNonQuery2("INSERT INTO HIST_FINANCIEROS2(CREDITO, DIASATRASO, MESVENCIDO, SALDO_VENCIDO, SALDO_TOTAL, TIPO_UNIDAD, MARCA, ANO, NO_SERIE, RESULTADO, ESTATUS, ESTATUS2) values(?,?,?,?,?,?,?,?,?,?,?,?)", Array As Object (creditof, diasv, mesv, saldov, saldot, tipouni, marca, anio, serie, resultado,"Asignado",0)) + + c = Starter.skmt.ExecQuery2("SELECT COUNT(*) AS CUANTOS FROM HIST_FINANCIEROS WHERE CREDITO = ?",Array As String(creditof)) + c.Position = 0 + LogColor(c.GetString("CUANTOS"),Colors.Red) + If c.GetString("CUANTOS") > 0 Then + Starter.skmt.ExecNonQuery2("UPDATE HIST_FINANCIEROS SET CREDITO = ?, DIASATRASO = ?, MESVENCIDO = ?, SALDO_VENCIDO = ?, SALDO_TOTAL = ?, TIPO_UNIDAD = ?, MARCA = ?, ANO = ?, NO_SERIE = ?, RESULTADO = ? WHERE CREDITO = ?",Array As String(creditof, diasv, mesv, saldov, saldot, tipouni, marca, anio, serie, resultado)) + Else If c.GetString("CUANTOS") = 0 Then + Starter.skmt.ExecNonQuery2("INSERT INTO HIST_FINANCIEROS(CREDITO, DIASATRASO, MESVENCIDO, SALDO_VENCIDO, SALDO_TOTAL, TIPO_UNIDAD, MARCA, ANO, NO_SERIE, RESULTADO, ESTATUS, ESTATUS2) values(?,?,?,?,?,?,?,?,?,?,?,?)", Array As Object (creditof, diasv, mesv, saldov, saldot, tipouni, marca, anio, serie, resultado,"Asignado",0)) + End If + c.Close + Next + + End If + + + '' AQUI NOS QUEDAMOS, FALTA VER DATOS DE CONTACTO Y RESULTADOS DE ACCION Y LA PARTE DE ENVIOS. + If result.Tag = "fuente" Then 'query tag + Starter.skmt.ExecNonQuery("delete from CAT_FUENTE") + trabajos = trabajos - 1 + Dim num As Int = 0 + Dim num2 As Int = 1 + Starter.skmt.ExecNonQuery2("INSERT INTO CAT_FUENTE(FUENTE, NUMERO, NUME) VALUES (?,?,?)", Array As Object("Selecciona una opción",num, num2)) + For Each records() As Object In result.Rows + + Dim FUENTE As String = records(result.Columns.Get("CAT_FU_FUENTE")) + num = num + 1 + num2 = num2 +1 + Dim numero As Int = num + Starter.skmt.ExecNonQuery2("INSERT INTO CAT_FUENTE(FUENTE, NUMERO, NUME) VALUES (?,?,?)", Array As Object(FUENTE,numero,num2)) + + Next + + End If + + If result.Tag = "parentesco" Then 'query tag + Starter.skmt.ExecNonQuery("delete from CAT_PARENTESCO") + trabajos = trabajos - 1 + Dim num As Int = 0 + Dim num2 As Int = 1 + Starter.skmt.ExecNonQuery2("INSERT INTO CAT_PARENTESCO (PARENTESCO, NUMERO, NUME) VALUES (?,?,?)", Array As Object("Selecciona una opción",num, num2)) + For Each records() As Object In result.Rows + Dim PARENTESCO As String = records(result.Columns.Get("CAT_PA_PARENTESCO")) + num = num + 1 + num2 = num2 +1 + Dim numero As Int = num + Starter.skmt.ExecNonQuery2("INSERT INTO CAT_PARENTESCO (PARENTESCO, NUMERO, NUME) VALUES (?,?,?)", Array As Object(PARENTESCO,numero,num2)) + + Next + + End If + + If result.Tag = "accion" Then 'query tag + Starter.skmt.ExecNonQuery("delete from CAT_ACCION") + trabajos = trabajos - 1 + Dim num As Int = 0 + Dim num2 As Int = 1 + Starter.skmt.ExecNonQuery2("INSERT INTO CAT_ACCION(CO_ACCION, CO_ACDESCRIPCION, NUMERO, NUME) VALUES (?,?,?,?)", Array As Object("SO", "Selecciona una opción",num,num2)) + For Each records() As Object In result.Rows + Dim CO_ACCION As String = records(result.Columns.Get("CAT_CO_ACCION")) + Dim CO_ACDESCRIPCION As String = records(result.Columns.Get("CAT_CO_ADESCRIPCION")) + num = num + 1 + num2 = num2 +1 + Dim numero As Int = num + + Starter.skmt.ExecNonQuery2("INSERT INTO CAT_ACCION(CO_ACCION, CO_ACDESCRIPCION, NUMERO,NUME) VALUES (?,?,?,?)", Array As Object(CO_ACCION, CO_ACDESCRIPCION,numero,num2)) + + Next + + End If + + If result.Tag = "resultado_MA" Then 'query tag + Starter.skmt.ExecNonQuery("delete from CAT_RESULTADO_MA") + trabajos = trabajos - 1 + Dim num As Int = 0 + Dim num2 As Int = 1 + Dim num2 As Int = 1 + Starter.skmt.ExecNonQuery2("INSERT INTO CAT_RESULTADO_MA(CAT_CO_ACCION, CO_RESULTADO, CO_RDESCRIPCION, NUMERO, NUME) VALUES (?,?,?,?,?)", Array As Object("MA","SO", "Selecciona una opción",num,num2)) + For Each records() As Object In result.Rows + Dim CAT_CO_ACCION As String = records(result.Columns.Get("CAT_CO_ACCION")) + Dim CO_RESULTADO As String = records(result.Columns.Get("CAT_CO_RESULTADO")) + Dim CO_RDESCRIPCION As String = records(result.Columns.Get("CAT_CO_RDESCRIPCION")) + num = num + 1 + num2 = num2 +1 + Dim numero As Int = num + Starter.skmt.ExecNonQuery2("INSERT INTO CAT_RESULTADO_MA(CAT_CO_ACCION, CO_RESULTADO, CO_RDESCRIPCION, NUMERO, NUME) VALUES (?,?,?,?,?)", Array As Object(CAT_CO_ACCION, CO_RESULTADO, CO_RDESCRIPCION,numero,num2)) + Next + + End If + + If result.Tag = "resultado_VC" Then 'query tag + Starter.skmt.ExecNonQuery("delete from CAT_RESULTADO_VC") + trabajos = trabajos - 1 + Dim num As Int = 0 + Dim num2 As Int = 1 + Starter.skmt.ExecNonQuery2("INSERT INTO CAT_RESULTADO_VC(CAT_CO_ACCION, CO_RESULTADO, CO_RDESCRIPCION, NUMERO, NUME) VALUES (?,?,?,?,?)", Array As Object("VC","SO", "Selecciona una opción",num,num2)) + For Each records() As Object In result.Rows + Dim CAT_CO_ACCION As String = records(result.Columns.Get("CAT_CO_ACCION")) + Dim CO_RESULTADO As String = records(result.Columns.Get("CAT_CO_RESULTADO")) + Dim CO_RDESCRIPCION As String = records(result.Columns.Get("CAT_CO_RDESCRIPCION")) + num = num + 1 + num2 = num2 +1 + Dim numero As Int = num + Starter.skmt.ExecNonQuery2("INSERT INTO CAT_RESULTADO_VC(CAT_CO_ACCION, CO_RESULTADO, CO_RDESCRIPCION, NUMERO, NUME) VALUES (?,?,?,?,?)", Array As Object(CAT_CO_ACCION, CO_RESULTADO, CO_RDESCRIPCION,numero,num2)) + Next + + End If + + If result.Tag = "resultado_CA" Then 'query tag + Starter.skmt.ExecNonQuery("delete from CAT_RESULTADO_CA") + trabajos = trabajos - 1 + Dim num As Int = 0 + Dim num2 As Int = 1 + Starter.skmt.ExecNonQuery2("INSERT INTO CAT_RESULTADO_CA(CAT_CO_ACCION, CO_RESULTADO, CO_RDESCRIPCION, NUMERO, NUME) VALUES (?,?,?,?,?)", Array As Object("CA","SO", "Selecciona una opción",num,num2)) + For Each records() As Object In result.Rows + Dim CAT_CO_ACCION As String = records(result.Columns.Get("CAT_CO_ACCION")) + Dim CO_RESULTADO As String = records(result.Columns.Get("CAT_CO_RESULTADO")) + Dim CO_RDESCRIPCION As String = records(result.Columns.Get("CAT_CO_RDESCRIPCION")) + num = num + 1 + num2 = num2 +1 + Dim numero As Int = num + Starter.skmt.ExecNonQuery2("INSERT INTO CAT_RESULTADO_CA(CAT_CO_ACCION, CO_RESULTADO, CO_RDESCRIPCION, NUMERO, NUME) VALUES (?,?,?,?,?)", Array As Object(CAT_CO_ACCION, CO_RESULTADO, CO_RDESCRIPCION,numero,num2)) + Next + + End If + + If result.Tag = "resultado_BR" Then 'query tag + Starter.skmt.ExecNonQuery("delete from CAT_RESULTADO_BR") + trabajos = trabajos - 1 + Dim num As Int = 0 + Dim num2 As Int = 1 + Starter.skmt.ExecNonQuery2("INSERT INTO CAT_RESULTADO_BR(CAT_CO_ACCION, CO_RESULTADO, CO_RDESCRIPCION, NUMERO, NUME) VALUES (?,?,?,?,?)", Array As Object("BR","SO", "Selecciona una opción",num,num2)) + For Each records() As Object In result.Rows + Dim CAT_CO_ACCION As String = records(result.Columns.Get("CAT_CO_ACCION")) + Dim CO_RESULTADO As String = records(result.Columns.Get("CAT_CO_RESULTADO")) + Dim CO_RDESCRIPCION As String = records(result.Columns.Get("CAT_CO_RDESCRIPCION")) + num = num + 1 + num2 = num2 +1 + Dim numero As Int = num + Starter.skmt.ExecNonQuery2("INSERT INTO CAT_RESULTADO_BR(CAT_CO_ACCION, CO_RESULTADO, CO_RDESCRIPCION, NUMERO, NUME) VALUES (?,?,?,?,?)", Array As Object(CAT_CO_ACCION, CO_RESULTADO, CO_RDESCRIPCION,numero,num2)) + Next + + End If + + End If + + Log(trabajos) + If trabajos = 0 Then + Starter.skmt.ExecNonQuery2("UPDATE CARGADO SET CARGADO = ?",Array As String("1")) + ProgressDialogHide + End If + + End If +End Sub + +Private Sub b_enviar_Click + Dim cmd As DBCommand + Dim foto1() As Byte + Dim foto2() As Byte + Dim foto3() As Byte + Dim foto4() As Byte + Dim Dirp As String = File.DirRootExternal + Dim Dir As String + Dim Dir2 As String + Dir = "/Arestrategicas" + Dir2 = "/reduccion" + + c = Starter.skmt.ExecQuery("SELECT * FROM HIST_VISITA WHERE ESTATUS = 2 AND ENVIADO <> 1") + Log(c.RowCount) + + For i = 0 To c.RowCount - 1 + c.Position = i + foto1 = Bit.InputStreamToBytes(File.OpenInput(Dirp&Dir&Dir2,c.GetString("FOTOUNO"))) + foto2 = Bit.InputStreamToBytes(File.OpenInput(Dirp&Dir&Dir2,c.GetString("FOTODOS"))) + foto3 = Bit.InputStreamToBytes(File.OpenInput(Dirp&Dir&Dir2,c.GetString("FOTOTRES"))) + foto4 = Bit.InputStreamToBytes(File.OpenInput(Dirp&Dir&Dir2,c.GetString("FOTOCUATRO"))) + + cmd.Initialize + cmd.Name = "insert_gestion_AR" + cmd.Parameters = Array As Object(c.GetString("CREDITO"), c.GetString("PRODUCTO"), c.GetString("VISITADOR"), c.GetString("RESULTADO"), c.GetString("CODIGO_RES"), c.GetString("PARENTESCO"), c.GetString("COMENTARIOS"), c.GetString("FECHA"), c.GetString("LONGITUD"), c.GetString("LATUTUD"), c.GetString("FECHACAPTURA"), c.GetString("AGENCIA"), c.GetString("FECHA_PROMESA"), c.GetString("MONTO_PROMESA"), c.GetString("TIPO_DOMICILIO"), c.GetString("NIVEL_SOCIO"), c.GetString("CARACTERISTICAS"), c.GetString("NIVELES"), foto1, foto2, foto3, foto4, c.GetString("NOMBRE_ATIENDE"), c.GetString("CODIGO_ACCION"), c.GetString("ACCION"), c.GetString("DIAS_ACCION"), c.GetString("PUNTOS_REF")) + B4XPages.MainPage.reqManager.ExecuteCommand(cmd, "insert_gestion_AREstrategicas") + Starter.skmt.ExecNonQuery2("UPDATE HIST_VISITA SET ENVIADO = ? WHERE CREDITO = ?", Array As String("1",c.GetString("CREDITO"))) + Next + MsgboxAsync("Datos enviados.","") + c.Close +End Sub + + + +Private Sub et_findia_EnterPressed + Dim res As String + If et_findia.Text = "FIN DIA" Then + res = Msgbox2("Seguro que desea hacer el cierre? ... todos los datos se borraran","Cierre", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) 'ignore + If res = DialogResponse.POSITIVE Then + Starter.skmt.ExecNonQuery("delete from HIST_DATOS_GENERALES") + Starter.skmt.ExecNonQuery("delete from HIST_FINANCIEROS") + Starter.skmt.ExecNonQuery("delete from HIST_DATOS_GENERALES2") + Starter.skmt.ExecNonQuery("delete from HIST_FINANCIEROS2") + Starter.skmt.ExecNonQuery("delete from HIST_VISITA") + Starter.skmt.ExecNonQuery("delete from CHECADO") + Starter.skmt.ExecNonQuery("delete from CARGADO") + clv_cuentas.Clear + l_cuentasportrabajar.Text = "0" + l_cuentrastrabajadas.Text = "0" + et_findia.Text = "" + End If + End If +End Sub + +Private Sub et_busqueda_TextChanged (Old As String, New As String) + Dim BUSCA As String + BUSCA = "%" & et_busqueda.Text & "%" + If et_busqueda.Text.Length = 0 Then + c = Starter.skmt.ExecQuery("SELECT CREDITO, NOMBRE, CALLE, N_EXT, N_INT, ALCALDIA, ESTATUS FROM HIST_DATOS_GENERALES WHERE ESTATUS2 <> 2 order by 1") + + clv_cuentas.Clear + For i = 0 To c.RowCount - 1 + c.Position = i + clv_cuentas.Add(CreateListItem(c.GetString("CREDITO"), c.GetString("NOMBRE"), ("CALLE: " & c.GetString("CALLE") &" NO. EXT: "& c.GetString("N_EXT") & CRLF & "No. INT: "& c.GetString("N_INT") &" COL.: "&c.GetString("ALCALDIA")), c.GetString("ESTATUS")),i) + Next + c.Close + Else If et_busqueda.Text.Length > 0 Then + c = Starter.skmt.ExecQuery2("SELECT CREDITO, NOMBRE, CALLE, N_EXT, N_INT, ALCALDIA, ESTATUS FROM HIST_DATOS_GENERALES WHERE NOMBRE LIKE ? OR CREDITO LIKE ? ",Array As String(BUSCA, BUSCA)) + + clv_cuentas.Clear + For i = 0 To c.RowCount - 1 + c.Position = i + clv_cuentas.Add(CreateListItem(c.GetString("CREDITO"), c.GetString("NOMBRE"), ("CALLE: " & c.GetString("CALLE") &" NO. EXT: "& c.GetString("N_EXT") & CRLF & "No. INT: "& c.GetString("N_INT") &" COL.: "&c.GetString("ALCALDIA")), c.GetString("ESTATUS")),i) + Next + c.Close + End If +End Sub + +Private Sub B4XPage_CloseRequest As ResumableSub + + + B4XPages.ShowPage("Mainpage") + +' Return True + Return False +End Sub \ No newline at end of file diff --git a/B4A/CameraExClass2.bas b/B4A/CameraExClass2.bas new file mode 100644 index 0000000..bc84bf4 --- /dev/null +++ b/B4A/CameraExClass2.bas @@ -0,0 +1,399 @@ +B4A=true +Group=Default Group +ModulesStructureVersion=1 +Type=Class +Version=6 +@EndOfDesignText@ +'Class module +'version 1.30 +'See this page for the list of constants: +'http://developer.android.com/intl/fr/reference/android/hardware/Camera.Parameters.html +'Note that you should use the constant values instead of the names. +Sub Class_Globals + Private nativeCam As Object + Private cam As Camera + Private r As Reflector + Private target As Object + Private event As String + Public Front As Boolean + Private parameters As Object +End Sub + +Public Sub Initialize (Panel1 As Panel, FrontCamera As Boolean, TargetModule As Object, EventName As String) + target = TargetModule + event = EventName + Front = FrontCamera + Dim id As Int + id = FindCamera(Front).id + If id = -1 Then + Front = Not(Front) 'try different camera + id = FindCamera(Front).id + If id = -1 Then + ToastMessageShow("No camera found.", True) + Return + End If + End If + cam.Initialize2(Panel1, "camera", id) +End Sub + +Private Sub FindCamera (frontCamera As Boolean) As CameraInfoAndId + Dim ci As CameraInfoAndId + Dim cameraInfo As Object + Dim cameraValue As Int + Log("findCamera") + If frontCamera Then cameraValue = 1 Else cameraValue = 0 + cameraInfo = r.CreateObject("android.hardware.Camera$CameraInfo") + Dim numberOfCameras As Int = r.RunStaticMethod("android.hardware.Camera", "getNumberOfCameras", Null, Null) + Log(r.target) + Log(numberOfCameras) + For i = 0 To numberOfCameras - 1 + r.RunStaticMethod("android.hardware.Camera", "getCameraInfo", Array As Object(i, cameraInfo), _ + Array As String("java.lang.int", "android.hardware.Camera$CameraInfo")) + r.target = cameraInfo + Log("facing: " & r.GetField("facing") & ", " & cameraValue) + If r.GetField("facing") = cameraValue Then + ci.cameraInfo = r.target + ci.Id = i + Return ci + End If + Next + ci.id = -1 + Return ci +End Sub + +Private Sub SetDisplayOrientation + r.target = r.GetActivity + r.target = r.RunMethod("getWindowManager") + r.target = r.RunMethod("getDefaultDisplay") + r.target = r.RunMethod("getRotation") + Dim previewResult, result, degrees As Int = r.target * 90 + Dim ci As CameraInfoAndId = FindCamera(Front) + r.target = ci.CameraInfo + Dim orientation As Int = r.GetField("orientation") + If Front Then + previewResult = (orientation + degrees) Mod 360 + result = previewResult + previewResult = (360 - previewResult) Mod 360 + Else + previewResult = (orientation - degrees + 360) Mod 360 + result = previewResult + Log(previewResult) + End If + r.target = nativeCam + r.RunMethod2("setDisplayOrientation", previewResult, "java.lang.int") + r.target = parameters + r.RunMethod2("setRotation", result, "java.lang.int") + CommitParameters +End Sub + +Private Sub Camera_Ready (Success As Boolean) + If Success Then + r.target = cam + nativeCam = r.GetField("camera") + r.target = nativeCam + parameters = r.RunMethod("getParameters") + SetDisplayOrientation + Else + Log("success = false, " & LastException) + End If + CallSub2(target, event & "_ready", Success) +End Sub +'Uncomment this sub if you need to handle the Preview event +'Sub Camera_Preview (Data() As Byte) +' If SubExists(target, event & "_preview") Then +' CallSub2(target, event & "_preview", Data) +' End If +'End Sub + +Public Sub TakePicture + cam.TakePicture +End Sub + +Private Sub Camera_PictureTaken (Data() As Byte) + CallSub2(target, event & "_PictureTaken", Data) +End Sub + +Public Sub StartPreview + cam.StartPreview +End Sub + +Public Sub StopPreview + cam.StopPreview +End Sub + +Public Sub Release + cam.Release +End Sub + +'Saves the data received from PictureTaken event +Public Sub SavePictureToFile(Data() As Byte, Dir As String, FileName As String) + Dim out As OutputStream = File.OpenOutput(Dir, FileName, False) + out.WriteBytes(Data, 0, Data.Length) + out.Close +End Sub + +Public Sub SetParameter(Key As String, Value As String) + r.target = parameters + r.RunMethod3("set", Key, "java.lang.String", Value, "java.lang.String") +End Sub + +Public Sub GetParameter(Key As String) As String + r.target = parameters + Return r.RunMethod2("get", Key, "java.lang.String") +End Sub + +Public Sub CommitParameters + 'Try + r.target = nativeCam + r.RunMethod4("setParameters", Array As Object(parameters), Array As String("android.hardware.Camera$Parameters")) + 'Catch +' ToastMessageShow("Error setting parameters.", True) +' Log(LastException) +' End Try +End Sub + +Public Sub GetColorEffect As String + Return GetParameter("effect") +End Sub + +Public Sub SetColorEffect(Effect As String) + SetParameter("effect", Effect) +End Sub + +Public Sub GetSupportedPreviewSizes As CameraSize() + r.target = parameters + Dim list1 As List = r.RunMethod("getSupportedPreviewSizes") + Dim cs(list1.Size) As CameraSize + For i = 0 To list1.Size - 1 + r.target = list1.get(i) + cs(i).Width = r.GetField("width") + cs(i).Height = r.GetField("height") + Next + Return cs +End Sub + +Public Sub SetPreviewSize(Width As Int, Height As Int) + r.target = parameters + r.RunMethod3("setPreviewSize", Width, "java.lang.int", Height, "java.lang.int") +End Sub +Public Sub GetSupportedPicturesSizes As CameraSize() + r.target = parameters + Dim list1 As List = r.RunMethod("getSupportedPictureSizes") + Dim cs(list1.Size) As CameraSize + For i = 0 To list1.Size - 1 + r.target = list1.get(i) + cs(i).Width = r.GetField("width") + cs(i).Height = r.GetField("height") + Next + Return cs +End Sub + +Public Sub SetPictureSize(Width As Int, Height As Int) + r.target = parameters + r.RunMethod3("setPictureSize", Width, "java.lang.int", Height, "java.lang.int") +End Sub + +Public Sub SetJpegQuality(Quality As Int) + r.target = parameters + r.RunMethod2("setJpegQuality", Quality, "java.lang.int") +End Sub + +Public Sub SetFlashMode(Mode As String) + r.target = parameters + r.RunMethod2("setFlashMode", Mode, "java.lang.String") +End Sub + +Public Sub GetFlashMode As String + r.target = parameters + Return r.RunMethod("getFlashMode") +End Sub + +Public Sub GetSupportedFlashModes As List + r.target = parameters + Return r.RunMethod("getSupportedFlashModes") +End Sub + +Public Sub GetSupportedColorEffects As List + r.target = parameters + Return r.RunMethod("getSupportedColorEffects") +End Sub + +'Returns a list with the supported preview fps. Each item in the list is an array of two ints (minimum value and maximum value). +Public Sub GetSupportedPreviewFpsRange As List + r.target = parameters + Return r.RunMethod("getSupportedPreviewFpsRange") +End Sub +'Returns the current preview fps range. +'Range is a two elements array. The minimum value and maximum value will be stored in this array. +Public Sub GetPreviewFpsRange(Range() As Int) + r.target = parameters + r.RunMethod4("getPreviewFpsRange", Array As Object(Range), Array As String("[I")) +End Sub + +Public Sub SetPreviewFpsRange(MinValue As Int, MaxValue As Int) + r.target = parameters + r.RunMethod4("setPreviewFpsRange", Array As Object(MinValue, MaxValue), _ + Array As String("java.lang.int", "java.lang.int")) +End Sub + +Public Sub GetPreviewSize As CameraSize + r.target = parameters + r.target = r.RunMethod("getPreviewSize") + Dim cs As CameraSize + cs.Width = r.GetField("width") + cs.Height = r.GetField("height") + Return cs +End Sub + +Public Sub GetPictureSize As CameraSize + r.target = parameters + r.target = r.RunMethod("getPictureSize") + Dim cs As CameraSize + cs.Width = r.GetField("width") + cs.Height = r.GetField("height") + Return cs +End Sub + +'Converts a preview image formatted in YUV format to JPEG. +'Note that you should not save every preview image as it will slow down the whole process. +Public Sub PreviewImageToJpeg(data() As Byte, quality As Int) As Byte() + Dim size, previewFormat As Object + r.target = parameters + size = r.RunMethod("getPreviewSize") + previewFormat = r.RunMethod("getPreviewFormat") + r.target = size + Dim width = r.GetField("width"), height = r.GetField("height") As Int + Dim yuvImage As Object = r.CreateObject2("android.graphics.YuvImage", _ + Array As Object(data, previewFormat, width, height, Null), _ + Array As String("[B", "java.lang.int", "java.lang.int", "java.lang.int", "[I")) + r.target = yuvImage + Dim rect1 As Rect + rect1.Initialize(0, 0, r.RunMethod("getWidth"), r.RunMethod("getHeight")) + Dim out As OutputStream + out.InitializeToBytesArray(100) + r.RunMethod4("compressToJpeg", Array As Object(rect1, quality, out), _ + Array As String("android.graphics.Rect", "java.lang.int", "java.io.OutputStream")) + Return out.ToBytesArray +End Sub + +Public Sub GetSupportedFocusModes As List + r.target = parameters + Return r.RunMethod("getSupportedFocusModes") +End Sub + +Public Sub SetContinuousAutoFocus + Dim modes As List = GetSupportedFocusModes + If modes.IndexOf("continuous-picture") > -1 Then + SetFocusMode("continuous-picture") + Else If modes.IndexOf("continuous-video") > -1 Then + SetFocusMode("continuous-video") + Else + Log("Continuous focus mode is not available") + End If +End Sub + +Public Sub SetFocusMode(Mode As String) + r.target = parameters + r.RunMethod2("setFocusMode", Mode, "java.lang.String") +End Sub + +Public Sub GetFocusDistances As Float() + Dim F(3) As Float + r.target = parameters + r.RunMethod4("getFocusDistances", Array As Object(F), Array As String("[F")) + Return F +End Sub + +Public Sub GetSupportedPictureFormats As List + r.target = parameters + Return r.RunMethod("getSupportedPictureFormats") +End Sub +'This method should only be called if you need to immediately release the camera. +'For example if you need to start another application that depends on the camera. +Public Sub CloseNow + cam.Release + r.target = cam + r.RunMethod2("releaseCameras", True, "java.lang.boolean") +End Sub +'Calls AutoFocus and then takes the picture if focus was successfull. +Public Sub FocusAndTakePicture + cam.AutoFocus +End Sub + + +Private Sub Camera_FocusDone (Success As Boolean) + If Success Then + TakePicture + Else + Log("AutoFocus error.") + End If +End Sub + +Public Sub IsZoomSupported As Boolean + r.target = parameters + Return r.RunMethod("isZoomSupported") +End Sub + +Public Sub GetMaxZoom As Int + r.target = parameters + Return r.RunMethod("getMaxZoom") +End Sub + +Public Sub getZoom() As Int + r.target = parameters + Return r.RunMethod("getZoom") +End Sub + +Public Sub setZoom(ZoomValue As Int) + r.target = parameters + r.RunMethod2("setZoom", ZoomValue, "java.lang.int") +End Sub + +Public Sub getExposureCompensation As Int + r.target = parameters + Return r.RunMethod("getExposureCompensation") +End Sub + +Public Sub setExposureCompensation(v As Int) + r.target = parameters + r.RunMethod2("setExposureCompensation", v, "java.lang.int") +End Sub + +Public Sub getMinExposureCompensation As Int + r.target = parameters + Return r.RunMethod("getMinExposureCompensation") +End Sub + +Public Sub getMaxExposureCompensation As Int + r.target = parameters + Return r.RunMethod("getMaxExposureCompensation") +End Sub + +Public Sub SetFaceDetectionListener + Dim jo As JavaObject = nativeCam + Dim e As Object = jo.CreateEvent("android.hardware.Camera.FaceDetectionListener", "FaceDetection", Null) + jo.RunMethod("setFaceDetectionListener", Array(e)) +End Sub + +Private Sub FaceDetection_Event (MethodName As String, Args() As Object) As Object + Dim faces() As Object = Args(0) + For Each f As Object In faces + Dim jo As JavaObject = f + Dim faceRect As Rect = jo.GetField("rect") + Log(faceRect) + Next + Return Null +End Sub + + + +Public Sub StartFaceDetection + Dim jo As JavaObject = nativeCam + jo.RunMethod("startFaceDetection", Null) +End Sub + +Public Sub StopFaceDetection + Dim jo As JavaObject = nativeCam + jo.RunMethod("stopFaceDetection", Null) +End Sub + diff --git a/B4A/DBRequestManager.bas b/B4A/DBRequestManager.bas new file mode 100644 index 0000000..31298ba --- /dev/null +++ b/B4A/DBRequestManager.bas @@ -0,0 +1,272 @@ +B4A=true +Group=Default Group +ModulesStructureVersion=1 +Type=Class +Version=6.8 +@EndOfDesignText@ +''Class module + +'' Requiere accesRandom File y requiere compressStrings, byte converter y okhhtputuils2 +Sub Class_Globals + Private mTarget As Object + Type DBResult (Tag As Object, Columns As Map, Rows As List) + Type DBCommand (Name As String, Parameters() As Object) + Private link As String + Private bc As ByteConverter + Private T_NULL = 0, T_STRING = 1, T_SHORT = 2, T_INT = 3, T_LONG = 4, T_FLOAT = 5 _ + ,T_DOUBLE = 6, T_BOOLEAN = 7, T_BLOB = 8 As Byte + Private VERSION As Float = 0.9 + Private tempArray(1) As Object + Dim jobTagAnterior As String = "" 'Mod por CHV - 211109 +End Sub + +'Target - The module that handles JobDone (usually Me). +'ConnectorLink - URL of the Java server. +Public Sub Initialize (Target As Object, ConnectorLink As String) + mTarget = Target + link = ConnectorLink +End Sub + +'Sends a query request. +'Command - Query name and parameters. +'Limit - Maximum rows to return or 0 for no limit. +'Tag - An object that will be returned in the result. +Public Sub ExecuteQuery(Command As DBCommand, Limit As Int, Tag As Object) + Dim j As HttpJob + Dim ms As OutputStream + Dim out2 As OutputStream = StartJob(j,ms, Tag) + + WriteObject(Command.Name, out2) + WriteInt(Limit, out2) + WriteList(Command.Parameters, out2) + out2.Close + j.PostBytes(link & "?method=query", ms.ToBytesArray) +End Sub + +'Executes a batch of (non-select) commands. +'ListOfCommands - List of the commands that will be executes. +'Tag - An object that will be returned in the result. +Public Sub ExecuteBatch(ListOfCommands As List, Tag As Object) + Dim j As HttpJob + Dim ms As OutputStream + Dim out2 As OutputStream = StartJob(j,ms, Tag) + WriteInt(ListOfCommands.Size, out2) + For Each Command As DBCommand In ListOfCommands + WriteObject(Command.Name, out2) + WriteList(Command.Parameters, out2) + Next + out2.Close + j.PostBytes(link & "?method=batch", ms.ToBytesArray) +End Sub + +'Similar to ExecuteBatch. Sends a single command. +Public Sub ExecuteCommand(Command As DBCommand, Tag As Object) + ExecuteBatch(Array As DBCommand(Command), Tag) +End Sub + +Private Sub StartJob(j As HttpJob, MemoryStream As OutputStream, Tag As Object) As OutputStream + j.Initialize("DBRequest", mTarget) + j.Tag = Tag + MemoryStream.InitializeToBytesArray(0) + Dim compress As CompressedStreams + Dim out As OutputStream = compress.WrapOutputStream(MemoryStream, "gzip") + WriteObject(VERSION, out) + Return out +End Sub + +Private Sub WriteList(Parameters As List, out As OutputStream) + Dim data() As Byte + If Parameters = Null Or Parameters.IsInitialized = False Then + Dim Parameters As List + Parameters.Initialize + End If + data = bc.IntsToBytes(Array As Int(Parameters.Size)) + out.WriteBytes(data, 0, data.Length) + For Each o As Object In Parameters + WriteObject(o, out) + Next +End Sub + +Private Sub WriteObject(o As Object, out As OutputStream) + Dim data() As Byte + tempArray(0) = o + If tempArray(0) = Null Then + out.WriteBytes(Array As Byte(T_NULL), 0, 1) + Else If tempArray(0) Is Short Then + out.WriteBytes(Array As Byte(T_SHORT), 0, 1) + data = bc.ShortsToBytes(Array As Short(o)) + Else If tempArray(0) Is Int Then + out.WriteBytes(Array As Byte(T_INT), 0, 1) + data = bc.IntsToBytes(Array As Int(o)) + Else If tempArray(0) Is Float Then + out.WriteBytes(Array As Byte(T_FLOAT), 0, 1) + data = bc.FloatsToBytes(Array As Float(o)) + Else If tempArray(0) Is Double Then + out.WriteBytes(Array As Byte(T_DOUBLE), 0, 1) + data = bc.DoublesToBytes(Array As Double(o)) + Else If tempArray(0) Is Long Then + out.WriteBytes(Array As Byte(T_LONG), 0, 1) + data = bc.LongsToBytes(Array As Long(o)) + Else If tempArray(0) Is Boolean Then + out.WriteBytes(Array As Byte(T_BOOLEAN), 0, 1) + Dim b As Boolean = 0 + Dim data(1) As Byte + If b Then data(0) = 1 Else data(0) = 0 + Else If GetType(tempArray(0)) = "[B" Then + data = o + out.WriteBytes(Array As Byte(T_BLOB), 0, 1) + WriteInt(data.Length, out) + Else 'If o Is String Then (treat all other values as string) + out.WriteBytes(Array As Byte(T_STRING), 0, 1) + data = bc.StringToBytes(o, "UTF8") + WriteInt(data.Length, out) + End If + If data.Length > 0 Then out.WriteBytes(data, 0, data.Length) +End Sub + +Private Sub ReadObject(In As InputStream) As Object + Dim data(1) As Byte + In.ReadBytes(data, 0, 1) + Select data(0) + Case T_NULL + Return Null + Case T_SHORT + Dim data(2) As Byte + Return bc.ShortsFromBytes(ReadBytesFully(In, data, data.Length))(0) + Case T_INT + Dim data(4) As Byte + Return bc.IntsFromBytes(ReadBytesFully(In, data, data.Length))(0) + Case T_LONG + Dim data(8) As Byte + Return bc.LongsFromBytes(ReadBytesFully(In, data, data.Length))(0) + Case T_FLOAT + Dim data(4) As Byte + Return bc.FloatsFromBytes(ReadBytesFully(In, data, data.Length))(0) + Case T_DOUBLE + Dim data(8) As Byte + Return bc.DoublesFromBytes(ReadBytesFully(In, data, data.Length))(0) + Case T_BOOLEAN + Dim b As Byte = ReadByte(In) + Return b = 1 + Case T_BLOB + Dim len As Int = ReadInt(In) + Dim data(len) As Byte + Return ReadBytesFully(In, data, data.Length) + Case Else + Dim len As Int = ReadInt(In) + Dim data(len) As Byte + ReadBytesFully(In, data, data.Length) + Return BytesToString(data, 0, data.Length, "UTF8") + End Select +End Sub + +Private Sub ReadBytesFully(In As InputStream, Data() As Byte, Len As Int) As Byte() + Dim count = 0, read As Int + Do While count < Len And read > -1 + read = In.ReadBytes(Data, count, Len - count) + count = count + read + Loop + Return Data +End Sub + +Private Sub WriteInt(i As Int, out As OutputStream) + Dim data() As Byte + data = bc.IntsToBytes(Array As Int(i)) + out.WriteBytes(data, 0, data.Length) +End Sub + +Private Sub ReadInt(In As InputStream) As Int + Dim data(4) As Byte + Return bc.IntsFromBytes(ReadBytesFully(In, data, data.Length))(0) +End Sub + +Private Sub ReadByte(In As InputStream) As Byte + Dim data(1) As Byte + In.ReadBytes(data, 0, 1) + Return data(0) +End Sub + +'Handles the Job result and returns a DBResult. +Public Sub HandleJob(Job As HttpJob) As DBResult + Dim start As Long = DateTime.Now 'ignore + Dim In As InputStream = Job.GetInputStream + Dim cs As CompressedStreams + In = cs.WrapInputStream(In, "gzip") + Dim serverVersion As Float = ReadObject(In) 'ignore + Dim method As String = ReadObject(In) + Dim table As DBResult + table.Initialize + table.Columns.Initialize + table.rows.Initialize + table.Tag = Job.Tag + If jobTagAnterior <> Job.Tag Then LogColor("HandleJob: '"&Job.Tag&"'", Colors.Blue) 'Mod por CHV - 211109 + jobTagAnterior = Job.Tag 'Mod por CHV - 211109 + If method = "query" Then + Dim numberOfColumns As Int = ReadInt(In) + For i = 0 To numberOfColumns - 1 + table.Columns.Put(ReadObject(In), i) + Next + Do While ReadByte(In) = 1 + Dim rowObjects(numberOfColumns) As Object + table.rows.Add(rowObjects) + For col = 0 To numberOfColumns - 1 + Dim o As Object = ReadObject(In) + rowObjects(col) = o + Next + Loop + Else If method = "batch" Then + table.Columns.Put("AffectedRows", 0) + Dim rows As Int = ReadInt(In) + For i = 0 To rows - 1 + table.rows.Add(Array As Object(ReadInt(In))) + Next + End If + In.Close +' Log("HandleJob: " & (DateTime.Now - start))'Comentado por CHV - 211112 + Return table +End Sub +'Reads a file and returns the file as a bytes array. +Public Sub FileToBytes(Dir As String, FileName As String) As Byte() + Dim out As OutputStream + out.InitializeToBytesArray(0) + Dim In As InputStream = File.OpenInput(Dir, FileName) + File.Copy2(In, out) + out.Close + Return out.ToBytesArray +End Sub +'Converts an image to a bytes array (for BLOB fields). +Public Sub ImageToBytes(Image As Bitmap) As Byte() + Dim out As OutputStream + out.InitializeToBytesArray(0) + Image.WriteToStream(out, 100, "JPEG") + out.Close + Return out.ToBytesArray +End Sub +'Converts a bytes array to an image (for BLOB fields). +Public Sub BytesToImage(bytes() As Byte) As Bitmap + Dim In As InputStream + In.InitializeFromBytesArray(bytes, 0, bytes.Length) + Dim bmp As Bitmap + bmp.Initialize2(In) + Return bmp +End Sub +'Prints the table to the logs. +Public Sub PrintTable(Table As DBResult) + Log("Tag: " & Table.Tag & ", Columns: " & Table.Columns.Size & ", Rows: " & Table.Rows.Size) + Dim sb As StringBuilder + sb.Initialize + For Each col In Table.Columns.Keys + sb.Append(col).Append(TAB) + Next + Log(sb.ToString) + For Each row() As Object In Table.Rows + Dim sb As StringBuilder + sb.Initialize + For Each record As Object In row + sb.Append(record).Append(TAB) + Next + ToastMessageShow(sb.ToString, True) + Next +End Sub + + \ No newline at end of file diff --git a/B4A/Files/alert2.png b/B4A/Files/alert2.png new file mode 100644 index 0000000..44d3b7e Binary files /dev/null and b/B4A/Files/alert2.png differ diff --git a/B4A/Files/candado.png b/B4A/Files/candado.png new file mode 100644 index 0000000..8122600 Binary files /dev/null and b/B4A/Files/candado.png differ diff --git a/B4A/Files/cuenta.bal b/B4A/Files/cuenta.bal new file mode 100644 index 0000000..a5c96d9 Binary files /dev/null and b/B4A/Files/cuenta.bal differ diff --git a/B4A/Files/datos-varios.png b/B4A/Files/datos-varios.png new file mode 100644 index 0000000..058934b Binary files /dev/null and b/B4A/Files/datos-varios.png differ diff --git a/B4A/Files/datos.bal b/B4A/Files/datos.bal new file mode 100644 index 0000000..08df6e3 Binary files /dev/null and b/B4A/Files/datos.bal differ diff --git a/B4A/Files/engranes.png b/B4A/Files/engranes.png new file mode 100644 index 0000000..868a879 Binary files /dev/null and b/B4A/Files/engranes.png differ diff --git a/B4A/Files/financiero.bal b/B4A/Files/financiero.bal new file mode 100644 index 0000000..7c7a45d Binary files /dev/null and b/B4A/Files/financiero.bal differ diff --git a/B4A/Files/fondo-vino.jpg b/B4A/Files/fondo-vino.jpg new file mode 100644 index 0000000..8549138 Binary files /dev/null and b/B4A/Files/fondo-vino.jpg differ diff --git a/B4A/Files/fondo.png b/B4A/Files/fondo.png new file mode 100644 index 0000000..ee96402 Binary files /dev/null and b/B4A/Files/fondo.png differ diff --git a/B4A/Files/fondoblanco.png b/B4A/Files/fondoblanco.png new file mode 100644 index 0000000..2e7ce3c Binary files /dev/null and b/B4A/Files/fondoblanco.png differ diff --git a/B4A/Files/gestion.bal b/B4A/Files/gestion.bal new file mode 100644 index 0000000..e49a7ca Binary files /dev/null and b/B4A/Files/gestion.bal differ diff --git a/B4A/Files/gestionadas.bal b/B4A/Files/gestionadas.bal new file mode 100644 index 0000000..e699fa7 Binary files /dev/null and b/B4A/Files/gestionadas.bal differ diff --git a/B4A/Files/icon_22-[convertido].png b/B4A/Files/icon_22-[convertido].png new file mode 100644 index 0000000..bd4885f Binary files /dev/null and b/B4A/Files/icon_22-[convertido].png differ diff --git a/B4A/Files/imglogo_cl_ar.png b/B4A/Files/imglogo_cl_ar.png new file mode 100644 index 0000000..f018768 Binary files /dev/null and b/B4A/Files/imglogo_cl_ar.png differ diff --git a/B4A/Files/kmt.db b/B4A/Files/kmt.db new file mode 100644 index 0000000..2cbbb8e Binary files /dev/null and b/B4A/Files/kmt.db differ diff --git a/B4A/Files/lupa.png b/B4A/Files/lupa.png new file mode 100644 index 0000000..4f586bf Binary files /dev/null and b/B4A/Files/lupa.png differ diff --git a/B4A/Files/mainpage.bal b/B4A/Files/mainpage.bal new file mode 100644 index 0000000..a8e5bfb Binary files /dev/null and b/B4A/Files/mainpage.bal differ diff --git a/B4A/Files/principal.bal b/B4A/Files/principal.bal new file mode 100644 index 0000000..ad91e69 Binary files /dev/null and b/B4A/Files/principal.bal differ diff --git a/B4A/Files/scroll.bal b/B4A/Files/scroll.bal new file mode 100644 index 0000000..9cd4ca4 Binary files /dev/null and b/B4A/Files/scroll.bal differ diff --git a/B4A/Files/t_a.jpg b/B4A/Files/t_a.jpg new file mode 100644 index 0000000..8a89391 Binary files /dev/null and b/B4A/Files/t_a.jpg differ diff --git a/B4A/Files/usuario.png b/B4A/Files/usuario.png new file mode 100644 index 0000000..2935f41 Binary files /dev/null and b/B4A/Files/usuario.png differ diff --git a/B4A/ManageExternalStorage.bas b/B4A/ManageExternalStorage.bas new file mode 100644 index 0000000..6dbb41f --- /dev/null +++ b/B4A/ManageExternalStorage.bas @@ -0,0 +1,81 @@ +B4A=true +Group=Default Group +ModulesStructureVersion=1 +Type=Class +Version=10.7 +@EndOfDesignText@ +' Version 1.00 +#Event: StorageAvailable +Sub Class_Globals + Private ion As Object + Private mCallback As Object + Private mEventName As String + +End Sub + + +' This pretty trivial class is modelled on (plagiarised from!) Erel's ExternalStorage class +' It applies to devices implementing SDK30 and later +' It allows apps to access the internal 'external' storage as was possible on earlier Android versions ussing traditional file I/O +' You must manually add 'AddPermission(android.permission.MANAGE_EXTERNAL_STORAGE)' to the manifest +' You must ensure that you provide the package name of your app in Sub GetPermission +' This class uses the MANAGE_APP_ALL_FILES_ACCESS_PERMISSION intent action to direct users to a system settings page +' They must enable the option on that page to give permission + + + +'Initializes the object +Public Sub Initialize (Callback As Object, EventName As String) + mCallback = Callback + mEventName = EventName +End Sub + + +' Determine if the app already has MANAGE_EXTERNAL_STORAGE call Environment.isExternalStorageManager() +' Return True if this app already has MANAGE_EXTERNAL_STORAGE permission +Public Sub HasPermission As Boolean + Dim has As Boolean + Dim jo As JavaObject + jo.InitializeStatic("android.os.Environment") + has = jo.RunMethod("isExternalStorageManager", Null) + Return has +End Sub + +' Check whether this app has MANAGE_EXTERNAL_STORAGE permission +' If not show the user a dialog to enable MANAGE_EXTERNAL_STORAGE permission for this app +' Raises the StorageAvailable event in the calling activity when complete +Public Sub GetPermission + If HasPermission Then + RaiseEvent + Return + End If + Dim in As Intent + ' Be sure to reference your app package name in "pakageg:xxx" + in.Initialize("android.settings.MANAGE_APP_ALL_FILES_ACCESS_PERMISSION", "package:arestrategicas.keymon.lat") + StartActivityForResult(in) +End Sub + + +Private Sub RaiseEvent + Log("Calling : " & mEventName & "_StorageAvailable") + CallSubDelayed(mCallback, mEventName & "_StorageAvailable") +End Sub + + +Private Sub ion_Event (MethodName As String, Args() As Object) As Object + RaiseEvent + Return Null +End Sub + + +Private Sub StartActivityForResult(i As Intent) + Dim jo As JavaObject = GetBA + ion = jo.CreateEvent("anywheresoftware.b4a.IOnActivityResult", "ion", Null) + jo.RunMethod("startActivityForResult", Array As Object(ion, i)) +End Sub + +Private Sub GetBA As Object + Dim jo As JavaObject = Me + Return jo.RunMethod("getBA", Null) +End Sub + diff --git a/B4A/NUEVO_TORRADO.b4a b/B4A/NUEVO_TORRADO.b4a new file mode 100644 index 0000000..30120df --- /dev/null +++ b/B4A/NUEVO_TORRADO.b4a @@ -0,0 +1,158 @@ +Build1=Default,arestrategicas.keymon.lat +File1=candado.png +File10=gestion.bal +File11=gestionadas.bal +File12=icon_22-[convertido].png +File13=ImgLogo_Cl_AR.png +File14=lupa.png +File15=MainPage.bal +File16=principal.bal +File17=scroll.bal +File18=t_a.jpg +File19=usuario.png +File2=cuenta.bal +File3=datos.bal +File4=datos-varios.png +File5=engranes.png +File6=financiero.bal +File7=fondo.png +File8=fondoblanco.png +File9=fondo-vino.jpg +FileGroup1=Default Group +FileGroup10=Default Group +FileGroup11=Default Group +FileGroup12=Default Group +FileGroup13=Default Group +FileGroup14=Default Group +FileGroup15=Default Group +FileGroup16=Default Group +FileGroup17=Default Group +FileGroup18=Default Group +FileGroup19=Default Group +FileGroup2=Default Group +FileGroup3=Default Group +FileGroup4=Default Group +FileGroup5=Default Group +FileGroup6=Default Group +FileGroup7=Default Group +FileGroup8=Default Group +FileGroup9=Default Group +Group=Default Group +Library1=accessibility +Library10=core +Library11=fileprovider +Library12=fusedlocationprovider +Library13=gps +Library14=ime +Library15=okhttputils2 +Library16=phone +Library17=randomaccessfile +Library18=reflection +Library19=runtimepermissions +Library2=appupdating +Library20=sql +Library21=stringutils +Library22=wobblemenu +Library23=xcustomlistview +Library24=xui +Library25=xui views +Library26=javaobject +Library3=aswheelpicker +Library4=b4xpages +Library5=bctoast +Library6=bitmapcreator +Library7=byteconverter +Library8=camera +Library9=compressstrings +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~SetApplicationAttribute(android:usesCleartextTraffic, "true")~\n~SetServiceAttribute(Tracker, android:foregroundServiceType, "location")~\n~'End of default text.~\n~~\n~AddApplicationText(~\n~~\n~ ~\n~)~\n~~\n~AddManifestText(~\n~~\n~)~\n~~\n~AddManifestText(~\n~~\n~ )~\n~~\n~AddPermission(android.permission.ACCESS_BACKGROUND_LOCATION)~\n~~\n~AddPermission("android.permission.MANAGE_EXTERNAL_STORAGE")~\n~~\n~~\n~AddManifestText(~\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~AddPermission("android.permission.MANAGE_EXTERNAL_STORAGE")~\n~SetApplicationAttribute(android:largeHeap, "true")~\n~AddPermission("android.permission.MANAGE_EXTERNAL_STORAGE")~\n~ +Module1=appUpdater +Module10=Subs +Module11=Tracker +Module2=|relative|..\B4XMainPage +Module3=c_datos +Module4=C_principal +Module5=C_UpdateAvailable +Module6=CameraExClass2 +Module7=DBRequestManager +Module8=ManageExternalStorage +Module9=Starter +NumberOfFiles=19 +NumberOfLibraries=26 +NumberOfModules=11 +Version=12.5 +@EndOfDesignText@ +#Region Project Attributes + #AdditionalJar: com.android.support:support-v4 + #AdditionalJar: com.google.android.gms:play-services-location + #ApplicationLabel: NUEVO TORRADO + #VersionCode: 1 + #VersionName: 3.06.15 + 'SupportedOrientations possible values: unspecified, landscape or portrait. + #SupportedOrientations: portrait + #CanInstallToExternalStorage: False +#End Region + +#Region Activity Attributes + #FullScreen: False + #IncludeTitle: False +#End Region + +'#BridgeLogger: True + + +Sub Process_Globals + Public ActionBarHomeClicked As Boolean +End Sub + +Sub Globals + Type CameraInfoAndId (CameraInfo As Object, Id As Int) + Type CameraSize (Width As Int, Height As Int) +End Sub + +Sub Activity_Create(FirstTime As Boolean) + Dim pm As B4XPagesManager + pm.Initialize(Activity) + + +End Sub + +'Template version: B4A-1.01 +#Region Delegates + +Sub Activity_ActionBarHomeClick + ActionBarHomeClicked = True + B4XPages.Delegate.Activity_ActionBarHomeClick + ActionBarHomeClicked = False +End Sub + +Sub Activity_KeyPress (KeyCode As Int) As Boolean + Return B4XPages.Delegate.Activity_KeyPress(KeyCode) +End Sub + +Sub Activity_Resume + B4XPages.Delegate.Activity_Resume + +End Sub + +Sub Activity_Pause (UserClosed As Boolean) + B4XPages.Delegate.Activity_Pause +End Sub + +Sub Activity_PermissionResult (Permission As String, Result As Boolean) + B4XPages.Delegate.Activity_PermissionResult(Permission, Result) +End Sub + +Sub Create_Menu (Menu As Object) + B4XPages.Delegate.Create_Menu(Menu) +End Sub + +#if Java +public boolean _onCreateOptionsMenu(android.view.Menu menu) { + processBA.raiseEvent(null, "create_menu", menu); + return true; + +} +#End If +#End Region + +'Program code should go into B4XMainPage and other pages. \ No newline at end of file diff --git a/B4A/NUEVO_TORRADO.b4a.meta b/B4A/NUEVO_TORRADO.b4a.meta new file mode 100644 index 0000000..fd0f2e0 --- /dev/null +++ b/B4A/NUEVO_TORRADO.b4a.meta @@ -0,0 +1,39 @@ +ModuleBookmarks0= +ModuleBookmarks1= +ModuleBookmarks10= +ModuleBookmarks11= +ModuleBookmarks2= +ModuleBookmarks3= +ModuleBookmarks4= +ModuleBookmarks5= +ModuleBookmarks6= +ModuleBookmarks7= +ModuleBookmarks8= +ModuleBookmarks9= +ModuleBreakpoints0= +ModuleBreakpoints1= +ModuleBreakpoints10= +ModuleBreakpoints11= +ModuleBreakpoints2= +ModuleBreakpoints3= +ModuleBreakpoints4= +ModuleBreakpoints5= +ModuleBreakpoints6= +ModuleBreakpoints7= +ModuleBreakpoints8= +ModuleBreakpoints9= +ModuleClosedNodes0= +ModuleClosedNodes1= +ModuleClosedNodes10= +ModuleClosedNodes11= +ModuleClosedNodes2= +ModuleClosedNodes3= +ModuleClosedNodes4= +ModuleClosedNodes5= +ModuleClosedNodes6= +ModuleClosedNodes7= +ModuleClosedNodes8= +ModuleClosedNodes9= +NavigationStack=Subs,revisaBD,15,6,B4XMainPage,b_iniciar_Click,100,0,C_principal,b_carga_Click,127,0,Diseñador Visual,gestion.bal,-100,6,Diseñador Visual,datos.bal,-100,1,C_principal,JobDone,428,6,Diseñador Visual,scroll.bal,-100,6,c_datos,B4XPage_Appear,259,0,Diseñador Visual,financiero.bal,-100,6,c_datos,Class_Globals,42,0 +SelectedBuild=0 +VisibleModules=9,1,2,4,3,5,6,7,8,10 diff --git a/B4A/Starter.bas b/B4A/Starter.bas new file mode 100644 index 0000000..22bbe65 --- /dev/null +++ b/B4A/Starter.bas @@ -0,0 +1,62 @@ +B4A=true +Group=Default Group +ModulesStructureVersion=1 +Type=Service +Version=9.85 +@EndOfDesignText@ +#Region Service Attributes + #StartAtBoot: False + #ExcludeFromLibrary: True +#End Region + +Sub Process_Globals + 'These global variables will be declared once when the application starts. + 'These variables can be accessed from all modules. + Public rp As RuntimePermissions + Dim reqManager As DBRequestManager + Dim DBReqServer As String = "http://11.0.0.60:1782" '"http://keymon.lat:1788" "http://11.0.0.196:1782" "http://keymon.lat:1783" "http://11.0.0.48:1783" ""' CAMBIAR HACIA AFUERA O DENTRO DE LA OFNA +' Dim server As String = "http://10.0.0.205:1782" + Dim rutaBD As String = File.DirInternal + Dim skmt As SQL + Dim almacen As String + Dim GPS As GPS + Public rp As RuntimePermissions + Public FLP As FusedLocationProvider + Private flpStarted As Boolean + Dim latitud As Double = 0 + Dim longitud As Double = 0 + Dim ubicacionActual As Location + Dim logger As Boolean + Dim muestraProgreso = 0 +End Sub + +Sub Service_Create + 'This is the program entry point. + 'This is a good place to load resources that are not specific to a single activity. + GPS.Initialize("GPS") + ubicacionActual.Initialize + + +End Sub + +Sub Service_Start (StartingIntent As Intent) + Service.StopAutomaticForeground 'Starter service can start in the foreground state in some edge cases. + Subs.revisaBD + reqManager.Initialize(Me, DBReqServer) + If Not(skmt.IsInitialized) Then skmt.Initialize(rutaBD, "kmt.db", True) +End Sub + +Sub Service_TaskRemoved + 'This event will be raised when the user removes the app from the recent apps list. +End Sub + +Sub Service_Destroy + +End Sub + +Sub reinicializaReqManager + reqManager.Initialize(Me, DBReqServer) +' B4XPages.MainPage.reqManager.Initialize(Me, server) + If logger Then Log(DBReqServer) +End Sub + diff --git a/B4A/Subs.bas b/B4A/Subs.bas new file mode 100644 index 0000000..4d5c21e --- /dev/null +++ b/B4A/Subs.bas @@ -0,0 +1,57 @@ +B4A=true +Group=Default Group +ModulesStructureVersion=1 +Type=StaticCode +Version=11.5 +@EndOfDesignText@ +'Code module +'Subs in this code module will be accessible from all modules. +Sub Process_Globals + 'These global variables will be declared once when the application starts. + 'These variables can be accessed from all modules. +End Sub + +'Revisa que exista la BD y si es necesario crea algunas tablas dentro de ella +Sub revisaBD 'ignore + If Not(File.Exists(Starter.rutaBD, "kmt.db")) Then File.Copy(File.DirAssets, "kmt.db", Starter.rutaBD, "kmt.db") + If Not(Starter.skmt.IsInitialized) Then Starter.skmt.Initialize(Starter.rutaBD, "kmt.db", True) + + Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_DATOS_GENERALES(CREDITO TEXT, NOMBRE TEXT, CALLE TEXT, COLONIA TEXT, CIUDAD TEXT, ESTADO TEXT, CP TEXT,ESTATUS TEXT, ESTATUS2 TEXT)") + Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_FINANCIEROS(CREDITO TEXT, DIASATRASO TEXT, MESVENCIDO TEXT, SALDO_VENCIDO TEXT, SALDO_TOTAL TEXT, TIPO_UNIDAD TEXT, MARCA TEXT, ANO TEXT, NO_SERIE TEXT, RESULTADO TEXT, ESTATUS TEXT, ESTATUS2 TEXT)") + Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_DATOS_GENERALES2(CREDITO TEXT, NOMBRE TEXT, CALLE TEXT, COLONIA TEXT, CIUDAD TEXT, ESTADO TEXT, CP TEXT, ESTATUS TEXT, ESTATUS2 TEXT)") + Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_FINANCIEROS2(CREDITO TEXT, DIASATRASO TEXT, MESVENCIDO TEXT, SALDO_VENCIDO TEXT, SALDO_TOTAL TEXT, TIPO_UNIDAD TEXT, MARCA TEXT, ANO TEXT, NO_SERIE TEXT, RESULTADO TEXT, ESTATUS TEXT, ESTATUS2 TEXT)") + Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_FUENTE(FUENTE TEXT, NUMERO INT, NUME INT)") + Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_PARENTESCO (PARENTESCO TEXT, NUMERO INT, NUME INT)") + Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_ACCION(CO_ACCION TEXT, CO_ACDESCRIPCION TEXT, NUMERO INT, NUME INT)") + Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_RESULTADO_MA(CAT_CO_ACCION TEXT,CO_RESULTADO TEXT, CO_RDESCRIPCION TEXT, NUMERO INT, NUME INT)") + Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_RESULTADO_VC(CAT_CO_ACCION TEXT,CO_RESULTADO TEXT, CO_RDESCRIPCION TEXT, NUMERO INT, NUME INT)") + Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_RESULTADO_CA(CAT_CO_ACCION TEXT,CO_RESULTADO TEXT, CO_RDESCRIPCION TEXT, NUMERO INT, NUME INT)") + Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_RESULTADO_BR(CAT_CO_ACCION TEXT,CO_RESULTADO TEXT, CO_RDESCRIPCION TEXT, NUMERO INT, NUME INT)") + Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_VISITA(CREDITO TEXT, PRODUCTO TEXT, VISITADOR TEXT, RESULTADO TEXT, CODIGO_RES TEXT, FUENTE TEXT, PARENTESCO TEXT, COMENTARIOS TEXT, FECHA TEXT, LONGITUD TEXT, LATUTUD TEXT, FECHACAPTURA TEXT, AGENCIA TEXT, FECHA_PROMESA TEXT, MONTO_PROMESA TEXT, TIPO_DOMICILIO TEXT, NIVEL_SOCIO TEXT, CARACTERISTICAS TEXT, FOTOUNO TEXT, FOTODOS TEXT, FOTOTRES TEXT, FOTOCUATRO TEXT, NOMBRE_ATIENDE TEXT, CODIGO_ACCION TEXT, ACCION TEXT, PUNTOS_REF TEXT, ESTATUS INT, ENVIADO TEXT)") + Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS TIPO_VIVIENDA(TIPO TEXT, NUMERO INT)") + Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS NIVEL_SOCIO(NIVEL TEXT, NUMERO INT)") + Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CARACTERISTICAS(TIPO TEXT, NUMERO INT)") + Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CHECADO(CREDITO TEXT, LUNES TEXT, MARTES TEXT, MIERCOLES TEXT, JUEVES TEXT, VIERNES TEXT, SABADO TEXT, DOMINGO TEXT)") + Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CARGADO(CARGADO TEXT)") + Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_VARIABLES(CAT_VA_DESCRIPCION TEXT, CAT_VA_VALOR TEXT)") + +' Starter.skmt.ExecNonQuery("DROP TABLE IF EXISTS HIST_DATOS_GENERALES") +' Starter.skmt.ExecNonQuery("DROP TABLE IF EXISTS HIST_FINANCIEROS") +' Starter.skmt.ExecNonQuery("DROP TABLE IF EXISTS HIST_DATOS_GENERALES2") +' Starter.skmt.ExecNonQuery("DROP TABLE IF EXISTS HIST_FINANCIEROS2") +' Starter.skmt.ExecNonQuery("DROP TABLE IF EXISTS CAT_FUENTE") +' Starter.skmt.ExecNonQuery("DROP TABLE IF EXISTS CAT_PARENTESCO") +' Starter.skmt.ExecNonQuery("DROP TABLE IF EXISTS CAT_ACCION") +' Starter.skmt.ExecNonQuery("DROP TABLE IF EXISTS CAT_RESULTADO_MA") +' Starter.skmt.ExecNonQuery("DROP TABLE IF EXISTS CAT_RESULTADO_BR") +' Starter.skmt.ExecNonQuery("DROP TABLE IF EXISTS CAT_RESULTADO_CA") +' Starter.skmt.ExecNonQuery("DROP TABLE IF EXISTS CAT_RESULTADO_VC") +' Starter.skmt.ExecNonQuery("DROP TABLE IF EXISTS HIST_VISITA") +' Starter.skmt.ExecNonQuery("DROP TABLE IF EXISTS TIPO_VIVIENDA") +' Starter.skmt.ExecNonQuery("DROP TABLE IF EXISTS NIVEL_SOCIO") +' Starter.skmt.ExecNonQuery("DROP TABLE IF EXISTS CARACTERISTICAS") + Starter.skmt.ExecNonQuery("DROP TABLE IF EXISTS NUMERO_NIV") +' Starter.skmt.ExecNonQuery("DROP TABLE IF EXISTS CHECADO") +' Starter.skmt.ExecNonQuery("DROP TABLE IF EXISTS CAT_VARIABLES") + +End Sub diff --git a/B4A/Tracker.bas b/B4A/Tracker.bas new file mode 100644 index 0000000..224dd67 --- /dev/null +++ b/B4A/Tracker.bas @@ -0,0 +1,218 @@ +B4A=true +Group=Default Group +ModulesStructureVersion=1 +Type=Service +Version=11 +@EndOfDesignText@ +#Region Service Attributes + #StartAtBoot: True +#End Region +'****************************************************************************** +'No olvidar agregar esta linea al editor de manifiesto: +' SetServiceAttribute(Tracker, android:foregroundServiceType, "location") +' +'En Starter agregar estas lineas en Process_Globals +' Public rp As RuntimePermissions +' Public FLP As FusedLocationProvider +' Private flpStarted As Boolean +' +'En Main agregar estas lineas a Activity_Resume +' Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_ACCESS_FINE_LOCATION) +' Wait For Activity_PermissionResult (Permission As String, Result As Boolean) +' If Result Then +' StartService(Tracker) +' Log("Start Tracker") +' Else +' ToastMessageShow("No permission", True) +' End If +' +'Se necesitan las librerias FusedLocationProvider, GPS, Phone y RunTimePermissions +' +'Y en Main agregar estas dos lineas: +'#AdditionalJar: com.android.support:support-v4 +'#AdditionalJar: com.google.android.gms:play-services-location + +Sub Process_Globals +' Private nid As Int = 1 + Private Tracking As Boolean + Private lock As PhoneWakeState + 'Para FusedLocationProvider (2 lineas) + Public FLP As FusedLocationProvider + Dim actualLR As LocationRequest + Private flpStarted As Boolean +' Dim locRequest As String + Dim UUGCoords As Location 'Ultima Ubicacion Guardada +' Dim trackerActividad, pushServiceActividad As String + Dim logger As Boolean = True +End Sub + +Sub Service_Create + Service.AutomaticForegroundMode = Service.AUTOMATIC_FOREGROUND_NEVER 'we are handling it ourselves + UUGCoords.Initialize + logger = False + 'Para FusedLocationProvider (2 lineas) + FLP.Initialize("flp") + FLP.Connect + lock.PartialLock + StartFLP +End Sub + +Sub flp_ConnectionSuccess +' If logger Then Log("Connected to location provider") + 'FLP.GetLastKnownLocation +End Sub + +Sub flp_ConnectionFailed(ConnectionResult1 As Int) + If logger Then Log("Failed to connect to location provider") +End Sub + +Sub flp_ConnectionSuspended(ConnectionResult1 As Int) + If logger Then Log("FLP conection suspended") + StartFLP +End Sub + +Sub Service_Start (StartingIntent As Intent) + LogColor("Iniciando Tracker ...", Colors.Green) + Service.StopAutomaticForeground +' Service.StartForeground(51042, Subs.notiLowReturn("Kelloggs", "Activo", 51042)) + StartServiceAt(Me, DateTime.Now + 10 * DateTime.TicksPerMinute, True) + Track +End Sub + +Public Sub Track + Log("Inicia Track - Tracking : "&Tracking) + If Tracking Then +' Log(actualLR.GetSmallestDisplacement) + Return 'Si ya estamos "rastreando" no hacemos nada (return) + End If + If Starter.rp.Check(Starter.rp.PERMISSION_ACCESS_FINE_LOCATION) = False Then + If logger Then Log("Sin permisos de ublicación.") + Return + End If + StartFLP 'Iniciamos FusedLocationProvider + Tracking = True +End Sub + +Public Sub StartFLP + Log("StartFLP - flpStarted="&flpStarted) + Do While FLP.IsConnected = False + Sleep(500) + If logger Then Log("sleeping") + Loop +' If flpStarted = False Then +' If logger Then Log("RequestLocationUpdates") +' FLP.RequestLocationUpdates(CreateLocationRequest) 'Buscamos ubicacion + If logger Then LogColor("Buscamos ubicacion (movimientoMinimo = "&actualLR.GetSmallestDisplacement&")", Colors.Magenta) +' If logger Then Log(actualLR.GetSmallestDisplacement) + flpStarted = True +' End If +End Sub + +Public Sub StartFLP2 + If logger Then Log("StartFLP2 - flpStarted="&flpStarted) + Do While FLP.IsConnected = False + Sleep(500) + If logger Then Log("sleeping") + Loop + dameUltimaUbicacionConocida 'Regresamos ultima ubicacion conocida + FLP.RequestLocationUpdates(CreateLocationRequest2) 'Buscamos ubicacion 2 peticiones + If logger Then LogColor("Buscamos ubicacion (movimientoMinimo = "&actualLR.GetSmallestDisplacement&")", Colors.Magenta) +' If logger Then Log(actualLR.GetSmallestDisplacement) +End Sub + +Private Sub CreateLocationRequest As LocationRequest + If logger Then Log("CreateLocationRequest") + Dim lr As LocationRequest + lr.Initialize + lr.SetInterval(10000) 'Intervalo deseado para actualizaciones de ubicacion + lr.SetFastestInterval(lr.GetInterval / 2) 'Intervalo minimo para actualizaciones de ubicacion + lr.SetSmallestDisplacement(75) 'Solo registra cambio de ubicacion si es mayor a XX mts + lr.SetPriority(lr.Priority.PRIORITY_HIGH_ACCURACY) + actualLR=lr + Return lr +End Sub + +Private Sub CreateLocationRequest2 As LocationRequest + If logger Then Log("Iniciamos CreateLocationRequest2") + Dim lr As LocationRequest + lr.Initialize + lr.SetInterval(2000) 'Intervalo deseado para actualizaciones de ubicacion + lr.SetFastestInterval(lr.GetInterval / 2) 'Intervalo minimo para actualizaciones de ubicacion + lr.setNumUpdates(2) 'Solicitamos solo 2 actualizaciones con estos parametros + lr.SetSmallestDisplacement(1) 'Solo registra cambio de ubicacion si es mayor a XX mts + lr.SetPriority(lr.Priority.PRIORITY_HIGH_ACCURACY) + actualLR=lr + Return lr +End Sub + +Sub dameUltimaUbicacionConocida + If FLP.GetLastKnownLocation.IsInitialized Then 'Mandamos ultima ubicacion guardada +' If logger Then LogColor($"Mandamos UUC "${Subs.fechaKMT(FLP.GetLastKnownLocation.Time)}|Acc:$0.2{FLP.GetLastKnownLocation.Accuracy}|$0.8{FLP.GetLastKnownLocation.Latitude}|$0.8{FLP.GetLastKnownLocation.Longitude}|Spd:$0.2{FLP.GetLastKnownLocation.Speed}|"$, Colors.RGB(255,112,35)) +' Dim coords As String = FLP.GetLastKnownLocation.Latitude&","&FLP.GetLastKnownLocation.Longitude&","&formatoFecha(FLP.GetLastKnownLocation.Time) +' CallSubDelayed2(FirebaseMessaging,"mandamosLoc",coords) +' Subs.mandamosLoc(coords) + End If +End Sub + +Public Sub StopFLP + 'Log("StopFLP") + If flpStarted Then + FLP.RemoveLocationUpdates 'Eliminamos todas las solicitudes de ubicacion + flpStarted = False + End If +End Sub + +Sub flp_LocationChanged (Location1 As Location) + Starter.latitud = Location1.Latitude + Starter.longitud = Location1.Longitude + LogColor($"Location changed lat=${Location1.Latitude}, lon=${Location1.Longitude}, Acc=${Location1.Accuracy}, SD=$1.0{actualLR.GetSmallestDisplacement}"$, Colors.green) + UUGCoords = Location1 +' If logger Then Log("SmallestDisplacement="&actualLR.GetSmallestDisplacement) +' CallSub2(Starter, "GPS_LocationChanged", Location1) +' CallSub2(gestion, "GPS_LocationChanged", Location1) +' Starter.ubicacionActual.Latitude = Starter.lat_gps +' Starter.ubicacionActual.Longitude = Starter.lon_gps +' Starter.ubicacionActual.Accuracy = Location1.Accuracy + + '/////// para la ultima ubicacion FL + Dim sDate,sTime As String + DateTime.DateFormat = "MM/dd/yyyy" + sDate=DateTime.Date(DateTime.Now) + sTime=DateTime.Time(DateTime.Now) +' If Starter.lat_gps <> 0 And Starter.lat_gps <> Null Then +' Try +' Starter.skmt.ExecNonQuery("DELETE FROM HIST_GPS") +' Starter.skmt.ExecNonQuery2("INSERT INTO HIST_GPS (HGDATE, HGLAT, HGLON) VALUES(?,?,?) ", Array As Object (sDate & sTime, Starter.lat_gps, Starter.lon_gps)) +' Catch +' If logger Then Log("Error al borrar o insertar nuevas coordendas en HIST_GPS") +' End Try +' End If + + +End Sub + +Sub CreateNotification (Body As String) As Notification 'ignore + Dim notification As Notification + notification.Initialize2(notification.IMPORTANCE_LOW) + notification.Icon = "icon" + notification.SetInfo("This", Body, Main) + Return notification +End Sub + +Sub Service_Destroy + If Tracking Then + StopFLP + End If + Tracking = False + lock.ReleasePartialLock +End Sub + +Sub formatoFecha(fecha As String) As String 'ignore 'Convierte una fecha al formato yyMMddHHmmss +' Log(fecha) + Dim OrigFormat As String = DateTime.DateFormat 'save orig date format + DateTime.DateFormat="yyMMddHHmmss" + Dim lastUpdate As String=DateTime.Date(fecha) + DateTime.DateFormat=OrigFormat 'return to orig date format +' Log(lastUpdate) + Return lastUpdate +End Sub \ No newline at end of file diff --git a/B4A/appUpdater.bas b/B4A/appUpdater.bas new file mode 100644 index 0000000..1a63778 --- /dev/null +++ b/B4A/appUpdater.bas @@ -0,0 +1,282 @@ +B4A=true +Group=Default Group +ModulesStructureVersion=1 +Type=Service +Version=10.2 +@EndOfDesignText@ +#Region Service Attributes + #StartAtBoot: False +#End Region + +'//////////////////////////////////////////////////////////////////////////////////////////// +'//// Servicio para revisar si hay actualizacion de aplicación, usa la +'//// actividad "updateAvailable" para mostrar mensajes. +'//// +'//// https://www.b4x.com/android/forum/threads/update-your-app-without-using-the-gplaystore.109720/#content +'//// +'//// En la actividad del la cual se va a llamar la revision de actualizacion +'//// hay que agregar los siguientes Subs: +'//// +' Sub boton_que_llama_revision_Click +' StartService(appUpdater) +' End Sub +' +' appUpdater - Mostramos el anuncio de que se esta descargando el nuevo apk +' Sub muestraProgreso +' ProgressDialogShow("Descargando actualización") +' End Sub +' +' appUpdater - Ocultamos el anuncio de que se esta descargando el nuevo apk +' Sub ocultaProgreso +' ProgressDialogHide +' End Sub +'//// +'//// Requiere las siguientes librerias: +'//// +'//// * appUpdating +'//// * JavaObject +'//// * OkHttpUtils2 +'//// * Phone +'//// * RuntimePermissions +'//// +'//// Requiere las siguientes lineas en el manifiesto: +'//// +' AddManifestText( +' ) +' AddApplicationText( +' +' +' +' ) +' CreateResource(xml, provider_paths, +' +' +' +' +' +' ) +' AddPermission(android.permission.REQUEST_INSTALL_PACKAGES) +' AddPermission(android.permission.INTERNET) +' AddPermission(android.permission.INSTALL_PACKAGES) +' AddPermission(android.permission.READ_EXTERNAL_STORAGE) +' AddPermission(android.permission.WRITE_EXTERNAL_STORAGE) +' AddPermission(android.permission.READ_PHONE_STATE) +' AddPermission(android.permission.WAKE_LOCK) +'//// +'//////////////////////////////////////////////////////////////////////////////////////////// + +Sub Process_Globals + 'These global variables will be declared once when the application starts. + 'These variables can be accessed from all modules. + + 'Aqui va la liga al archivo .ver en el servidor que contiene la información de la aplicacion + Public lnk As String = "https://keymon.lat/movil/Arlete/ARE.ver" + + '/// En el servidor se necesita un archivo de texto (.ver) que tenga los siguientes + '/// datos separados por un tabulador + '/// contents of ver file, each field is seperated by a tab + ' Field 0 = 2.226.19.09.19.01a <-- Esta es la version de la aplicación disponible + ' Field 1 = A new version of the MyAPP is available, Download and update now ? <-- Mensaje para cuando hay actualización + ' Field 2 = MyApp is up to date <--- Mensaje para cuando no hay actualización + ' Field 3 = http://www.mydomain.com/Public/myapp.apk <--- Liga al apk de la actualización + + Public nNewApp As Notification + Public nNewAppnID As Int = 16 + 'Para Download + Dim nativeMe As JavaObject + Dim n2 As Notification + Dim n2ID As Int = 16 + 'Para fileProvider + Public SharedFolder As String + Public UseFileProvider As Boolean + Private rp As RuntimePermissions + + Type mNewVersion(update As Boolean, nonewAPP As Boolean, notifyUser As Boolean, _ + version As String, newMsg As String, okMsg As String, appLink As String) + Public newApp As mNewVersion +End Sub + +Sub Service_Create + Log("appUpdater(), Service_Create") + newApp.Initialize + Service.AutomaticForegroundMode = Service.AUTOMATIC_FOREGROUND_NEVER + n2.Initialize + nativeMe.InitializeContext +End Sub + +Sub Service_Start (StartingIntent As Intent) + Log("appUpdater(), Service_Start") +' CallSubDelayed2(Main, "muestraProgreso", "Buscando actualización") + B4XPages.MainPage.muestraProgreso("Buscando actualización") + Log("Buscando actualización") + fileProvider_init + Wait For (Download(Me, lnk)) JobDone (j As HttpJob) + If j.Success Then + Try + Dim app() As String = Regex.Split(Chr(9),j.GetString) + ' // Set the data + newApp.appLink = app(3) 'Liga a nueva app + newApp.newMsg = app(1) 'Texto de que hay actualizacion + newApp.okMsg = app(2) 'Texto de app al corriente + newApp.version = app(0) 'Version actual + + Log($"Application.VersionName=${Application.VersionName}, newApp=${newApp}"$) + + ' // App version check + If newApp.version = Application.VersionName Then + newApp.update = False + Log("No new app") + B4XPages.ShowPage("updateAvailable") + 'Se puede mandar tambien una notificacion avisando que NO hay actualizaciones + CreateNotification2("Aplicacion al corriente","No hay actualizaciones disponibles","ic_file_download_white_24dp",Main,True,True,nNewApp,nNewAppnID) + End If + If newApp.version <> Application.VersionName Then + newApp.update = True + Log("New app true") + B4XPages.ShowPage("updateAvailable") + 'Se puede mandar tambien una notificacion avisando que hay actualizacion disponible +' CreateNotification2("Nueva aplicación disponible","Haga clic para descargar.","ic_file_download_white_24dp",C_UpdateAvailable,True,True,nNewApp,nNewAppnID) + End If + Catch + Log("appUpdater(), Job Failed, error " & LastException.Message) + End Try + Else + Log("appUpdater(), Job Failed " & lnk) + End If + j.Release +' StopService(Me) +End Sub + +Sub download_Start (StartingIntent As Intent) + download_newApk +End Sub + +Sub download_newApk +' CreateNotification("Descargando actualización", "Descargando apk", "ic_file_download_white_24dp", Main, False, True) +' CallSubDelayed2(Main, "muestraProgreso", "Descargando actualización") + Log("Descargando actualización") + B4XPages.ShowPage("Mainpage") + Starter.muestraProgreso = 1 + Dim job_newAPP As HttpJob + job_newAPP.Initialize("job_newAPP",Me) + job_newAPP.Download(newApp.appLink) + Wait for (job_newAPP) JobDone (job_newAPP As HttpJob) + If job_newAPP.Success = True Then + ' // Delete existing file + If File.Exists(SharedFolder,"newapp.apk") Then + File.Delete(SharedFolder,"newapp.apk") + End If + ' // Save new file + Dim outNewAPK As OutputStream = File.OpenOutput(SharedFolder,"newapp.apk", False) + File.Copy2(job_newAPP.GetInputStream, outNewAPK) + outNewAPK.Close + If Starter.Logger Then Log("APK dir: "&SharedFolder) + End If + job_newAPP.Release + ' // Install the app + Dim in As Intent + in.Initialize(in.ACTION_VIEW,"" ) + SetFileUriAsIntentData(in, "newapp.apk") + ' // Type must be set after calling SetFileUriAsIntentData + in.SetType("application/vnd.android.package-archive") + StartActivity(in) + n2.Cancel(nNewAppnID) + B4XPages.MainPage.ocultaProgreso +' Service.StopForeground(nNewAppnID) + StopService(Me) +' CallSubDelayed(Main,"ocultaProgreso") +End Sub + +Sub download_Destroy + n2.Cancel(n2ID) + Service.StopForeground(n2ID) +End Sub + +Sub Download (Callback As Object, link As String) As HttpJob + Dim j As HttpJob + j.Initialize("", Callback) + j.Download(link) + Return j +End Sub + +Private Sub CreateNotification2(Title As String, Content As String, _ 'ignore + Icon As String, TargetActivity As Object, Sound As Boolean, _ + Vibrate As Boolean, pN As Notification,pNID As Int) As Notification + pN.Initialize2(pN.IMPORTANCE_HIGH) +' pN.Number = pNID +' pN.Light = False + pN.Vibrate = Vibrate + pN.Sound = Sound +' pN.OnGoingEvent = False + pN.Icon = Icon + pN.AutoCancel = True + pN.SetInfo(Title, Content, TargetActivity) + pN.Notify(pNID) + Return pN +End Sub + +Private Sub CreateNotification(Title As String, Content As String, Icon As String, TargetActivity As Object, Sound As Boolean, Vibrate As Boolean) As Notification 'ignore + n2.Initialize + n2.Light = False + n2.Vibrate = Vibrate + n2.Sound = Sound + n2.OnGoingEvent = True + n2.Icon = Icon + n2.SetInfo(Title, Content, TargetActivity) + n2.Notify(nNewAppnID) +End Sub + +Sub Service_Destroy + Log("appUpdater(), Service_Destroy") +End Sub + +Sub fileProvider_init + Dim p As Phone + If p.SdkVersion >= 24 Or File.ExternalWritable = False Then + UseFileProvider = True + SharedFolder = File.Combine(File.DirInternal, "shared") + If Not(File.IsDirectory(File.DirInternal,"shared")) Then + File.MakeDir("", SharedFolder) + End If + Else + UseFileProvider = False + SharedFolder = rp.GetSafeDirDefaultExternal("shared") + End If + Log($"Using FileProvider? ${UseFileProvider}"$) +End Sub + +'Returns the file uri. +Sub GetFileUri (FileName As String) As Object + Try + If Not(UseFileProvider) Then + Dim uri As JavaObject + Return uri.InitializeStatic("android.net.Uri").RunMethod("parse", Array("file://" & File.Combine(SharedFolder, FileName))) + End If + Dim f As JavaObject + f.InitializeNewInstance("java.io.File", Array(SharedFolder, FileName)) + Dim fp As JavaObject + Dim context As JavaObject + context.InitializeContext + fp.InitializeStatic("android.support.v4.content.FileProvider") + Return fp.RunMethod("getUriForFile", Array(context, Application.PackageName & ".provider", f)) + Catch + Log("FileProvider::GetFileUri - error - " & LastException.Message) + Return "" + End Try +End Sub + +'Replaces the intent Data field with the file uri. +'Resets the type field. Make sure to call Intent.SetType after calling this method +Sub SetFileUriAsIntentData (Intent As Intent, FileName As String) + Dim jo As JavaObject = Intent + jo.RunMethod("setData", Array(GetFileUri(FileName))) + Intent.Flags = Bit.Or(Intent.Flags, 1) 'FLAG_GRANT_READ_URI_PERMISSION +End Sub diff --git a/B4A/c_datos.bas b/B4A/c_datos.bas new file mode 100644 index 0000000..5143c3e --- /dev/null +++ b/B4A/c_datos.bas @@ -0,0 +1,1759 @@ +B4A=true +Group=Default Group +ModulesStructureVersion=1 +Type=Class +Version=12.2 +@EndOfDesignText@ +Sub Class_Globals + Private Root As B4XView + Private xui As XUI + Private WobbleMenu1 As WobbleMenu + Private ScrollView1 As ScrollView + Private ScrollView2 As ScrollView + Private ScrollView3 As ScrollView + Private p_financiero As Panel + Private p_gestion As Panel + Private p_scroll As Panel + Private Panel1 As Panel + Private Panel2 As Panel + Private p_w1 As Panel + Private p_w2 As Panel + Private p_w3 As Panel + Private l_titulo As Label + Private b_guardar As Button + Dim c As Cursor + Dim b As Cursor + Dim d As Cursor + Dim e As Cursor + Dim f As Cursor + Dim g As Cursor + Dim s As Cursor + Dim p As Cursor + Dim q As Cursor + Dim r As Cursor + Dim cuenta As String + Dim device As Phone + Dim MES1 As ManageExternalStorage + + 'Datos generales + Private l_nombreg As Label + Private l_calle As Label + Private l_noext As Label + Private l_noint As Label + Private l_alcaldia As Label + Private l_municipio As Label + Private l_entidad As Label + Private l_cp As Label + + 'Datos financieros + + + 'Gestion + + Private cb_parentesco As B4XComboBox + Private cb_accion As B4XComboBox + Private cb_resultado As B4XComboBox + Private cb_socioeconomico As B4XComboBox + Private cb_vivienda As B4XComboBox + Private cb_caracteristicas As B4XComboBox + Private i_datosparentesco As ImageView + Private i_resultado As ImageView + Private p_parentesco As Panel + Private b_guardar_parentesco As Button + Private et_parentesco As EditText + Dim parentesco As String = "" + Private p_nom_parentesco As Panel + Private p_resultado As Panel + Private p_datosresultado As Panel + Private et_monto As EditText + Private ASWheelPicker1 As ASWheelPicker + Private ASWheelPicker2 As ASWheelPicker + Private ASWheelPicker3 As ASWheelPicker + Private l_fechapago As Label + Dim day As Int = DateTime.GetDayOfMonth(DateTime.Now) + Dim month As String = DateTime.GetMonth(DateTime.Now) + Dim year2 As String = DateTime.GetYear(DateTime.Now) + Dim month2 As String + Private p_calendario As Panel + Private b_fecharesultado As Button + Dim fechapago As String + Dim montopago As String + Dim dia As String + Private b_cancelarresultado As Button + Private b_cancelar As Button + + Private camEx2 As CameraExClass2 + Dim frontCamera As Boolean = False + Private p_cam As Panel + Dim nombrefoto As String = "0" + Dim nombrefoto1 As String = "0" + Dim nombrefoto2 As String = "0" + Dim nombrefoto3 As String = "0" + Private p_camara As Panel + Private teclado As IME + Dim fototomada As String + Private ImageView1 As ImageView + Private ImageView3 As ImageView + Private ImageView2 As ImageView + Private ImageView4 As ImageView + Private b_foto As Button + Private et_comentarios As EditText + Private et_puntosref As EditText + Dim montoapagar As Float + 'CURSORES GUARDADO + Dim h As Cursor + Dim j As Cursor + Dim k As Cursor + Dim l As Cursor + Dim m As Cursor + Dim n As Cursor + + +End Sub + +Public Sub Initialize + +End Sub + +'This event will be called once, before the page becomes visible. +Private Sub B4XPage_Created (Root1 As B4XView) + Root = Root1 + Root.LoadLayout("datos") + Panel1.Width = Root.Width + p_w2.Visible = False + p_w3.Visible = False + p_camara.Width = Root.Width + p_camara.Height = Root.Height + + ScrollView1.height = Root.Height - Panel1.Height -WobbleMenu1.Height + p_w1.height = Root.Height - Panel1.Height -WobbleMenu1.Height + + ScrollView2.height = Root.Height - Panel1.Height -WobbleMenu1.Height + p_w2.height = Root.Height - Panel1.Height -WobbleMenu1.Height + + ScrollView3.height = Root.Height - Panel1.Height -WobbleMenu1.Height + p_w3.height = Root.Height - Panel1.Height -WobbleMenu1.Height + + ScrollView1.Panel.LoadLayout("scroll") + ScrollView1.Panel.Height = p_scroll.Height + + ScrollView2.Panel.LoadLayout("financiero") + ScrollView2.Panel.Height = p_financiero.Height + + ScrollView3.Panel.LoadLayout("gestion") + ScrollView3.Panel.Height = p_gestion.Height + + WobbleMenu1.SetTabTextIcon(1,"Datos generales", Chr(0xE3D0), Typeface.MATERIALICONS) + WobbleMenu1.SetTabTextIcon(2,"Datos financieros", Chr(0xE3D1), Typeface.MATERIALICONS) + WobbleMenu1.SetTabTextIcon(3,"Gestión", Chr(0xE3D2), Typeface.MATERIALICONS) + WobbleMenu1.SetCurrentTab(1) + + + 'Creacion de spinners para fecha de pago + p_calendario.Width = Root.Width + p_calendario.Height = Root.Height + Dim dias As List : dias.Initialize + For i = 1 To 31 + Dim Item As ASWheelPicker_Item + Item.Initialize + Item.Text = i + Item.Value = i + Item.ItemTextProperties = ASWheelPicker1.ItemTextProperties + Item.ItemTextProperties.TextColor = (0x8FF000000) + dias.Add(Item) + Next + + ASWheelPicker1.AddItems(dias) + + Dim mes0 As List : mes0.Initialize + mes0 = Array As String("Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre") + Dim MES As List + MES.Initialize + For Each o As Object In mes0 + Dim Item As ASWheelPicker_Item + Item.Initialize + Item.Text = o + Item.Value = o + Item.ItemTextProperties = ASWheelPicker2.ItemTextProperties + Item.ItemTextProperties.TextColor = (0x8FF000000) + MES.Add(Item) + Next + ASWheelPicker2.AddItems(MES) + + Dim year As List : year.Initialize + For i = DateTime.GetYear(DateTime.Now) To DateTime.GetYear(DateTime.Now) + 4 + Dim Item As ASWheelPicker_Item + Item.Initialize + Item.Text = i + Item.Value = i + Item.ItemTextProperties = ASWheelPicker3.ItemTextProperties + Item.ItemTextProperties.TextColor = (0x8FF000000) + + year.Add(Item) + Next + ASWheelPicker3.AddItems(year) + + ASWheelPicker1.Refresh + ASWheelPicker2.Refresh + ASWheelPicker3.Refresh + + + + If DateTime.GetDayOfMonth(DateTime.Now) < 10 And DateTime.GetMonth(DateTime.Now) < 10 Then + l_fechapago.Text = "0"&DateTime.GetDayOfMonth(DateTime.Now)&"/"&"0"&DateTime.GetMonth(DateTime.Now)&"/"&DateTime.GetYear(DateTime.Now) + Else If DateTime.GetDayOfMonth(DateTime.Now) >= 10 And DateTime.GetMonth(DateTime.Now) < 10 Then + l_fechapago.Text = DateTime.GetDayOfMonth(DateTime.Now)&"/"&"0"&DateTime.GetMonth(DateTime.Now)&"/"&DateTime.GetYear(DateTime.Now) + Else + l_fechapago.Text = DateTime.GetDayOfMonth(DateTime.Now)&"/"&DateTime.GetMonth(DateTime.Now)&"/"&DateTime.GetYear(DateTime.Now) + End If + + + MES1.Initialize(Me, "MES1") + + ' get the device SDK version + Dim SdkVersion As Int = device.SdkVersion + + ' Choose which permission to request in order to access external storgage + If SdkVersion < 30 Then + Log("SDK = " & SdkVersion & " : Requesting WRITE_EXTERNAL_STORAGE permission") + Dim rp As RuntimePermissions + rp.CheckAndRequest(rp.PERMISSION_WRITE_EXTERNAL_STORAGE) ' Implicit read capability if granted + Wait For Activity_PermissionResult (Permission As String, Result As Boolean) + Log($"PERMISSION_WRITE_EXTERNAL_STORAGE = ${Result}"$) + Else + Log("SDK = " & SdkVersion & " : Requesting MANAGE_EXTERNAL_STORAGE permission") + Log("On Entry MANAGE_EXTERNAL_STORAGE = " & MES1.HasPermission) + If Not(MES1.HasPermission) Then + MsgboxAsync("This app requires access to all files, please enable the option", "Manage All Files") + Wait For Msgbox_Result(Res As Int) + Log("Getting permission") + MES1.GetPermission + Wait For MES_StorageAvailable + End If + End If + +End Sub + +Private Sub B4XPage_Appear + WobbleMenu1.SetCurrentTab(1) + p_w1.Visible = True + parentesco = "" + p_camara.Visible = False + p_parentesco.Width = Root.Width + p_parentesco.Height = Root.Height + p_resultado.Width = Root.Width + p_resultado.Height = Root.Height + cuenta = B4XPages.MainPage.principal.lb.Text + Log (cuenta) + + c = Starter.skmt.ExecQuery2("SELECT NOMBRE, RFC, CURP, CALLE, N_EXT, N_INT, ALCALDIA, MUNICIPIO, ENTIDAD, CP, SEXO, FECHA_NACIMIENTO, EDAD, EMAIL from HIST_DATOS_GENERALES WHERE CREDITO = ?" , Array As String (cuenta)) + c.Position = 0 + l_nombreg.Text = c.GetString("NOMBRE") + l_calle.Text = c.GetString("CALLE") + l_noext.Text = c.GetString("N_EXT") + l_noint.Text = c.GetString("N_INT") + l_alcaldia.Text = c.GetString("ALCALDIA") + l_municipio.Text = c.GetString("MUNICIPIO") + l_entidad.Text = c.GetString("ENTIDAD") + l_cp.Text = c.GetString("CP") + c.Close + + b = Starter.skmt.ExecQuery2("SELECT CARTERA, SALDO_TOTAL, MONTO_PAGAR, TOTAL_PAGO_DESC, LIQUIDACION, DIAS_VENCIDOS, DIAS_ATRASO_ACT, FECHA_ATRASO, BBVA, OXXO FROM HIST_FINANCIEROS WHERE CREDITO = ?", Array As String(cuenta)) + b.Position = 0 + l_cartera.Text = b.GetString("CARTERA") + l_saldotot.Text = b.GetString("SALDO_TOTAL") + l_saldotot.Text= NumberFormat(l_saldotot.Text.Replace(",",""),0,2) + l_montoapagar.Text = b.GetString("MONTO_PAGAR") + l_montoapagar.Text= NumberFormat(l_montoapagar.Text.Replace(",",""),0,2) + montoapagar = b.GetString("MONTO_PAGAR") + l_totalapagar.Text = b.GetString("TOTAL_PAGO_DESC") + l_totalapagar.Text= NumberFormat(l_totalapagar.Text.Replace(",",""),0,2) + l_liquidacion.Text = b.GetString("LIQUIDACION") + l_liquidacion.Text= NumberFormat(l_liquidacion.Text.Replace(",",""),0,2) + l_diasvencidos.Text = b.GetString("DIAS_VENCIDOS") + l_diasatraso.Text = b.GetString("DIAS_ATRASO_ACT") + l_fechaatraso.Text = b.GetString("FECHA_ATRASO") + l_bbva.Text = b.GetString("BBVA") + l_oxxo.Text = b.GetString("OXXO") + b.Close + + l = Starter.skmt.ExecQuery2("SELECT COUNT(*) As CUENTA FROM HIST_VISITA WHERE (ESTATUS = 0 OR ESTATUS = 1) and CREDITO = ?",Array As String(cuenta)) + l.Position = 0 + Log(l.GetString("CUENTA")) + If l.GetString("CUENTA") = 0 Then + + et_comentarios.Text = "" + et_puntosref.Text = "" + et_parentesco.Text = "" + et_monto.Text = "" + b_fecharesultado.Text = "Fecha de pago" + ASWheelPicker1.SelectRow(0,0,True) + ASWheelPicker2.SelectRow(0,0,True) + ASWheelPicker3.SelectRow(0,0,True) + i_datosparentesco.Visible = False + i_resultado.Visible = False + nombrefoto = "0" + nombrefoto1 = "0" + nombrefoto2 = "0" + nombrefoto3 = "0" + + e = Starter.skmt.ExecQuery("SELECT PARENTESCO, NUME FROM CAT_PARENTESCO order by 2") + Dim Items2 As List + Items2.Initialize + If e.RowCount > 0 Then + For i = 0 To e.RowCount-1 + e.Position = i + Items2.Add(e.GetString("PARENTESCO")) + Next + cb_parentesco.SetItems(Items2) + End If + e.Close + + f = Starter.skmt.ExecQuery("SELECT CO_ACDESCRIPCION, NUME FROM CAT_ACCION order by 2") + Dim Items3 As List + Items3.Initialize + If f.RowCount > 0 Then + For i = 0 To f.RowCount-1 + f.Position = i + Items3.Add(f.GetString("CO_ACDESCRIPCION")) + Next + cb_accion.SetItems(Items3) + End If + f.Close + + Dim Items4 As List + Items4.Initialize + cb_resultado.SetItems(Items4) + + s = Starter.skmt.ExecQuery("SELECT NIVEL, NUMERO FROM NIVEL_SOCIO order by 2") + Dim Items5 As List + Items5.Initialize + If s.RowCount > 0 Then + For i = 0 To s.RowCount-1 + s.Position = i + Items5.Add(s.GetString("NIVEL")) + Next + cb_socioeconomico.SetItems(Items5) + End If + s.Close + + p = Starter.skmt.ExecQuery("SELECT TIPO, NUMERO FROM TIPO_VIVIENDA order by 2") + Dim Items6 As List + Items6.Initialize + If p.RowCount > 0 Then + For i = 0 To p.RowCount-1 + p.Position = i + Items6.Add(p.GetString("TIPO")) + Next + cb_vivienda.SetItems(Items6) + End If + p.Close + + q = Starter.skmt.ExecQuery("SELECT TIPO, NUMERO FROM CARACTERISTICAS order by 2") + Dim Items7 As List + Items7.Initialize + If q.RowCount > 0 Then + For i = 0 To q.RowCount-1 + q.Position = i + Items7.Add(q.GetString("TIPO")) + Next + cb_caracteristicas.SetItems(Items7) + End If + q.Close + + h = Starter.skmt.ExecQuery2("SELECT CARTERA, AGENCIA FROM HIST_FINANCIEROS WHERE CREDITO = ?", Array As String(cuenta)) + h.Position = 0 + k = Starter.skmt.ExecQuery2("SELECT COUNT(*) As CUENTA FROM HIST_VISITA WHERE (ESTATUS = 0 OR ESTATUS = 1) and CREDITO = ?",Array As String(cuenta)) + k.Position = 0 + Log(k.GetString("CUENTA")) + If k.GetString("CUENTA") = 0 Then + Starter.skmt.ExecNonQuery2("INSERT INTO HIST_VISITA(CREDITO, PRODUCTO, VISITADOR, AGENCIA, RESULTADO, FUENTE, PARENTESCO, TIPO_DOMICILIO, NIVEL_SOCIO, CARACTERISTICAS, NIVELES, ACCION, FOTOUNO, FOTODOS, FOTOTRES, FOTOCUATRO, ESTATUS, ENVIADO) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", Array As String(cuenta, h.GetString("CARTERA"), B4XPages.MainPage.user, h.GetString("AGENCIA"),"Selecciona una opción","Selecciona una opción","Selecciona una opción","Selecciona una opción","Selecciona una opción","Selecciona una opción","Selecciona una opción","Selecciona una opción","0","0","0","0",0,"0")) + Starter.skmt.ExecNonQuery2("INSERT INTO CHECADO (CREDITO, LUNES, MARTES, MIERCOLES, JUEVES, VIERNES , SABADO , DOMINGO) VALUES (?,0,0,0,0,0,0,0)",Array As String(cuenta)) + Log("inserte cuenta") + End If + k.Close + h.Close + + Else If l.GetString("CUENTA") > 0 Then + + m = Starter.skmt.ExecQuery2("SELECT * FROM HIST_VISITA WHERE CREDITO = ? AND ESTATUS = 1 OR ESTATUS = 0",Array As String(cuenta)) + m.Position = 0 + + e = Starter.skmt.ExecQuery("SELECT PARENTESCO, NUMERO, NUME FROM CAT_PARENTESCO order by 3") + Dim Items2 As List + Items2.Initialize + If e.RowCount > 0 Then + For i = 0 To e.RowCount-1 + e.Position = i + Items2.Add(e.GetString("PARENTESCO")) + Next + cb_parentesco.SetItems(Items2) + End If + e.Close + e = Starter.skmt.ExecQuery2("SELECT NUMERO FROM CAT_PARENTESCO WHERE PARENTESCO = ?", Array As String(m.GetString("PARENTESCO"))) + e.Position = 0 + cb_parentesco.SelectedIndex = e.GetString("NUMERO") + e.Close + + + If cb_parentesco.SelectedItem = "Cliente" Or cb_parentesco.SelectedItem = "Selecciona una opción" Then + i_datosparentesco.Visible = False + Else + i_datosparentesco.Visible = True + + et_parentesco.Text = m.GetString("NOMBRE_ATIENDE") + If et_parentesco.Text = "null" Then + et_parentesco.Text = "" + End If + + End If + + f = Starter.skmt.ExecQuery("SELECT CO_ACDESCRIPCION, NUMERO, NUME FROM CAT_ACCION order by 3") + Dim Items3 As List + Items3.Initialize + If f.RowCount > 0 Then + For i = 0 To f.RowCount-1 + f.Position = i + Items3.Add(f.GetString("CO_ACDESCRIPCION")) + Next + cb_accion.SetItems(Items3) + End If + f.Close + f = Starter.skmt.ExecQuery2("SELECT NUMERO FROM CAT_ACCION WHERE CO_ACDESCRIPCION = ?", Array As String(m.GetString("ACCION"))) + f.Position = 0 + cb_accion.SelectedIndex = f.GetString("NUMERO") + f.Close + + + If cb_accion.SelectedItem = "Selecciona una opción" Then + Dim Items4 As List + Items4.Initialize + Items4.Add("") + cb_resultado.SetItems(Items4) + Else If cb_accion.SelectedItem = "Carteo" Then + Dim Items4 As List + Items4.Initialize + g = Starter.skmt.ExecQuery("SELECT CO_RDESCRIPCION, NUMERO FROM CAT_RESULTADO_CA order by 2") + If g.RowCount > 0 Then + For i = 0 To g.RowCount-1 + g.Position = i + Items4.Add(g.GetString("CO_RDESCRIPCION")) + Next + cb_resultado.SetItems(Items4) + End If + g.Close + g = Starter.skmt.ExecQuery2("SELECT NUMERO FROM CAT_RESULTADO_CA WHERE CO_RDESCRIPCION = ?", Array As String(m.GetString("RESULTADO"))) + g.Position = 0 + Log(m.GetString("RESULTADO")) + Log(g.GetString("NUMERO")) + cb_resultado.SelectedIndex = g.GetString("NUMERO") + g.Close + Else If cb_accion.SelectedItem = "Se envia Blaster" Then + Dim Items4 As List + Items4.Initialize + g = Starter.skmt.ExecQuery("SELECT CO_RDESCRIPCION, NUMERO FROM CAT_RESULTADO_BR order by 2") + If g.RowCount > 0 Then + For i = 0 To g.RowCount-1 + g.Position = i + Items4.Add(g.GetString("CO_RDESCRIPCION")) + Next + cb_resultado.SetItems(Items4) + End If + g.Close + g = Starter.skmt.ExecQuery2("SELECT NUMERO FROM CAT_RESULTADO_BR WHERE CO_RDESCRIPCION = ?", Array As String(m.GetString("RESULTADO"))) + g.Position = 0 + cb_resultado.SelectedIndex = g.GetString("NUMERO") + g.Close + Else If cb_accion.SelectedItem = "Se envia email" Then + Dim Items4 As List + Items4.Initialize + g = Starter.skmt.ExecQuery("SELECT CO_RDESCRIPCION, NUMERO FROM CAT_RESULTADO_MA order by 2") + If g.RowCount > 0 Then + For i = 0 To g.RowCount-1 + g.Position = i + Items4.Add(g.GetString("CO_RDESCRIPCION")) + Next + cb_resultado.SetItems(Items4) + End If + g.Close + g = Starter.skmt.ExecQuery2("SELECT NUMERO FROM CAT_RESULTADO_MA WHERE CO_RDESCRIPCION = ?", Array As String(m.GetString("RESULTADO"))) + g.Position = 0 + cb_resultado.SelectedIndex = g.GetString("NUMERO") + g.Close + Else If cb_accion.SelectedItem = "Visita En Domicilio" Then + Dim Items4 As List + Items4.Initialize + g = Starter.skmt.ExecQuery("SELECT CO_RDESCRIPCION, NUMERO FROM CAT_RESULTADO_VC order by 2") + If g.RowCount > 0 Then + For i = 0 To g.RowCount-1 + g.Position = i + Items4.Add(g.GetString("CO_RDESCRIPCION")) + Next + cb_resultado.SetItems(Items4) + End If + g.Close + g = Starter.skmt.ExecQuery2("SELECT NUMERO FROM CAT_RESULTADO_VC WHERE CO_RDESCRIPCION = ?", Array As String(m.GetString("RESULTADO"))) + g.Position = 0 + cb_resultado.SelectedIndex = g.GetString("NUMERO") + g.Close + End If + f.Close + + If cb_resultado.SelectedItem = "Promesa de pago" Then + i_resultado.Visible = True + b_fecharesultado.Text = m.GetString("FECHA_PROMESA") + + + et_monto.Text = m.GetString("MONTO_PROMESA") + If et_monto.Text = "null" Then + et_monto.Text = "" + End If + Else + i_resultado.Visible = False + End If + + et_comentarios.Text = m.GetString("COMENTARIOS") + If et_comentarios.Text = "null" Then + et_comentarios.Text = "" + End If + + et_puntosref.Text = m.GetString("PUNTOS_REF") + If et_puntosref.Text = "null" Then + et_puntosref.Text = "" + End If + + s = Starter.skmt.ExecQuery("SELECT NIVEL, NUMERO FROM NIVEL_SOCIO order by 2") + Dim Items5 As List + Items5.Initialize + If s.RowCount > 0 Then + For i = 0 To s.RowCount-1 + s.Position = i + Items5.Add(s.GetString("NIVEL")) + Next + cb_socioeconomico.SetItems(Items5) + End If + s.Close + s = Starter.skmt.ExecQuery2("SELECT NUMERO FROM NIVEL_SOCIO WHERE NIVEL = ?", Array As String(m.GetString("NIVEL_SOCIO"))) + s.Position = 0 + cb_socioeconomico.SelectedIndex = s.GetString("NUMERO") + s.Close + + p = Starter.skmt.ExecQuery("SELECT TIPO, NUMERO FROM TIPO_VIVIENDA order by 2") + Dim Items6 As List + Items6.Initialize + If p.RowCount > 0 Then + For i = 0 To p.RowCount-1 + p.Position = i + Items6.Add(p.GetString("TIPO")) + Next + cb_vivienda.SetItems(Items6) + End If + p.Close + p = Starter.skmt.ExecQuery2("SELECT NUMERO FROM TIPO_VIVIENDA WHERE TIPO = ?", Array As String(m.GetString("TIPO_DOMICILIO"))) + p.Position = 0 + cb_vivienda.SelectedIndex = p.GetString("NUMERO") + p.Close + + q = Starter.skmt.ExecQuery("SELECT TIPO, NUMERO FROM CARACTERISTICAS order by 2") + Dim Items7 As List + Items7.Initialize + If q.RowCount > 0 Then + For i = 0 To q.RowCount-1 + q.Position = i + Items7.Add(q.GetString("TIPO")) + Next + cb_caracteristicas.SetItems(Items7) + End If + q.Close + q = Starter.skmt.ExecQuery2("SELECT NUMERO FROM CARACTERISTICAS WHERE TIPO = ?", Array As String(m.GetString("CARACTERISTICAS"))) + q.Position = 0 + cb_caracteristicas.SelectedIndex = q.GetString("NUMERO") + q.Close + + Dim Dirp As String = File.DirRootExternal + Dim Dir As String + Dim Dir2 As String + Try + File.MakeDir(Dirp,"/Arestrategicas") + Dir = "/Arestrategicas" + 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 + + If m.GetString("FOTOUNO") = "0" Then + ImageView1.Bitmap = LoadBitmap(File.DirAssets,"icon_22-[convertido].png") + Else + ImageView1.Bitmap = LoadBitmap(File.DirRootExternal & Dir & Dir2,m.GetString("FOTOUNO")) + nombrefoto = m.GetString("FOTOUNO") + End If + + If m.GetString("FOTODOS") = "0" Then + ImageView2.Bitmap = LoadBitmap(File.DirAssets,"icon_22-[convertido].png") + Else + ImageView2.Bitmap = LoadBitmap(File.DirRootExternal & Dir & Dir2,m.GetString("FOTODOS")) + nombrefoto1 = m.GetString("FOTODOS") + End If + + If m.GetString("FOTOTRES") = "0" Then + ImageView3.Bitmap = LoadBitmap(File.DirAssets,"icon_22-[convertido].png") + Else + ImageView3.Bitmap = LoadBitmap(File.DirRootExternal & Dir & Dir2,m.GetString("FOTOTRES")) + nombrefoto2 = m.GetString("FOTOTRES") + End If + + If m.GetString("FOTOCUATRO") = "0" Then + ImageView4.Bitmap = LoadBitmap(File.DirAssets,"icon_22-[convertido].png") + Else + ImageView4.Bitmap = LoadBitmap(File.DirRootExternal & Dir & Dir2,m.GetString("FOTOCUATRO")) + nombrefoto3 = m.GetString("FOTOCUATRO") + End If + + m.Close + End If + l.Close + + If Not(Starter.GPS.GPSEnabled) Then + ToastMessageShow("Debe Activar el GPS del Equipo.", True) + StartActivity(Starter.GPS.LocationSettingsIntent) + Else + Starter.GPS.Start(0, 0) +' If Starter.ubicacionActual.Latitude <> 0 Then GPS_LocationChanged(Starter.ubicacionActual) + End If + +End Sub + +Sub WobbleMenu1_Tab1Click + p_w1.Visible = True + p_w2.Visible = False + p_w3.Visible = False + l_titulo.Text = "Datos generales" +End Sub + +Sub WobbleMenu1_Tab2Click + p_w1.Visible = False + p_w2.Visible = True + p_w3.Visible = False + l_titulo.Text = "Datos financieros" +End Sub + +Sub WobbleMenu1_Tab3Click + Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_CAMERA) + Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean) + If Result Then +' camEx2.Initialize(p_cam, frontCamera, Me, "Camera1") +' frontCamera = camEx2.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 + + p_w1.Visible = False + p_w2.Visible = False + p_w3.Visible = True + l_titulo.Text = "Gestión" +End Sub + + +Private Sub cb_parentesco_SelectedIndexChanged (Index As Int) + Dim parentesco2 As String = cb_parentesco.SelectedItem + Starter.skmt.ExecNonQuery2("UPDATE HIST_VISITA SET ESTATUS = ? WHERE CREDITO = ? AND ESTATUS <> 2", Array As String("1", cuenta)) + c = Starter.skmt.ExecQuery2("SELECT ESTATUS2 FROM HIST_DATOS_GENERALES WHERE CREDITO = ?",Array As String(cuenta)) + c.Position = 0 + If c.GetString("ESTATUS2") = 2 Then + + Else + Starter.skmt.ExecNonQuery2("UPDATE HIST_DATOS_GENERALES SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?", Array As String("Trabajando", "1", cuenta)) + Starter.skmt.ExecNonQuery2("UPDATE HIST_FINANCIEROS SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?", Array As String("Trabajando", "1", cuenta)) + End If + c.Close + Starter.skmt.ExecNonQuery2("UPDATE HIST_VISITA SET PARENTESCO = ? WHERE CREDITO = ? AND ESTATUS = 1", Array As String(cb_parentesco.SelectedItem, cuenta)) + If parentesco2 = "Selecciona una opción" Or parentesco2 = "Cliente" Then + i_datosparentesco.Visible = False + Else + Log("aqui1") + i_datosparentesco.Visible = True + If parentesco = "" Then + p_parentesco.Visible = True + Else + + End If + End If +End Sub + +Private Sub b_guardar_parentesco_Click + If et_parentesco.Text <> "" Then + parentesco = et_parentesco.Text + p_parentesco.Visible = False + Starter.skmt.ExecNonQuery2("UPDATE HIST_VISITA SET ESTATUS = ? WHERE CREDITO = ? AND ESTATUS <> 2", Array As String("1", cuenta)) + c = Starter.skmt.ExecQuery2("SELECT ESTATUS2 FROM HIST_DATOS_GENERALES WHERE CREDITO = ?",Array As String(cuenta)) + c.Position = 0 + If c.GetString("ESTATUS2") = 2 Then + + Else + Starter.skmt.ExecNonQuery2("UPDATE HIST_DATOS_GENERALES SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?", Array As String("Trabajando", "1", cuenta)) + Starter.skmt.ExecNonQuery2("UPDATE HIST_FINANCIEROS SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?", Array As String("Trabajando", "1", cuenta)) + End If + c.Close + Starter.skmt.ExecNonQuery2("UPDATE HIST_VISITA SET NOMBRE_ATIENDE = ? WHERE CREDITO = ? AND ESTATUS = 1", Array As String(et_parentesco.Text, cuenta)) + Else + MsgboxAsync("Captura el nombre.","Atención") + End If +End Sub + +Private Sub i_datosparentesco_Click + p_parentesco.Visible = True +End Sub + +Private Sub p_parentesco_Click + If et_parentesco.Text <> "" Then + parentesco = et_parentesco.Text + p_parentesco.Visible = False + Starter.skmt.ExecNonQuery2("UPDATE HIST_VISITA SET ESTATUS = ? WHERE CREDITO = ? AND ESTATUS <> 2", Array As String("1", cuenta)) + c = Starter.skmt.ExecQuery2("SELECT ESTATUS2 FROM HIST_DATOS_GENERALES WHERE CREDITO = ?",Array As String(cuenta)) + c.Position = 0 + If c.GetString("ESTATUS2") = 2 Then + + Else + Starter.skmt.ExecNonQuery2("UPDATE HIST_DATOS_GENERALES SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?", Array As String("Trabajando", "1", cuenta)) + Starter.skmt.ExecNonQuery2("UPDATE HIST_FINANCIEROS SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?", Array As String("Trabajando", "1", cuenta)) + End If + c.Close + Starter.skmt.ExecNonQuery2("UPDATE HIST_VISITA SET NOMBRE_ATIENDE = ? WHERE CREDITO = ? AND ESTATUS = 1", Array As String(et_parentesco.Text, cuenta)) + Else + MsgboxAsync("Captura el nombre.","Atención") + End If +End Sub + +Private Sub p_nom_parentesco_Click + +End Sub + +Private Sub cb_accion_SelectedIndexChanged (Index As Int) + + f = Starter.skmt.ExecQuery2("SELECT CO_ACCION FROM CAT_ACCION WHERE CO_ACDESCRIPCION = ?",Array As String(cb_accion.SelectedItem)) + f.Position = 0 + Starter.skmt.ExecNonQuery2("UPDATE HIST_VISITA SET ESTATUS = ? WHERE CREDITO = ? AND ESTATUS <> 2", Array As String("1", cuenta)) + c = Starter.skmt.ExecQuery2("SELECT ESTATUS2 FROM HIST_DATOS_GENERALES WHERE CREDITO = ?",Array As String(cuenta)) + c.Position = 0 + If c.GetString("ESTATUS2") = 2 Then + + Else + Starter.skmt.ExecNonQuery2("UPDATE HIST_DATOS_GENERALES SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?", Array As String("Trabajando", "1", cuenta)) + Starter.skmt.ExecNonQuery2("UPDATE HIST_FINANCIEROS SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?", Array As String("Trabajando", "1", cuenta)) + End If + c.Close + Starter.skmt.ExecNonQuery2("UPDATE HIST_VISITA SET ACCION = ?, CODIGO_ACCION = ? WHERE CREDITO = ? AND ESTATUS = 1", Array As String(cb_accion.SelectedItem,f.GetString("CO_ACCION"), cuenta)) + If cb_accion.SelectedItem = "Selecciona una opción" Then + Dim Items4 As List + Items4.Initialize + Items4.Add("") + cb_resultado.SetItems(Items4) + Else If cb_accion.SelectedItem = "Carteo" Then + Dim Items4 As List + Items4.Initialize + g = Starter.skmt.ExecQuery("SELECT CO_RDESCRIPCION, NUMERO FROM CAT_RESULTADO_CA order by 2") + If g.RowCount > 0 Then + For i = 0 To g.RowCount-1 + g.Position = i + Items4.Add(g.GetString("CO_RDESCRIPCION")) + Next + cb_resultado.SetItems(Items4) + End If + g.Close + Else If cb_accion.SelectedItem = "Se envia Blaster" Then + Dim Items4 As List + Items4.Initialize + g = Starter.skmt.ExecQuery("SELECT CO_RDESCRIPCION, NUMERO FROM CAT_RESULTADO_BR order by 2") + If g.RowCount > 0 Then + For i = 0 To g.RowCount-1 + g.Position = i + Items4.Add(g.GetString("CO_RDESCRIPCION")) + Next + cb_resultado.SetItems(Items4) + End If + g.Close + Else If cb_accion.SelectedItem = "Se envia email" Then + Dim Items4 As List + Items4.Initialize + g = Starter.skmt.ExecQuery("SELECT CO_RDESCRIPCION, NUMERO FROM CAT_RESULTADO_MA order by 2") + If g.RowCount > 0 Then + For i = 0 To g.RowCount-1 + g.Position = i + Items4.Add(g.GetString("CO_RDESCRIPCION")) + Next + cb_resultado.SetItems(Items4) + End If + g.Close + Else If cb_accion.SelectedItem = "Visita En Domicilio" Then + Dim Items4 As List + Items4.Initialize + g = Starter.skmt.ExecQuery("SELECT CO_RDESCRIPCION, NUMERO FROM CAT_RESULTADO_VC order by 2") + If g.RowCount > 0 Then + For i = 0 To g.RowCount-1 + g.Position = i + Items4.Add(g.GetString("CO_RDESCRIPCION")) + Next + cb_resultado.SetItems(Items4) + End If + g.Close + End If + f.Close +End Sub + +Private Sub cb_resultado_SelectedIndexChanged (Index As Int) + If cb_accion.SelectedItem = "Carteo" Then + If cb_resultado.SelectedItem <> "Promesa de pago" Then + i_resultado.Visible = False + p_resultado.Visible = False + j = Starter.skmt.ExecQuery2("SELECT CO_RESULTADO FROM CAT_RESULTADO_CA WHERE CO_RDESCRIPCION = ?",Array As String(cb_resultado.SelectedItem)) + j.Position = 0 + Starter.skmt.ExecNonQuery2("UPDATE HIST_VISITA SET ESTATUS = ? WHERE CREDITO = ? AND ESTATUS <> 2", Array As String("1", cuenta)) + c = Starter.skmt.ExecQuery2("SELECT ESTATUS2 FROM HIST_DATOS_GENERALES WHERE CREDITO = ?",Array As String(cuenta)) + c.Position = 0 + If c.GetString("ESTATUS2") = 2 Then + + Else + Starter.skmt.ExecNonQuery2("UPDATE HIST_DATOS_GENERALES SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?", Array As String("Trabajando", "1", cuenta)) + Starter.skmt.ExecNonQuery2("UPDATE HIST_FINANCIEROS SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?", Array As String("Trabajando", "1", cuenta)) + End If + c.Close + Starter.skmt.ExecNonQuery2("UPDATE HIST_VISITA SET RESULTADO = ?, CODIGO_RES = ? WHERE CREDITO = ? AND ESTATUS = 1", Array As String(cb_resultado.SelectedItem,j.GetString("CO_RESULTADO"), cuenta)) + j.Close + Else + i_resultado.Visible = True + p_resultado.Visible = True + j = Starter.skmt.ExecQuery2("SELECT CO_RESULTADO FROM CAT_RESULTADO_CA WHERE CO_RDESCRIPCION = ?",Array As String(cb_resultado.SelectedItem)) + j.Position = 0 + Starter.skmt.ExecNonQuery2("UPDATE HIST_VISITA SET ESTATUS = ? WHERE CREDITO = ? AND ESTATUS <> 2", Array As String("1", cuenta)) + c = Starter.skmt.ExecQuery2("SELECT ESTATUS2 FROM HIST_DATOS_GENERALES WHERE CREDITO = ?",Array As String(cuenta)) + c.Position = 0 + If c.GetString("ESTATUS2") = 2 Then + + Else + Starter.skmt.ExecNonQuery2("UPDATE HIST_DATOS_GENERALES SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?", Array As String("Trabajando", "1", cuenta)) + Starter.skmt.ExecNonQuery2("UPDATE HIST_FINANCIEROS SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?", Array As String("Trabajando", "1", cuenta)) + End If + c.Close + Starter.skmt.ExecNonQuery2("UPDATE HIST_VISITA SET RESULTADO = ?, CODIGO_RES = ? WHERE CREDITO = ? AND ESTATUS = 1", Array As String(cb_resultado.SelectedItem,j.GetString("CO_RESULTADO"), cuenta)) + j.Close + End If + Else If cb_accion.SelectedItem = "Se envia Blaster" Then + i_resultado.Visible = False + p_resultado.Visible = False + j = Starter.skmt.ExecQuery2("SELECT CO_RESULTADO FROM CAT_RESULTADO_BR WHERE CO_RDESCRIPCION = ?",Array As String(cb_resultado.SelectedItem)) + j.Position = 0 + Starter.skmt.ExecNonQuery2("UPDATE HIST_VISITA SET ESTATUS = ? WHERE CREDITO = ? AND ESTATUS <> 2", Array As String("1", cuenta)) + c = Starter.skmt.ExecQuery2("SELECT ESTATUS2 FROM HIST_DATOS_GENERALES WHERE CREDITO = ?",Array As String(cuenta)) + c.Position = 0 + If c.GetString("ESTATUS2") = 2 Then + + Else + Starter.skmt.ExecNonQuery2("UPDATE HIST_DATOS_GENERALES SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?", Array As String("Trabajando", "1", cuenta)) + Starter.skmt.ExecNonQuery2("UPDATE HIST_FINANCIEROS SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?", Array As String("Trabajando", "1", cuenta)) + End If + c.Close + Starter.skmt.ExecNonQuery2("UPDATE HIST_VISITA SET RESULTADO = ?, CODIGO_RES = ? WHERE CREDITO = ? AND ESTATUS = 1", Array As String(cb_resultado.SelectedItem,j.GetString("CO_RESULTADO"), cuenta)) + j.Close + Else If cb_accion.SelectedItem = "Se envia email" Then + i_resultado.Visible = False + p_resultado.Visible = False + j = Starter.skmt.ExecQuery2("SELECT CO_RESULTADO FROM CAT_RESULTADO_MA WHERE CO_RDESCRIPCION = ?",Array As String(cb_resultado.SelectedItem)) + j.Position = 0 + Starter.skmt.ExecNonQuery2("UPDATE HIST_VISITA SET ESTATUS = ? WHERE CREDITO = ? AND ESTATUS <> 2", Array As String("1", cuenta)) + c = Starter.skmt.ExecQuery2("SELECT ESTATUS2 FROM HIST_DATOS_GENERALES WHERE CREDITO = ?",Array As String(cuenta)) + c.Position = 0 + If c.GetString("ESTATUS2") = 2 Then + + Else + Starter.skmt.ExecNonQuery2("UPDATE HIST_DATOS_GENERALES SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?", Array As String("Trabajando", "1", cuenta)) + Starter.skmt.ExecNonQuery2("UPDATE HIST_FINANCIEROS SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?", Array As String("Trabajando", "1", cuenta)) + End If + c.Close + Starter.skmt.ExecNonQuery2("UPDATE HIST_VISITA SET RESULTADO = ?, CODIGO_RES = ? WHERE CREDITO = ? AND ESTATUS = 1", Array As String(cb_resultado.SelectedItem,j.GetString("CO_RESULTADO"), cuenta)) + j.Close + Else If cb_accion.SelectedItem = "Visita En Domicilio" Then + If cb_resultado.SelectedItem <> "Promesa de pago" Then + i_resultado.Visible = False + p_resultado.Visible = False + j = Starter.skmt.ExecQuery2("SELECT CO_RESULTADO FROM CAT_RESULTADO_VC WHERE CO_RDESCRIPCION = ?",Array As String(cb_resultado.SelectedItem)) + j.Position = 0 + Starter.skmt.ExecNonQuery2("UPDATE HIST_VISITA SET ESTATUS = ? WHERE CREDITO = ? AND ESTATUS <> 2", Array As String("1", cuenta)) + c = Starter.skmt.ExecQuery2("SELECT ESTATUS2 FROM HIST_DATOS_GENERALES WHERE CREDITO = ?",Array As String(cuenta)) + c.Position = 0 + If c.GetString("ESTATUS2") = 2 Then + + Else + Starter.skmt.ExecNonQuery2("UPDATE HIST_DATOS_GENERALES SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?", Array As String("Trabajando", "1", cuenta)) + Starter.skmt.ExecNonQuery2("UPDATE HIST_FINANCIEROS SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?", Array As String("Trabajando", "1", cuenta)) + End If + c.Close + Starter.skmt.ExecNonQuery2("UPDATE HIST_VISITA SET RESULTADO = ?, CODIGO_RES = ? WHERE CREDITO = ? AND ESTATUS = 1", Array As String(cb_resultado.SelectedItem,j.GetString("CO_RESULTADO"), cuenta)) + j.Close + Else + i_resultado.Visible = True + p_resultado.Visible = True + j = Starter.skmt.ExecQuery2("SELECT CO_RESULTADO FROM CAT_RESULTADO_VC WHERE CO_RDESCRIPCION = ?",Array As String(cb_resultado.SelectedItem)) + j.Position = 0 + Starter.skmt.ExecNonQuery2("UPDATE HIST_VISITA SET ESTATUS = ? WHERE CREDITO = ? AND ESTATUS <> 2", Array As String("1", cuenta)) + c = Starter.skmt.ExecQuery2("SELECT ESTATUS2 FROM HIST_DATOS_GENERALES WHERE CREDITO = ?",Array As String(cuenta)) + c.Position = 0 + If c.GetString("ESTATUS2") = 2 Then + + Else + Starter.skmt.ExecNonQuery2("UPDATE HIST_DATOS_GENERALES SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?", Array As String("Trabajando", "1", cuenta)) + Starter.skmt.ExecNonQuery2("UPDATE HIST_FINANCIEROS SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?", Array As String("Trabajando", "1", cuenta)) + End If + c.Close + Starter.skmt.ExecNonQuery2("UPDATE HIST_VISITA SET RESULTADO = ?, CODIGO_RES = ? WHERE CREDITO = ? AND ESTATUS = 1", Array As String(cb_resultado.SelectedItem,j.GetString("CO_RESULTADO"), cuenta)) + j.Close + End If + End If + +End Sub + +Private Sub b_guardarresultado_Click + + Dim montoprometido As Float = et_monto.Text + + If montoapagar < montoprometido Then + MsgboxAsync("El monto no puede ser mayor al monto a pagar","Atención") + Else + If et_monto.Text <> "" And b_fecharesultado.Text <> "Fecha de pago" Then + montopago = et_monto.Text + fechapago = b_fecharesultado.Text + p_resultado.Visible = False + Starter.skmt.ExecNonQuery2("UPDATE HIST_VISITA SET ESTATUS = ? WHERE CREDITO = ? AND ESTATUS <> 2", Array As String("1", cuenta)) + c = Starter.skmt.ExecQuery2("SELECT ESTATUS2 FROM HIST_DATOS_GENERALES WHERE CREDITO = ?",Array As String(cuenta)) + c.Position = 0 + If c.GetString("ESTATUS2") = 2 Then + + Else + Starter.skmt.ExecNonQuery2("UPDATE HIST_DATOS_GENERALES SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?", Array As String("Trabajando", "1", cuenta)) + Starter.skmt.ExecNonQuery2("UPDATE HIST_FINANCIEROS SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?", Array As String("Trabajando", "1", cuenta)) + End If + c.Close + Starter.skmt.ExecNonQuery2("UPDATE HIST_VISITA SET FECHA_PROMESA = ?, MONTO_PROMESA = ? WHERE CREDITO = ? AND ESTATUS = 1", Array As String(b_fecharesultado.Text,et_monto.Text, cuenta)) + Else + MsgboxAsync("Captura todos los datos.","Atención") + End If + End If +End Sub + +Private Sub i_resultado_Click + p_resultado.Visible = True +End Sub + +Private Sub p_resultado_Click + If et_monto.Text <> "" And b_fecharesultado.Text <> "Fecha de pago" Then + montopago = et_monto.Text + fechapago = b_fecharesultado.Text + p_resultado.Visible = False + Starter.skmt.ExecNonQuery2("UPDATE HIST_VISITA SET ESTATUS = ? WHERE CREDITO = ? AND ESTATUS <> 2", Array As String("1", cuenta)) + c = Starter.skmt.ExecQuery2("SELECT ESTATUS2 FROM HIST_DATOS_GENERALES WHERE CREDITO = ?",Array As String(cuenta)) + c.Position = 0 + If c.GetString("ESTATUS2") = 2 Then + + Else + Starter.skmt.ExecNonQuery2("UPDATE HIST_DATOS_GENERALES SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?", Array As String("Trabajando", "1", cuenta)) + Starter.skmt.ExecNonQuery2("UPDATE HIST_FINANCIEROS SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?", Array As String("Trabajando", "1", cuenta)) + End If + c.Close + Starter.skmt.ExecNonQuery2("UPDATE HIST_VISITA SET FECHA_PROMESA = ?, MONTO_PROMESA = ? WHERE CREDITO = ? AND ESTATUS = 1", Array As String(b_fecharesultado.Text,et_monto.Text, cuenta)) + Else + MsgboxAsync("Captura todos los datos.","Atención") + End If +End Sub + +Private Sub p_datosresultado_Click + +End Sub + +Private Sub ASWheelPicker1_ItemChange(Column As Int,ListIndex As Int) + l_fechapago.Text = ASWheelPicker1.GetSelectedItem(Column).Text + day = ASWheelPicker1.GetSelectedItem(Column).Text + If month = "" Then + month2 = DateTime.GetMonth(DateTime.Now) + End If + + If month = Null Or month2 = "" Or month2 = "null" Then + month2 = DateTime.GetMonth(DateTime.Now) + If month2 < 10 Then + month2 = "0"&DateTime.GetMonth(DateTime.Now) + Else + month2 = month2 = DateTime.GetMonth(DateTime.Now) + End If + End If + + If day < 10 Then + day = "0"&day + Else + day = day + End If + + If day = 1 Or day = "2" Or day = "3" Or day = "4" Or day = "5" Or day = "6" Or day = "7" Or day = "8" Or day = "9" Then + l_fechapago.Text = "0"&day&"/"&month2&"/"&year2 + Else + l_fechapago.Text = day&"/"&month2&"/"&year2 + End If + + +End Sub + +Private Sub ASWheelPicker2_ItemChange(Column As Int,ListIndex As Int) + l_fechapago.Text = ASWheelPicker2.GetSelectedItem(Column).Text + month = ASWheelPicker2.GetSelectedItem(Column).Text + + If month = "Enero" Then + month2 = "01" + Else If month = "Febrero" Then + month2 = "02" + Else If month = "Marzo" Then + month2 = "03" + Else If month = "Abril" Then + month2 = "04" + Else If month = "Mayo" Then + month2 = "05" + Else If month = "Junio" Then + month2 = "06" + Else If month = "Julio" Then + month2 = "07" + Else If month = "Agosto" Then + month2 = "08" + Else If month = "Septiembre" Then + month2 = "09" + Else If month = "Octubre" Then + month2 = "10" + Else If month = "Noviembre" Then + month2 = "11" + Else If month = "Diciembre" Then + month2 = "12" + End If + + If day < 10 Then + day = "0"&day + Else + day = day + End If + + If day = 1 Or day = "2" Or day = "3" Or day = "4" Or day = "5" Or day = "6" Or day = "7" Or day = "8" Or day = "9" Then + l_fechapago.Text = "0"&day&"/"&month2&"/"&year2 + Else + l_fechapago.Text = day&"/"&month2&"/"&year2 + End If + +End Sub + +Private Sub ASWheelPicker3_ItemChange(Column As Int,ListIndex As Int) + l_fechapago.Text = ASWheelPicker3.GetSelectedItem(Column).Text + year2 = ASWheelPicker3.GetSelectedItem(Column).Text + + If month = "" Then + month2 = DateTime.GetMonth(DateTime.Now) + End If + + If month = Null Or month2 = "" Or month2 = "null" Then + month2 = DateTime.GetMonth(DateTime.Now) + If month2 < 10 Then + month2 = "0"&DateTime.GetMonth(DateTime.Now) + Else + month2 = month2 = DateTime.GetMonth(DateTime.Now) + End If + End If + + If day < 10 Then + day = "0"&day + Else + day = day + End If + + If day = 1 Or day = "2" Or day = "3" Or day = "4" Or day = "5" Or day = "6" Or day = "7" Or day = "8" Or day = "9" Then + l_fechapago.Text = "0"&day&"/"&month2&"/"&year2 + Else + l_fechapago.Text = day&"/"&month2&"/"&year2 + End If +End Sub + +Private Sub b_fecharesultado_Click + p_calendario.Visible = True +End Sub + +Private Sub bgfecha_Click + DateTime.DateFormat = "yyyyMMdd" + Dim fechahoy As Int = DateTime.Date(DateTime.Now) + + If month = Null Or month2 = "" Or month2 = "null" Then + month2 = DateTime.GetMonth(DateTime.Now) + If month2 < 10 Then + month2 = "0"&DateTime.GetMonth(DateTime.Now) + Else + month2 = month2 = DateTime.GetMonth(DateTime.Now) + End If + End If + + If day < 10 Then + dia = "0"&day + Else + dia = day + End If + + If year2 = Null Or year2 = "" Or year2 = "null" Then + year2 = DateTime.GetYear(DateTime.Now) + End If + + Dim fechacompara As Int = year2&month2&dia + + If fechacompara < fechahoy Then + MsgboxAsync("La fecha no puede ser menor al día de hoy","Atención") + Else + p_calendario.Visible = False + b_fecharesultado.Text = l_fechapago.Text + End If + +End Sub + +Private Sub b_cancelar_Click + p_parentesco.Visible = False +End Sub + +Private Sub b_cancelarresultado_Click + b_fecharesultado.Text = "Fecha de pago" + ASWheelPicker1.SelectRow(0,0,True) + ASWheelPicker2.SelectRow(0,0,True) + ASWheelPicker3.SelectRow(0,0,True) + p_resultado.Visible = False +End Sub + +Private Sub p_calendario_Click + +End Sub + +Private Sub b_cancelarfecha_Click + p_calendario.Visible = False + ASWheelPicker1.SelectRow(0,0,True) + ASWheelPicker2.SelectRow(0,0,True) + ASWheelPicker3.SelectRow(0,0,True) +End Sub + +Private Sub et_comentarios_TextChanged (Old As String, New As String) + Private maxSize As Int = 500 + If New.Length > maxSize Then et_comentarios.Text = Old + If et_comentarios.Text.Length = 0 Then + Starter.skmt.ExecNonQuery2("UPDATE HIST_VISITA SET COMENTARIOS = ? WHERE CREDITO = ? AND ESTATUS = 1", Array As String("null", cuenta)) +' Starter.skmt.ExecNonQuery2("UPDATE HIST_DATOS_GENERALES SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?", Array As String("Trabajando", "1", cuenta)) +' Starter.skmt.ExecNonQuery2("UPDATE HIST_FINANCIEROS SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?", Array As String("Trabajando", "1", cuenta)) +' Starter.skmt.ExecNonQuery2("UPDATE HIST_VISITA SET ESTATUS = ? WHERE CREDITO = ?", Array As String("1", cuenta)) + Else + Starter.skmt.ExecNonQuery2("UPDATE HIST_VISITA SET COMENTARIOS = ? WHERE CREDITO = ? AND ESTATUS = 1", Array As String(et_comentarios.Text, cuenta)) +' Starter.skmt.ExecNonQuery2("UPDATE HIST_DATOS_GENERALES SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?", Array As String("Trabajando", "1", cuenta)) +' Starter.skmt.ExecNonQuery2("UPDATE HIST_FINANCIEROS SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?", Array As String("Trabajando", "1", cuenta)) +' Starter.skmt.ExecNonQuery2("UPDATE HIST_VISITA SET ESTATUS = ? WHERE CREDITO = ?", Array As String("1", cuenta)) + End If +End Sub + +Private Sub et_puntosref_TextChanged (Old As String, New As String) + Private maxSize As Int = 500 + If New.Length > maxSize Then et_puntosref.Text = Old + If et_puntosref.Text.Length = 0 Then + Starter.skmt.ExecNonQuery2("UPDATE HIST_VISITA SET PUNTOS_REF = ? WHERE CREDITO = ? AND ESTATUS = 1", Array As String("null", cuenta)) +' Starter.skmt.ExecNonQuery2("UPDATE HIST_DATOS_GENERALES SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?", Array As String("Trabajando", "1", cuenta)) +' Starter.skmt.ExecNonQuery2("UPDATE HIST_FINANCIEROS SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?", Array As String("Trabajando", "1", cuenta)) +' Starter.skmt.ExecNonQuery2("UPDATE HIST_VISITA SET ESTATUS = ? WHERE CREDITO = ?", Array As String("1", cuenta)) + Else + Starter.skmt.ExecNonQuery2("UPDATE HIST_VISITA SET PUNTOS_REF = ? WHERE CREDITO = ? AND ESTATUS = 1", Array As String(et_puntosref.Text, cuenta)) +' Starter.skmt.ExecNonQuery2("UPDATE HIST_DATOS_GENERALES SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?", Array As String("Trabajando", "1", cuenta)) +' Starter.skmt.ExecNonQuery2("UPDATE HIST_FINANCIEROS SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?", Array As String("Trabajando", "1", cuenta)) +' Starter.skmt.ExecNonQuery2("UPDATE HIST_VISITA SET ESTATUS = ? WHERE CREDITO = ?", Array As String("1", cuenta)) + End If +End Sub + +Private Sub cb_caracteristicas_SelectedIndexChanged (Index As Int) + Starter.skmt.ExecNonQuery2("UPDATE HIST_VISITA SET ESTATUS = ? WHERE CREDITO = ? AND ESTATUS <> 2", Array As String("1", cuenta)) + c = Starter.skmt.ExecQuery2("SELECT ESTATUS2 FROM HIST_DATOS_GENERALES WHERE CREDITO = ?",Array As String(cuenta)) + c.Position = 0 + If c.GetString("ESTATUS2") = 2 Then + + Else + Starter.skmt.ExecNonQuery2("UPDATE HIST_DATOS_GENERALES SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?", Array As String("Trabajando", "1", cuenta)) + Starter.skmt.ExecNonQuery2("UPDATE HIST_FINANCIEROS SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?", Array As String("Trabajando", "1", cuenta)) + End If + c.Close + Starter.skmt.ExecNonQuery2("UPDATE HIST_VISITA SET CARACTERISTICAS = ? WHERE CREDITO = ? AND ESTATUS = 1", Array As String(cb_caracteristicas.SelectedItem, cuenta)) +End Sub + +Private Sub cb_vivienda_SelectedIndexChanged (Index As Int) + Starter.skmt.ExecNonQuery2("UPDATE HIST_VISITA SET ESTATUS = ? WHERE CREDITO = ? AND ESTATUS <> 2", Array As String("1", cuenta)) + c = Starter.skmt.ExecQuery2("SELECT ESTATUS2 FROM HIST_DATOS_GENERALES WHERE CREDITO = ?",Array As String(cuenta)) + c.Position = 0 + If c.GetString("ESTATUS2") = 2 Then + + Else + Starter.skmt.ExecNonQuery2("UPDATE HIST_DATOS_GENERALES SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?", Array As String("Trabajando", "1", cuenta)) + Starter.skmt.ExecNonQuery2("UPDATE HIST_FINANCIEROS SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?", Array As String("Trabajando", "1", cuenta)) + End If + c.Close + Starter.skmt.ExecNonQuery2("UPDATE HIST_VISITA SET TIPO_DOMICILIO = ? WHERE CREDITO = ? AND ESTATUS = 1", Array As String(cb_vivienda.SelectedItem, cuenta)) +End Sub + +Private Sub cb_socioeconomico_SelectedIndexChanged (Index As Int) + Starter.skmt.ExecNonQuery2("UPDATE HIST_VISITA SET ESTATUS = ? WHERE CREDITO = ? AND ESTATUS <> 2", Array As String("1", cuenta)) + c = Starter.skmt.ExecQuery2("SELECT ESTATUS2 FROM HIST_DATOS_GENERALES WHERE CREDITO = ?",Array As String(cuenta)) + c.Position = 0 + If c.GetString("ESTATUS2") = 2 Then + + Else + Starter.skmt.ExecNonQuery2("UPDATE HIST_DATOS_GENERALES SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?", Array As String("Trabajando", "1", cuenta)) + Starter.skmt.ExecNonQuery2("UPDATE HIST_FINANCIEROS SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?", Array As String("Trabajando", "1", cuenta)) + End If + c.Close + Starter.skmt.ExecNonQuery2("UPDATE HIST_VISITA SET NIVEL_SOCIO = ? WHERE CREDITO = ? AND ESTATUS = 1", Array As String(cb_socioeconomico.SelectedItem, cuenta)) +End Sub + +'tomar foto + +Private Sub InitializeCamera2 + Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_CAMERA) + Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean) + If Result Then + camEx2.Initialize(p_cam, frontCamera, Me, "Camera1") + frontCamera = camEx2.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 + camEx2.SetJpegQuality(90) + camEx2.SetContinuousAutoFocus + camEx2.CommitParameters + camEx2.StartPreview + Log(camEx2.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 = fototomada + Dim Dirp As String = File.DirRootExternal + Dim Dir As String + Dim Dir2 As String + Try + File.MakeDir(Dirp,"/Arestrategicas") + Dir = "/Arestrategicas" + 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 + + camEx2.SavePictureToFile(Data, Dirp&Dir, filename) + camEx2.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 + + + If nombrefoto <> 0 Then + Dim img As B4XBitmap = xui.LoadBitmapResize(File.DirRootExternal & Dir, filename, 300, 450, True) + Dim out As OutputStream = File.OpenOutput(File.DirRootExternal & Dir & Dir2, filename, True) + img.WriteToStream(out, 100, "PNG") + out.Close + ImageView1.Bitmap = LoadBitmap(File.DirRootExternal & Dir & Dir2,nombrefoto) + End If + + If nombrefoto1 <> 0 Then + Dim img As B4XBitmap = xui.LoadBitmapResize(File.DirRootExternal & Dir, filename, 300, 450, True) + Dim out As OutputStream = File.OpenOutput(File.DirRootExternal & Dir & Dir2, filename, False) + img.WriteToStream(out, 100, "PNG") + out.Close + ImageView2.Bitmap = LoadBitmap(File.DirRootExternal & Dir& Dir2,nombrefoto1) + End If + + If nombrefoto2 <> 0 Then + Dim img As B4XBitmap = xui.LoadBitmapResize(File.DirRootExternal & Dir, filename, 300, 450, True) + Dim out As OutputStream = File.OpenOutput(File.DirRootExternal & Dir & Dir2, filename, False) + img.WriteToStream(out, 100, "PNG") + out.Close + ImageView3.Bitmap = LoadBitmap(File.DirRootExternal & Dir& Dir2,nombrefoto2) + End If + + If nombrefoto3 <> 0 Then + Dim img As B4XBitmap = xui.LoadBitmapResize(File.DirRootExternal & Dir, filename, 300, 450, True) + Dim out As OutputStream = File.OpenOutput(File.DirRootExternal & Dir & Dir2, filename, False) + img.WriteToStream(out, 100, "PNG") + out.Close + ImageView4.Bitmap = LoadBitmap(File.DirRootExternal & Dir & Dir2,nombrefoto3) + End If + + StopCamera2 + +End Sub + +Private Sub p_camara_Click + +End Sub + +Private Sub b_foto_Click + camEx2.TakePicture + p_camara.Visible = False +' StopCamera2 +End Sub + +Private Sub StopCamera2 +' Capturing = False + If camEx2.IsInitialized Then + camEx2.Release + End If +End Sub + +Private Sub ImageView1_Click +' foto = 2 + DateTime.DateFormat="ddMMyyyyHHmmss" + InitializeCamera2 + p_camara.Visible = True + nombrefoto = DateTime.Now & "_FOTO1.jpg" + teclado.HideKeyboard + fototomada = nombrefoto + Starter.skmt.ExecNonQuery2("UPDATE HIST_VISITA SET ESTATUS = ? WHERE CREDITO = ? AND ESTATUS <> 2", Array As String("1", cuenta)) + c = Starter.skmt.ExecQuery2("SELECT ESTATUS2 FROM HIST_DATOS_GENERALES WHERE CREDITO = ?",Array As String(cuenta)) + c.Position = 0 + If c.GetString("ESTATUS2") = 2 Then + + Else + Starter.skmt.ExecNonQuery2("UPDATE HIST_DATOS_GENERALES SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?", Array As String("Trabajando", "1", cuenta)) + Starter.skmt.ExecNonQuery2("UPDATE HIST_FINANCIEROS SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?", Array As String("Trabajando", "1", cuenta)) + End If + c.Close + Starter.skmt.ExecNonQuery2("UPDATE HIST_VISITA SET FOTOUNO = ? WHERE CREDITO = ? AND ESTATUS = 1", Array As String(nombrefoto, cuenta)) +End Sub + +Private Sub ImageView2_Click +' foto = 2 + DateTime.DateFormat="ddMMyyyyHHmmss" + InitializeCamera2 + p_camara.Visible = True + nombrefoto1 = DateTime.Now & "_FOTO2.jpg" + teclado.HideKeyboard + fototomada = nombrefoto1 + Starter.skmt.ExecNonQuery2("UPDATE HIST_VISITA SET ESTATUS = ? WHERE CREDITO = ? AND ESTATUS <> 2", Array As String("1", cuenta)) + c = Starter.skmt.ExecQuery2("SELECT ESTATUS2 FROM HIST_DATOS_GENERALES WHERE CREDITO = ?",Array As String(cuenta)) + c.Position = 0 + If c.GetString("ESTATUS2") = 2 Then + + Else + Starter.skmt.ExecNonQuery2("UPDATE HIST_DATOS_GENERALES SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?", Array As String("Trabajando", "1", cuenta)) + Starter.skmt.ExecNonQuery2("UPDATE HIST_FINANCIEROS SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?", Array As String("Trabajando", "1", cuenta)) + End If + c.Close + Starter.skmt.ExecNonQuery2("UPDATE HIST_VISITA SET FOTODOS = ? WHERE CREDITO = ? AND ESTATUS = 1", Array As String(nombrefoto1, cuenta)) +End Sub + +Private Sub ImageView3_Click +' foto = 2 + DateTime.DateFormat="ddMMyyyyHHmmss" + InitializeCamera2 + p_camara.Visible = True + nombrefoto2 = DateTime.Now & "_FOTO3.jpg" + teclado.HideKeyboard + fototomada = nombrefoto2 + Starter.skmt.ExecNonQuery2("UPDATE HIST_VISITA SET ESTATUS = ? WHERE CREDITO = ? AND ESTATUS <> 2", Array As String("1", cuenta)) + c = Starter.skmt.ExecQuery2("SELECT ESTATUS2 FROM HIST_DATOS_GENERALES WHERE CREDITO = ?",Array As String(cuenta)) + c.Position = 0 + If c.GetString("ESTATUS2") = 2 Then + + Else + Starter.skmt.ExecNonQuery2("UPDATE HIST_DATOS_GENERALES SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?", Array As String("Trabajando", "1", cuenta)) + Starter.skmt.ExecNonQuery2("UPDATE HIST_FINANCIEROS SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?", Array As String("Trabajando", "1", cuenta)) + End If + c.Close + Starter.skmt.ExecNonQuery2("UPDATE HIST_VISITA SET FOTOTRES = ? WHERE CREDITO = ? AND ESTATUS = 1", Array As String(nombrefoto2, cuenta)) +End Sub + +Private Sub ImageView4_Click +' foto = 2 + DateTime.DateFormat="ddMMyyyyHHmmss" + InitializeCamera2 + p_camara.Visible = True + nombrefoto3 = DateTime.Now & "_FOTO4.jpg" + teclado.HideKeyboard + fototomada = nombrefoto3 + Starter.skmt.ExecNonQuery2("UPDATE HIST_VISITA SET ESTATUS = ? WHERE CREDITO = ? AND ESTATUS <> 2", Array As String("1", cuenta)) + c = Starter.skmt.ExecQuery2("SELECT ESTATUS2 FROM HIST_DATOS_GENERALES WHERE CREDITO = ?",Array As String(cuenta)) + c.Position = 0 + If c.GetString("ESTATUS2") = 2 Then + + Else + Starter.skmt.ExecNonQuery2("UPDATE HIST_DATOS_GENERALES SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?", Array As String("Trabajando", "1", cuenta)) + Starter.skmt.ExecNonQuery2("UPDATE HIST_FINANCIEROS SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?", Array As String("Trabajando", "1", cuenta)) + End If + c.Close + c.Close + Starter.skmt.ExecNonQuery2("UPDATE HIST_VISITA SET FOTOCUATRO = ? WHERE CREDITO = ? AND ESTATUS = 1", Array As String(nombrefoto3, cuenta)) +End Sub + +Private Sub b_guardar_Click + + If cb_parentesco.SelectedItem <> "Selecciona una opción" Then + If cb_accion.SelectedItem <> "Selecciona una opción" Then + If cb_resultado.SelectedItem <> "Selecciona una opción" Then + If cb_socioeconomico.SelectedItem <> "Selecciona una opción" Then + If cb_vivienda.SelectedItem <> "Selecciona una opción" Then + If cb_caracteristicas.SelectedItem <> "Selecciona una opción" Then + If et_comentarios.Text.Length > 0 Then + If et_puntosref.Text.Length > 0 Then + LogColor(et_puntosref.Text.Length,Colors.Green) + If i_datosparentesco.Visible Then + If et_parentesco.Text <> "" Then + If i_resultado.Visible Then + If et_monto.Text <> "" And b_fecharesultado.Text <> "Fecha de pago" Then + If nombrefoto <> "0" And nombrefoto1 <> "0" And nombrefoto2 <> "0" And nombrefoto3 <> "0" Then + h = Starter.skmt.ExecQuery2("SELECT CARTERA, AGENCIA FROM HIST_FINANCIEROS WHERE CREDITO = ? ", Array As String(cuenta)) + h.Position = 0 + f = Starter.skmt.ExecQuery2("SELECT CO_ACCION FROM CAT_ACCION WHERE CO_ACDESCRIPCION = ?", Array As String(cb_accion.SelectedItem)) + f.Position = 0 + If cb_accion.SelectedItem = "Carteo" Then + j = Starter.skmt.ExecQuery2("SELECT CO_RESULTADO FROM CAT_RESULTADO_CA WHERE CO_RDESCRIPCION = ?",Array As String(cb_resultado.SelectedItem)) + j.Position = 0 + Else if cb_accion.SelectedItem = "Se envia Blaster" Then + j = Starter.skmt.ExecQuery2("SELECT CO_RESULTADO FROM CAT_RESULTADO_BR WHERE CO_RDESCRIPCION = ?",Array As String(cb_resultado.SelectedItem)) + j.Position = 0 + Else if cb_accion.SelectedItem = "Se envia email" Then + j = Starter.skmt.ExecQuery2("SELECT CO_RESULTADO FROM CAT_RESULTADO_MA WHERE CO_RDESCRIPCION = ?",Array As String(cb_resultado.SelectedItem)) + j.Position = 0 + Else if cb_accion.SelectedItem = "Visita En Domicilio" Then + j = Starter.skmt.ExecQuery2("SELECT CO_RESULTADO FROM CAT_RESULTADO_VC WHERE CO_RDESCRIPCION = ?",Array As String(cb_resultado.SelectedItem)) + j.Position = 0 + End If + + DateTime.DateFormat = "dd/MM/yyyy" + Dim fecha_captura As String = DateTime.Date(DateTime.Now) + Log(fecha_captura) + + n = Starter.skmt.ExecQuery2("SELECT COUNT(*) AS REGISTRADO FROM HIST_VISITA WHERE CREDITO = ?",Array As String(cuenta)) + n.Position = 0 + If n.GetString("REGISTRADO") = 0 Then + Starter.skmt.ExecNonQuery2("INSERT INTO HIST_VISITA(CREDITO, PRODUCTO, VISITADOR, RESULTADO, CODIGO_RES, PARENTESCO, COMENTARIOS, FECHA, LONGITUD, LATUTUD, FECHACAPTURA, AGENCIA, FECHA_PROMESA, MONTO_PROMESA, TIPO_DOMICILIO, NIVEL_SOCIO, CARACTERISTICAS, FOTOUNO, FOTODOS, FOTOTRES, FOTOCUATRO, NOMBRE_ATIENDE, CODIGO_ACCION, ACCION, PUNTOS_REF) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", Array As String(cuenta, h.GetString("CARTERA"), B4XPages.MainPage.user, cb_resultado.SelectedItem, j.GetString("CO_RESULTADO"),cb_parentesco.SelectedItem, et_comentarios.Text, fecha_captura, Starter.latitud, Starter.longitud, fecha_captura, h.GetString("AGENCIA"), b_fecharesultado.Text, et_monto.Text, cb_vivienda.SelectedItem, cb_socioeconomico.SelectedItem, cb_caracteristicas.SelectedItem, nombrefoto, nombrefoto1, nombrefoto2, nombrefoto3, et_parentesco.Text, f.GetString("CO_ACCION"), cb_accion.SelectedItem, et_puntosref.Text)) + Starter.skmt.ExecNonQuery2("delete from CHECADO WHERE CREDITO = ?",Array As String(cuenta)) + Starter.skmt.ExecNonQuery2("UPDATE HIST_DATOS_GENERALES SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?",Array As Object("Terminada","2",cuenta)) + Starter.skmt.ExecNonQuery2("UPDATE HIST_FINANCIEROS SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?",Array As Object("Terminada","2",cuenta)) + Log("Insert") + Else If n.GetString("REGISTRADO") > 0 Then + Starter.skmt.ExecNonQuery2("UPDATE HIST_VISITA SET PRODUCTO = ?, VISITADOR = ?, RESULTADO = ?, CODIGO_RES = ?, PARENTESCO = ?, COMENTARIOS = ?, FECHA = ?, LONGITUD = ?, LATUTUD = ?, FECHACAPTURA = ?, AGENCIA = ?, FECHA_PROMESA = ?, MONTO_PROMESA = ?, TIPO_DOMICILIO = ?, NIVEL_SOCIO = ?, CARACTERISTICAS = ?, FOTOUNO = ?, FOTODOS = ?, FOTOTRES = ?, FOTOCUATRO = ?, NOMBRE_ATIENDE = ?, CODIGO_ACCION = ?, ACCION = ?, PUNTOS_REF = ?, ESTATUS = ? WHERE CREDITO = ? AND ESTATUS <> 2", Array As String(h.GetString("CARTERA"), B4XPages.MainPage.user, cb_resultado.SelectedItem, j.GetString("CO_RESULTADO"),cb_parentesco.SelectedItem, et_comentarios.Text, fecha_captura, Starter.latitud, Starter.longitud, fecha_captura, h.GetString("AGENCIA"), b_fecharesultado.Text, et_monto.Text, cb_vivienda.SelectedItem, cb_socioeconomico.SelectedItem, cb_caracteristicas.SelectedItem, nombrefoto, nombrefoto1, nombrefoto2, nombrefoto3, et_parentesco.Text, f.GetString("CO_ACCION"), cb_accion.SelectedItem, et_puntosref.Text,"2", cuenta)) + Starter.skmt.ExecNonQuery2("delete from CHECADO WHERE CREDITO = ?",Array As String(cuenta)) + Starter.skmt.ExecNonQuery2("UPDATE HIST_DATOS_GENERALES SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?",Array As Object("Terminada","2",cuenta)) + Starter.skmt.ExecNonQuery2("UPDATE HIST_FINANCIEROS SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?",Array As Object("Terminada","2",cuenta)) + Log("update") + End If + n.Close + h.Close + f.Close + j.Close + B4XPages.ShowPage("principal") + + ImageView1.Bitmap = LoadBitmap(File.DirAssets,"icon_22-[convertido].png") + ImageView2.Bitmap = LoadBitmap(File.DirAssets,"icon_22-[convertido].png") + ImageView3.Bitmap = LoadBitmap(File.DirAssets,"icon_22-[convertido].png") + ImageView4.Bitmap = LoadBitmap(File.DirAssets,"icon_22-[convertido].png") + + Else + MsgboxAsync("Por favor captura todas las fotos","Atención") + End If + + Else + MsgboxAsync("Captura todos los datos de la promesa de pago","Atención") + End If + Else + If nombrefoto <> "0" And nombrefoto1 <> "0" And nombrefoto2 <> "0" And nombrefoto3 <> "0" Then + h = Starter.skmt.ExecQuery2("SELECT CARTERA, AGENCIA FROM HIST_FINANCIEROS WHERE CREDITO = ? ", Array As String(cuenta)) + h.Position = 0 + f = Starter.skmt.ExecQuery2("SELECT CO_ACCION FROM CAT_ACCION WHERE CO_ACDESCRIPCION = ?", Array As String(cb_accion.SelectedItem)) + f.Position = 0 + If cb_accion.SelectedItem = "Carteo" Then + j = Starter.skmt.ExecQuery2("SELECT CO_RESULTADO FROM CAT_RESULTADO_CA WHERE CO_RDESCRIPCION = ?",Array As String(cb_resultado.SelectedItem)) + j.Position = 0 + Else if cb_accion.SelectedItem = "Se envia Blaster" Then + j = Starter.skmt.ExecQuery2("SELECT CO_RESULTADO FROM CAT_RESULTADO_BR WHERE CO_RDESCRIPCION = ?",Array As String(cb_resultado.SelectedItem)) + j.Position = 0 + Else if cb_accion.SelectedItem = "Se envia email" Then + j = Starter.skmt.ExecQuery2("SELECT CO_RESULTADO FROM CAT_RESULTADO_MA WHERE CO_RDESCRIPCION = ?",Array As String(cb_resultado.SelectedItem)) + j.Position = 0 + Else if cb_accion.SelectedItem = "Visita En Domicilio" Then + j = Starter.skmt.ExecQuery2("SELECT CO_RESULTADO FROM CAT_RESULTADO_VC WHERE CO_RDESCRIPCION = ?",Array As String(cb_resultado.SelectedItem)) + j.Position = 0 + End If + DateTime.DateFormat = "dd/MM/yyyy" + Dim fecha_captura As String = DateTime.Date(DateTime.Now) + Log(fecha_captura) + + n = Starter.skmt.ExecQuery2("SELECT COUNT(*) AS REGISTRADO FROM HIST_VISITA WHERE CREDITO = ?",Array As String(cuenta)) + n.Position = 0 + If n.GetString("REGISTRADO") = 0 Then + Starter.skmt.ExecNonQuery2("INSERT INTO HIST_VISITA(CREDITO, PRODUCTO, VISITADOR, RESULTADO, CODIGO_RES, PARENTESCO, COMENTARIOS, FECHA, LONGITUD, LATUTUD, FECHACAPTURA, AGENCIA, TIPO_DOMICILIO, NIVEL_SOCIO, CARACTERISTICAS, FOTOUNO, FOTODOS, FOTOTRES, FOTOCUATRO, NOMBRE_ATIENDE, CODIGO_ACCION, ACCION, PUNTOS_REF) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", Array As String(cuenta, h.GetString("CARTERA"), B4XPages.MainPage.user, cb_resultado.SelectedItem, j.GetString("CO_RESULTADO"),cb_parentesco.SelectedItem, et_comentarios.Text, fecha_captura, Starter.latitud, Starter.longitud, fecha_captura, h.GetString("AGENCIA"), cb_vivienda.SelectedItem, cb_socioeconomico.SelectedItem, cb_caracteristicas.SelectedItem, nombrefoto, nombrefoto1, nombrefoto2, nombrefoto3, et_parentesco.Text, f.GetString("CO_ACCION"), cb_accion.SelectedItem, et_puntosref.Text)) + Starter.skmt.ExecNonQuery2("delete from CHECADO WHERE CREDITO = ?",Array As String(cuenta)) + Starter.skmt.ExecNonQuery2("UPDATE HIST_DATOS_GENERALES SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?",Array As Object("Terminada","2",cuenta)) + Starter.skmt.ExecNonQuery2("UPDATE HIST_FINANCIEROS SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?",Array As Object("Terminada","2",cuenta)) + Else + Starter.skmt.ExecNonQuery2("UPDATE HIST_VISITA SET PRODUCTO = ?, VISITADOR = ?, RESULTADO = ?, CODIGO_RES = ?, PARENTESCO = ?, COMENTARIOS = ?, FECHA = ?, LONGITUD = ?, LATUTUD = ?, FECHACAPTURA = ?, AGENCIA = ?, TIPO_DOMICILIO = ?, NIVEL_SOCIO = ?, CARACTERISTICAS = ?, FOTOUNO = ?, FOTODOS = ?, FOTOTRES = ?, FOTOCUATRO = ?, NOMBRE_ATIENDE = ?, CODIGO_ACCION = ?, ACCION = , PUNTOS_REF = ?, ESTATUS = ? WHERE CREDITO = ? AND ESTATUS <> 2", Array As String(h.GetString("CARTERA"), B4XPages.MainPage.user, cb_resultado.SelectedItem, j.GetString("CO_RESULTADO"),cb_parentesco.SelectedItem, et_comentarios.Text, fecha_captura, Starter.latitud, Starter.longitud, fecha_captura, h.GetString("AGENCIA"), cb_vivienda.SelectedItem, cb_socioeconomico.SelectedItem, cb_caracteristicas.SelectedItem, nombrefoto, nombrefoto1, nombrefoto2, nombrefoto3, et_parentesco.Text, f.GetString("CO_ACCION"), cb_accion.SelectedItem, et_puntosref.Text,"2",cuenta)) + Starter.skmt.ExecNonQuery2("delete from CHECADO WHERE CREDITO = ?",Array As String(cuenta)) + Starter.skmt.ExecNonQuery2("UPDATE HIST_DATOS_GENERALES SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?",Array As Object("Terminada","2",cuenta)) + Starter.skmt.ExecNonQuery2("UPDATE HIST_FINANCIEROS SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?",Array As Object("Terminada","2",cuenta)) + Log("update2") + End If + n.Close + h.Close + f.Close + j.Close + + B4XPages.ShowPage("principal") + + ImageView1.Bitmap = LoadBitmap(File.DirAssets,"icon_22-[convertido].png") + ImageView2.Bitmap = LoadBitmap(File.DirAssets,"icon_22-[convertido].png") + ImageView3.Bitmap = LoadBitmap(File.DirAssets,"icon_22-[convertido].png") + ImageView4.Bitmap = LoadBitmap(File.DirAssets,"icon_22-[convertido].png") + + Else + MsgboxAsync("Por favor captura todas las fotos","Atención") + End If + End If + Else + MsgboxAsync("Captura el nombre del tipo de contacto.","Atención") + End If + Else + If i_resultado.Visible Then + If et_monto.Text <> "" And b_fecharesultado.Text <> "Fecha de pago" Then + If et_comentarios.Text <> "" Then + If et_puntosref.Text <> "" Then + If nombrefoto <> "0" And nombrefoto1 <> "0" And nombrefoto2 <> "0" And nombrefoto3 <> "0" Then + h = Starter.skmt.ExecQuery2("SELECT CARTERA, AGENCIA FROM HIST_FINANCIEROS WHERE CREDITO = ? ", Array As String(cuenta)) + h.Position = 0 + f = Starter.skmt.ExecQuery2("SELECT CO_ACCION FROM CAT_ACCION WHERE CO_ACDESCRIPCION = ?", Array As String(cb_accion.SelectedItem)) + f.Position = 0 + If cb_accion.SelectedItem = "Carteo" Then + j = Starter.skmt.ExecQuery2("SELECT CO_RESULTADO FROM CAT_RESULTADO_CA WHERE CO_RDESCRIPCION = ?",Array As String(cb_resultado.SelectedItem)) + j.Position = 0 + Else if cb_accion.SelectedItem = "Se envia Blaster" Then + j = Starter.skmt.ExecQuery2("SELECT CO_RESULTADO FROM CAT_RESULTADO_BR WHERE CO_RDESCRIPCION = ?",Array As String(cb_resultado.SelectedItem)) + j.Position = 0 + Else if cb_accion.SelectedItem = "Se envia email" Then + j = Starter.skmt.ExecQuery2("SELECT CO_RESULTADO FROM CAT_RESULTADO_MA WHERE CO_RDESCRIPCION = ?",Array As String(cb_resultado.SelectedItem)) + j.Position = 0 + Else if cb_accion.SelectedItem = "Visita En Domicilio" Then + j = Starter.skmt.ExecQuery2("SELECT CO_RESULTADO FROM CAT_RESULTADO_VC WHERE CO_RDESCRIPCION = ?",Array As String(cb_resultado.SelectedItem)) + j.Position = 0 + End If + DateTime.DateFormat = "dd/MM/yyyy" + Dim fecha_captura As String = DateTime.Date(DateTime.Now) + Log(fecha_captura) + + + n = Starter.skmt.ExecQuery2("SELECT COUNT(*) AS REGISTRADO FROM HIST_VISITA WHERE CREDITO = ?",Array As String(cuenta)) + n.Position = 0 + If n.GetString("REGISTRADO") = 0 Then + Starter.skmt.ExecNonQuery2("INSERT INTO HIST_VISITA(CREDITO, PRODUCTO, VISITADOR, RESULTADO, CODIGO_RES, PARENTESCO, COMENTARIOS, FECHA, LONGITUD, LATUTUD, FECHACAPTURA, AGENCIA, FECHA_PROMESA, MONTO_PROMESA, TIPO_DOMICILIO, NIVEL_SOCIO, CARACTERISTICAS, FOTOUNO, FOTODOS, FOTOTRES, FOTOCUATRO, NOMBRE_ATIENDE, CODIGO_ACCION, ACCION, PUNTOS_REF) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", Array As String(cuenta, h.GetString("CARTERA"), B4XPages.MainPage.user, cb_resultado.SelectedItem, j.GetString("CO_RESULTADO"),cb_parentesco.SelectedItem, et_comentarios.Text, fecha_captura, Starter.latitud, Starter.longitud, fecha_captura, h.GetString("AGENCIA"), b_fecharesultado.Text, et_monto.Text, cb_vivienda.SelectedItem, cb_socioeconomico.SelectedItem, cb_caracteristicas.SelectedItem, nombrefoto, nombrefoto1, nombrefoto2, nombrefoto3, l_nombreg.Text, f.GetString("CO_ACCION"), cb_accion.SelectedItem, et_puntosref.Text)) + Starter.skmt.ExecNonQuery2("delete from CHECADO WHERE CREDITO = ?",Array As String(cuenta)) + Starter.skmt.ExecNonQuery2("UPDATE HIST_DATOS_GENERALES SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?",Array As Object("Terminada","2",cuenta)) + Starter.skmt.ExecNonQuery2("UPDATE HIST_FINANCIEROS SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?",Array As Object("Terminada","2",cuenta)) + Else + Starter.skmt.ExecNonQuery2("UPDATE HIST_VISITA SET PRODUCTO = ?, VISITADOR = ?, RESULTADO = ?, CODIGO_RES = ?, PARENTESCO = ?, COMENTARIOS = ?, FECHA = ?, LONGITUD = ?, LATUTUD = ?, FECHACAPTURA = ?, AGENCIA = ?, FECHA_PROMESA = ?, MONTO_PROMESA = ?, TIPO_DOMICILIO = ?, NIVEL_SOCIO = ?, CARACTERISTICAS = ?, FOTOUNO = ?, FOTODOS = ?, FOTOTRES = ?, FOTOCUATRO = ?, NOMBRE_ATIENDE = ?, CODIGO_ACCION = ?, ACCION = ?, PUNTOS_REF = ?, ESTATUS = ? WHERE CREDITO = ? AND ESTATUS <> 2", Array As String(h.GetString("CARTERA"), B4XPages.MainPage.user, cb_resultado.SelectedItem, j.GetString("CO_RESULTADO"),cb_parentesco.SelectedItem, et_comentarios.Text, fecha_captura, Starter.latitud, Starter.longitud, fecha_captura, h.GetString("AGENCIA"), b_fecharesultado.Text, et_monto.Text, cb_vivienda.SelectedItem, cb_socioeconomico.SelectedItem, cb_caracteristicas.SelectedItem, nombrefoto, nombrefoto1, nombrefoto2, nombrefoto3, l_nombreg.Text, f.GetString("CO_ACCION"), cb_accion.SelectedItem, et_puntosref.Text,"2", cuenta)) + Starter.skmt.ExecNonQuery2("delete from CHECADO WHERE CREDITO = ?",Array As String(cuenta)) + Starter.skmt.ExecNonQuery2("UPDATE HIST_DATOS_GENERALES SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?",Array As Object("Terminada","2",cuenta)) + Starter.skmt.ExecNonQuery2("UPDATE HIST_FINANCIEROS SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?",Array As Object("Terminada","2",cuenta)) + Log("update3") + End If + n.Close + h.Close + f.Close + j.Close + + B4XPages.ShowPage("principal") + + ImageView1.Bitmap = LoadBitmap(File.DirAssets,"icon_22-[convertido].png") + ImageView2.Bitmap = LoadBitmap(File.DirAssets,"icon_22-[convertido].png") + ImageView3.Bitmap = LoadBitmap(File.DirAssets,"icon_22-[convertido].png") + ImageView4.Bitmap = LoadBitmap(File.DirAssets,"icon_22-[convertido].png") + + Else + MsgboxAsync("Por favor captura todas las fotos","Atención") + End If + Else + MsgboxAsync("Falta capturar los puntos de referencia","Atención") + End If + Else + MsgboxAsync("Falta capturar comentarios","Atención") + End If + Else + MsgboxAsync("Captura todos los datos de la promesa de pago","Atención") + End If + Else + If nombrefoto <> "0" And nombrefoto1 <> "0" And nombrefoto2 <> "0" And nombrefoto3 <> "0" Then + h = Starter.skmt.ExecQuery2("SELECT CARTERA, AGENCIA FROM HIST_FINANCIEROS WHERE CREDITO = ? ", Array As String(cuenta)) + h.Position = 0 + f = Starter.skmt.ExecQuery2("SELECT CO_ACCION FROM CAT_ACCION WHERE CO_ACDESCRIPCION = ?", Array As String(cb_accion.SelectedItem)) + f.Position = 0 + If cb_accion.SelectedItem = "Carteo" Then + j = Starter.skmt.ExecQuery2("SELECT CO_RESULTADO FROM CAT_RESULTADO_CA WHERE CO_RDESCRIPCION = ?",Array As String(cb_resultado.SelectedItem)) + j.Position = 0 + Else if cb_accion.SelectedItem = "Se envia Blaster" Then + j = Starter.skmt.ExecQuery2("SELECT CO_RESULTADO FROM CAT_RESULTADO_BR WHERE CO_RDESCRIPCION = ?",Array As String(cb_resultado.SelectedItem)) + j.Position = 0 + Else if cb_accion.SelectedItem = "Se envia email" Then + j = Starter.skmt.ExecQuery2("SELECT CO_RESULTADO FROM CAT_RESULTADO_MA WHERE CO_RDESCRIPCION = ?",Array As String(cb_resultado.SelectedItem)) + j.Position = 0 + Else if cb_accion.SelectedItem = "Visita En Domicilio" Then + j = Starter.skmt.ExecQuery2("SELECT CO_RESULTADO FROM CAT_RESULTADO_VC WHERE CO_RDESCRIPCION = ?",Array As String(cb_resultado.SelectedItem)) + j.Position = 0 + End If + DateTime.DateFormat = "dd/MM/yyyy" + Dim fecha_captura As String = DateTime.Date(DateTime.Now) + Log(fecha_captura) + + n = Starter.skmt.ExecQuery2("SELECT COUNT(*) AS REGISTRADO FROM HIST_VISITA WHERE CREDITO = ?",Array As String(cuenta)) + n.Position = 0 + If n.GetString("REGISTRADO") = 0 Then + Starter.skmt.ExecNonQuery2("INSERT INTO HIST_VISITA(CREDITO, PRODUCTO, VISITADOR, RESULTADO, CODIGO_RES, PARENTESCO, COMENTARIOS, FECHA, LONGITUD, LATUTUD, FECHACAPTURA, AGENCIA, TIPO_DOMICILIO, NIVEL_SOCIO, CARACTERISTICAS, FOTOUNO, FOTODOS, FOTOTRES, FOTOCUATRO, NOMBRE_ATIENDE, CODIGO_ACCION, ACCION, DIAS_ACCION, PUNTOS_REF) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", Array As String(cuenta, h.GetString("CARTERA"), B4XPages.MainPage.user, cb_resultado.SelectedItem, j.GetString("CO_RESULTADO"),cb_parentesco.SelectedItem, et_comentarios.Text, fecha_captura, Starter.latitud, Starter.longitud, fecha_captura, h.GetString("AGENCIA"), cb_vivienda.SelectedItem, cb_socioeconomico.SelectedItem, cb_caracteristicas.SelectedItem, nombrefoto, nombrefoto1, nombrefoto2, nombrefoto3, l_nombreg.Text, f.GetString("CO_ACCION"), cb_accion.SelectedItem, et_puntosref.Text)) + Starter.skmt.ExecNonQuery2("delete from CHECADO WHERE CREDITO = ?",Array As String(cuenta)) + Starter.skmt.ExecNonQuery2("UPDATE HIST_DATOS_GENERALES SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?",Array As Object("Terminada","2",cuenta)) + Starter.skmt.ExecNonQuery2("UPDATE HIST_FINANCIEROS SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?",Array As Object("Terminada","2",cuenta)) + Else + Starter.skmt.ExecNonQuery2("UPDATE HIST_VISITA SET PRODUCTO = ?, VISITADOR = ?, RESULTADO = ?, CODIGO_RES = ?, PARENTESCO = ?, COMENTARIOS = ?, FECHA = ?, LONGITUD = ?, LATUTUD = ?, FECHACAPTURA = ?, AGENCIA = ?, TIPO_DOMICILIO = ?, NIVEL_SOCIO = ?, CARACTERISTICAS = ?, FOTOUNO = ?, FOTODOS = ?, FOTOTRES = ?, FOTOCUATRO = ?, NOMBRE_ATIENDE = ?, CODIGO_ACCION = ?, ACCION = ?, PUNTOS_REF = ?, ESTATUS = ? WHERE CREDITO = ? AND ESTATUS <> 2", Array As String(h.GetString("CARTERA"), B4XPages.MainPage.user, cb_resultado.SelectedItem, j.GetString("CO_RESULTADO"),cb_parentesco.SelectedItem, et_comentarios.Text, fecha_captura, Starter.latitud, Starter.longitud, fecha_captura, h.GetString("AGENCIA"), cb_vivienda.SelectedItem, cb_socioeconomico.SelectedItem, cb_caracteristicas.SelectedItem, nombrefoto, nombrefoto1, nombrefoto2, nombrefoto3, l_nombreg.Text, f.GetString("CO_ACCION"), cb_accion.SelectedItem, et_puntosref.Text,"2", cuenta)) + Starter.skmt.ExecNonQuery2("delete from CHECADO WHERE CREDITO = ?",Array As String(cuenta)) + Starter.skmt.ExecNonQuery2("UPDATE HIST_DATOS_GENERALES SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?",Array As Object("Terminada","2",cuenta)) + Starter.skmt.ExecNonQuery2("UPDATE HIST_FINANCIEROS SET ESTATUS = ?, ESTATUS2 = ? WHERE CREDITO = ?",Array As Object("Terminada","2",cuenta)) + Log("update4") + End If + n.Close + h.Close + f.Close + j.Close + + B4XPages.ShowPage("principal") + + ImageView1.Bitmap = LoadBitmap(File.DirAssets,"icon_22-[convertido].png") + ImageView2.Bitmap = LoadBitmap(File.DirAssets,"icon_22-[convertido].png") + ImageView3.Bitmap = LoadBitmap(File.DirAssets,"icon_22-[convertido].png") + ImageView4.Bitmap = LoadBitmap(File.DirAssets,"icon_22-[convertido].png") + Else + MsgboxAsync("Por favor captura todas las fotos","Atención") + End If + End If + End If + Else + MsgboxAsync("Falta capturar los puntos de referencia","Atención") + LogColor("estoy aqui",Colors.Green) + End If + Else + MsgboxAsync("Falta capturar comentarios","Atención") + End If + Else + MsgboxAsync("Selecciona una opción de Caracteristicas","Atención") + End If + Else + MsgboxAsync("Selecciona una opción de Tipo de vivienda","Atención") + End If + Else + MsgboxAsync("Selecciona una opción de Nivel socioeconomico","Atención") + End If + Else + MsgboxAsync("Selecciona una opción de Resultado","Atención") + End If + Else + MsgboxAsync("Selecciona una opción de Acción","Atención") + End If + Else + MsgboxAsync("Selecciona una opción de Parentesco","Atención") + End If +End Sub + +Private Sub B4XPage_CloseRequest As ResumableSub + + If p_camara.Visible Then + p_camara.Visible = False + Else + + p_w1.Visible = False + p_w2.Visible = False + p_w3.Visible = False + B4XPages.ShowPage("principal") + End If + +' Return True + Return False +End Sub + +Sub GPS_LocationChanged (Location1 As Location) + +' ubicacion.Initialize +' ubicacion.Latitude = mlat +' ubicacion.Longitude = mlon +' If logger Then Log($"${Location1.Latitude}, ${Location1.Longitude}, ${Location1.Accuracy}"$) +' laDist = Location1.DistanceTo(ubicacion) +' l_ubicacion.Text = $"Dist: $1.0{laDist} mts."$ +' Log(Location1.Latitude) +' Log(Location1.Longitude) +' l1.Initialize2(Starter.latitud,Starter.longitud) +' l2.Initialize2(mlat, mlon) +' distance = l1.DistanceTo(l2) ' resultado en metros +'' Log (distance) +'' Log(mlat & " , " & mlon) +'' Log(Starter.latitud & " , " & Starter.longitud) +' l_ubicacion.Text = $"Dist: $1.0{distance} mts."$ +' If laDist > 50 Then l_ubicacion.TextColor = Colors.Red Else l_ubicacion.TextColor = Colors.Blue + Starter.longitud = Location1.Longitude + Starter.latitud = Location1.Latitude +End Sub \ No newline at end of file diff --git a/B4J/AREstrategias.b4j b/B4J/AREstrategias.b4j new file mode 100644 index 0000000..cdedb76 --- /dev/null +++ b/B4J/AREstrategias.b4j @@ -0,0 +1,53 @@ +AppType=JavaFX +Build1=Default,b4j.example +File1=MainPage.bjl +FileGroup1=New Group +Group=Default Group +Library1=jcore +Library2=jfx +Library3=b4xpages +Module1=|relative|..\B4XMainPage +NumberOfFiles=1 +NumberOfLibraries=3 +NumberOfModules=1 +Version=8.31 +@EndOfDesignText@ +#Region Project Attributes + #MainFormWidth: 600 + #MainFormHeight: 600 +#End Region + +Sub Process_Globals + Private fx As JFX + Private MainForm As Form +End Sub + +Sub AppStart (Form1 As Form, Args() As String) + MainForm = Form1 + MainForm.Show + Dim PagesManager As B4XPagesManager + PagesManager.Initialize(MainForm) +End Sub + +'Template version: B4J-1.0 +#Region Delegates +Sub MainForm_FocusChanged (HasFocus As Boolean) + B4XPages.Delegate.MainForm_FocusChanged(HasFocus) +End Sub + +Sub MainForm_Resize (Width As Double, Height As Double) + B4XPages.Delegate.MainForm_Resize(Width, Height) +End Sub + +Sub MainForm_Closed + B4XPages.Delegate.MainForm_Closed +End Sub + +Sub MainForm_CloseRequest (EventData As Event) + B4XPages.Delegate.MainForm_CloseRequest(EventData) +End Sub + +Public Sub MainForm_IconifiedChanged (Iconified As Boolean) + B4XPages.Delegate.MainForm_IconifiedChanged(Iconified) +End Sub +#End Region \ No newline at end of file diff --git a/B4J/AREstrategias.b4j.meta b/B4J/AREstrategias.b4j.meta new file mode 100644 index 0000000..33c33ea --- /dev/null +++ b/B4J/AREstrategias.b4j.meta @@ -0,0 +1,9 @@ +ModuleBookmarks0= +ModuleBookmarks1= +ModuleBreakpoints0= +ModuleBreakpoints1= +ModuleClosedNodes0=1,4 +ModuleClosedNodes1=1 +NavigationStack=Main,MainForm_IconifiedChanged,37,0,Main,AppStart,14,6,B4XMainPage,Button1_Click,19,0,B4XMainPage,Initialize,9,0,B4XMainPage,B4XPage_Created,18,0,B4XMainPage,Class_Globals,7,0 +SelectedBuild=0 +VisibleModules=1 diff --git a/B4J/Files/MainPage.bjl b/B4J/Files/MainPage.bjl new file mode 100644 index 0000000..405b3b7 Binary files /dev/null and b/B4J/Files/MainPage.bjl differ diff --git a/B4XMainPage.bas b/B4XMainPage.bas index ecce70e..9dede92 100644 --- a/B4XMainPage.bas +++ b/B4XMainPage.bas @@ -110,20 +110,20 @@ End Sub 'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage. Private Sub b_iniciar_Click - If Usuario.Text <> "" Then - - Dim cmd As DBCommand - cmd.Initialize - cmd.Name = "select_usuario_torra" - cmd.Parameters = Array As Object(Usuario.Text, Contraseña.Text) - reqManager.ExecuteQuery(cmd , 0, "usuario") - user = Usuario.Text - Else - MsgboxAsync("Llena los datos de acceso","Atención") -' B4XPages.ShowPage ("principal") - End If - -' B4XPages.ShowPage ("principal") +' If Usuario.Text <> "" Then +' +' Dim cmd As DBCommand +' cmd.Initialize +' cmd.Name = "select_usuario_torra" +' cmd.Parameters = Array As Object(Usuario.Text, Contraseña.Text) +' reqManager.ExecuteQuery(cmd , 0, "usuario") +' user = Usuario.Text +' Else +' MsgboxAsync("Llena los datos de acceso","Atención") +'' B4XPages.ShowPage ("principal") +' End If +' + B4XPages.ShowPage ("principal") Log(Starter.latitud & Starter.longitud) End Sub diff --git a/B4i/AREstrategias.b4i b/B4i/AREstrategias.b4i new file mode 100644 index 0000000..7b2433a --- /dev/null +++ b/B4i/AREstrategias.b4i @@ -0,0 +1,46 @@ +Build1=Default,b4i.example +File1=MainPage.bil +FileGroup1=Default Group +Group=Default Group +Library1=icore +Library2=b4xpages +Module1=|relative|..\B4XMainPage +NumberOfFiles=1 +NumberOfLibraries=2 +NumberOfModules=1 +Version=6.5 +@EndOfDesignText@ +'Code module +#Region Project Attributes + #ApplicationLabel: B4i Example + #Version: 1.0.0 + 'Orientation possible values: Portrait, LandscapeLeft, LandscapeRight and PortraitUpsideDown + #iPhoneOrientations: Portrait, LandscapeLeft, LandscapeRight + #iPadOrientations: Portrait, LandscapeLeft, LandscapeRight, PortraitUpsideDown + #Target: iPhone, iPad + #ATSEnabled: True + #MinVersion: 8 +#End Region + +Sub Process_Globals + Public App As Application + Public NavControl As NavigationController + +End Sub + +Private Sub Application_Start (Nav As NavigationController) + NavControl = Nav + Dim PagesManager As B4XPagesManager + PagesManager.Initialize(NavControl) +End Sub + +'Template version: B4i-1.0 +#Region Delegates +Private Sub Application_Background + B4XPages.Delegate.Activity_Pause +End Sub + +Private Sub Application_Foreground + B4XPages.Delegate.Activity_Resume +End Sub +#End Region diff --git a/B4i/AREstrategias.b4i.meta b/B4i/AREstrategias.b4i.meta new file mode 100644 index 0000000..cca4a05 --- /dev/null +++ b/B4i/AREstrategias.b4i.meta @@ -0,0 +1,9 @@ +ModuleBookmarks0= +ModuleBookmarks1= +ModuleBreakpoints0= +ModuleBreakpoints1= +ModuleClosedNodes0=1,4 +ModuleClosedNodes1=1 +NavigationStack=Main,Application_Start,25,4,Main,Application_Foreground,34,0,Main,Process_Globals,13,0,Visual Designer,MainPage.bil,-100,1,B4XMainPage,Initialize,9,0,B4XMainPage,Button1_Click,19,0,B4XMainPage,B4XPage_Created,10,1,B4XMainPage,Class_Globals,11,0 +SelectedBuild=0 +VisibleModules=1 diff --git a/B4i/Files/mainpage.bil b/B4i/Files/mainpage.bil new file mode 100644 index 0000000..9ac93b4 Binary files /dev/null and b/B4i/Files/mainpage.bil differ