diff --git a/B4A/C_Productos.bas b/B4A/C_Productos.bas
index 5a4cd73..ff8c63a 100644
--- a/B4A/C_Productos.bas
+++ b/B4A/C_Productos.bas
@@ -165,7 +165,7 @@ Sub B4XPage_Appear
' Starter.skmt.ExecNonQuery2("UPDATE CAT_GUNAPROD SET CAT_GP_TIPOPROD = (?) WHERE CAT_GP_TIPOPROD = (?) ",Array As Object("COMPLEMENTARIO","3"))
' Starter.skmt.ExecNonQuery2("UPDATE CAT_GUNAPROD SET CAT_GP_TIPOPROD = (?) WHERE CAT_GP_TIPOPROD = (?) ",Array As Object("CATALOGO REGULAR","0"))
' Starter.skmt.ExecNonQuery2("UPDATE CAT_GUNAPROD SET CAT_GP_TIPOPROD = (?) WHERE CAT_GP_CLASIF = (?) ",Array As Object("PROMOS","PROMOS"))
- if Subs.traeCliente = 0 then Starter.tipov = "ABORDO"
+ If Subs.traeCliente = 0 Then Starter.tipov = "ABORDO"
If Starter.tipov = "PREVENTA" Then
query = "cat_gunaprod"
query2 = "COUNT_GUNAPROD"
@@ -271,7 +271,7 @@ Sub B4XPage_Appear
'Traemos las promociones con el proveedor incluido.
c2=Starter.skmt.ExecQuery("Select distinct CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_PRECIO, CAT_GP_ALMACEN, CAT_GP_TIPO, CAT_DP_CLASIF, CAT_CLASF_PROD.* from " & query & " join CAT_DETALLES_PAQ on CAT_DP_ID = CAT_GP_ID join CAT_CLASF_PROD on CAT_DP_CLASIF = CAT_CP_ID where CAT_GP_ALMACEN > 0 And CAT_GP_TIPO = 'PROMOS' AND CAT_GP_SUBTIPO ='PROMOS' AND CAT_GP_TIPOPROD <> 1 and (length(CAT_GP_CODPROMO) = 1 OR CAT_GP_CODPROMO = CAT_GP_ID) order by CAT_CP_NOMPROD")
- Log(("Select distinct CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_PRECIO, CAT_GP_ALMACEN, CAT_GP_TIPO, CAT_DP_CLASIF, CAT_CLASF_PROD.* from " & query & " join CAT_DETALLES_PAQ on CAT_DP_ID = CAT_GP_ID join CAT_CLASF_PROD on CAT_DP_CLASIF = CAT_CP_ID where CAT_GP_ALMACEN > 0 And CAT_GP_TIPO = 'PROMOS' AND CAT_GP_SUBTIPO ='PROMOS' AND CAT_GP_TIPOPROD <> 1 and (length(CAT_GP_CODPROMO) = 1 OR CAT_GP_CODPROMO = CAT_GP_ID) order by CAT_CP_NOMPROD"))
+ Log("Select distinct CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_PRECIO, CAT_GP_ALMACEN, CAT_GP_TIPO, CAT_DP_CLASIF, CAT_CLASF_PROD.* from " & query & " join CAT_DETALLES_PAQ on CAT_DP_ID = CAT_GP_ID join CAT_CLASF_PROD on CAT_DP_CLASIF = CAT_CP_ID where CAT_GP_ALMACEN > 0 And CAT_GP_TIPO = 'PROMOS' AND CAT_GP_SUBTIPO ='PROMOS' AND CAT_GP_TIPOPROD <> 1 and (length(CAT_GP_CODPROMO) = 1 OR CAT_GP_CODPROMO = CAT_GP_ID) order by CAT_CP_NOMPROD")
' Log($"Resultados : ${c2.RowCount}"$)
Private mPromosProv As Map
mPromosProv.Initialize
@@ -291,6 +291,8 @@ Sub B4XPage_Appear
Next
' Log(mPromos)
traeListaPrecios(kh.traeAlmacen, kh.traeRuta, "", PERFIL)
+
+
End Sub
Sub PCLV_AddProds
diff --git a/B4A/Durakelo.b4a b/B4A/Durakelo.b4a
index c6bbfa3..2e9e37f 100644
--- a/B4A/Durakelo.b4a
+++ b/B4A/Durakelo.b4a
@@ -1344,37 +1344,38 @@ FileGroup97=Default Group
FileGroup98=Default Group
FileGroup99=Default Group
Group=Default Group
-Library1=b4xpages
-Library10=fileprovider
-Library11=firebaseanalytics
-Library12=firebasenotifications
-Library13=fusedlocationprovider
-Library14=gifdecoder
-Library15=googlemaps
-Library16=googlemapsextras
-Library17=gps
-Library18=ime
-Library19=javaobject
-Library2=baqrcode
-Library20=json
-Library21=okhttputils2
-Library22=phone
-Library23=preoptimizedclv
-Library24=randomaccessfile
-Library25=reflection
-Library26=runtimepermissions
-Library27=serial
-Library28=sql
-Library29=xcustomlistview
-Library3=batteryprogressview
-Library30=zxing_scanner
-Library31=appupdating
-Library4=bitmapcreator
-Library5=byteconverter
-Library6=camera
-Library7=compressstrings
-Library8=contentresolver
-Library9=core
+Library1=appupdating
+Library10=core
+Library11=fileprovider
+Library12=firebaseanalytics
+Library13=firebasenotifications
+Library14=fusedlocationprovider
+Library15=gifdecoder
+Library16=googlemaps
+Library17=googlemapsextras
+Library18=gps
+Library19=ime
+Library2=b4xpages
+Library20=javaobject
+Library21=json
+Library22=okhttputils2
+Library23=phone
+Library24=preoptimizedclv
+Library25=randomaccessfile
+Library26=reflection
+Library27=runtimepermissions
+Library28=serial
+Library29=sql
+Library3=baqrcode
+Library30=xcustomlistview
+Library31=zxing_scanner
+Library32=dateutils
+Library4=batteryprogressview
+Library5=bitmapcreator
+Library6=byteconverter
+Library7=camera
+Library8=compressstrings
+Library9=contentresolver
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~~\n~)~\n~AddManifestText()~\n~AddManifestText()~\n~SetApplicationAttribute(android:usesCleartextTraffic, "true")~\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~~\n~'/////////////// FLP y FBMessageing MOD Inicia /////////////////////~\n~CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)~\n~CreateResourceFromFile(Macro, FirebaseAnalytics.Firebase)~\n~CreateResourceFromFile(Macro, FirebaseAnalytics.FirebaseAnalytics)~\n~CreateResourceFromFile(Macro, FirebaseNotifications.FirebaseNotifications)~\n~'CreateResourceFromFile(Macro, FirebaseAnalytics.Crashlytics)~\n~SetServiceAttribute(Tracker, android:foregroundServiceType, "location")~\n~'/////////////// FLP y FBMessageing MOD Termina /////////////////////~\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~SetApplicationAttribute(android:exported, "true")~\n~AddManifestText()~\n~~\n~'Para provider (Envio de base de datos por whatsapp)~\n~AddApplicationText(~\n~ ~\n~ ~\n~ ~\n~ )~\n~CreateResource(xml, provider_paths,~\n~ ~\n~ ~\n~ ~\n~ ~\n~ ~\n~ )~\n~ ~\n~ AddManifestText(~\n~ )~\n~ AddApplicationText(~\n~ ~\n~ ~\n~ ~\n~ )~\n~ CreateResource(xml, provider_paths,~\n~ ~\n~ ~\n~ ~\n~ ~\n~ ~\n~ )~\n~ AddPermission(android.permission.REQUEST_INSTALL_PACKAGES)~\n~ AddPermission(android.permission.INTERNET)~\n~ AddPermission(android.permission.INSTALL_PACKAGES)~\n~ AddPermission(android.permission.READ_EXTERNAL_STORAGE)~\n~ AddPermission(android.permission.WRITE_EXTERNAL_STORAGE)~\n~ AddPermission(android.permission.READ_PHONE_STATE)~\n~ AddPermission(android.permission.WAKE_LOCK)~\n~~\n~ 'Para que se registre para abrir bases de datos~\n~ AddActivityText(main,~\n~~\n~~\n~~\n~~\n~)
Module1=appUpdater
Module10=C_Principal
@@ -1401,14 +1402,14 @@ Module7=C_Historico
Module8=C_Nota
Module9=C_NoVenta
NumberOfFiles=672
-NumberOfLibraries=31
+NumberOfLibraries=32
NumberOfModules=24
Version=12.8
@EndOfDesignText@
#Region Project Attributes
#ApplicationLabel: Durakelo
#VersionCode: 1
- #VersionName: 5.05.13
+ #VersionName: 5.05.25
'SupportedOrientations possible values: unspecified, landscape or portrait.
#SupportedOrientations: portrait
#CanInstallToExternalStorage: False
diff --git a/B4A/Durakelo.b4a.meta b/B4A/Durakelo.b4a.meta
index 2a8dbe2..62a870d 100644
--- a/B4A/Durakelo.b4a.meta
+++ b/B4A/Durakelo.b4a.meta
@@ -51,7 +51,7 @@ ModuleBreakpoints9=
ModuleClosedNodes0=
ModuleClosedNodes1=
ModuleClosedNodes10=
-ModuleClosedNodes11=3,7,35,36,41,42
+ModuleClosedNodes11=3
ModuleClosedNodes12=
ModuleClosedNodes13=
ModuleClosedNodes14=
@@ -73,6 +73,6 @@ ModuleClosedNodes6=
ModuleClosedNodes7=
ModuleClosedNodes8=
ModuleClosedNodes9=
-NavigationStack=C_Principal,Class_Globals,20,0,C_Principal,B_PROXIMA_Click,2568,0,C_Productos,b_prodMenos_Click,626,0,Subs,traeTablaProds,1361,0,C_Promos,Class_Globals,0,0,C_Principal,Resumen_Click,2551,6,Subs,traemosInventarioDisponibleParaPromo,897,0,C_Promos,b_continuar_Click,412,0,C_Promos,b_terminar1_Click,386,6,Subs,agrupaProdsPromo,1529,2
+NavigationStack=Subs,dameErroresJSON,367,0,C_Principal,SUBIR_P_Click,2725,0,C_Principal,cargar_Click,883,0,C_Principal,Subir_Click,558,0,C_Productos,Class_Globals,0,0,Subs,revisaFechaVigenciaPromo,1502,6,Subs,agrupaProdsPromo,1576,0,C_Productos,B4XPage_Appear,278,6,Subs,fechaMenosUnDia,1579,6,Subs,traePromo,851,6
SelectedBuild=0
-VisibleModules=22,2,10,4,19,9,11,23,12,8
+VisibleModules=22,2,10,4,11,23,12,8
diff --git a/B4A/Subs.bas b/B4A/Subs.bas
index d044bbc..4435197 100644
--- a/B4A/Subs.bas
+++ b/B4A/Subs.bas
@@ -858,7 +858,10 @@ Sub traePromo(promo As String, cliente As String) As Map
promoMap.Put("prodsFijosPiezas", prodsFijosPiezas)
promoMap.Put("prodsVariablesCant", prodsVariables.Size)
promoMap.Put("prodsVariablesPrecios", prodsVariablesPrecios)
- promoMap.Put("vigencia", c.GetString("CAT_PA_VIGENCIA_FIN").SubString2(0, c.GetString("CAT_PA_VIGENCIA_FIN").IndexOf(" ")))
+ Log("-------> |" & c.GetString("CAT_PA_VIGENCIA_FIN") & "|")
+' promoMap.Put("vigencia", c.GetString("CAT_PA_VIGENCIA_FIN").SubString2(0, c.GetString("CAT_PA_VIGENCIA_FIN").IndexOf(" ")))
+ Private fVigencia As String = fechaMenosUnDia(c.GetString("CAT_PA_VIGENCIA_FIN").SubString2(0, c.GetString("CAT_PA_VIGENCIA_FIN").IndexOf(" ")))
+ promoMap.Put("vigencia", fVigencia) ' La vigencia de la preventa debe de ser la especificada MENOS un dia.
promoMap.Put("vigencia_abordo", c.GetString("CAT_PA_VIGENCIAABORDO").SubString2(0, c.GetString("CAT_PA_VIGENCIAABORDO").IndexOf(" ")))
promoMap.Put("resultado", "ok")
Else
@@ -1502,6 +1505,7 @@ Sub revisaFechaVigenciaPromo(pm As Map) As Boolean
DateTime.DateFormat = "yyyyMMdd"
If Starter.tipov = "PREVENTA" Or Starter.tipov = "ABORDO" Then
Private vigencia As String = pm.Get("vigencia").As(String).Replace("-", "")
+' Log("|" & vigencia & "|")
If vigencia >= DateTime.Date(DateTime.Now) Then vigente = True
Else if Starter.tipov = "VENTA" Then
Private vigencia As String = pm.Get("vigencia_abordo").As(String).Replace("-", "")
@@ -1516,6 +1520,9 @@ End Sub
' y las mismas cantidades, el pasarInfoMovil las detecta como duplicados y las tira, con esta funcion en lugar de dos registros,
' solo va uno con cantidades y totales sumados.
Sub agrupaProdsPromo (cliente As String)
+ Log("####################################################################################################################")
+ Log("####################################################################################################################")
+ Log("####################################################################################################################")
Starter.skmt.ExecNonQuery($"CREATE TEMP TABLE IF NOT EXISTS PEDIDO_AGRUPADOR (
PE_PRECIO2,
PE_TIPO,
@@ -1571,4 +1578,29 @@ Sub agrupaProdsPromo (cliente As String)
Starter.skmt.TransactionSuccessful 'Si no se pone TransactionSuccessful no se escribe NADA!!
Starter.skmt.EndTransaction
Log("LISTO!!")
+End Sub
+
+'Recibe un string con la fecha en formato "YYYY-MM-DD" y regresa la fecha menos un dia.
+Sub fechaMenosUnDia(fecha As String) As String
+ Dim fechaDate As Long
+ Dim nuevaFecha As Long
+ Dim fechaFormateada As String
+ DateTime.DateFormat = "yyyy-MM-dd"
+ Dim fechaMenos1Dia As String
+ Log("|" & fecha & "|")
+
+ ' Convertir la cadena de fecha a un valor de fecha largo
+ fechaDate = DateTime.DateParse(fecha)
+
+' Log(fechaDate)
+
+ ' Restar un día (86400000 milisegundos = 1 día)
+ nuevaFecha = fechaDate - DateTime.TicksPerDay ' o puedes usar: 24 * 60 * 60 * 1000
+
+ ' Formatear la nueva fecha al mismo formato
+ fechaFormateada = DateTime.Date(nuevaFecha)
+
+ ' fechaFormateada ahora contiene la fecha con un día menos
+ Log(fechaFormateada)
+ Return fechaFormateada
End Sub
\ No newline at end of file