diff --git a/B4A/B4XMainPage.bas b/B4A/B4XMainPage.bas index 8ccb70b..6155f13 100644 --- a/B4A/B4XMainPage.bas +++ b/B4A/B4XMainPage.bas @@ -23,6 +23,7 @@ Sub Class_Globals Private Root As B4XView Private xui As XUI Public login As B4XMainPage + Dim rp As RuntimePermissions Public principal As C_Principal Public clientes As C_Clientes Public cliente As C_Cliente @@ -198,9 +199,11 @@ Private Sub B4XPage_Created (Root1 As B4XView) reqManager.Initialize(Me, Starter.server) ' Activity.LoadLayout("login") Label1.Text = Application.VersionName - Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_WRITE_EXTERNAL_STORAGE) - Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean) - If Result Then Log("Tenemos permisos de escritura externa.") + +' Log("Pedimos permisos de almacenamiento externo") +' Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_WRITE_EXTERNAL_STORAGE) +' Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean) +' If Result Then Log("Tenemos permisos de escritura externa.") c=Starter.skmt.ExecQuery("SELECT COUNT(*) as CUANTOS FROM TMP_INSPECCION_AUTO_DIARIA") c.Position = 0 CUANTOS = c.GetString("CUANTOS") @@ -259,14 +262,6 @@ Private Sub B4XPage_Created (Root1 As B4XView) If logger Then Log($"Marca: ${Starter.ph.manufacturer}, Modelo: ${Starter.ph.model}"$) If logger Then LogColor($"////////////////// DeviceID: ${DeviceID} ////////////////// "$, Colors.Blue) ' If Logger Then LogColor("Revisa permisos Phone_State", Colors.Green) - Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_READ_PHONE_STATE) - Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean) - If Result Then - Dim Phn As PhoneId - IMEN.Text = "" 'Phn.GetDeviceId - IMEI ="" ' Phn.GetDeviceId - If logger Then LogColor($"////////////////// IMEI: ${IMEI} ////////////////// "$, Colors.Blue) - End If 'este codigo es para lo del menu ' PopupMenu.Initialize("PopupMenu", b_menu) ' PopupMenu.AddMenuItem(0, 0, "View") @@ -274,7 +269,24 @@ Private Sub B4XPage_Created (Root1 As B4XView) ' PopupMenu.AddMenuItem(2, 2, "Details") ' PopupMenu.AddMenuItem(3, 3, "Remove") ' menu fin - Subs.borraArribaDe100Errores +' Subs.borraArribaDe100Errores +' Log("Permisos BT: " & rp.Check("android.permission.BLUETOOTH_CONNECT")) +' Log("REVISAMOS PERMISOS DE BT") +' rp.CheckAndRequest("android.permission.BLUETOOTH_CONNECT") +' Wait For Activity_PermissionResult (Permission As String, Result As Boolean) +' If Result Then Log("Tenemos permisos de bluetooth.") +' Log("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") +' Log("Check phone state: " & rp.Check(rp.PERMISSION_READ_PHONE_STATE)) + Log("Pedimos permisos de estado del cel") + rp.CheckAndRequest(rp.PERMISSION_READ_PHONE_STATE) + Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean) + If Result Then + Dim Phn As PhoneId + IMEN.Text = "" 'Phn.GetDeviceId + IMEI ="" ' Phn.GetDeviceId + If logger Then LogColor($"////////////////// IMEI: ${IMEI} ////////////////// "$, Colors.Blue) + End If + Log("Permisos cel terminados") End Sub Sub B4XPage_Appear @@ -345,6 +357,7 @@ End Sub 'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage. Sub Entrar_Click + Log("xxxxxxx") DateTime.DateFormat = "yyyyMMdd" If user.Text = "ALTERNO" Then c=Starter.skmt.ExecQuery2("select CAT_CO_CONFIGURACION, CAT_CO_RESULTADO from CAT_CODIGOS where CAT_CO_PONDERACION =1 AND CAT_CO_ACCION = ?", Array As String("SERVER")) @@ -374,12 +387,14 @@ Sub Entrar_Click Starter.skmt.ExecNonQuery2("INSERT INTO VERSION(NOVERSION) VALUES (?)", Array As Object ("2.95")) B4XPages.ShowPage("Principal") End If + Log(1) ' c=Starter.skmt.ExecQuery2("select count(*) as EXISTE1 from usuarioa where usuario = ?", Array As String(user.Text)) c=Starter.skmt.ExecQuery2($"select count(*) as EXISTE1 from usuarioa where usuario = ? and fecha = ${DateTime.Date(DateTime.Now)}"$, Array As String(user.Text)) c.Position=0 existe = c.GetString("EXISTE1") ' Log($"${existe}, ${DateTime.Date(DateTime.Now)}, ${user.Text}"$ ) 'existe = 1 + Log(2) If existe = 0 Then 'skmt.ExecNonQuery("delete from usuarioa") Dim cmd As DBCommand @@ -395,6 +410,7 @@ Sub Entrar_Click Subs.iniciaActividad("Principal") ' B4XPages.ShowPage("Principal") End If + Log("xxxxxxx") End Sub Sub JobDone(Job As HttpJob) @@ -549,9 +565,9 @@ Sub ImageView4_Click End Sub Private Sub ImageView4_LongClick - Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_WRITE_EXTERNAL_STORAGE) - Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean) - Subs.copiaDB(Result) +' Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_WRITE_EXTERNAL_STORAGE) +' Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean) +' Subs.copiaDB(Result) End Sub Sub B_SERVER_Click diff --git a/B4A/C_Cliente.bas b/B4A/C_Cliente.bas index 6ebdf45..3165bac 100644 --- a/B4A/C_Cliente.bas +++ b/B4A/C_Cliente.bas @@ -349,6 +349,13 @@ Private Sub B4XPage_Created (Root1 As B4XView) TOMAR_FOTO = 0 c.Close If s.IsInitialized Then s.Close + Log("################# PERMISOS BT: " & Starter.rp.Check("android.permission.BLUETOOTH_CONNECT")) + Log("Permisos BT: " & Starter.rp.Check("android.permission.BLUETOOTH_CONNECT")) + Log("REVISAMOS PERMISOS DE BT") + Starter.rp.CheckAndRequest("android.permission.BLUETOOTH_CONNECT") + Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean) + If Result Then Log("Tenemos permisos de bluetooth.") + Log("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") End Sub 'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage. @@ -611,6 +618,11 @@ Sub B4XPage_Appear End If muestraBoleta = False ' Log(Subs.revisaImpresa) + If l_total.text <> "null" And l_total.text <> "" And l_total.text <> Null Then + B_IMP2.Enabled = True + Else + B_IMP2.Enabled = False + End If If Subs.revisaImpresa Then Guardar.Visible = True End Sub @@ -2101,6 +2113,7 @@ End Sub Sub B_GUARDAR_Click If logger Then Log("Guardar clic") + B_IMP2.Enabled = True If CH_TA.Checked = True Then TIPOEX = "TIPO A" ELSE If CH_TB.Checked = True Then diff --git a/B4A/C_Principal.bas b/B4A/C_Principal.bas index 3d22b8a..9092230 100644 --- a/B4A/C_Principal.bas +++ b/B4A/C_Principal.bas @@ -9,6 +9,7 @@ Sub Class_Globals Private Root As B4XView 'ignore Private xui As XUI 'ignore Dim reqManager As DBRequestManager + Dim rp As RuntimePermissions Dim t1 As Timer Dim t2 As Timer Private t3 As Timer @@ -257,7 +258,9 @@ End Sub Sub B4XPage_Appear If Subs.traeUltimaActividadBD <> "principal" Then Subs.iniciaActividad(Subs.traeUltimaActividadBD) - Starter.btAdmin.Initialize("BlueTeeth") + Starter.btAdmin.Initialize("btAdmin") + Log("BTADMIN INICIALIZADO: "&Starter.btAdmin.IsEnabled) + Starter.btAdmin.Enable If Not(Starter.btAdmin.IsEnabled) Then Starter.btAdmin.Enable e_ruta.Enabled = True Starter.rutaV = l_ruta.Text @@ -369,6 +372,26 @@ Sub B4XPage_Appear CallSub(Starter, "ENVIA_ULTIMA_GPS") c.Close ' Subs.guardaUltimaActividadBD("principal") + + + Log("Check phone state: " & rp.Check(rp.PERMISSION_READ_PHONE_STATE)) + Log("Pedimos permisos de estado del cel") + rp.CheckAndRequest(rp.PERMISSION_READ_PHONE_STATE) + Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean) + If Result Then + Dim Phn As PhoneId +' IMEN.Text = "" 'Phn.GetDeviceId + imei ="" ' Phn.GetDeviceId + If logger Then LogColor($"////////////////// IMEI: ${imei} ////////////////// "$, Colors.Blue) + End If + Log("Permisos cel terminados") + +' Log("Permisos BT: " & rp.Check("android.permission.BLUETOOTH_CONNECT")) +' Log("REVISAMOS PERMISOS DE BT") +' rp.CheckAndRequest("android.permission.BLUETOOTH_CONNECT") +' Wait For Activity_PermissionResult (Permission As String, Result As Boolean) +' If Result Then Log("Tenemos permisos de bluetooth.") +' Log("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") End Sub Sub trabajar_Click @@ -1881,6 +1904,15 @@ Sub Activity_KeyPress (key As Int) As Boolean End Sub Sub connecta_Click + + Log("################# PERMISOS BT: " & Starter.rp.Check("android.permission.BLUETOOTH_CONNECT")) + Log("Permisos BT: " & Starter.rp.Check("android.permission.BLUETOOTH_CONNECT")) + Log("REVISAMOS PERMISOS DE BT") + Starter.rp.CheckAndRequest("android.permission.BLUETOOTH_CONNECT") + Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean) + If Result Then Log("Tenemos permisos de bluetooth.") + Log("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") + ' c=skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("RUTA")) ' c.Position =0 ' If c.GetString("CAT_VA_VALOR") = l_ruta.Text Then @@ -1899,11 +1931,14 @@ Sub connecta_Click usuario = c.GetString("USUARIO") c.Close connecta1 = connecta1 + 1 + + Log("Pedimos permisos de Phone State") Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_READ_PHONE_STATE) Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean) If Result Then imei = "" 'p.GetDeviceId End If + Log("Terminamos permisos") conn = "1" Dim cmd As DBCommand cmd.Initialize diff --git a/B4A/C_Promos.bas b/B4A/C_Promos.bas index 6f9fe40..17cfa9f 100644 --- a/B4A/C_Promos.bas +++ b/B4A/C_Promos.bas @@ -109,6 +109,8 @@ Sub muestraPromo(promo As String, cliente As String) 'Ponemos el texto en las etiquetas de la cantidad de productos. ' Dim pf As List = mp.Get("prodsFijos") Dim pv As List = mp.Get("prodsVariables") + Dim listaPreciosPV As List = mp.Get("prodsVariablesPrecios") + Logcolor(listaPreciosPV, Colors.red) If thisLog Then Log(mp) tpf = 0 For Each pfp As Int In mp.Get("prodsFijosPiezas").As(List) @@ -155,9 +157,11 @@ Sub muestraPromo(promo As String, cliente As String) ' jpeg = c2.GetBlob("CAT_GP_IMG") ' ins.InitializeFromBytesArray(jpeg, 0, jpeg.Length) ' bmp.Initialize2(ins) + Private indicePV = pv.IndexOf(p) + Private estePrecio = listaPreciosPV.Get(indicePV) Private thisProd As Map = prodsPromo.Get(p) If thisLog Then Log(thisProd) - If existenciaProdVariable > 0 Then clv_prodsVariabes.Add(CreateListItem(Subs.traeProdNombre(p)&CRLF&"Hay " & invDispPromo.Get(p) & " $" & thisProd.Get("precio"), thisProd.Get("precio"), invDispPromo.Get(p), clv_prodsVariabes.AsView.Width, 50dip, Null, p), p) + If existenciaProdVariable > 0 Then clv_prodsVariabes.Add(CreateListItem(Subs.traeProdNombre(p)&CRLF&"Hay " & invDispPromo.Get(p) & " $" & estePrecio, estePrecio, invDispPromo.Get(p), clv_prodsVariabes.AsView.Width, 50dip, Null, p), p) End If Next b_terminar1.Visible = False diff --git a/B4A/KelloggsV4.b4a b/B4A/KelloggsV4.b4a index 061c87f..5eaa567 100644 --- a/B4A/KelloggsV4.b4a +++ b/B4A/KelloggsV4.b4a @@ -107,12 +107,12 @@ FileGroup8=Default Group FileGroup9=Default Group Group=Default Group Library1=appupdating -Library10=googlemaps -Library11=googlemapsextras -Library12=gps -Library13=ime -Library14=json -Library15=okhttputils2 +Library10=fusedlocationprovider +Library11=googlemaps +Library12=googlemapsextras +Library13=gps +Library14=ime +Library15=json Library16=pdfium Library17=phone Library18=preoptimizedclv @@ -129,14 +129,13 @@ Library27=xcustomlistview Library28=xui Library29=zxing_scanner Library3=baqrcode -Library30=fileprovider Library4=bitmapcreator Library5=byteconverter Library6=camera Library7=contentresolver Library8=core -Library9=fusedlocationprovider -ManifestCode='This code will be applied to the manifest file during compilation.~\n~'You do not need to modify it in most cases.~\n~'See this link for for more information: https://www.b4x.com/forum/showthread.php?p=78136~\n~AddManifestText(~\n~~\n~)~\n~SetApplicationAttribute(android:icon, "@drawable/icon")~\n~SetApplicationAttribute(android:label, "$LABEL$")~\n~CreateResourceFromFile(Macro, Themes.LightTheme)~\n~'End of default text.~\n~~\n~AddApplicationText(~\n~)~\n~'Set activity to Landscape~\n~SetActivityAttribute(foto, android:screenOrientation, "landscape")~\n~AddApplicationText(~\n~~\n~ ~\n~)~\n~AddManifestText(~\n~~\n~)~\n~'''' para el teclado~\n~ SetActivityAttribute(main, android:windowSoftInputMode, adjustResize|stateHidden)~\n~ SetApplicationAttribute(android:allowBackup, "false")~\n~ SetServiceAttribute(Tracker, android:foregroundServiceType, "location")~\n~ ~\n~ AddManifestText(~\n~~\n~)~\n~''CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)~\n~ 'End of default text.~\n~ ~\n~SetApplicationAttribute(android:usesCleartextTraffic, "true")~\n~ AddManifestText(~\n~~\n~)~\n~AddPermission(android.permission.ACCESS_BACKGROUND_LOCATION)~\n~AddManifestText(~\n~~\n~)~\n~AddManifestText(~\n~~\n~)~\n~AddManifestText(~\n~~\n~) 'in order to access the device non-resettable identifiers such as IMEI and serial number.~\n~~\n~'///////////////////////// FLP Y PUSH /////////////~\n~' CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)~\n~' CreateResourceFromFile(Macro, FirebaseAnalytics.Firebase)~\n~' CreateResourceFromFile(Macro, FirebaseAnalytics.FirebaseAnalytics)~\n~' CreateResourceFromFile(Macro, FirebaseNotifications.FirebaseNotifications)~\n~ SetServiceAttribute(Tracker, android:foregroundServiceType, "location")~\n~'//////////////////////////////////////////////////////~\n~'Le da mas memoria a la aplicacion~\n~SetApplicationAttribute(android:largeHeap, "true")~\n~ AddApplicationText(~\n~ ~\n~ ~\n~ ~\n~ )~\n~ CreateResource(xml, provider_paths,~\n~ ~\n~ ~\n~ ~\n~ ~\n~ ~\n~ )~\n~~\n~'Si al cargar un mapa de google manda este error "java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/ProtocolVersion". agregar la siguiente linea:~\n~AddApplicationText()~\n~SetApplicationAttribute(android:allowBackup, "false")~\n~AddManifestText() +Library9=fileprovider +ManifestCode='This code will be applied to the manifest file during compilation.~\n~'You do not need to modify it in most cases.~\n~'See this link for for more information: https://www.b4x.com/forum/showthread.php?p=78136~\n~AddManifestText(~\n~~\n~)~\n~SetApplicationAttribute(android:icon, "@drawable/icon")~\n~SetApplicationAttribute(android:label, "$LABEL$")~\n~CreateResourceFromFile(Macro, Themes.LightTheme)~\n~'End of default text.~\n~~\n~AddApplicationText(~\n~)~\n~'Set activity to Landscape~\n~SetActivityAttribute(foto, android:screenOrientation, "landscape")~\n~AddApplicationText(~\n~~\n~ ~\n~)~\n~AddManifestText(~\n~~\n~)~\n~'''' para el teclado~\n~ SetActivityAttribute(main, android:windowSoftInputMode, adjustResize|stateHidden)~\n~ SetApplicationAttribute(android:allowBackup, "false")~\n~ SetServiceAttribute(Tracker, android:foregroundServiceType, "location")~\n~ ~\n~ AddManifestText(~\n~~\n~)~\n~''CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)~\n~ 'End of default text.~\n~ ~\n~SetApplicationAttribute(android:usesCleartextTraffic, "true")~\n~ AddManifestText(~\n~~\n~)~\n~AddPermission(android.permission.ACCESS_BACKGROUND_LOCATION)~\n~AddManifestText(~\n~~\n~)~\n~AddManifestText(~\n~~\n~)~\n~AddManifestText(~\n~~\n~)~\n~AddManifestText(~\n~~\n~)~\n~AddPermission(android.permission.ACCESS_FINE_LOCATION)~\n~AddPermission(android.permission.BLUETOOTH_ADVERTISE)~\n~AddPermission(android.permission.BLUETOOTH_CONNECT)~\n~AddPermission(android.permission.BLUETOOTH_SCAN)~\n~AddManifestText(~\n~~\n~) 'in order to access the device non-resettable identifiers such as IMEI and serial number.~\n~~\n~'///////////////////////// FLP Y PUSH /////////////~\n~' CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)~\n~' CreateResourceFromFile(Macro, FirebaseAnalytics.Firebase)~\n~' CreateResourceFromFile(Macro, FirebaseAnalytics.FirebaseAnalytics)~\n~' CreateResourceFromFile(Macro, FirebaseNotifications.FirebaseNotifications)~\n~ SetServiceAttribute(Tracker, android:foregroundServiceType, "location")~\n~'//////////////////////////////////////////////////////~\n~'Le da mas memoria a la aplicacion~\n~SetApplicationAttribute(android:largeHeap, "true")~\n~ AddApplicationText(~\n~ ~\n~ ~\n~ ~\n~ )~\n~ CreateResource(xml, provider_paths,~\n~ ~\n~ ~\n~ ~\n~ ~\n~ ~\n~ )~\n~~\n~'Si al cargar un mapa de google manda este error "java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/ProtocolVersion". agregar la siguiente linea:~\n~AddApplicationText()~\n~SetApplicationAttribute(android:allowBackup, "false")~\n~AddManifestText() Module1=B4XMainPage Module10=C_Pedidos Module11=C_Principal @@ -165,14 +164,14 @@ Module7=C_Nota Module8=C_NoVenta Module9=C_NuevoCliente NumberOfFiles=53 -NumberOfLibraries=30 +NumberOfLibraries=29 NumberOfModules=27 -Version=12.2 +Version=12.5 @EndOfDesignText@ #Region Project Attributes #ApplicationLabel: Kelloggs Venta #VersionCode: 3000 - #VersionName: 3.09.06 PRUEBA V4 + #VersionName: 3.09.11 PRUEBA V4 #SupportedOrientations: portrait #CanInstallToExternalStorage: False #BridgeLogger:true diff --git a/B4A/Starter.bas b/B4A/Starter.bas index 4e18bca..3aa8030 100644 --- a/B4A/Starter.bas +++ b/B4A/Starter.bas @@ -178,7 +178,7 @@ Sub ENVIA_ULTIMA_GPS cmd.Initialize cmd.Name = "UPDATE_KELL_ACTUAL3_GPS" cmd.Parameters = Array As Object(montoActual, clientesVisitaHoy, clientesVenta, clientesVisitados, lat_gps, lon_gps, batt, 0, 0, 0, Application.VersionName, rtec, ping, salty, Subs.dameClientesFueraDeFrecuencia, almacen, rutaPreventa) - If Logger Then LogColor(montoActual&","&clientesVisitaHoy&","&clientesVenta&","&clientesVisitados&","&lat_gps&","&lon_gps&","&batt&","&0&","&0&","&0&","&Application.VersionName&","&rtec&","&ping&","&salty&","& Subs.dameClientesFueraDeFrecuencia&","&almacen&","&rutaPreventa, Colors.Magenta) +' If Logger Then LogColor(montoActual&","&clientesVisitaHoy&","&clientesVenta&","&clientesVisitados&","&lat_gps&","&lon_gps&","&batt&","&0&","&0&","&0&","&Application.VersionName&","&rtec&","&ping&","&salty&","& Subs.dameClientesFueraDeFrecuencia&","&almacen&","&rutaPreventa, Colors.Magenta) reqManager.ExecuteCommand(cmd,"updateKell_UTR") ' If Logger Then Log(reqManager) ' If Logger Then Log("++ ++ ++ Envia_Ultima GPS - Inst_visitas - server: "& server) @@ -199,7 +199,7 @@ Sub JobDone(Job As HttpJob) If result.Tag = "updateKell_UTR" Then 'query tag For Each records() As Object In result.Rows For Each k As String In result.Columns.Keys - If Logger Then Log("Ubicacion en tiempo real: " & k & ": " & records(result.Columns.Get(k))) +' If Logger Then Log("Ubicacion en tiempo real: " & k & ": " & records(result.Columns.Get(k))) Next Next End If diff --git a/B4A/Subs.bas b/B4A/Subs.bas index 6f2b0c3..0de8025 100644 --- a/B4A/Subs.bas +++ b/B4A/Subs.bas @@ -964,12 +964,13 @@ Sub traePromo(promo As String, cliente As String) As Map Private c As Cursor = Starter.skmt.ExecQuery("Select * from promos_comp where cat_pa_id = '"& promo&"'") 'Obtenemos las el maximo de promocioones a otorgar. Private siHistorico As String = 0 Private promoMap As Map - Private prodsFijos, prodsFijosPrecios, prodsFijosPiezas, prodsVariables As List + Private prodsFijos, prodsFijosPrecios, prodsFijosPiezas, prodsVariables, prodsVariablesPrecios As List promoMap.Initialize prodsFijos.Initialize prodsFijosPrecios.Initialize prodsFijosPiezas.Initialize prodsVariables.Initialize + prodsVariablesPrecios.Initialize c.Position = 0 If c.RowCount > 0 Then promoMap = CreateMap("id":promo, "maxXcliente":c.GetString("CAT_PA_MAXPROMCLIE"), "maxRecurrente":c.GetString("CAT_PA_MAXPROMREC"), "maxPromos":c.GetString("CAT_PA_MAXPROM")) c = Starter.skmt.ExecQuery("Select count(*) as hist from HIST_PROMOS where HP_CLIENTE = '"& cliente & "' and HP_CODIGO_PROMOCION = '" & promo & "'") 'Revisamos si hay historico de la promoción. @@ -991,7 +992,10 @@ Sub traePromo(promo As String, cliente As String) As Map prodsFijosPrecios.Add(c.GetString("CAT_DP_PRECIO")) prodsFijosPiezas.Add(c.GetString("CAT_DP_PZAS")) End If - If c.GetString("CAT_DP_TIPO") = "1" Then prodsVariables.Add(c.GetString("CAT_DP_IDPROD")) + If c.GetString("CAT_DP_TIPO") = "1" Then + prodsVariables.Add(c.GetString("CAT_DP_IDPROD")) + prodsVariablesPrecios.Add(c.GetString("CAT_DP_PRECIO")) + End If If thisLog Then Log($"id:${c.GetString("CAT_DP_IDPROD")}, tipo:${c.GetString("CAT_DP_TIPO")}"$) Next promoMap.Put("productos", prods) 'Mapa con los productos de la promocion (id, precio, almacen, tipo, piezas, etc.) @@ -1002,6 +1006,7 @@ Sub traePromo(promo As String, cliente As String) As Map promoMap.Put("prodsFijosPrecios", prodsFijosPrecios) promoMap.Put("prodsFijosPiezas", prodsFijosPiezas) promoMap.Put("prodsVariablesCant", prodsVariables.Size) + promoMap.Put("prodsVariablesPrecios", prodsVariablesPrecios) promoMap.Put("resultado", "ok") Else promoMap.Put("resultado", "No hay datos de la promoción.")