From efc76af1826dac16b4ede7bc35bece9dd7b3383a Mon Sep 17 00:00:00 2001 From: jalarakmt Date: Fri, 27 Feb 2026 17:58:18 -0600 Subject: [PATCH] VERSION 6.02.24 Se agrego el check temporal en los comentarios del cliente Se agrego Datos del cliente nuevo (Numeroint,ext,referencia) Se agrego pantalla scroll en cliente nuevo --- B4A/B4XMainPage.bas | 23 ++++- B4A/C_Cliente.bas | 12 ++- B4A/C_NuevoCliente.bas | 149 +++++++++++++++++++++---------- B4A/C_Principal.bas | 70 +++++++-------- B4A/Files/cliente.bal | Bin 74908 -> 75339 bytes B4A/Files/nuevocliente.bal | Bin 12823 -> 3261 bytes B4A/Files/panel_nuevocliente.bal | Bin 0 -> 16004 bytes B4A/Guna Vistas V3.1.b4a | 2 +- B4A/Guna Vistas V3.1.b4a.meta | 4 +- B4A/_git_tag.ps1 | 127 ++++++++++++++++++++++++++ 10 files changed, 300 insertions(+), 87 deletions(-) create mode 100644 B4A/Files/panel_nuevocliente.bal create mode 100644 B4A/_git_tag.ps1 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 cea610f3911b704b593bf4f3b88df7cc1b8d036a..830ec058b9efc3dd9c3676b9d86e031840b5ba29 100644 GIT binary patch delta 3717 zcmZ{m2~d?)6vyBBc!J*pzxUWJ%!gu@bn zvlu5bp3OL^mmQ`#G?+{FAXzfw6vhuRPGy|Ncpl?)#uIGb?}<6Ophj31-?p6(Yhew^`Q#!DD4Wt`8rfblZMg^Y`O*r9HFF`Fo1yqs|< z<1)tOjGthGGm964PIgVD&u{OUt|0_<7&qH8Nb1}hVh#^JGAcKViRvOeuwb^;&;j3BRk0W zea5wn>llAP>>~S+>?1Pwd-Ji$xA&atT?hRmBoY@qQa8m(wt>@rLWz!|L&-2i$V@zWH8p%ddvzI zKlk_nY&{mW#|{>Z{52Mykrjk#FU_jHL!12_M`fr4HcY9a2 zR!%u~)C@!05hbXfd#xqpG=K)6fJhkvu^4``0HQJK=x~S@gDh|fVsOWS2odQEvNeXB z$C9&O0R57qaYy|yZ2MXf4qphv(Wf`#h%;egvLBVS=8QstDd)oRy)%ip>DwAiI~#)8 zow0cItRlq#uH9;v;s9&^oPhgs6!C{2$UD!b!6ZyM7%Xf)u)sFSkc>i(IG@0{7iCQQ z&WYE*AAwaR0T_8M0O$VDlS`WHS`-7RMqW$Bi_N2H(=E7V zjCvN?qOl+3!c;W|kG9a7nx`}kcJ7;rt<8r}v{JI&0r+W)4Dssb*zxCCz?es8M)TzMf267*uOUr2O~Jx>KEY6T}6 z+;tymwpK>MPlq5$JDnu8fDGLDbA>cV&3wOgjv*|GPG`IrWd<25f2qNyOJP`4GDO`l z>s+IwYwg7*lG|lj3IR-+I0MCH1(IBKzu5tj@x-NMJa&aXXs4O{dpo3%;L`EvABvQu zp5riVy4)Z=q}70OhwACcyt!kvs$slu?+htbuQJt`yw^9l-3e*x(zZ0Ci#y3I+}z=W zd78_-+qnd{j}~iWx?pjC6+pVSQ|Y>nGkSHLVTexWIM-A~AYJqlXzDImLY7W3rT~qO$t0AhMqahPN?~1@{R~3l@dbI3X{%;JxLhaNS z8W+`+;flPr1u&~S46A+|hqc{(ee|oBVU(tfyRX+lwx>bJ*43%}9e{1sL$Tq%U64aJ zYq>Td)sD1MUo6}LZPZsvBD1&G13ApP~8$d|F&qkm5jWQxZA zpk0s!BK!{BiS9;yWw2Upg;wpxJE__-ruh1;q3Y}^b=JDdP>$|aKkp7O1620*Q_1>S zZR}^YVS!4$pKEtfKdbeADhImz8En`4u{jJex*t>-8!L=(H}+WsHAYUojjhv4UuRt9 Z<__0uZtHL1CaA*~F#JHD9y3c|`XBy}O(XyS delta 3605 zcmZ{m3vf+m5XaA+B;?+3UmgwDhzMpV9r1ow5(%z|ON6R~5bp#Dtw_+DrcdHgS?Q;U zCbZFNRX7MKVmhrU)e%yUp&>dMrOlMVcn{rkPHwU%O*6B}@0@SHZ}91Y<3WrE zGakZtD6u!zuzE(Nncd@!8%FQL$s))`Fpgv##dsv+QH)13b}=5qIGT7YS&Srkq;d5R zlAG~(#uFIFGM>mdj`1YMlNrCkc#6gzEeq*QHZYZOJmUn$(-==@oXB_vkGoHhEF5`KO=QCcwIGJ$@W)Ucz`OU&3GB(bjHgW zXQ=02TL@An8(6`3CF50$-(k#mF^j!_mvJ`Z_v)BtzF+qsNgpu&knu;1KW4m|cnw(& z*;+Dhm#rgSPqu;V6UG}E=c=q`t~wzb*u*%G@u!Rhs>Hd-B=CcE+DG zE?`{9cn9O1jK5&~CF3H-yL9$w>c3(GUo+lK{0-T+WP2EY$9ON}V#fQ3_me4P2gtm2 zc97V6Oot@pq`jjI*~;w}id{M0*}W5MJSLcpp{GOfWe+pHxX}$)o!X6-a1$gcp{INL zK|i$r+!nKX`Qg^2NbIn?IhOy}25Zh%z+gOgAQao3Fe}f>tzhm#k(^{O2V0&G#b5WC zbMwr2wj!C9*m$TrHm$IT$^f_q{W0xfcWZypzW~h~G{@8rH(aQM0a$p&jdOpqkPjU1 z00S}j>S*kDsR&apI?)#IKzu zd*SzeBC+SeKrB!97sITu1BQzmR&d*fH!=yr#KsU9jq9(MLO5+g2&Pn-h*I|lVP4fH zIRfz9t4K($5e>TZlMtQC&gH!2}gogaA8>k?^nQMUe(0T8995@i^R)bfXs zS}IC)bvR(l>glrn8n;xt@Zrr;aA{|hep5Rm7xulCA&&tJt!{&5*(O|c*JK@ISk*-b z))j4=E#jIV?R~e~MG%eWZo93~4czD)7587o0Amqq+}5$iVI{F92(bLN6Du>FBDFm@ ztuaOqDue}kj0ykb=hm3;$oV0-XPLt`&giEWLswA%&=wOT0DSCg8sFBh;iY{jNoJHJXYE2i?zy zSg)ro)|kov%qf1b3npqubNF6u`^0JO6K9w{ky4w0FCON=B(2gX8Aju@W|~~rOsgLm zo9W6UiyWsnlj(6?Gdb|ulW=_USZk;O@>CGP!O#(1Pb?6p6h1u+5U-b8yfK(oZp!uN zYXK5;hlEBP>RZDkj@Tdy*St)IX{t2(t@cO31xN1AE_s=-36ozK^F8{)U(5xt$kXa~ zO-=+1%jhJkD6N1Q6i`+hX(r%|*PM`~WeF8SM`VFdu`Tjuk<{(8)T#fnVX%cr5PGM65MIYQvmifu>Y6@z=Mtc1L2x zGc)XhWVHezS(FFB-;ko!Uy5PzsMeotp0b-F8t4E3 diff --git a/B4A/Files/nuevocliente.bal b/B4A/Files/nuevocliente.bal index f6e8bf11c54aaf549280bd14c90bd9c6e47838c6..2651634f87607c8a541ca1c7ab13b1d152b9eedb 100644 GIT binary patch delta 1065 zcmah{ZAep57(Qp8-hHXf&79LI)BK*^%#ReaY166IjL4u5w%c}d7v?tZrX?jN{S*xB&G`6@>wjxgC(m==j1Kw~yKM?VU z1U?++4?xaw)-Ogvp&o(1c3$M7QC_6|x06b;j%_(A$f*Ie^Thl@i{kZ$>gCWWyYb@-emu)o*8JA<{G5Cwy2dOd=WiVB zTdJM9f=&0{>9Bw0O!xBrg!OiX_hjA3s7Xwd2fJ2-fdcoJ*7{i9ucxk> z$-9F&cQ&qnm`vt<^Q4TYY`prBx#pXjUVGTrw0U8D@ss?$eem;RxKh`wT=5fQmZU3; zWJ=XsNN>-F_yI01M8Z3bqGLw6KtKrhTA(_UWNIG~o7%M7ZgNcR(MrW4AB*t;GNvw( z;`V+{3~(Y@Rd;Isy+)w*r#-q!E+Nc5G3aF`d}ywDqr&sOVLY@p{J0;o2DipbXr z8!jg44kIoh-K^cvB}2#vD@+McDd}-IWydi|I$AYlkbp(Rl#^wPxzGW!5+Da4rVvP4 z+|@q6(w1MfZxshs?7me`Dhq}W)5EHP^Z+F`(C`RQ4HYJ!S^(U^=d7cddLSDB{(XdU zsR#g32bpr9Y?@gBI!ZHiyEHm&SPIZ(&@?ro0iZ;Uh^!Q6<7VQkdPXklng4s)240q@ zw!y9)eaI+#Gs6YBzm~Owk}PwR(|YqBy>vTf?0|-*mQL7$zr!%n1a63=35GyO7w-VE mePAj?W`H!96$HM7iPLB%)*=I$aAeD7Fv+v#lHaTW?(qkCsN78e literal 12823 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 diff --git a/B4A/Files/panel_nuevocliente.bal b/B4A/Files/panel_nuevocliente.bal new file mode 100644 index 0000000000000000000000000000000000000000..9f5fd31bab7c75288e3f25554496f68f32a4e425 GIT binary patch literal 16004 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 + +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