diff --git a/B4A/B4XMainPage.bas b/B4A/B4XMainPage.bas index 7295b48..71327a0 100644 --- a/B4A/B4XMainPage.bas +++ b/B4A/B4XMainPage.bas @@ -5,19 +5,25 @@ Type=Class Version=9.85 @EndOfDesignText@ #Region Shared Files - '#CustomBuildAction: folders ready, %WINDIR%\System32\Robocopy.exe,"..\..\Shared Files" "..\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 '########################################################################################################### + '###################### 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 + '########################################################################################################### '###################### PUSH ############################################################# 'Ctrl + click ide://run?file=%WINDIR%\System32\WindowsPowerShell\v1.0\powershell.exe&Args=github&Args=..\..\ '########################################################################################################### '###################### 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 + '########################################################################################################### #End Region 'Faltan: @@ -261,6 +267,7 @@ Sub B4XPage_Appear Log(LastException) LogColor("Error en CAT_VARIABLES", Colors.red) End Try + If empresa.ToUpperCase.Contains("REPARTO") Then p_datos_reparto.Top = p_datos.Top p_datos_reparto.Left = p_datos.Left @@ -291,7 +298,11 @@ Sub B4XPage_Appear End Try ' b_enviar.Enabled = False - Log(empresa) + LogColor("#####################################################", Colors.red) + LogColor($"########## ${empresa} ###############"$, Colors.red) + LogColor("#####################################################", Colors.red) + + empresa = empresa.Replace(" ", "_") p_empresa.Visible = False If empresa.ToUpperCase.Contains("MARIANA") Then @@ -305,33 +316,33 @@ Sub B4XPage_Appear b_enviar.Enabled = True Log("Cargamos GUNA") else if empresa.ToUpperCase.Contains("GUNA_REPARTO") Then - b_enviar.Text = "Enviar Guna_Reparto" - b_valida.Text = "Validar Guna_Reparto" + b_enviar.Text = "Enviar Guna Reparto" + b_valida.Text = "Validar Guna Reparto" b_enviar.Enabled = True Log("Cargamos Guna_Reparto") else if empresa.ToUpperCase.Contains("INTMEX_REPARTO") Then - b_enviar.Text = "Enviar Intmex_Reparto" - b_valida.Text = "Validar Intmex_Reparto" + b_enviar.Text = "Enviar Intmex Reparto" + b_valida.Text = "Validar Intmex Reparto" b_enviar.Enabled = True Log("Cargamos Intmex_Reparto") else if empresa.ToUpperCase.Contains("MARQUEZ_REPARTO") Then - b_enviar.Text = "Enviar Marquez_Reparto" - b_valida.Text = "Validar Marquez_Reparto" + b_enviar.Text = "Enviar Marquez Reparto" + b_valida.Text = "Validar Marquez Reparto" b_enviar.Enabled = True Log("Cargamos Marquez_Reparto") else if empresa.ToUpperCase.Contains("MAZAPA_REPARTO") Then - b_enviar.Text = "Enviar Mazapa_Reparto" - b_valida.Text = "Validar Mazapa_Reparto" + b_enviar.Text = "Enviar Mazapa Reparto" + b_valida.Text = "Validar Mazapa Reparto" b_enviar.Enabled = True Log("Cargamos Mazapa_Reparto") else if empresa.ToUpperCase.Contains("DURAKELO_REPARTO") Then - b_enviar.Text = "Enviar Durakelo_Reparto" - b_valida.Text = "Validar Durakelo_Reparto" + b_enviar.Text = "Enviar Durakelo Reparto" + b_valida.Text = "Validar Durakelo Reparto" b_enviar.Enabled = True Log("Cargamos Durakelo_Reparto") else if empresa.ToUpperCase.Contains("PROFINA_REPARTO") Then - b_enviar.Text = "Enviar Profina_Reparto" - b_valida.Text = "Validar Profina_Reparto" + b_enviar.Text = "Enviar Profina Reparto" + b_valida.Text = "Validar Profina Reparto" b_enviar.Enabled = True Log("Cargamos Profina_Reparto") else if empresa.ToUpperCase.Contains("INTMEX") Then @@ -517,7 +528,7 @@ Sub ActualizarEtiquetasReparto Else totalcantped = 0 End If - Log(r5.GetString("HVD_RECHAZOCANT") &" - "& totalcantped) +' Log(r5.GetString("HVD_RECHAZOCANT") &" - "& totalcantped) rescant = rescant + ((r5.GetString("HVD_COSTO_TOT")/(r5.GetString("HVD_CANT")))*((r5.GetString("HVD_RECHAZOCANT") - totalcantped))) r6.Close Next @@ -580,7 +591,7 @@ Sub ActualizarEtiquetasReparto r5.Position = 0 rescant4 = r5.GetString("HVD_COSTO_TOT") End If - Log(rescant4) +' Log(rescant4) r5.Close Catch Log(LastException) diff --git a/B4A/C_Guna_Reparto.bas b/B4A/C_Guna_Reparto.bas new file mode 100644 index 0000000..d78046a --- /dev/null +++ b/B4A/C_Guna_Reparto.bas @@ -0,0 +1,240 @@ +B4A=true +Group=Default Group +ModulesStructureVersion=1 +Type=Class +Version=12.8 +@EndOfDesignText@ +Sub Class_Globals + Private Root As B4XView 'ignore + Private xui As XUI 'ignore + Dim reqManager As DBRequestManager + Dim b, c, d, e, f As Cursor + Dim usuario, almacen As String + Dim datos_iguales, almacen, carga, paso, conteo, porcentaje, perfil, cuantos, NUMERO_PEDIDO, usuario, cuantos_exib, cuantos_pedidosc, cuantos_noventa, cuantos_ped, cuantos_pedido As String + Dim l_ruta As Label +End Sub + +'Initializes the object. You can add parameters to this method if needed. +Public Sub Initialize + reqManager.Initialize(Me, "http://keymon.net:1782") + l_ruta.Initialize("l") + Return Me +End Sub + +Sub envia + ' NOVENTA + l_ruta.text = Subs.traeRuta + c = B4XPages.MainPage.skmt.ExecQuery("SELECT NV_CLIENTE,NV_FECHA,NV_USER,NV_MOTIVO,NV_COMM,NV_LAT,NV_LON, NV_FOTO,NV_FOTO2, NV_REPROGRAMAR FROM NOVENTA") + D=B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) AS CUANTOS_NOVENTA FROM NOVENTA") + If c.RowCount>0 Then + For i=0 To c.RowCount -1 + c.Position=i + Dim fotoenvio() As Byte = C.GetBlob("NV_FOTO2") + Dim cmd As DBCommand + cmd.Initialize + cmd.Name = "insert_reparto_REPG_GUNA_VN2" + cmd.Parameters = Array As Object(C.GetString("NV_CLIENTE"),C.GetString("NV_FECHA"),C.GetString("NV_USER"),C.GetString("NV_MOTIVO"),C.GetString("NV_COMM"),C.GetString("NV_LAT"),C.GetString("NV_LON"), almacen, l_ruta.Text, C.GetString("NV_REPROGRAMAR"),fotoenvio) + reqManager.ExecuteCommand(cmd , "inst_noventa_") + Next + c.Close + End If + d.Position=0 + cuantos_noventa = D.GetString("CUANTOS_NOVENTA") + d.Close + + 'PAGARES. + Dim pa As Cursor=B4XPages.MainPage.skmt.ExecQuery("select PA_ALMACEN,PA_RUTA_REP,PA_RUTAPREV,PA_FECHA_PREV,PA_CAPTURA,PA_MONTO,PA_USUARIO,PA_CLIENTE,IFNULL(PA_CANCELADO,0) AS PA_CANCELADO from PAGARES") + If pa.RowCount > 0 Then + For pag = 0 To pa.RowCount - 1 + pa.Position = pag + Dim cmd As DBCommand + cmd.Initialize + cmd.Name = "insert_reparto_PAGARES_GUNA_VN" + Dim fechaenvio() As String + fechaenvio = Regex.Split(" ",pa.GetString("PA_FECHA_PREV")) +' Log(fechaenvio(0)) + Dim fechaenvio1() As String + fechaenvio1 = Regex.Split("/",fechaenvio(0)) + Dim fechaano As String = fechaenvio1(2).SubString(2) + Dim fechareal As String = fechaenvio1(0)&"/"&fechaenvio1(1)&"/"&fechaano +' Log(fechareal) + Dim fechacap() As String + fechacap = Regex.Split("/",pa.GetString("PA_CAPTURA")) + Dim fechacapano As String = fechacap(2).SubString(2) + Dim fechacapreal As String = fechacap(0)&"/"&fechacap(1)&"/"&fechacapano + If pa.GetString("PA_CANCELADO") = "2" Then + cmd.Parameters = Array As Object(pa.GetString("PA_CLIENTE"),pa.GetString("PA_MONTO"),fechacapreal,pa.GetString("PA_ALMACEN"),pa.GetString("PA_RUTAPREV"),pa.GetString("PA_RUTA_REP"),fechareal,pa.GetString("PA_USUARIO"),2) + Else + cmd.Parameters = Array As Object(pa.GetString("PA_CLIENTE"),pa.GetString("PA_MONTO"),fechacapreal,pa.GetString("PA_ALMACEN"),pa.GetString("PA_RUTAPREV"),pa.GetString("PA_RUTA_REP"),fechareal,pa.GetString("PA_USUARIO"),"") + End If + reqManager.ExecuteCommand(cmd , "ins_pagares") + Next + End If + pa.Close + + 'ABONOS + d = B4XPages.MainPage.skmt.ExecQuery("SELECT RUTAA FROM RUTAA") + d.Position = 0 + Dim ab As Cursor = B4XPages.MainPage.skmt.ExecQuery($"SELECT * from ABONOS where a_enviado is null and a_tipoabono IS NULL"$) + Log(ab.RowCount) + If ab.RowCount > 0 Then + For i=0 To ab.RowCount -1 + ab.Position = i +' Dim ab1 As Cursor = B4XPages.MainPage.skmt.ExecQuery($"SELECT SUM(a_abono) AS a_abono from ABONOS where a_cliente = '${ab.GetString("a_cliente")}' and a_tipoabono IS NULL"$) + Dim ab1 As Cursor = B4XPages.MainPage.skmt.ExecQuery($"SELECT a_abono from ABONOS where a_cliente = '${ab.GetString("a_cliente")}' and a_tipoabono IS NULL"$) + ab1.Position = 0 + + Dim cmd As DBCommand + cmd.Initialize + cmd.Name = "insert_abono_REP_GUNA_VN2" + cmd.Parameters = Array As Object( ab.GetString("a_usuario"), ab.GetString("a_ruta"), ab.GetString("a_cliente"), ab.GetString("a_abono"), ab.GetString("a_fecha"),almacen,"REPARTO",d.GetString("RUTAA"), "", ab.GetString("TIPO_PAGO"),ab.GetString("a_ticket"),ab.GetString("a_numpago")) + reqManager.ExecuteCommand(cmd , $"ins_abonosPendientes_${ab.GetString("a_cliente")}"$) + ab1.Close + Log($"ins_abonosPendientes_${ab.GetString("a_cliente")}"$) + Next + End If + ab.Close + d.Close + + 'ABONOS NUEVOS + d = B4XPages.MainPage.skmt.ExecQuery("SELECT RUTAA FROM RUTAA") + d.Position = 0 + Dim ab As Cursor = B4XPages.MainPage.skmt.ExecQuery($"SELECT * from ABONOS where a_enviado is null and a_tipoabono IS NOT NULL"$) + Log(ab.RowCount) + If ab.RowCount > 0 Then + For i=0 To ab.RowCount -1 + ab.Position = i +' Dim ab1 As Cursor = B4XPages.MainPage.skmt.ExecQuery($"SELECT SUM(a_abono) AS a_abono from ABONOS where a_cliente = '${ab.GetString("a_cliente")}' and a_tipoabono IS NOT NULL"$) + Dim ab1 As Cursor = B4XPages.MainPage.skmt.ExecQuery($"SELECT a_abono from ABONOS where a_cliente = '${ab.GetString("a_cliente")}' and a_tipoabono IS NOT NULL"$) + ab1.Position = 0 + + Dim cmd As DBCommand + cmd.Initialize + cmd.Name = "insert_abono_REP_GUNA_VN2" + cmd.Parameters = Array As Object( ab.GetString("a_usuario"), ab.GetString("a_ruta"), ab.GetString("a_cliente"), ab.GetString("a_abono"), ab.GetString("a_fecha"),almacen,"REPARTO",d.GetString("RUTAA"), "1", ab.GetString("TIPO_PAGO"),ab.GetString("a_ticket"),ab.GetString("a_numpago") ) + reqManager.ExecuteCommand(cmd , $"ins_abonosPendientes_${ab.GetString("a_cliente")}"$) + ab1.Close + Log($"ins_abonosPendientes_${ab.GetString("a_cliente")}"$) + Next + End If + ab.Close + d.Close + +' pedido + c=B4XPages.MainPage.skmt.ExecQuery("SELECT PE_TIPO, PE_RUTA, PE_CEDIS, PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_FECHA, PE_USUARIO, PE_CLIENTEOR, PE_CAJAS, PE_BCAJAS, CONSECUTIVO, FECHA_PREV, RUTA_REP, PE_REGALO FROM PEDIDO") + If c.RowCount>0 Then + For i=0 To c.RowCount -1 + c.Position=i + Dim cmd As DBCommand + cmd.Initialize + cmd.Name = "insert_pedido_REP_GUNA_VN" + cmd.Parameters = Array As Object(c.GetString("PE_TIPO"), c.GetString("PE_RUTA"), c.GetString("PE_CEDIS"), c.GetString("PE_COSTO_TOT"), c.GetString("PE_COSTOU"), c.GetString("PE_CANT"), c.GetString("PE_PRONOMBRE"), c.GetString("PE_PROID"), c.GetString("PE_CLIENTE"), c.GetString("PE_FECHA"), c.GetString("PE_USUARIO"), c.GetString("PE_CLIENTEOR"), c.GetString("PE_CAJAS"), c.GetString("PE_BCAJAS"), c.GetString("CONSECUTIVO"), c.GetString("FECHA_PREV"), c.GetString("RUTA_REP"), c.GetString("PE_REGALO")) + reqManager.ExecuteCommand(cmd , "ins_pedido_Inmtex") + Next + c.Close + End If + + 'TABULADOR + c = B4XPages.MainPage.skmt.ExecQuery("SELECT VEINTE, DIEZ, CINCO, DOS, PESO, CENTAVO, TOTAL FROM TABULADOR_MONEDAS") + d = B4XPages.MainPage.skmt.ExecQuery("SELECT RUTAA FROM RUTAA") + b = B4XPages.MainPage.skmt.ExecQuery("SELECT ID_ALMACEN FROM CAT_ALMACEN") + f = B4XPages.MainPage.skmt.ExecQuery("SELECT HVD_FECHA FROM HIST_VENTAS") + d.Position = 0 + b.Position = 0 + f.Position = 0 + If c.RowCount > 0 Then + For i = 0 To c.RowCount - 1 + c.Position=i + Dim cmd As DBCommand + Dim fechatabulador() As String = Regex.Split(" ", f.GetString("HVD_FECHA")) + + Dim fechatabulador3 As String = fechatabulador(0) + cmd.Initialize + cmd.Name = "insert_tabulador_monedas_GUNA_VN" + cmd.Parameters = Array As Object(d.GetString("RUTAA"), b.GetString("ID_ALMACEN"),c.GetString("VEINTE"),c.GetString("DIEZ"),c.GetString("CINCO"),c.GetString("DOS"),c.GetString("PESO"),c.GetString("CENTAVO"),fechatabulador3) + reqManager.ExecuteCommand(cmd , "ins_tabulador_mon") + Next + c.Close + d.Close + b.Close + f.Close + End If + c = B4XPages.MainPage.skmt.ExecQuery("SELECT MIL, QUINIENTOS, DOCIENTOS, CIEN, CINCUENTA, VEINTE FROM TABULADOR_BILLETES") + d = B4XPages.MainPage.skmt.ExecQuery("SELECT RUTAA FROM RUTAA") + b = B4XPages.MainPage.skmt.ExecQuery("SELECT ID_ALMACEN FROM CAT_ALMACEN") + f = B4XPages.MainPage.skmt.ExecQuery("SELECT HVD_FECHA FROM HIST_VENTAS") + d.Position = 0 + b.Position = 0 + f.Position = 0 + If c.RowCount > 0 Then + For i = 0 To c.RowCount - 1 + c.Position=i + Dim cmd As DBCommand + Dim fechatabulador() As String = Regex.Split(" ", f.GetString("HVD_FECHA")) + Dim fechatabulador3 As String = fechatabulador(0) + cmd.Initialize + cmd.Name = "insert_tabulador_billetes_GUNA_VN" + cmd.Parameters = Array As Object(b.GetString("ID_ALMACEN"), d.GetString("RUTAA"),c.GetString("MIL"),c.GetString("QUINIENTOS"),c.GetString("DOCIENTOS"),c.GetString("CIEN"),c.GetString("CINCUENTA"),c.GetString("VEINTE"),fechatabulador3) + reqManager.ExecuteCommand(cmd , "ins_tabulador_bill") + Next + c.Close + d.Close + b.Close + f.Close + End If + 'FIN TABULADOR + + c = B4XPages.MainPage.skmt.ExecQuery("SELECT IFNULL(HVD_RECHAZOCANT,0) AS HVD_RECHAZOCANT, HVD_CLIENTE, HVD_PROID, HVD_FECHA, HVD_CODPROMO, HVD_NUM_TICKET, HVD_CANT, CONSECUTIVO, BCAJAS, CANTC FROM HIST_VENTAS where HVD_PRONOMBRE <> 'Cobranza Pendiente'") + If c.RowCount > 0 Then + For i=0 To c.RowCount -1 + c.Position = i + Log(c.GetString("HVD_CLIENTE")) + Private d4 As Cursor = B4XPages.MainPage.skmt.ExecQuery($"SELECT CAT_CL_RUTA FROM kmt_info WHERE CAT_CL_CODIGO = '${c.GetString("HVD_CLIENTE")}'"$) + d4.Position = 0 + Log(d4.GetString("CAT_CL_RUTA")) + Private d5 As Cursor = B4XPages.MainPage.skmt.ExecQuery($"SELECT IFNULL(Sum(PE_CANT),0) AS PE_CANT FROM PEDIDO WHERE PE_CLIENTEOR = '${c.GetString("HVD_CLIENTE")}' AND PE_PROID = '${c.GetString("HVD_PROID")}' AND CONSECUTIVO = '${c.GetString("CONSECUTIVO")}'"$) + d5.Position = 0 + Private restacant As String = d5.GetString("PE_CANT") + d5.Close + Dim fecha1() As String = Regex.Split(" ", c.GetString("HVD_FECHA")) + Dim fecha3 As String = fecha1(0) + Log(fecha3) + Dim hora() As String = Regex.Split("\.", fecha1(1)) + Log(hora(0)) + Dim sDate, sTime As String + DateTime.DateFormat = "dd/MM/yyyy" + DateTime.TimeFormat = "HH:mm:ss" + sDate = DateTime.Date(DateTime.Now) + sTime = DateTime.Time(DateTime.Now) + If c.GetString("HVD_RECHAZOCANT") <> "0" Then + Log((c.GetString("HVD_RECHAZOCANT")-restacant)) + cmd.Initialize + cmd.Name = "update_HVD_GUNA_VN2" + cmd.Parameters = Array As String(c.GetString("HVD_RECHAZOCANT"),sDate& " "& sTime,1,Subs.traeUsuario, c.GetString("HVD_CLIENTE"), c.GetString("HVD_PROID"),fecha3&" "&hora(0), d4.GetString("CAT_CL_RUTA"),almacen,l_ruta.Text,c.GetString("HVD_CODPROMO"),c.GetString("HVD_NUM_TICKET"), c.GetString("HVD_CANT")) + reqManager.ExecuteCommand(cmd, "update_hvd") + Log("ENVIE RECHAZO") + Else + cmd.Initialize + cmd.Name = "update_HVD_GUNA_VN2" + Log( c.GetString("CANTC")& c.GetString("HVD_CLIENTE")& c.GetString("HVD_PROID")&fecha3&" "&hora(0)& d4.GetString("CAT_CL_RUTA")&almacen&l_ruta.Text&c.GetString("HVD_CODPROMO")&c.GetString("HVD_NUM_TICKET")& c.GetString("HVD_CANT")) + cmd.Parameters = Array As String("","","",Subs.traeUsuario, c.GetString("HVD_CLIENTE"), c.GetString("HVD_PROID"),fecha3&" "&hora(0), d4.GetString("CAT_CL_RUTA"),almacen,l_ruta.Text,c.GetString("HVD_CODPROMO"),c.GetString("HVD_NUM_TICKET"), c.GetString("HVD_CANT")) + reqManager.ExecuteCommand(cmd, "update_hvd") + End If + d4.Close + Next + End If + c.Close +' Dim cmd As DBCommand +' cmd.Initialize +' cmd.Name = "insert_drop_rep_GUNA_VN" +' cmd.Parameters = Array As Object(Subs.dameUsuarioDeDB, l_ruta.Text, almacen, l_ctast.text, Subs.traeEntregados, Subs.traeRechazados, "ENVIO") +' reqManager.ExecuteCommand(cmd , "inst_drop") +' ToastMessageShow("Se Actualizaran los datos, Este proceso podria tardar hasta un minuto, gracias "& l_ruta.text , True) +End Sub + +' Nuevo método para inicializar el manager con el Target correcto +Public Sub ConfigurarYEnviar(ServidorURL As String) + ' 'Me' aquí es C_Intmex, asegurando que C_Intmex.JobDone sea llamado. + reqManager.Initialize(Me, ServidorURL) + envia ' Llama a la función de envío original de C_Intmex +End Sub \ No newline at end of file diff --git a/B4A/C_Intmex_Reparto.bas b/B4A/C_Intmex_Reparto.bas index 017f199..45a540f 100644 --- a/B4A/C_Intmex_Reparto.bas +++ b/B4A/C_Intmex_Reparto.bas @@ -39,7 +39,7 @@ Sub envia d.Position=0 cuantos_noventa = D.GetString("CUANTOS_NOVENTA") d.Close - + 'Buscamos ordenes a reprogramar. Dim r As Cursor =B4XPages.MainPage.skmt.ExecQuery("select * from noventa where nv_reprogramar = 1") If r.RowCount > 0 Then @@ -81,7 +81,7 @@ Sub envia fechacap = Regex.Split("/",pa.GetString("PA_CAPTURA")) Dim fechacapano As String = fechacap(2).SubString(2) Dim fechacapreal As String = fechacap(0)&"/"&fechacap(1)&"/"&fechacapano - + cmd.Parameters = Array As Object(pa.GetString("PA_CLIENTE"),pa.GetString("PA_MONTO"),fechacapreal,pa.GetString("PA_ALMACEN"),pa.GetString("PA_RUTAPREV"),pa.GetString("PA_RUTA_REP"),fechareal,pa.GetString("PA_USUARIO")) reqManager.ExecuteCommand(cmd , "ins_pagares") Next @@ -112,8 +112,7 @@ Sub envia Next End If ab.Close - - + c=B4XPages.MainPage.skmt.ExecQuery("SELECT * FROM hist_ventas WHERE HVD_RECHAZO = 1 ") If c.RowCount>0 Then For i=0 To c.RowCount -1 @@ -233,7 +232,7 @@ Public Sub ConfigurarYEnviar(ServidorURL As String) End Sub Sub JobDone(Job As HttpJob) - Log("JOBDONE INTMEX") + Log("JOBDONE INTMEX REPARTO") Log(reqManager.link) If reqManager.reqsList.IsInitialized Then 'Si tenemos lista de requests, la procesamos. If reqManager.reqsList.IndexOf(Job.tag) <> -1 Then diff --git a/B4A/C_Marquez.bas b/B4A/C_Marquez.bas new file mode 100644 index 0000000..102d170 --- /dev/null +++ b/B4A/C_Marquez.bas @@ -0,0 +1,552 @@ +B4A=true +Group=Default Group +ModulesStructureVersion=1 +Type=Class +Version=12.8 +@EndOfDesignText@ +Sub Class_Globals + Private Root As B4XView 'ignore + Private xui As XUI 'ignore + Dim reqManager As DBRequestManager + Dim cmd As DBCommand + Dim datos_iguales, almacen, carga, paso, conteo, porcentaje, perfil, cuantos, NUMERO_PEDIDO, usuario, cuantos_exib, cuantos_pedidosc, cuantos_noventa, cuantos_ped, cuantos_pedido As String + Dim e1, c, d, d3, d9 As Cursor + Dim l_ruta, L_ABORDO, l_porvisitar As Label + Dim sDate,sTime As String + Dim userpiezas As String + Dim T3, T4 As Timer + Dim enviando As Boolean = False + Dim validando As Boolean = False +End Sub + +'You can add more parameters here. +Public Sub Initialize As Object +' reqManager.Initialize(Me, "http://keymon.lat:1781") + reqManager.Initialize(Me, "http://keymon.net:1781") + l_ruta.Initialize("") + L_ABORDO.Initialize("") + l_porvisitar.Initialize("") + T4.Initialize("T4", 3000) + T4.Enabled = False +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 + +End Sub + +'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage. + +Sub envia + carga = "SUBIR" + almacen = Subs.traeAlmacen + l_ruta.TEXT = Subs.traeRuta +' p_mandaInfo.Width = Root.Width +' p_mandaInfo.Height = Root.Height +' P1.Visible = True +' P1.Left = (p_mandaInfo.Width/2) - (P1.Width/2) +' P1.top = (p_mandaInfo.Height/2) - (P1.Height/2) +' p_mandaInfo.Visible = True +' P1.BringToFront +' p_mandaInfo.BringToFront + 'trabajar.Visible = False +' NUEVO.Visible =False +' BUSCA.Visible=False +' connecta.Visible=False +' Subir.Visible=False +' cargar.Visible=False +' L_P_1.Visible = False +' S_CC.Visible = False +' L_P_3.Visible = False +' S_CH.Visible = False +' PB1.Visible = False +' Resumen.Visible= False +' L_P_2.Text = "Envio de Pedidos" +' L_P_3.Text = "Envio de Pedidos" +' S_CH.Text = "EN PROCESO" +' S_CP.Text = "EN PROCESO" +' PB1.Progress = 0 +' PB2.Progress = 0 + 'c=skmt.ExecQuery("SELECT sum(IFNULL(PE_DESC,0)) as DESCUENTO FROM PEDIDO") + 'c.Position =0 + 'If c.GetString("DESCUENTO") > 0 And PASO = 0 Then + 'P1.Visible = True + 'ELSE IF c.GetString("DESCUENTO") = 0 Then + paso = 1 + 'End If + If paso = 1 Then + B4XPages.MainPage.skmt.ExecNonQuery2("delete from PEDIDO WHERE PE_PRONOMBRE = ? ", Array As Object("N/A") ) + B4XPages.MainPage.skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE not In (select PE_CLIENTE from pedido)") + c=B4XPages.MainPage.skmt.ExecQuery("select usuario from usuarioa") + c.Position = 0 + usuario = c.GetString("USUARIO") + c.Close +' c=B4XPages.MainPage.skmt.ExecQuery("select HGDATE, HGLAT, HGLON from HIST_GPS") +' If c.RowCount>0 Then +' For i=0 To c.RowCount -1 +' c.Position=i +' Dim cmd As DBCommand +' cmd.Initialize +' cmd.Name = "UPDATE_MARQUEZ_ACTUAL2_GPS" +' cmd.Parameters = Array As Object(L_MONTOD.Text, L_CUANTOST.Text, l_cuantosc.Text,l_porvisitar.TEXT,c.GetString("hglat"),c.GetString("hglon"),batterystatus(0),LPT, STEYIN, STEYOUT,almacen,l_ruta.Text ) +' reqManager.ExecuteCommand(cmd , "update_gps") +' Next +' End If +' c.Close + + ' ENVIO DE LOS CODIGOS QR + 'c=skmt.ExecQuery2("SELECT CAT_CL_NUM_SERIEFISICO,CAT_CL_CODIGO ,CAT_CL_LONG,CAT_CL_LAT, CAT_CL_FOTO FROM kmt_info where CAT_CL_NUM_SERIEFISICO = ?", Array As String("OK")) + c=B4XPages.MainPage.skmt.ExecQuery("SELECT CODIGOKMTS, CODIGOB, LAT, LON FROM HIST_CODIGO_BARRAS" ) + If c.RowCount>0 Then + For i=0 To c.RowCount -1 + c.Position=i + Dim cmd As DBCommand + cmd.Initialize + cmd.Name = "insert_QR_2_MARQUEZ" + cmd.Parameters = Array As Object(C.GetString("CODIGOKMTS"),C.GetString("CODIGOB"),C.GetString("LON"),C.GetString("LAT"),almacen,l_ruta.text ) + reqManager.ExecuteCommand(cmd , "ins_QR") + Next + End If + c.Close + + c=B4XPages.MainPage.skmt.ExecQuery("SELECT CAT_CL_NUM_SERIEFISICO, CAT_CL_CODIGO, CAT_CL_LONG, CAT_CL_LAT, CAT_CL_FOTO FROM kmt_info where CAT_CL_NUM_SERIEFISICO IS NOT NULL") + If c.RowCount>0 Then + For i=0 To c.RowCount -1 + c.Position=i + 's=skmt.ExecQuery2("SELECT HIST_VI_IMAGEN FROM HIST_VISITAS WHERE HIST_VI_CREDITO =?", Array As String (c.GetString("HIST_VI_CREDITO"))) + 's.Position =0 +' foto1 = c.GetBlob("CAT_CL_FOTO") + Dim cmd As DBCommand + cmd.Initialize + cmd.Name = "insert_QR_MARQUEZ" + cmd.Parameters = Array As Object(C.GetString("CAT_CL_NUM_SERIEFISICO"),C.GetString("CAT_CL_CODIGO"),C.GetString("CAT_CL_LONG"),C.GetString("CAT_CL_LAT"),almacen,l_ruta.text ) + reqManager.ExecuteCommand(cmd , "ins_QR") + Next + End If + c.Close + + 'Envio de Pagares + c=B4XPages.MainPage.skmt.ExecQuery("SELECT * FROM PAGARES") + If c.RowCount>0 Then + For i=0 To c.RowCount -1 + c.Position=i + Dim cmd As DBCommand + cmd.Initialize + cmd.Name = "insert_pagares_MARQUEZ" + cmd.Parameters = Array As Object(C.GetString("PA_ALMACEN"),Subs.traeRuta2(c.GetString("PA_CLIENTE")),C.GetString("PA_FECHA"),C.GetString("PA_CAPTURA"),C.GetString("PA_MONTO"),C.GetString("PA_USUARIO"),C.GetString("PA_CLIENTE") ) + reqManager.ExecuteCommand(cmd , "ins_pagares") + Next + End If + c.Close + + ' CLIENTES NUEVOS +' Dim fotocn() As Byte +' Dim Dirp As String = File.DirInternal +' Dim Dir As String +' Dim Dir2 As String +' Dir = "/promotoriakmts" + + c=B4XPages.MainPage.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 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_MARQUEZ3" + 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")) + reqManager.ExecuteCommand(cmd , "inst_clientesn") + Next + End If + c.Close + +' c=B4XPages.MainPage.skmt.ExecQuery("SELECT HE_CLIE, HE_RES, HE_FECHA, HE_TIPO FROM HIST_ENCUESTA") +' If c.RowCount>0 Then +' For i=0 To c.RowCount -1 +' c.Position=i +' Dim cmd As DBCommand +' cmd.Initialize +' cmd.Name = "insert_encuesta_INTMEX" +' cmd.Parameters = Array As Object(C.GetString("HE_CLIE"),C.GetString("HE_RES"),C.GetString("HE_FECHA"), c.GetString("HE_TIPO")) +' reqManager.ExecuteCommand(cmd , "inst_noventa") +' Next +' End If +' c.Close + + ' PEDIDO_CLIENTE + Dim PCNoArts As String + Dim PCMonto As String + c = B4XPages.MainPage.skmt.ExecQuery("SELECT PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT, PC_COSTO_SIN, PC_RUTA, PC_ALMACEN, PC_FACTURA FROM PEDIDO_CLIENTE WHERE PC_CLIENTE <> '1' ") + d = B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDOSC FROM PEDIDO_CLIENTE WHERE PC_CLIENTE <> 1 ") + If c.RowCount > 0 Then + For i = 0 To c.RowCount - 1 + c.Position = i + Dim cmd As DBCommand + cmd.Initialize + cmd.Name = "insert_pedidos_MARQUEZ" + PCNoArts = c.GetString("PC_NOART") + PCMonto = c.GetString("PC_MONTO") + cmd.Parameters = Array As Object(c.GetString("PC_CLIENTE"), c.GetString("PC_FECHA"), c.GetString("PC_USER"), c.GetString("PC_NOART"), c.GetString("PC_MONTO"), c.GetString("PC_LON"), c.GetString("PC_LAT"), almacen, Subs.traeRuta2(c.GetString("PC_CLIENTE")), c.GetString("PC_COSTO_SIN"), c.GetString("PC_FACTURA")) + reqManager.ExecuteCommand(cmd , "ins_pedidos") + Log(">>>>>> INSERT PEDIDO_CLIENTE") + Next + End If + c.Close + d.Position = 0 + cuantos_pedidosc = d.GetString("CUANTOS_PEDIDOSC") + d.Close + + ' PEDIDO + c = B4XPages.MainPage.skmt.ExecQuery("SELECT PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO, PE_COSTO_SIN, PE_RUTA, PE_DESC, PE_FOLIO, PE_CANTC, PE_BCAJAS FROM PEDIDO WHERE PE_FOLIO <> 'RECARGA'") + d = B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDO FROM PEDIDO") + If c.RowCount > 0 Then + For i = 0 To c.RowCount - 1 + c.Position = i + Dim cmd As DBCommand + cmd.Initialize + cmd.Name = "insert_pedido2_MARQUEZ" 'CON TOTALES INCLUIDOS + Log(c.GetString("PE_CEDIS")&", "&almacen&", "&c.GetString("PE_COSTO_TOT")&", "&c.GetString("PE_COSTOU")&", "&c.GetString("PE_CANT")&", "&c.GetString("PE_PRONOMBRE")&", "&c.GetString("PE_PROID")&", "&c.GetString("PE_CLIENTE")&", "&c.GetString("PE_FECHA")&", "&c.GetString("PE_USUARIO")&", "&Subs.traeRuta2(c.GetString("PE_CLIENTE"))&", "& c.GetString("PE_COSTO_SIN")&", "&c.GetString("PE_DESC")&", "&c.GetString("PE_FOLIO")&", "& almacen) + cmd.Parameters = Array As Object(c.GetString("PE_CEDIS"),almacen,c.GetString("PE_COSTO_TOT"),c.GetString("PE_COSTOU"),c.GetString("PE_CANT"),c.GetString("PE_PRONOMBRE"),c.GetString("PE_PROID"),c.GetString("PE_CLIENTE"),c.GetString("PE_FECHA"),c.GetString("PE_USUARIO"),Subs.traeRuta2(c.GetString("PE_CLIENTE")), c.GetString("PE_COSTO_SIN"),c.GetString("PE_DESC"),c.GetString("PE_FOLIO"),c.GetString("PE_CANTC"),c.GetString("PE_BCAJAS")) + reqManager.ExecuteCommand(cmd , $"ins_pedidosPendientes_prods_${c.GetString("PE_CLIENTE")}_${c.GetString("PE_PROID")}"$) +' Log($">>>> INS_PEDIDO= ${C.GetString("PE_CEDIS")},${ALMACEN},${C.GetString("PE_COSTO_TOT")},${C.GetString("PE_COSTOU")},${C.GetString("PE_CANT")}, ${C.GetString("PE_PRONOMBRE")}, ${C.GetString("PE_PROID")}, ${C.GetString("PE_CLIENTE")}, ${C.GetString("PE_FECHA")}, ${C.GetString("PE_USUARIO")}, ${C.GetString("PE_RUTA")}, ${C.GetString("PE_COSTO_SIN")}, ${C.GetString("PE_DESC")}, ${c.GetString("PE_FOLIO")}, ${PCNoArts}, ${PCMonto}"$) +' cmd.Name = "insert_pedido_INTMEX" ' SIN TOTALES INCLUIDOS +' cmd.Parameters = Array As Object(C.GetString("PE_CEDIS"),ALMACEN,C.GetString("PE_COSTO_TOT"),C.GetString("PE_COSTOU"),C.GetString("PE_CANT"),C.GetString("PE_PRONOMBRE"),C.GetString("PE_PROID"),C.GetString("PE_CLIENTE"),C.GetString("PE_FECHA"),C.GetString("PE_USUARIO"),C.GetString("PE_RUTA"), C.GetString("PE_COSTO_SIN"),C.GetString("PE_DESC"),c.GetString("PE_FOLIO")) +' reqManager.ExecuteCommand(cmd , "ins_pedido") + Next + End If + c.Close + d.Position=0 + cuantos_pedido = D.GetString("CUANTOS_PEDIDO") + d.Close + + ' NOVENTA + c=B4XPages.MainPage.skmt.ExecQuery("SELECT NV_CLIENTE,NV_FECHA,NV_USER,NV_MOTIVO,NV_COMM,NV_LAT,NV_LON FROM NOVENTA") + D=B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) AS CUANTOS_NOVENTA FROM NOVENTA") + If c.RowCount>0 Then + For i=0 To c.RowCount -1 + c.Position=i + Dim cmd As DBCommand + cmd.Initialize + cmd.Name = "insert_noventa_MARQUEZ" + cmd.Parameters = Array As Object(C.GetString("NV_CLIENTE"),C.GetString("NV_FECHA"),C.GetString("NV_USER"),C.GetString("NV_MOTIVO"),C.GetString("NV_COMM"),C.GetString("NV_LAT"),C.GetString("NV_LON"), almacen, Subs.traeRuta2(c.GetString("NV_CLIENTE"))) + reqManager.ExecuteCommand(cmd , "inst_noventa") + Next + End If + c.Close + d.Position=0 + cuantos_noventa = D.GetString("CUANTOS_NOVENTA") + d.Close + + ' GEO CERCA + c=B4XPages.MainPage.skmt.ExecQuery("Select HGCLIENTE, HGDATE, HGLAT, HGLON from HIST_GEOCERCA") + If c.RowCount>0 Then + For i=0 To c.RowCount -1 + c.Position=i + Dim cmd As DBCommand + cmd.Initialize + cmd.Name = "insert_geocerca_MARQUEZ" + cmd.Parameters = Array As Object(C.GetString("HGCLIENTE"),C.GetString("HGDATE"),C.GetString("HGLAT"),C.GetString("HGLON")) + reqManager.ExecuteCommand(cmd , "inst_noventa") + Next + End If + c.Close + + ' LO DEL LIKE + c=B4XPages.MainPage.skmt.ExecQuery("Select HFCLIENTE, HFALIAS,HFRUTA,HFALMACEN from HIST_FACE") + If c.RowCount>0 Then + For i=0 To c.RowCount -1 + c.Position=i + Dim cmd As DBCommand + cmd.Initialize + cmd.Name = "insert_face_like_MARQUEZ" + cmd.Parameters = Array As Object(C.GetString("HFCLIENTE"),C.GetString("HFALIAS"),C.GetString("HFRUTA"),C.GetString("HFALMACEN")) + reqManager.ExecuteCommand(cmd , "inst_noventa") + Next + End If + c.Close + + ' DROP +' t1.Initialize("T1", 30000) ' 1000 = 1 second +' t1.Enabled = True +' Dim sDate,sTime As String +' DateTime.DateFormat = "MM/dd/yyyy" +' sDate=DateTime.Date(DateTime.Now) +' sTime=DateTime.Time(DateTime.Now) +' Dim cmd As DBCommand +' cmd.Initialize +' cmd.Name ="insert_drop_MARQUEZ" +' cmd.Parameters = Array As Object(usuario,l_ruta.Text,sDate & sTime, l_porvisitar.Text,l_drop.Text,l_efectiva.Text,l_cuantosc.Text,l_cuantosn.Text, L_MONTOD.Text,"ENVIO",almacen,Application.VersionName) +' reqManager.ExecuteCommand(cmd , "inst_noventa") + '' img2.Visible =True +' porcentaje = Round(100/ (cuantos_noventa + cuantos_pedido + cuantos_pedidosc + 1)) +' If Starter.marcaCel <> "Sony" Then ToastMessageShow("Se Actualizaran los datos, Este proceso podria tardar hasta un minuto, gracias "& l_ruta.text , True) + +' 'CUESTIONARIOS +' c = B4XPages.MainPage.skmt.ExecQuery($"select * from cuestionario"$) +' Private rutaActual As String = Subs.traeRuta +' If c.RowCount > 0 Then +' For x = 0 To c.RowCount - 1 +' c.Position = x +' Dim cmd As DBCommand +' cmd.Initialize +' cmd.Name = "insert_CUESTIONARIO_INTMEX" +' cmd.Parameters = Array As Object(c.GetString("Q_IDCLIENTE"), rutaActual, ALMACEN, c.GetString("Q_FECHA"), c.GetString("Q_IDPREGUNTA"), c.GetString("Q_PREGUNTA"), c.GetString("Q_IDRESPUESTA"), C.GetString("Q_RESPUESTA")) +' reqManager.ExecuteCommand(cmd , "ins_cuestionario") +' Next +' End If +' c.Close + + c = B4XPages.MainPage.skmt.ExecQuery("SELECT * FROM PEDIDO_CLIENTE WHERE PC_CLIENTE <> 01") + If c.RowCount > 0 Then + For i = 0 To c.RowCount - 1 + c.Position = i + Dim cmd As DBCommand + cmd.Initialize + cmd.Name = "select_piezas_MARQUEZ" + cmd.Parameters = Array As Object(c.GetString("PC_CLIENTE"), almacen,l_ruta.Text) + userpiezas = c.GetString("PC_CLIENTE") + reqManager.ExecuteQuery(cmd , 0, "piezas") + Next + End If + End If + T4.Initialize("T4", 3000) + T4.Enabled = True +End Sub + +Sub JobDone(Job As HttpJob) + Log("JOBDONE MARQUEZ") + If reqManager.reqsList.IsInitialized Then 'Si tenemos lista de requests, la procesamos. + LogColor($">>>>>>>>>> Llega ${Job.tag} <<<<<<<<<<"$, Colors.Blue) + If reqManager.reqsList.IndexOf(Job.tag) <> -1 Then + reqManager.reqsList.RemoveAt(reqManager.reqsList.IndexOf(Job.tag)) +' LogColor($">>>>>> Quitamos ${Job.tag}"$, Colors.Blue) + End If + LogColor(">>>>>> " & reqManager.reqsList.Size & " - " & reqManager.reqsList, Colors.Blue) + End If + If Job.Success = False Then + LogColor("############################################", Colors.red) + LogColor("#### Error: " & Job.tag & " : " & Job.ErrorMessage, Colors.red) + LogColor("############################################", Colors.red) + Else +' Log(3) + LogColor("JobDone: '" & reqManager.HandleJob(Job).tag & "' - Registros: " & reqManager.HandleJob(Job).Rows.Size, Colors.RGB(0,160,0)) 'Mod por CHV - 211027 + If Job.JobName = "DBRequest" Then + Dim RESULT As DBResult = reqManager.HandleJob(Job) + If reqManager.reqsList.IsInitialized Then 'Si tenemos lista de requests, la procesamos. + If reqManager.reqsList.IndexOf(RESULT.tag) <> -1 Then + reqManager.reqsList.RemoveAt(reqManager.reqsList.IndexOf(RESULT.tag)) + LogColor($"*** Quitamos ${RESULT.tag}"$, Colors.Magenta) + T4.Initialize("T4", 2000) + End If + LogColor(">>>>>> " & reqManager.reqsList.Size & " - " & reqManager.reqsList, Colors.red) + End If + End If + If Job.JobName = "DBRequest" Then + Dim RESULT As DBResult = reqManager.HandleJob(Job) + If RESULT.Tag = "ins_pedidos" Then + For Each records() As Object In RESULT.Rows +' Log("==========================REGISTROS="&RESULT.Rows) + For Each k As String In RESULT.Columns.Keys + Log(RESULT.Tag & ": " & k & ": " & records(RESULT.Columns.Get(k))) + Next + Next + End If + Dim resultado As DBResult = reqManager.HandleJob(Job) + If resultado.Tag = "piezas" Then 'query tag +' B4XPages.MainPage.picking.cl_picking.Clear + Dim piezasexiste As Int + sDate=DateTime.Date(DateTime.Now) + sTime=DateTime.Time(DateTime.Now) + For Each records() As Object In resultado.Rows + piezasexiste = records(resultado.Columns.Get("COUNT(*)")) + Log(piezasexiste) + DateTime.DateFormat = "MM/dd/yyyy" + DateTime.TimeFormat = "HH:mm:ss" + sDate=DateTime.Date(DateTime.Now) + sTime=DateTime.Time(DateTime.Now) + If piezasexiste = 0 Then + Dim PCNoArts As String + Dim PCMonto As String + c = B4XPages.MainPage.skmt.ExecQuery2("SELECT * FROM PEDIDO_CLIENTE WHERE PC_CLIENTE = ? AND PC_CLIENTE <> 1", Array As String(userpiezas)) + If c.RowCount > 0 Then + c.Position = 0 + PCNoArts = c.GetString("PC_NOART") + PCMonto = c.GetString("PC_MONTO") + End If + Dim cmd As DBCommand + cmd.Initialize + cmd.Name = "insert_HVC_MARQUEZ" + cmd.Parameters = Array As Object((sDate & " " & sTime), userpiezas, PCNoArts, PCMonto, almacen, l_ruta.Text) + reqManager.ExecuteCommand(cmd , "insert_hvc") +' reqManager.ExecuteCommand(cmd , $"ins_abonosPendientes_${ab.GetString("a_cliente")}"$) + End If + Next + End If + + Dim RESULT As DBResult = reqManager.HandleJob(Job) +' If RESULT.Tag = "valida_pedido" Then 'query tag +' For Each records() As Object In RESULT.Rows +' Dim CUANTOSP As Int = records(RESULT.Columns.Get("CUANTOSP")) +' If cuantos_pedido <= CUANTOSP Then +' ' ToastMessageShow("rojo val ok 1 cuantosp." , True) +' datos_iguales = "ok" +' ToastMessageShow("INFO OK", False) +' Else +'' If Starter.marcaCel <> "Sony" Then ToastMessageShow("No se cargo bien la info P. Sync Nuevamente" & CUANTOSP & " " & cuantos_pedido, True) +' ToastMessageShow("ENVIAR DATOS (K-2)", False) +' End If +' Next +' End If + If RESULT.Tag = "valida_pedido" Then 'query tag + Subs.logJobDoneResultados(RESULT) + For Each records() As Object In RESULT.Rows + Dim CUANTOSP As Int = records(RESULT.Columns.Get("CUANTOSP")) + Log(CUANTOSP) + B4XPages.MainPage.l_vProds2.Text = $"${CUANTOSP}/${cuantos_pedido}"$ + If cuantos_pedido <= CUANTOSP Then + ' ToastMessageShow("rojo val ok 1 cuantosp." , True) + datos_iguales = "ok" +' S_CP.Text = "INFO OK" + ToastMessageShow("INFO OK", False) + Else +' S_CP.Text = "ENVIAR DATOS (K-2)" + ToastMessageShow($"No se cargo bien la info de pedido.${CRLF}Envíe nuevamente: "$ & CUANTOSP & "/" & cuantos_pedido, True) + ToastMessageShow("ENVIAR DATOS (K-2)", True) + Log("No se cargo bien la info de pedido. Envíe nuevamente: " & CUANTOSP & "/" & cuantos_pedido) + End If + Next + End If + + If RESULT.Tag = "valida_pedidoc" Then 'query tag + Subs.logJobDoneResultados(RESULT) + For Each records() As Object In RESULT.Rows + Dim CUANTOSC As Int = records(RESULT.Columns.Get("CUANTOSC")) + B4XPages.MainPage.l_vPedidos2.Text = $"${CUANTOSC}/${cuantos_pedidosc}"$ + If cuantos_pedidosc = CUANTOSC Then + ' ToastMessageShow("rojo val ok 1 cuantosp." , True) + datos_iguales = "ok" + Else + ToastMessageShow($"No se cargo bien la info de pedido_cliente.${CRLF}Envíe nuevamente: "$ & CUANTOSC & "/" & cuantos_pedidosc, True) + Log("No se cargo bien la info de pedido_cliente. Envíe nuevamente: " & CUANTOSC & "/" & cuantos_pedidosc) + End If + Next + End If + + If RESULT.Tag = "valida_noventa" Then 'query tag + Subs.logJobDoneResultados(RESULT) + For Each records() As Object In RESULT.Rows + Dim CUANTOSN As Int = records(RESULT.Columns.Get("CUANTOSN")) + B4XPages.MainPage.l_vNoVenta2.Text = $"${CUANTOSN}/${cuantos_noventa}"$ + If cuantos_noventa = CUANTOSN Then + ' ToastMessageShow("rojo val ok 1 cuantosp." , True) + datos_iguales = "ok" + Else + ToastMessageShow($"No se cargo bien la info de NoVenta.${CRLF}Envíe nuevamente: "$ & CUANTOSN & "/" & cuantos_noventa, True) + Log("No se cargo bien la info de NoVenta. Envíe nuevamente:" & CUANTOSN & "/" & cuantos_noventa) + End If + Next + End If + + Dim RESULT As DBResult = reqManager.HandleJob(Job) + If RESULT.Tag = "ins_pedido" Then 'query tag + For Each records() As Object In RESULT.Rows +' PB2.Progress = PB2.Progress + 5 +' S_CP.Text = "SUBIENDO" + Next +' PB2.Progress = 100 +' S_CP.Text = "REVISANDO ..." +' Log("5") + End If + + Dim RESULT As DBResult = reqManager.HandleJob(Job) + If RESULT.Tag = "ins_cuestionario" Then 'query tag + Subs.logJobDoneResultados(RESULT) + End If + End If + End If +' Log(reqManager.reqsList.size) + If reqManager.reqsList.size = 0 Then + T4.Enabled = True + Else + T4.Enabled = False + End If + Job.Release +End Sub + +Sub valida + validando = True + almacen = Subs.traeAlmacen + d = B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDO FROM PEDIDO") + d.Position = 0 + cuantos_pedido = d.GetString("CUANTOS_PEDIDO") + + d = B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDOSC FROM PEDIDO_CLIENTE") + d.Position = 0 + cuantos_pedidosc = d.GetString("CUANTOS_PEDIDOSC") + + d = B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) AS CUANTOS_NOVENTA FROM NOVENTA") + d.Position = 0 + cuantos_noventa = d.GetString("CUANTOS_NOVENTA") + d.Close + + cmd.Initialize + cmd.Name = "select_cuantos_pedido_MARQUEZ" + cmd.Parameters = Array As Object(almacen,l_ruta.text) + reqManager.ExecuteQuery(cmd , 0, "valida_pedido") + + cmd.Initialize + cmd.Name = "select_cuantos_noventa_MARQUEZ" + cmd.Parameters = Array As Object(almacen,l_ruta.text) + reqManager.ExecuteQuery(cmd , 0, "valida_noventa") + + cmd.Initialize + cmd.Name = "select_cuantos_pedidoc_MARQUEZ" + cmd.Parameters = Array As Object(almacen,l_ruta.text) + reqManager.ExecuteQuery(cmd , 0, "valida_pedidoc") + Log("http://keymon.net:1781") + + B4XPages.MainPage.l_vPedidos2.Text = "" + B4XPages.MainPage.l_vProds2.Text = "" + B4XPages.MainPage.l_vNoVenta2.Text = "" +End Sub + +Sub T4_Tick + If reqManager.reqsList.size = 0 Then ' Si ya no hay consultas pendientes ... + B4XPages.MainPage.p_progressDialog.Visible = False + If enviando Then ' Si terminamos de enviar pedido ... + Sleep(200) + B4XPages.MainPage.l_progressDialog.Text = "Validando " ' Mostramos el panel de progreso. + B4XPages.MainPage.p_progressDialog.Visible = False + valida ' Iniciamos la validación + enviando = False + End If + If validando Then + validando = False + Sleep(300) + 'Mostramos el panel de Validación. + B4XPages.MainPage.p_validacion.Visible = True + End If + End If +End Sub + +' Nuevo método para inicializar el manager con el Target correcto +Public Sub ConfigurarYEnviar(ServidorURL As String) + ' 'Me' aquí es C_Intmex, asegurando que C_Intmex.JobDone sea llamado. + reqManager.Initialize(Me, ServidorURL) + envia ' Llama a la función de envío original de C_Intmex +End Sub \ No newline at end of file diff --git a/B4A/DBCheck.b4a.meta b/B4A/DBCheck.b4a.meta index b3fde6c..a548915 100644 --- a/B4A/DBCheck.b4a.meta +++ b/B4A/DBCheck.b4a.meta @@ -38,8 +38,8 @@ ModuleBreakpoints6= ModuleBreakpoints7= ModuleBreakpoints8= ModuleBreakpoints9= -ModuleClosedNodes0=2,6 -ModuleClosedNodes1=6,7,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27 +ModuleClosedNodes0= +ModuleClosedNodes1=2,6,7,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27 ModuleClosedNodes10=3,6 ModuleClosedNodes11=3 ModuleClosedNodes12=4 @@ -58,6 +58,6 @@ ModuleClosedNodes6= ModuleClosedNodes7= ModuleClosedNodes8=3,4 ModuleClosedNodes9=5,6,7,8 -NavigationStack=C_Mazapa_Reparto,envia,297,0,C_Mazapa_Reparto,ConfigurarYEnviar,303,0,C_Mazapa_Reparto,JobDone,322,0,B4XMainPage,b_enviar_Click,629,0,B4XMainPage,B4XPage_Appear,262,0,Diseñador Visual,MainPage.bal,-100,1,B4XMainPage,ActualizarEtiquetasReparto,659,6,Main,Activity_Create,30,0,Main,Process_Globals,16,0,Main,Globals,20,0 +NavigationStack=Diseñador Visual,MainPage.bal,-100,3,C_Intmex_Reparto,JobDone,228,1,C_Intmex_Reparto,envia,211,0,B4XMainPage,B4XPage_Created,141,0,Main,Globals,21,0,C_Intmex_Reparto,Class_Globals,0,0,C_Intmex,Initialize,20,0,C_Intmex,envia,30,0,B4XMainPage,B4XPage_Appear,292,6,B4XMainPage,ActualizarEtiquetasReparto,581,6 SelectedBuild=0 VisibleModules=1,18,6,19,7,3,15,11,13,2 diff --git a/B4A/Files/mainpage.bal b/B4A/Files/mainpage.bal index 6b73d86..dfc96ce 100644 Binary files a/B4A/Files/mainpage.bal and b/B4A/Files/mainpage.bal differ 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 diff --git a/B4A/_juntaBas.ps1 b/B4A/_juntaBas.ps1 index 0149f9f..30e34be 100644 --- a/B4A/_juntaBas.ps1 +++ b/B4A/_juntaBas.ps1 @@ -1,43 +1,127 @@ -# SCRIPT: _juntaBas.ps1 - Versión con Manifiesto para LLM -$OutputFile="_CODIGO_COMPLETO_PARA_LLM.txt" +# SCRIPT: _juntaBas_Master_FinalIA.ps1 +# FIX: Corregida sintaxis de comillas y concatenación de tags XML. +# OBJETIVO: Fuente de verdad para IA con navegación ultra estructurada. -# Eliminar el archivo anterior si existe -Remove-Item -Path $OutputFile -ErrorAction SilentlyContinue +$ErrorActionPreference = 'SilentlyContinue' +$Dir = Get-Location +$LT = [char]60; $GT = [char]62; $SL = [char]47 +$NL = [Environment]::NewLine -Write-Host "Iniciando fusion para LLM..." +Write-Output '--- GENERANDO MASTER IA DEFINITIVO (FIX ESTRUCTURAL) ---' -# 1. Obtener la lista de archivos primero para el Manifiesto -$files = Get-ChildItem -Path ".\*" -Include @("*.bas", "*.b4a", "*.j") +# 1. PARSEO DEL PROYECTO .B4A +$b4a = Get-ChildItem -Path ".\*" -Include "*.b4a" -Recurse | Select-Object -First 1 +$Name = 'App'; $Ver = '0.0'; $ModulosValidos = @(); $Librerias = @() -# --- GENERACIÓN DEL MANIFIESTO (TABLA DE CONTENIDO) --- -Add-Content -Path $OutputFile -Value "'======================================================================================" -Encoding UTF8 -Add-Content -Path $OutputFile -Value "' MANIFIESTO DEL PROYECTO - Generado el $(Get-Date -Format 'yyyy-MM-dd HH:mm')" -Encoding UTF8 -Add-Content -Path $OutputFile -Value "' Total de archivos: $($files.Count)" -Encoding UTF8 -Add-Content -Path $OutputFile -Value "'======================================================================================" -Encoding UTF8 - -foreach ($file in $files) { - $lines = (Get-Content $file.FullName).Count - Add-Content -Path $OutputFile -Value "' [ ] Archivo: $($file.Name) ($lines líneas)" -Encoding UTF8 -} -Add-Content -Path $OutputFile -Value "'======================================================================================`n" -Encoding UTF8 - -# 2. Itera y vuelca el contenido de los archivos -$files | ForEach-Object { - $currentFile = $_.Name - Write-Host "Procesando: $currentFile" - - # Encabezado de sección - Add-Content -Path $OutputFile -Value "'======================================================================================" -Encoding UTF8 - Add-Content -Path $OutputFile -Value "// ARCHIVO_INICIO: ${currentFile}" -Encoding UTF8 - Add-Content -Path $OutputFile -Value "'======================================================================================`n" -Encoding UTF8 - - # Contenido con codificación UTF8 - Get-Content -Encoding UTF8 -Path $_.FullName -Raw | Add-Content -Path $OutputFile -Encoding UTF8 - - # Delimitador de fin - Add-Content -Path $OutputFile -Value "`n'======================================================================================" -Encoding UTF8 - Add-Content -Path $OutputFile -Value "// ARCHIVO_FIN: ${currentFile}" -Encoding UTF8 - Add-Content -Path $OutputFile -Value "'======================================================================================`n" -Encoding UTF8 +if ($b4a) { + $lines = [System.IO.File]::ReadAllLines($b4a.FullName) + foreach ($L in $lines) { + if ($L -match '#ApplicationLabel:\s*(.*)') { $Name = $Matches[1].Trim() } + if ($L -match '#VersionName:\s*(.*)') { $Ver = $Matches[1].Trim() } + if ($L -match '^Module\d+=(.*)') { + $m = [System.IO.Path]::GetFileName($Matches[1].Trim()) + if (-not $m.EndsWith(".bas") -and $m -ne "Main") { $m += ".bas" } + $ModulosValidos += $m + } + if ($L -match '^Library\d+=(.*)') { $Librerias += $Matches[1].Trim() } + } } -Write-Host "¡Listo! Archivo $OutputFile generado con éxito." \ No newline at end of file +$OutName = "_" + $Name + "_" + $Ver + "_IA.md" +$OutFile = Join-Path $Dir $OutName + +# 2. HEADER CON TUS INSTRUCCIONES CRÍTICAS +$CurrentDate = Get-Date -Format 'yyyy-MM-dd HH:mm' +$Header = @" +# PROYECTO: $Name +- Version: $Ver +- Fecha: $CurrentDate +- Librerias Activas: $($Librerias -join ", ") + +## INSTRUCCIONES CRITICAS (B4A / BASIC4ANDROID) +0. **Integridad del Contexto:** Antes de procesar peticiones, cuenta si el numero de modulos listados en el indice coincide con los detallados en el cuerpo. +1. **Source of Truth (Codigo):** Este archivo contiene el codigo fuente ACTUAL del proyecto. +2. **Source of Truth (Librerias):** Basa tus sugerencias en la lista de 'Librerias Activas'. +3. **Anti-Alucinacion:** Antes de sugerir, VERIFICA la 'Interfaz Pública' o el código fuente del módulo. +4. **Existencia Estricta:** Si una variable/Sub no está en el texto, NO EXISTE. +5. **Formato:** Usa bloques 'vb'. +6. **Navegacion Estructural:** Usa los tags , y para localizar codigo. +7. **Inferencia de Datos:** Deduce la BD solo de los strings SQL presentes. +"@ + +Set-Content -Path $OutFile -Value $Header -Encoding UTF8 + +# 3. LISTAR ARCHIVOS +$files = Get-ChildItem -Path $Dir -Include *.bas,*.b4a -Recurse | Where-Object { + $_.FullName -notmatch 'Objects' -and ($_.Extension -eq '.b4a' -or $ModulosValidos -contains $_.Name) +} + +# 4. INDICE DE MODULOS +Add-Content $OutFile ($NL + "## INDICE DE MODULOS" + $NL) -Encoding UTF8 +foreach ($f in $files) { + $Ref = $f.Name.Replace('.', '').Replace(' ', '-').ToLower() + Add-Content $OutFile ("- [" + $f.Name + "](#modulo-" + $Ref + ")") -Encoding UTF8 +} + +# 5. CODIGO FUENTE ESTRUCTURADO +Add-Content $OutFile ($NL + '## CODIGO FUENTE DETALLADO' + $NL) -Encoding UTF8 + +foreach ($f in $files) { + Write-Host " -> $($f.Name)... " -NoNewline + $txt = [System.IO.File]::ReadAllLines($f.FullName) + + # Pre-escaneo para + $Methods = @() + foreach ($line in $txt) { + if ($line.Trim() -match '^(?:Public\s+|Private\s+)?Sub\s+([\w\d_]+)') { + $Methods += $Matches[1] + } + } + + $Ref = $f.Name.Replace('.', '').Replace(' ', '-').ToLower() + Add-Content $OutFile "$NL" -Encoding UTF8 + + Add-Content $OutFile " " -Encoding UTF8 + foreach($m in $Methods) { + Add-Content $OutFile " " -Encoding UTF8 + } + Add-Content $OutFile " $NL" -Encoding UTF8 + + Add-Content $OutFile "```vb" -Encoding UTF8 + + $skip = ($f.Extension -eq '.b4a') + + foreach ($l in $txt) { + $trim = $l.Trim() + + if ($skip) { + if ($trim.StartsWith("#") -and -not $trim.StartsWith("#Region")) { Add-Content $OutFile $l -Encoding UTF8 } + if ($l.Contains("@EndOfDesignText@")) { $skip = $false } + continue + } + + # Inicio de Método + if ($trim -match '^(?:Public\s+|Private\s+)?Sub\s+([\w\d_]+)') { + Add-Content $OutFile "" -Encoding UTF8 + } + + # Limpieza de comentarios y escritura de línea + if ($trim.StartsWith("'")) { + if (-not ($trim.StartsWith("'#") -or ($trim -match 'TODO:') -or ($trim -match 'FIX:'))) { continue } + } + + if (-not [string]::IsNullOrWhiteSpace($trim)) { + Add-Content $OutFile $l -Encoding UTF8 + } + + # Fin de Método + if ($trim -eq "End Sub") { + Add-Content $OutFile "" -Encoding UTF8 + } + } + + Add-Content $OutFile "```$NL" -Encoding UTF8 + Write-Host "OK" -ForegroundColor Green +} + +Write-Output ("--- FINALIZADO: " + $OutName + " ---") \ No newline at end of file