diff --git a/B4A/B4XMainPage.bas b/B4A/B4XMainPage.bas index 68199fc..c8eb5cf 100644 --- a/B4A/B4XMainPage.bas +++ b/B4A/B4XMainPage.bas @@ -160,6 +160,7 @@ Private Sub B4XPage_Created (Root1 As B4XView) skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_MARCAS_CUOTAS (HMC_MARCA TEXT, HMC_TOTAL TEXT)") skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_CODIGO_BARRAS(CODIGOKMTS TEXT, CODIGOB TEXT, LAT TEXT, LON TEXT)") skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS ABONOS (a_usuario TEXT, a_ruta TEXT, a_cliente TEXT, a_abono TEXT, a_fecha TEXT, a_enviado TEXT)") + skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_GIRO(GIRO TEXT)") ' skmt.ExecNonQuery("drop table kmt_info") skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS kmt_info (CAT_CL_FOTO BLOB, CAT_CL_NUM_SERIEFISICO TEXT, CAT_CL_MTOCOMPRA TEXT, CAT_CL_CEDIS TEXT, CAT_CL_LAT TEXT, CAT_CL_LONG TEXT, CAT_CL_FBAJA TEXT, CAT_CL_FALTA TEXT, CAT_CL_CP TEXT, CAT_CL_EDO TEXT, CAT_CL_MUNI TEXT, CAT_CL_COLONIA TEXT, CAT_CL_CALLE2 TEXT, CAT_CL_CALLE1 TEXT, CAT_CL_NOINT TEXT, CAT_CL_NOEXT TEXT, CAT_CL_CALLE TEXT, CAT_CL_EMAIL TEXT, CAT_CL_TELEFONO TEXT, CAT_CL_ATIENTE2 TEXT, CAT_CL_ATIENDE1 TEXT, CAT_CL_NOMBRE TEXT, CAT_CL_GIRO TEXT, CAT_CL_DIAS_VISITA TEXT, CAT_CL_TIPO_RUTA TEXT, CAT_CL_RUTA TEXT, CAT_CL_CODIGO TEXT, gestion NUMERIC, CAT_CL_DIASEMANA TEXT, CAT_CL_SECUENCIA INT)") Try 'Intentamos usar "pragma_table_info" para revisar si existe la columna "CAT_CL_DIASEMANA" en la tabla diff --git a/B4A/C_NuevoCliente.bas b/B4A/C_NuevoCliente.bas index bae7574..0be087f 100644 --- a/B4A/C_NuevoCliente.bas +++ b/B4A/C_NuevoCliente.bas @@ -40,6 +40,9 @@ Sub Class_Globals Dim lat As Double = 0 Dim lon As Double = 0 Private b_ubicacion As Label + Private Label3 As Label + Private cb_giro As B4XComboBox + Dim giros As String End Sub 'You can add more parameters here. @@ -64,7 +67,18 @@ End Sub 'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage. Sub B4XPage_Appear + + 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 E_NOMBRE.Text = "" + If Not(Starter.gps.GPSEnabled) Then ToastMessageShow("Es necesario tener el GPS encendido", True) StartActivity(Starter.gps.LocationSettingsIntent) @@ -75,10 +89,12 @@ Sub B4XPage_Appear p_nuevoCliente.Width = Root.Width Subs.centraEtiqueta(Label1, Root.Width) Subs.centraEtiqueta(Label2, Root.Width) + Subs.centraEtiqueta(Label3, Root.Width) Subs.centraEtiqueta(l_sinUbicacion, Root.Width) Subs.centraEtiqueta(b_ubicacion, Root.Width) Subs.centraPanel(p_botones, Root.Width) E_NOMBRE.Left = Round(Root.Width/2)-(E_NOMBRE.Width/2) + et_direccion.Left = Round(Root.Width/2)-(E_NOMBRE.Width/2) If B4XPages.MainPage.lat_gps <> "0.0" Then GUARDA.Visible = True 'Si hay ubicaccion, mostramos el boton de guardar. @@ -93,6 +109,21 @@ Sub B4XPage_Appear ' If Starter.ubicacionActual.Latitude <> 0 Then GPS_LocationChanged(Starter.ubicacionActual) End If CallSubDelayed(Tracker, "StartFLPSmall") + + c = B4XPages.MainPage.skmt.ExecQuery("SELECT GIRO FROM CAT_GIRO order by 1") + Dim Items As List + Items.Initialize + Items.Add("SELECCIONA UNA OPCIÓN") + If c.RowCount > 0 Then + For i = 0 To c.RowCount-1 + c.Position = i + Items.Add(c.GetString("GIRO")) + Next + cb_giro.SetItems(Items) + End If + giros = "SELECCIONA UNA OPCIÓN" + c.Close + End Sub Sub GPS_LocationChanged (Location1 As Location) @@ -125,49 +156,54 @@ Sub GUARDA_Click If et_direccion.Text.Length > 3 Then If lat <> 0 Then If fototomada <> "0" Then - DateTime.DateFormat = "MM/dd/yyyy" - DateTime.Timeformat = "HHmmss" - sDate=DateTime.Date(DateTime.Now) - sTime=DateTime.Time(DateTime.Now) - Log($" //////////// Date: ${sDate} - Time: ${sTime} ////////////////"$) - 'Aqui creamos manualmete la hora con el separador de los 2 puntos porque en algunas versiones de android no respeta el formato "Timeformat = 'HH:mm:ss'" - Private hora As String = sTime.SubString2(0,2) - Private mins As String = sTime.SubString2(2,4) - Private segs As String = sTime.SubString(4) - sTime = hora&":"&mins&":"&segs - Log("////////////// sTime: "&sTime&" ////////////////") - c=B4XPages.MainPage.skmt.ExecQuery("select CAT_CL_RUTA FROM kmt_info") - c.Position=0 - no_ruta= c.GetString("CAT_CL_RUTA") - no_cliente= "N" & sTime & no_ruta - Log("++ ++ no_cliente = "&no_cliente) - c.Close - B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO kmt_info(CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO, gestion) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,0,0) ",Array As Object (no_cliente,no_ruta, E_NOMBRE.Text,"null","null","null","null","null","null","null","null","null","null","null","null","null",B4XPages.MainPage.lon_gps,B4XPages.MainPage.lat_gps)) - B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO HIST_STAY_STORE(HSS_CODIGO, HSS_IN , HSS_OUT , HSS_TOT) VALUES (?,0,0,0)", Array As Object (no_cliente)) - B4XPages.MainPage.skmt.ExecNonQuery("delete from CUENTAA") - B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO CUENTAA VALUES (?)", Array As Object(no_cliente)) - c=B4XPages.MainPage.skmt.ExecQuery("select ID_ALMACEN from CAT_ALMACEN") - If c.RowCount>0 Then - C.Position=0 - ALMACEN = C.GetString("ID_ALMACEN") + If giros <> "SELECCIONA UNA OPCIÓN" Or cb_giro.SelectedItem <> "SELECCIONA UNA OPCIÓN" Then + DateTime.DateFormat = "MM/dd/yyyy" + DateTime.Timeformat = "HHmmss" + sDate=DateTime.Date(DateTime.Now) + sTime=DateTime.Time(DateTime.Now) + Log($" //////////// Date: ${sDate} - Time: ${sTime} ////////////////"$) + 'Aqui creamos manualmete la hora con el separador de los 2 puntos porque en algunas versiones de android no respeta el formato "Timeformat = 'HH:mm:ss'" + Private hora As String = sTime.SubString2(0,2) + Private mins As String = sTime.SubString2(2,4) + Private segs As String = sTime.SubString(4) + sTime = hora&":"&mins&":"&segs + Log("////////////// sTime: "&sTime&" ////////////////") + c=B4XPages.MainPage.skmt.ExecQuery("select CAT_CL_RUTA FROM kmt_info") + c.Position=0 + no_ruta= c.GetString("CAT_CL_RUTA") + no_cliente= "N" & sTime & no_ruta + Log("++ ++ no_cliente = "&no_cliente) + c.Close + B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO kmt_info(CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO, gestion, CAT_CL_GIRO) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,0,0,?) ",Array As Object (no_cliente,no_ruta, E_NOMBRE.Text,"null","null","null","null","null","null","null","null","null","null","null","null","null",B4XPages.MainPage.lon_gps,B4XPages.MainPage.lat_gps, cb_giro.SelectedItem)) + B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO HIST_STAY_STORE(HSS_CODIGO, HSS_IN , HSS_OUT , HSS_TOT) VALUES (?,0,0,0)", Array As Object (no_cliente)) + B4XPages.MainPage.skmt.ExecNonQuery("delete from CUENTAA") + B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO CUENTAA VALUES (?)", Array As Object(no_cliente)) + c=B4XPages.MainPage.skmt.ExecQuery("select ID_ALMACEN from CAT_ALMACEN") + If c.RowCount>0 Then + C.Position=0 + ALMACEN = C.GetString("ID_ALMACEN") + End If + c.Close + c=B4XPages.MainPage.skmt.ExecQuery("select usuario from usuarioa") + c.Position = 0 + usuario = c.GetString("USUARIO") + c.Close + B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO HIST_FOTO_CLIENTE(CODIGO, ALMACEN, RUTA, NOM_FOTO) VALUES(?,?,?,?)", Array As Object(no_cliente, ALMACEN, no_ruta, fototomada)) + B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO NOVENTA (NV_CLIENTE,NV_FECHA,NV_USER,NV_MOTIVO,NV_LAT,NV_LON,NV_NOMBRE,NV_DIRECCION) VALUES(?,?,?,?,?,?,?,?) ", Array As Object (no_cliente,sDate & sTime, usuario, "NUEVO CLIENTE", lat, lon, E_NOMBRE.Text,et_direccion.Text)) + + DateTime.DateFormat = "dd/MM/yyyy" + DateTime.Timeformat = "HH:mm:ss" + sDate2=DateTime.Date(DateTime.Now) + sTime2=DateTime.Time(DateTime.Now) + + B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO CLIENTES_NUEVOS(CN_ID, CN_FECHA, CN_USER, CN_LAT, CN_LON, CN_NOMBRE, CN_DIRECCION, CN_FOTO, CN_ALMACEN, CN_RUTA, CN_GIRO) VALUES (?,?,?,?,?,?,?,?,?,?,?)",Array As String(no_cliente,sDate2 &" "&sTime2, usuario, lat, lon, E_NOMBRE.Text,et_direccion.Text, fototomada, ALMACEN, no_ruta,cb_giro.SelectedItem)) + fototomada = "0" + B4XPages.ShowPage("Principal") + CallSubDelayed(Tracker, "StartFLP") + + Else + MsgboxAsync("Por favor captura el giro del cliente","Atención") End If - c.Close - c=B4XPages.MainPage.skmt.ExecQuery("select usuario from usuarioa") - c.Position = 0 - usuario = c.GetString("USUARIO") - c.Close - B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO HIST_FOTO_CLIENTE(CODIGO, ALMACEN, RUTA, NOM_FOTO) VALUES(?,?,?,?)", Array As Object(no_cliente, ALMACEN, no_ruta, fototomada)) - B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO NOVENTA (NV_CLIENTE,NV_FECHA,NV_USER,NV_MOTIVO,NV_LAT,NV_LON,NV_NOMBRE,NV_DIRECCION) VALUES(?,?,?,?,?,?,?,?) ", Array As Object (no_cliente,sDate & sTime, usuario, "NUEVO CLIENTE", lat, lon, E_NOMBRE.Text,et_direccion.Text)) - - DateTime.DateFormat = "dd/MM/yyyy" - DateTime.Timeformat = "HH:mm:ss" - sDate2=DateTime.Date(DateTime.Now) - sTime2=DateTime.Time(DateTime.Now) - - B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO CLIENTES_NUEVOS(CN_ID, CN_FECHA, CN_USER, CN_LAT, CN_LON, CN_NOMBRE, CN_DIRECCION, CN_FOTO, CN_ALMACEN, CN_RUTA) VALUES (?,?,?,?,?,?,?,?,?,?)",Array As String(no_cliente,sDate2 &" "&sTime2, usuario, lat, lon, E_NOMBRE.Text,et_direccion.Text, fototomada, ALMACEN, no_ruta)) - fototomada = "0" - B4XPages.ShowPage("Principal") - CallSubDelayed(Tracker, "StartFLP") Else MsgboxAsync("Por favor captura la foto del cliente","Atención") @@ -279,4 +315,8 @@ Private Sub B_FOTO_Click InitializeCamera2 Subs.panelVisible(p_camara, 0, 0) fototomada = DateTime.Now & "_cliente.jpg" +End Sub + +Private Sub cb_giro_SelectedIndexChanged (Index As Int) + giros = cb_giro.SelectedItem End Sub \ No newline at end of file diff --git a/B4A/C_Principal.bas b/B4A/C_Principal.bas index 8d4ac66..fb8430e 100644 --- a/B4A/C_Principal.bas +++ b/B4A/C_Principal.bas @@ -757,6 +757,7 @@ Sub cargar_Click B4XPages.MainPage.skmt.ExecNonQuery("delete from kmt_info") B4XPages.MainPage.skmt.ExecNonQuery("delete from cod_result") + B4XPages.MainPage.skmt.ExecNonQuery("delete from CAT_GIRO") B4XPages.MainPage.skmt.ExecNonQuery("delete from BANDERA") B4XPages.MainPage.skmt.ExecNonQuery("delete from hist_gest") B4XPages.MainPage.skmt.ExecNonQuery("delete from cat_gunaprod") @@ -997,6 +998,37 @@ Sub JobDone(Job As HttpJob) End If End If + If Job.JobName = "DBRequest" Then + Dim RESULT As DBResult = B4XPages.MainPage.reqManager.HandleJob(Job) + If RESULT.Tag = "giro" Then 'query tag + For Each records() As Object In RESULT.Rows + Dim giro As String = records(RESULT.Columns.Get("CAT_GR_DESC")) + + B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO CAT_GIRO(GIRO) VALUES (?)", Array As Object (giro)) + Next + If PB2.Progress = 0 Then + PB2.Progress = 30 + S_CP.Text = "CARGANDO" + ELSE If PB2.Progress = 30 Then + PB2.Progress = 60 + ELSE IF PB2.Progress = 60 Then + PB2.Progress = 100 + S_CP.Text = "LISTO" + End If + Listo3 =1 + If Listo1 =1 And Listo2 =1 And Listo3 = 1 And Listo4 = 1 Then + B4XPage_Appear + img2.Visible=False + EJECUTANDO=0 + Else If Listo4 = 1 And Listo3 = 1 And inve = 1 Then + B4XPage_Appear + img2.Visible=False + EJECUTANDO=0 + End If + + End If + End If + If Job.JobName = "DBRequest" Then Dim RESULT As DBResult = B4XPages.MainPage.reqManager.HandleJob(Job) If RESULT.Tag = "bandera" Then 'query tag @@ -1764,6 +1796,7 @@ Sub e_ruta_EnterPressed B4XPages.MainPage.skmt.ExecNonQuery("delete from clie_act") B4XPages.MainPage.skmt.ExecNonQuery("delete from kmt_info") B4XPages.MainPage.skmt.ExecNonQuery("delete from cat_gunaprod") + B4XPages.MainPage.skmt.ExecNonQuery("delete from CAT_GIRO") B4XPages.MainPage.skmt.ExecNonQuery("delete from CAT_DETALLES_PAQ") B4XPages.MainPage.skmt.ExecNonQuery("delete from HIST_VENTAS") B4XPages.MainPage.skmt.ExecNonQuery("delete from HIST_VERIFICACION") @@ -1909,6 +1942,7 @@ Sub B_OK_PAS_Click Subs.panelVisible(p_principal, 0, 0) B4XPages.MainPage.skmt.ExecNonQuery("delete from kmt_info") B4XPages.MainPage.skmt.ExecNonQuery("delete from cod_result") + B4XPages.MainPage.skmt.ExecNonQuery("delete from CAT_GIRO") B4XPages.MainPage.skmt.ExecNonQuery("delete from hist_gest") B4XPages.MainPage.skmt.ExecNonQuery("delete from cat_gunaprod") B4XPages.MainPage.skmt.ExecNonQuery("delete from CAT_DETALLES_PAQ") diff --git a/B4A/Files/nuevocliente.bal b/B4A/Files/nuevocliente.bal index 110bc95..7743568 100644 Binary files a/B4A/Files/nuevocliente.bal and b/B4A/Files/nuevocliente.bal differ diff --git a/B4A/Subs.bas b/B4A/Subs.bas index ebc7547..aae1f2f 100644 --- a/B4A/Subs.bas +++ b/B4A/Subs.bas @@ -203,6 +203,16 @@ Sub revisaBD 'ignore kmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_FOTO_CLIENTE(CODIGO TEXT, ALMACEN TEXT, RUTA TEXT, NOM_FOTO TEXT)") kmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CLIENTES_NUEVOS(CN_ID TEXT, CN_FECHA TEXT, CN_USER TEXT, CN_LAT TEXT, CN_LON TEXT, CN_NOMBRE TEXT, CN_DIRECCION TEXT, CN_FOTO TEXT, CN_ALMACEN TEXT, CN_RUTA TEXT)") kmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS BANDERA(AUTORIZADO TEXT)") + Try 'Si no existe la columna CN_GIRO la agregamos. + kmt.ExecQuery("select count(CN_GIRO) from CLIENTES_NUEVOS") + Catch + Try + kmt.ExecNonQuery("ALTER TABLE CLIENTES_NUEVOS ADD COLUMN CN_GIRO TEXT") + Catch + LogColor("No pudimos agregar la columna CN_GIRO.", Colors.Red) + LogColor(LastException, Colors.Red) + End Try + End Try Try 'Si no existe la columna PC_ENVIO_OK la agregamos. kmt.ExecQuery("select count(PC_ENVIO_OK) from PEDIDO_CLIENTE") Catch