diff --git a/B4A/B4XMainPage.bas b/B4A/B4XMainPage.bas index b0bb6a7..d1ab47e 100644 --- a/B4A/B4XMainPage.bas +++ b/B4A/B4XMainPage.bas @@ -7,16 +7,24 @@ Version=9.85 #Region Shared Files '#CustomBuildAction: folders ready, %WINDIR%\System32\Robocopy.exe,"..\..\Shared Files" "..\Files" 'Ctrl + click to sync files: ide://run?file=%WINDIR%\System32\Robocopy.exe&args=..\..\Shared+Files&args=..\Files&FilesSync=True + 'Ctrl + click to export as zip: ide://run?File=%B4X%\Zipper.jar&Args=Project.zip '########################################################################################################### '###################### PULL ############################################################# 'Ctrl + click ide://run?file=%WINDIR%\System32\cmd.exe&Args=/c&Args=git&Args=pull '########################################################################################################### - '###################### PUSH ############################################################# - 'Ctrl + click ide://run?file=%WINDIR%\System32\WindowsPowerShell\v1.0\powershell.exe&Args=github&Args=..\..\ + '###################### PULL FORZADO ############################################################# + 'Ctrl + click Respaldar y Pull: ide://run?file=%WINDIR%\System32\cmd.exe&Args=/c&Args=start&Args=powershell.exe&Args=-ExecutionPolicy&Args=Bypass&Args=-File&Args=..\..\_sync_project.ps1 + '########################################################################################################### + '###################### GENERAR CONTEXTO LLM ##################################################### + 'Ctrl + click para Unificar: ide://run?file=%WINDIR%\System32\WindowsPowerShell\v1.0\powershell.exe&Args=-ExecutionPolicy&Args=Bypass&Args=-File&Args=..\_juntaBas.ps1&Args=%PROJECT% '########################################################################################################### '###################### PUSH TORTOISE GIT ######################################################### 'Ctrl + click ide://run?file=%WINDIR%\System32\WindowsPowerShell\v1.0\powershell.exe&Args=TortoiseGitProc&Args=/command:commit&Args=/path:"./../../"&Args=/closeonend:2 '########################################################################################################### + '###################### PUSH TORTOISE GIT CON TAG ################################################## + 'Ctrl + clic para Git: ide://run?file=%WINDIR%\System32\WindowsPowerShell\v1.0\powershell.exe&Args=-ExecutionPolicy&Args=Bypass&Args=-File&Args=..\_git_tag.ps1&Args=%22%PROJECT%%22&Args=%22%PROJECT_NAME%%22 + '########################################################################################################### + '#Macro: Title, Code bundle, ide://run?File=%ADDITIONAL%\..\B4X\CodeBundle.jar&Args=%PROJECT_NAME% #End Region 'Ctrl + click to export as zip: ide://run?File=%B4X%\Zipper.jar&Args=Project.zip @@ -222,6 +230,14 @@ Private Sub B4XPage_Created (Root1 As B4XView) Subs.agregaColumna("PEDIDO", "PE_RECALCULOTOT", "TEXT") Subs.agregaColumna("HIST_ENCUESTA", "HE_LON", "TEXT") Subs.agregaColumna("HIST_VENTAS", "HVD_FECHA", "TEXT") + Subs.agregaColumna("kmt_info3", "CAT_CL_NUMEROINT", "TEXT") + Subs.agregaColumna("kmt_info3", "CAT_CL_NUMEROEXT", "TEXT") + Subs.agregaColumna("kmt_info3", "CAT_CL_REFERENCIA", "TEXT") + Subs.agregaColumna("CLIENTES_NUEVOS", "CN_NUMEROINT", "TEXT") + Subs.agregaColumna("CLIENTES_NUEVOS", "CN_NUMEROEXT", "TEXT") + Subs.agregaColumna("CLIENTES_NUEVOS", "CN_REFERENCIA", "TEXT") + Subs.agregaColumna("COMENTARIOS", "comentario_tmp", "TEXT") + Subs.agregaColumna("kmt_info3", "encuesta", "TEXT") Subs.agregaColumna("kmt_info3", "CAT_CL_CLASIFICADOR4", "TEXT") Subs.agregaColumna("CAT_GUNAPROD", "CAT_GP_CONVERSION3", "TEXT") @@ -239,11 +255,12 @@ Private Sub B4XPage_Created (Root1 As B4XView) Subs.agregaColumna("CAT_GUNAPROD", "CAT_PA_SEGMENTAV", "TEXT") Subs.agregaColumna("CAT_GUNAPROD2", "CAT_PA_BSEGMENTA", "TEXT") Subs.agregaColumna("CAT_GUNAPROD2", "CAT_PA_SEGMENTAV", "TEXT") - Subs.agregaColumna("CLIENTES_NUEVOS", "CN_SOLICITA", "TEXT") Subs.agregaColumna("CLIENTES_NUEVOS", "CN_COLONIA", "TEXT") Subs.agregaColumna("CLIENTES_NUEVOS", "CN_TELEFONO", "TEXT") Subs.agregaColumna("CLIENTES_NUEVOS", "CN_CP", "TEXT") + Subs.agregaColumna("CLIENTES_NUEVOS", "CN_CALLE1", "TEXT") + Subs.agregaColumna("CLIENTES_NUEVOS", "CN_CALLE2", "TEXT") Subs.agregaColumna("PEDIDO", "PE_RECCANT", "TEXT") Subs.agregaColumna("FOTOS", "FECHA", "TEXT") Try 'Intentamos usar "pragma_table_info" para revisar si existe la columna "P10" en la tabla diff --git a/B4A/C_Cliente.bas b/B4A/C_Cliente.bas index e24e477..6f32617 100644 --- a/B4A/C_Cliente.bas +++ b/B4A/C_Cliente.bas @@ -482,6 +482,7 @@ Sub Class_Globals Dim totalpromos As Double Dim totalpromostotal As Double + Private chb_com As CheckBox End Sub 'You can add more parameters here. @@ -3171,6 +3172,7 @@ Sub B_IMP_Click Wait For Msgbox_Result (resultado As Int) If resultado = DialogResponse.POSITIVE Then Dim creditocod As Cursor = Starter.skmt.ExecQuery("SELECT CODIGO FROM CODIGOS_CREDITO WHERE CLIENTE IN (SELECT CUENTA FROM CUENTAA)") + Log(creditocod.RowCount) If creditocod.RowCount > 0 Then creditocod.Position = 0 Dim cs As CSBuilder @@ -7624,7 +7626,11 @@ End Sub Private Sub b_agregarcom_Click If et_comentario.Text <> "" Then - B4XPages.MainPage.skmt.ExecNonQuery($"insert into COMENTARIOS (COMENTARTIO, CLIENTE) values ('${et_comentario.Text}','${Subs.traeCliente}')"$) + If chb_com.Checked Then + B4XPages.MainPage.skmt.ExecNonQuery($"insert into COMENTARIOS (COMENTARTIO, CLIENTE,comentario_tmp) values ('${et_comentario.Text}','${Subs.traeCliente}',1)"$) + Else If chb_com.Checked = False Then + B4XPages.MainPage.skmt.ExecNonQuery($"insert into COMENTARIOS (COMENTARTIO, CLIENTE,comentario_tmp) values ('${et_comentario.Text}','${Subs.traeCliente}',0)"$) + End If Dim label1 As Label label1 = lv_comentarios.SingleLineLayout.Label @@ -8010,4 +8016,8 @@ End Sub Private Sub p_telefono_Click +End Sub + +Private Sub chb_com_CheckedChange(Checked As Boolean) + End Sub \ No newline at end of file diff --git a/B4A/C_NuevoCliente.bas b/B4A/C_NuevoCliente.bas index 1b029e9..9725d3a 100644 --- a/B4A/C_NuevoCliente.bas +++ b/B4A/C_NuevoCliente.bas @@ -190,6 +190,15 @@ Sub Class_Globals Private et_cp As EditText Private Label6 As Label Private Panel1 As Panel + Private et_calle1 As EditText + Private et_calle2 As EditText + Private scv_nuevocliente As ScrollView + Private Label9 As Label + Private et_numeroint As EditText + Private Label10 As Label + Private et_numeroext As EditText + Private Label11 As Label + Private et_referencia As EditText End Sub 'You can add more parameters here. @@ -203,6 +212,9 @@ Private Sub B4XPage_Created (Root1 As B4XView) Root = Root1 'load the layout to Root Root.LoadLayout("nuevocliente") + scv_nuevocliente.Height = Root.Height + scv_nuevocliente.Width = Root.Width + ruta = File.DirInternal If File.Exists(ruta, "kmt.db") = False Then File.Copy(File.DirAssets, "kmt.db", ruta, "kmt.db") @@ -239,6 +251,15 @@ End Sub 'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage. Sub B4XPage_Appear + + scv_nuevocliente.Panel.RemoveAllViews + scv_nuevocliente.Panel.LoadLayout("Panel_Nuevocliente") + scv_nuevocliente.Panel.Height = 1100dip +' scv_nuevocliente.Panel.Height = p_nuevoCliente.Height + Panel1.Visible = False + p_nuevoCliente.Visible = False + p_nuevoCliente.Visible = True + Panel1.Visible = True et_direccion.Text = "" E_NOMBRE.Text = "" ET_Atiende.Text = "" @@ -252,10 +273,10 @@ Sub B4XPage_Appear GUARDA.Visible = False Subs.panelVisible(p_nuevoCliente, 0, 0) Subs.panelVisible(Panel1, 0, 0) - p_nuevoCliente.Height = Root.Height +' p_nuevoCliente.Height = Root.Height p_nuevoCliente.Width = Root.Width Panel1.Width = Root.Width - Panel1.Height = Root.Height + Panel1.Height = p_nuevoCliente.Height Subs.centraEtiqueta(Label1, Root.Width) Subs.centraEtiqueta(Label5, Root.Width) Subs.centraEtiqueta(Label6, Root.Width) @@ -387,6 +408,20 @@ Sub GUARDA_Click ' Verifica si el nombre de la tienda está vacío +' If E_NOMBRE.Text = "" Then +' MsgboxAsync("Por favor captura el nombre de la Tienda","Atención") +' ' Verifica si la dirección tiene más de 3 caracteres +' Else If et_direccion.Text.Length > 3 Then +' ' Verifica si la latitud es diferente de 0 +' If lat <> 0 Then +' ' Verifica si el giro del cliente está seleccionado +' If giros <> "SELECCIONA UNA OPCIÓN" Or cb_giro.SelectedItem <> "SELECCIONA UNA OPCIÓN" Then +' ' Verifica si el encargado que atiende el negocio está capturado +' If ET_Atiende.Text <> "" Then +' If et_telefono.Text <> "" Then +' If et_colonia.Text <> "" Then +' If et_cp.Text <> "" Then + If E_NOMBRE.Text = "" Then MsgboxAsync("Por favor captura el nombre de la Tienda","Atención") ' Verifica si la dirección tiene más de 3 caracteres @@ -400,52 +435,76 @@ Sub GUARDA_Click If et_telefono.Text <> "" Then If et_colonia.Text <> "" Then If et_cp.Text <> "" Then - - DateTime.DateFormat = "MM/dd/yyyy" - DateTime.Timeformat = "HHmmss" - sDate = DateTime.Date(DateTime.Now) - sTime = DateTime.Time(DateTime.Now) - Log($" //////////// Date: ${sDate} - Time: ${sTime} ////////////////"$) - ' Aquí creamos manualmente 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 - Dim Fechacliente() As String = Regex.Split("/",sDate) - Log("////////////// sTime: "&sTime&" ////////////////") - c = Starter.skmt.ExecQuery("select CAT_CL_RUTA FROM kmt_info3") - c.Position = 0 - no_ruta = c.GetString("CAT_CL_RUTA") - no_cliente = "N" & sTime & no_ruta - Log("++ ++ no_cliente = "&no_cliente) - c.Close + If et_calle1.Text <> "" Then + If et_calle2.Text <> "" Then + If et_numeroint.Text <> "" Then + If et_numeroext.Text <> "" Then + If et_referencia.Text <> "" Then + + + + DateTime.DateFormat = "MM/dd/yyyy" + DateTime.Timeformat = "HHmmss" + sDate = DateTime.Date(DateTime.Now) + sTime = DateTime.Time(DateTime.Now) + Log($" //////////// Date: ${sDate} - Time: ${sTime} ////////////////"$) + ' Aquí creamos manualmente 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 + Dim Fechacliente() As String = Regex.Split("/",sDate) + Log("////////////// sTime: "&sTime&" ////////////////") + c = Starter.skmt.ExecQuery("select CAT_CL_RUTA FROM kmt_info3") + c.Position = 0 + no_ruta = c.GetString("CAT_CL_RUTA") + no_cliente = "N" & sTime & no_ruta + Log("++ ++ no_cliente = "&no_cliente) + c.Close - Starter.skmt.ExecNonQuery2("INSERT INTO HIST_STAY_STORE(HSS_CODIGO, HSS_IN , HSS_OUT , HSS_TOT) VALUES (?,0,0,0)", Array As Object (no_cliente)) - Starter.skmt.ExecNonQuery("delete from CUENTAA") - Starter.skmt.ExecNonQuery2("INSERT INTO CUENTAA VALUES (?)", Array As Object(no_cliente)) - c = Starter.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 = Starter.skmt.ExecQuery("select usuario from usuarioa") - c.Position = 0 - usuario = c.GetString("USUARIO") - c.Close - ' Starter.skmt.ExecNonQuery2("INSERT INTO HIST_FOTO_CLIENTE(CODIGO, ALMACEN, RUTA) VALUES(?,?,?)", Array As Object(no_cliente, ALMACEN, no_ruta)) - ' Starter.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)) + Starter.skmt.ExecNonQuery2("INSERT INTO HIST_STAY_STORE(HSS_CODIGO, HSS_IN , HSS_OUT , HSS_TOT) VALUES (?,0,0,0)", Array As Object (no_cliente)) + Starter.skmt.ExecNonQuery("delete from CUENTAA") + Starter.skmt.ExecNonQuery2("INSERT INTO CUENTAA VALUES (?)", Array As Object(no_cliente)) + c = Starter.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 = Starter.skmt.ExecQuery("select usuario from usuarioa") + c.Position = 0 + usuario = c.GetString("USUARIO") + c.Close + ' Starter.skmt.ExecNonQuery2("INSERT INTO HIST_FOTO_CLIENTE(CODIGO, ALMACEN, RUTA) VALUES(?,?,?)", Array As Object(no_cliente, ALMACEN, no_ruta)) + ' Starter.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) + DateTime.DateFormat = "dd/MM/yyyy" + DateTime.Timeformat = "HH:mm:ss" + sDate2 = DateTime.Date(DateTime.Now) + sTime2 = DateTime.Time(DateTime.Now) - Starter.skmt.ExecNonQuery2("INSERT INTO kmt_info3(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,CAT_CL_CP) 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,et_cp.Text)) - Starter.skmt.ExecNonQuery2("INSERT INTO CLIENTES_NUEVOS(CN_ID, CN_FECHA, CN_USER, CN_LAT, CN_LON, CN_NOMBRE, CN_DIRECCION, CN_ALMACEN, CN_RUTA, CN_GIRO, CN_SOLICITA,CN_COLONIA, CN_TELEFONO,CN_CP) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?)", Array As String(no_cliente, sDate2 &" "&sTime2, usuario, lat, lon, E_NOMBRE.Text, et_direccion.Text, ALMACEN, no_ruta, cb_giro.SelectedItem, ET_Atiende.Text,et_colonia.Text,et_telefono.Text,et_cp.Text)) - ' fototomada = "0" - B4XPages.ShowPage("Cliente") - CallSubDelayed(Tracker, "StartFLP") + Starter.skmt.ExecNonQuery2("INSERT INTO kmt_info3(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,CAT_CL_CP,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_NUMEROINT,CAT_CL_NUMEROEXT,CAT_CL_REFERENCIA) 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,et_cp.Text,et_calle1.Text,et_calle2.Text,et_numeroint.Text,et_numeroext.Text,et_referencia.Text)) + Starter.skmt.ExecNonQuery2("INSERT INTO CLIENTES_NUEVOS(CN_ID, CN_FECHA, CN_USER, CN_LAT, CN_LON, CN_NOMBRE, CN_DIRECCION, CN_ALMACEN, CN_RUTA, CN_GIRO, CN_SOLICITA,CN_COLONIA, CN_TELEFONO,CN_CP,CN_CALLE1,CN_CALLE2,CN_NUMEROINT,CN_NUMEROEXT,CN_REFERENCIA) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", Array As String(no_cliente, sDate2 &" "&sTime2, usuario, lat, lon, E_NOMBRE.Text, et_direccion.Text, ALMACEN, no_ruta, cb_giro.SelectedItem, ET_Atiende.Text,et_colonia.Text,et_telefono.Text,et_cp.Text,et_calle1.Text,et_calle2.Text,et_numeroint.Text,et_numeroext.Text,et_referencia.Text)) + ' fototomada = "0" + B4XPages.ShowPage("Cliente") + CallSubDelayed(Tracker, "StartFLP") + Else + MsgboxAsync("Por favor, captura la referencia","Atención") + End If + Else + MsgboxAsync("Por favor, captura el número ext","Atención") + End If + Else + MsgboxAsync("Por favor, captura el número int","Atención") + End If +' Aquí agregue la validacion de las calles + Else + MsgboxAsync("Por favor, captura Entre calle2","Atención") + End If + Else + MsgboxAsync("Por favor, captura Entre calle1","Atención") + End If +' Aquí termina la validacion de las calles Else MsgboxAsync("Por favor, debe capturar el C.P. el negocio.","Atención") End If diff --git a/B4A/C_Principal.bas b/B4A/C_Principal.bas index 72104ed..a1f0e99 100644 --- a/B4A/C_Principal.bas +++ b/B4A/C_Principal.bas @@ -753,14 +753,14 @@ Sub Subir_Click c.Position=i Dim cmd As DBCommand cmd.Initialize - cmd.Name = "insert_coments_GUNA" - cmd.Parameters = Array As Object(C.GetString("COMENTARTIO"),C.GetString("CLIENTE"),Subs.traeAlmacen,Subs.traeRuta) + cmd.Name = "insert_coments_GUNA2" + cmd.Parameters = Array As Object(C.GetString("COMENTARTIO"),C.GetString("CLIENTE"),Subs.traeAlmacen,Subs.traeRuta,c.GetInt("comentario_tmp")) B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "INS_coment") Next End If c.Close - c=Starter.skmt.ExecQuery("SELECT CN_ID, CN_FECHA , CN_USER, CN_LAT, CN_LON, CN_NOMBRE, CN_DIRECCION, CN_FOTO, CN_ALMACEN, CN_RUTA, CN_GIRO, CN_SOLICITA, CN_COLONIA, CN_TELEFONO, CN_CP FROM CLIENTES_NUEVOS") + c=Starter.skmt.ExecQuery("SELECT * FROM CLIENTES_NUEVOS") If c.RowCount>0 Then For i = 0 To c.RowCount - 1 c.Position = i @@ -780,9 +780,9 @@ Sub Subir_Click End If Dim cmd As DBCommand cmd.Initialize - cmd.Name = "insert_clientesnuevos_GUNA" - Log(c.GetString("CN_ID")&" ,"& c.GetString("CN_FECHA")&" ,"& c.GetString("CN_USER")&" ,"& c.GetString("CN_LAT")&" ,"& c.GetString("CN_LON")&" ,"& c.GetString("CN_NOMBRE")&" ,"& c.GetString("CN_DIRECCION")&" ,"&ALMACEN& c.GetString("CN_RUTA")&" ,"& "En espera"&c.GetString("CN_GIRO")&" ,"&dialetra& c.GetString("CN_SOLICITA")&" ,"& c.GetString("CN_COLONIA")&" ,"& c.GetString("CN_TELEFONO")) - cmd.Parameters = Array As Object(c.GetString("CN_ID"), c.GetString("CN_FECHA"), c.GetString("CN_USER"), c.GetString("CN_LAT"), c.GetString("CN_LON"), c.GetString("CN_NOMBRE"), c.GetString("CN_DIRECCION"),ALMACEN, c.GetString("CN_RUTA"), "En espera",c.GetString("CN_GIRO"),dialetra, c.GetString("CN_SOLICITA"), c.GetString("CN_COLONIA"), c.GetString("CN_TELEFONO"), c.GetString("CN_CP")) + cmd.Name = "insert_clientesnuevos_GUNA2" + Log(c.GetString("CN_ID")&" ,"& c.GetString("CN_FECHA")&" ,"& c.GetString("CN_USER")&" ,"& c.GetString("CN_LAT")&" ,"& c.GetString("CN_LON")&" ,"& c.GetString("CN_NOMBRE")&" ,"& c.GetString("CN_DIRECCION")&" ,"&ALMACEN& c.GetString("CN_RUTA")&" ,"& "En espera"&c.GetString("CN_GIRO")&" ,"&dialetra& c.GetString("CN_SOLICITA")&" ,"& c.GetString("CN_COLONIA")&" ,"& c.GetString("CN_TELEFONO")&" ,"& c.GetString("CN_CALLE1")&" ,"& c.GetString("CN_CALLE2")) + cmd.Parameters = Array As Object(c.GetString("CN_ID"), c.GetString("CN_FECHA"), c.GetString("CN_USER"), c.GetString("CN_LAT"), c.GetString("CN_LON"), c.GetString("CN_NOMBRE"), c.GetString("CN_DIRECCION"),ALMACEN, c.GetString("CN_RUTA"), "En espera",c.GetString("CN_GIRO"),dialetra, c.GetString("CN_SOLICITA"), c.GetString("CN_COLONIA"), c.GetString("CN_TELEFONO"), c.GetString("CN_CP"), c.GetString("CN_CALLE1"), c.GetString("CN_CALLE2"),c.GetString("CN_NUMEROINT"),c.GetString("CN_NUMEROEXT"),c.GetString("CN_REFERENCIA")) B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "inst_clientesn") Next End If @@ -1725,33 +1725,33 @@ Sub JobDone(Job As HttpJob) ' Dim Dir2 As String ' Dir = "/promotoriakmts" - c=Starter.skmt.ExecQuery("SELECT CN_ID, CN_FECHA , CN_USER, CN_LAT, CN_LON, CN_NOMBRE, CN_DIRECCION, CN_FOTO, CN_ALMACEN, CN_RUTA, CN_GIRO, CN_SOLICITA, CN_COLONIA, CN_TELEFONO, CN_CP FROM CLIENTES_NUEVOS") - If c.RowCount>0 Then - For i = 0 To c.RowCount - 1 - c.Position = i - Dim dia As Int = DateTime.GetDayOfWeek(DateTime.Now) - If dia = 2 Then - Dim dialetra As String = "LUNES" - Else If dia = 3 Then - Dim dialetra As String = "MARTES" - Else If dia = 4 Then - Dim dialetra As String = "MIERCOLES" - Else If dia = 5 Then - Dim dialetra As String = "JUEVES" - Else If dia = 6 Then - Dim dialetra As String = "VIERNES" - Else If dia = 7 Then - Dim dialetra As String = "SABADO" - End If - Dim cmd As DBCommand - cmd.Initialize - cmd.Name = "insert_clientesnuevos_GUNA" - Log(c.GetString("CN_ID")&" ,"& c.GetString("CN_FECHA")&" ,"& c.GetString("CN_USER")&" ,"& c.GetString("CN_LAT")&" ,"& c.GetString("CN_LON")&" ,"& c.GetString("CN_NOMBRE")&" ,"& c.GetString("CN_DIRECCION")&" ,"&ALMACEN& c.GetString("CN_RUTA")&" ,"& "En espera"&c.GetString("CN_GIRO")&" ,"&dialetra& c.GetString("CN_SOLICITA")&" ,"& c.GetString("CN_COLONIA")&" ,"& c.GetString("CN_TELEFONO")) - cmd.Parameters = Array As Object(c.GetString("CN_ID"), c.GetString("CN_FECHA"), c.GetString("CN_USER"), c.GetString("CN_LAT"), c.GetString("CN_LON"), c.GetString("CN_NOMBRE"), c.GetString("CN_DIRECCION"),ALMACEN, c.GetString("CN_RUTA"), "En espera",c.GetString("CN_GIRO"),dialetra, c.GetString("CN_SOLICITA"), c.GetString("CN_COLONIA"), c.GetString("CN_TELEFONO"), c.GetString("CN_CP")) - B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "inst_clientesn") - Next - End If - c.Close +' c=Starter.skmt.ExecQuery("SELECT CN_ID, CN_FECHA , CN_USER, CN_LAT, CN_LON, CN_NOMBRE, CN_DIRECCION, CN_FOTO, CN_ALMACEN, CN_RUTA, CN_GIRO, CN_SOLICITA, CN_COLONIA, CN_TELEFONO, CN_CP FROM CLIENTES_NUEVOS") +' If c.RowCount>0 Then +' For i = 0 To c.RowCount - 1 +' c.Position = i +' Dim dia As Int = DateTime.GetDayOfWeek(DateTime.Now) +' If dia = 2 Then +' Dim dialetra As String = "LUNES" +' Else If dia = 3 Then +' Dim dialetra As String = "MARTES" +' Else If dia = 4 Then +' Dim dialetra As String = "MIERCOLES" +' Else If dia = 5 Then +' Dim dialetra As String = "JUEVES" +' Else If dia = 6 Then +' Dim dialetra As String = "VIERNES" +' Else If dia = 7 Then +' Dim dialetra As String = "SABADO" +' End If +' Dim cmd As DBCommand +' cmd.Initialize +' cmd.Name = "insert_clientesnuevos_GUNA" +' Log(c.GetString("CN_ID")&" ,"& c.GetString("CN_FECHA")&" ,"& c.GetString("CN_USER")&" ,"& c.GetString("CN_LAT")&" ,"& c.GetString("CN_LON")&" ,"& c.GetString("CN_NOMBRE")&" ,"& c.GetString("CN_DIRECCION")&" ,"&ALMACEN& c.GetString("CN_RUTA")&" ,"& "En espera"&c.GetString("CN_GIRO")&" ,"&dialetra& c.GetString("CN_SOLICITA")&" ,"& c.GetString("CN_COLONIA")&" ,"& c.GetString("CN_TELEFONO")) +' cmd.Parameters = Array As Object(c.GetString("CN_ID"), c.GetString("CN_FECHA"), c.GetString("CN_USER"), c.GetString("CN_LAT"), c.GetString("CN_LON"), c.GetString("CN_NOMBRE"), c.GetString("CN_DIRECCION"),ALMACEN, c.GetString("CN_RUTA"), "En espera",c.GetString("CN_GIRO"),dialetra, c.GetString("CN_SOLICITA"), c.GetString("CN_COLONIA"), c.GetString("CN_TELEFONO"), c.GetString("CN_CP")) +' B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "inst_clientesn") +' Next +' End If +' c.Close If Job.JobName = "DBRequest" Then @@ -1780,7 +1780,7 @@ Sub JobDone(Job As HttpJob) Else Private hdsgf As Cursor = Starter.skmt.ExecQuery($"SELECT * FROM CODIGOS_CREDITO where CODIGO = '${CODIGOCREDITO}' and BANDERA = '${BANDERACREDITO}' and CLIENTE = '${CLIENTECREDITO}' "$$) If hdsgf.RowCount = 0 Then - Starter.skmt.ExecNonQuery2("INSERT INTO CODIGOS_CREDITO(CODIGO,BANDERA,CLIENTE) VALUES (?,?)", Array As Object (CODIGOCREDITO,BANDERACREDITO,CLIENTECREDITO)) + Starter.skmt.ExecNonQuery2("INSERT INTO CODIGOS_CREDITO(CODIGO,BANDERA,CLIENTE) VALUES (?,?,?)", Array As Object (CODIGOCREDITO,BANDERACREDITO,CLIENTECREDITO)) Else Log("NO ENTRO") End If @@ -3089,7 +3089,7 @@ Sub B_OK_PAS_Click If cn.RowCount > 0 Then For gh = 0 To cn.RowCount -1 cn.Position = gh - Starter.skmt.ExecNonQuery2("INSERT INTO kmt_info3(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 (cn.GetString("CN_ID"),cn.GetString("CN_RUTA"), cn.GetString("CN_NOMBRE"),"null","null","null","null","null","null","null","null","null","null","null","null","null",cn.GetString("CN_LON"),cn.GetString("CN_LAT"), cn.GetString("CN_GIRO"))) + Starter.skmt.ExecNonQuery2("INSERT INTO kmt_info3(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,CAT_CL_NUMEROINT,CAT_CL_NUMEROEXT,CAT_CL_REFERENCIA) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,0,0,?,?,?,?) ", Array As Object (cn.GetString("CN_ID"),cn.GetString("CN_RUTA"), cn.GetString("CN_NOMBRE"),"null","null","null","null","null","null","null",cn.GetString("CN_CALLE1"),cn.GetString("CN_CALLE2"),"null","null","null","null",cn.GetString("CN_LON"),cn.GetString("CN_LAT"), cn.GetString("CN_GIRO"), cn.GetString("CN_NUMEROINT"), cn.GetString("CN_NUMEROEXT"), cn.GetString("CN_REFERENCIA"))) Next End If diff --git a/B4A/Files/cliente.bal b/B4A/Files/cliente.bal index cea610f..830ec05 100644 Binary files a/B4A/Files/cliente.bal and b/B4A/Files/cliente.bal differ diff --git a/B4A/Files/nuevocliente.bal b/B4A/Files/nuevocliente.bal index f6e8bf1..2651634 100644 Binary files a/B4A/Files/nuevocliente.bal and b/B4A/Files/nuevocliente.bal differ diff --git a/B4A/Files/panel_nuevocliente.bal b/B4A/Files/panel_nuevocliente.bal new file mode 100644 index 0000000..9f5fd31 Binary files /dev/null and b/B4A/Files/panel_nuevocliente.bal differ diff --git a/B4A/Guna Vistas V3.1.b4a b/B4A/Guna Vistas V3.1.b4a index f74ab0b..06eda6b 100644 --- a/B4A/Guna Vistas V3.1.b4a +++ b/B4A/Guna Vistas V3.1.b4a @@ -294,7 +294,7 @@ Version=12.8 #Region Project Attributes #ApplicationLabel: Guna Preventa #VersionCode: 1 - #VersionName: 6.02.10 + #VersionName: 6.02.24 'SupportedOrientations possible values: unspecified, landscape or portrait. #SupportedOrientations: portrait #CanInstallToExternalStorage: False diff --git a/B4A/Guna Vistas V3.1.b4a.meta b/B4A/Guna Vistas V3.1.b4a.meta index a98e18b..3a9a2c1 100644 --- a/B4A/Guna Vistas V3.1.b4a.meta +++ b/B4A/Guna Vistas V3.1.b4a.meta @@ -23,7 +23,7 @@ ModuleBookmarks28= ModuleBookmarks29= ModuleBookmarks3= ModuleBookmarks4= -ModuleBookmarks5=7747 +ModuleBookmarks5= ModuleBookmarks6= ModuleBookmarks7= ModuleBookmarks8= @@ -88,6 +88,6 @@ ModuleClosedNodes6= ModuleClosedNodes7=6,8,9,10,11 ModuleClosedNodes8= ModuleClosedNodes9= -NavigationStack=C_Cliente,B_IMP_Click,3187,0,C_Principal,Class_Globals,0,0,Diseñador Visual,principal.bal,-100,3,Diseñador Visual,cliente.bal,-100,1,C_Principal,checaPedido,3865,0,C_Principal,connecta_LongClick,2743,0,C_Cliente,p_telefono_Click,7995,0,C_Cliente,Mandap,3510,0,C_Cliente,Impresion4,3215,6,C_Cliente,Impresion5,3666,0 +NavigationStack=C_Cliente,B_IMP_Click,3187,0,C_Principal,Class_Globals,0,0,Diseñador Visual,principal.bal,-100,3,Diseñador Visual,cliente.bal,-100,1,C_Principal,checaPedido,3865,0,C_Principal,connecta_LongClick,2743,0,C_Cliente,p_telefono_Click,7995,0,C_Cliente,Mandap,3510,0,C_Cliente,Impresion4,3215,6,C_Cliente,Impresion5,3665,0 SelectedBuild=0 VisibleModules=27,2,16,28,5,13,17,19,4,1 diff --git a/B4A/_git_tag.ps1 b/B4A/_git_tag.ps1 new file mode 100644 index 0000000..e2a9d1e --- /dev/null +++ b/B4A/_git_tag.ps1 @@ -0,0 +1,127 @@ +# --- SCRIPT DE COMMIT Y TAG (MODO IDE B4A) --- + +# 0. CONFIGURACIÓN +$HacerPush = $true # Cambia a $true para que suba los cambios a GitHub + +# Cargar librería visual para el MessageBox (por si se necesita en el Push) +Add-Type -AssemblyName System.Windows.Forms + +# 1. AUTODESCUBRIMIENTO +$projectPath = $PSScriptRoot +Write-Host "Ruta del proyecto: $projectPath" + +$b4aFileItem = Get-ChildItem -Path $projectPath -Filter "*.b4a" | Select-Object -First 1 + +if (-Not $b4aFileItem) { + Write-Host "ERROR: No hay archivo .b4a en esta carpeta." + return +} + +$projectName = $b4aFileItem.BaseName +Write-Host "Proyecto detectado: $projectName" + +# 2. LEER VERSIÓN +$versionLine = Get-Content $b4aFileItem.FullName | Select-String "#VersionName:" +if (-Not $versionLine) { + Write-Host "ERROR: Falta #VersionName en el archivo .b4a" + return +} +$version = ($versionLine -split ":")[1].Trim() +# Reemplaza cualquier espacio en blanco por un guion bajo solo para el tag +$tagName = "$version".Replace(" ", "_") + +Set-Location $projectPath + +# 3. COMMIT CON TORTOISEGIT +$oldCommit = git rev-parse HEAD 2>$null + +Write-Host "----------------------------------------" +Write-Host "Version a etiquetar: $version" +Write-Host "Abriendo ventana de TortoiseGit..." + +$pathArg = '/path:"{0}"' -f $projectPath +$msgArg = '/logmsg:"VERSION {0}"' -f $version +$cmdArg = "/command:commit" + +Start-Process "TortoiseGitProc.exe" -ArgumentList $cmdArg, $pathArg, $msgArg + +Write-Host "Esperando a que termines el commit en TortoiseGit..." +# El freno de mano: espera a que cierres la ventana +while (Get-Process "TortoiseGitProc" -ErrorAction SilentlyContinue) { + Start-Sleep -Seconds 1 +} + +$newCommit = git rev-parse HEAD 2>$null + +# 4. VALIDACIÓN +if ($oldCommit -eq $newCommit) { + Write-Host "WARNING: Commit cancelado o sin cambios detectados." + return +} + +Write-Host "Commit registrado exitosamente: $newCommit" + +# 5. GESTIÓN DE TAGS +$tagGenerado = $false + +# Revisamos si el tag ya existe localmente y lo borramos para recrearlo con el nuevo commit +if (git tag -l $tagName) { + git tag -d $tagName 2>$null | Out-Null +} + +# Creamos el tag nuevo apuntando al commit que acabamos de hacer +git tag -a $tagName -m "Release version $version" +if ($?) { $tagGenerado = $true } + +# 6. LÓGICA DE PUSH +if ($HacerPush) { + Write-Host "Conectando con GitHub..." + $remoteTagInfo = git ls-remote --tags origin $tagName + + if ($remoteTagInfo) { + # Conflicto: Ya existe en remoto + $topForm = New-Object System.Windows.Forms.Form + $topForm.TopMost = $true + $topForm.Opacity = 0 + $topForm.ShowInTaskbar = $false + $topForm.StartPosition = "CenterScreen" + $topForm.Show() + $topForm.Activate() + + [System.Console]::Beep(1000, 200) + + $msgBody = "El tag '$tagName' YA EXISTE en GitHub.`n`nDeseas SOBRESCRIBIRLO?`n`nSi = Borrar anterior y actualizar (Force Push).`nNo = Subir solo codigo (mantener tag viejo)." + $msgTitle = "Conflicto de Versiones - $projectName" + + $respuesta = [System.Windows.Forms.MessageBox]::Show($topForm, $msgBody, $msgTitle, "YesNo", "Warning") + $topForm.Dispose() + + if ($respuesta -eq "Yes") { + Write-Host "Sobrescribiendo tag en GitHub (Force Push)..." + git push origin + git push origin $tagName --force + } else { + Write-Host "Conservando tag anterior en GitHub..." + git push origin + } + } else { + # Tag Nuevo + Write-Host "Subiendo codigo y tag nuevo a GitHub..." + git push origin --follow-tags + } +} else { + Write-Host "Push OMITIDO (Switch de control apagado)." +} + +# 7. REPORTE FINAL PARA EL IDE +$EstadoPush = if($HacerPush) { "SI" } else { "NO (Modo de prueba local)" } +$EstadoTag = if($tagGenerado) { "SI ($tagName)" } else { "NO (Error al generar)" } + +Write-Host "" +Write-Host "========================================" +Write-Host " REPORTE DE VERSION " +Write-Host "========================================" +Write-Host " PROYECTO : $projectName" +Write-Host " TAG CREADO : $EstadoTag" +Write-Host " PUSH GITHUB: $EstadoPush" +Write-Host "========================================" \ No newline at end of file