- VERSION 5.05.25

-Se agrego que en las fechas de vigencia de las promos de preventa, se reste un dia, porque es del dia especifivcado MENOS uno.
This commit is contained in:
2025-05-26 16:07:35 -06:00
parent 9011b6a8bb
commit 2716f80d25
4 changed files with 74 additions and 39 deletions

View File

@@ -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("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_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")) ' 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 If Starter.tipov = "PREVENTA" Then
query = "cat_gunaprod" query = "cat_gunaprod"
query2 = "COUNT_GUNAPROD" query2 = "COUNT_GUNAPROD"
@@ -271,7 +271,7 @@ Sub B4XPage_Appear
'Traemos las promociones con el proveedor incluido. '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") 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}"$) ' Log($"Resultados : ${c2.RowCount}"$)
Private mPromosProv As Map Private mPromosProv As Map
mPromosProv.Initialize mPromosProv.Initialize
@@ -291,6 +291,8 @@ Sub B4XPage_Appear
Next Next
' Log(mPromos) ' Log(mPromos)
traeListaPrecios(kh.traeAlmacen, kh.traeRuta, "", PERFIL) traeListaPrecios(kh.traeAlmacen, kh.traeRuta, "", PERFIL)
End Sub End Sub
Sub PCLV_AddProds Sub PCLV_AddProds

View File

@@ -1344,37 +1344,38 @@ FileGroup97=Default Group
FileGroup98=Default Group FileGroup98=Default Group
FileGroup99=Default Group FileGroup99=Default Group
Group=Default Group Group=Default Group
Library1=b4xpages Library1=appupdating
Library10=fileprovider Library10=core
Library11=firebaseanalytics Library11=fileprovider
Library12=firebasenotifications Library12=firebaseanalytics
Library13=fusedlocationprovider Library13=firebasenotifications
Library14=gifdecoder Library14=fusedlocationprovider
Library15=googlemaps Library15=gifdecoder
Library16=googlemapsextras Library16=googlemaps
Library17=gps Library17=googlemapsextras
Library18=ime Library18=gps
Library19=javaobject Library19=ime
Library2=baqrcode Library2=b4xpages
Library20=json Library20=javaobject
Library21=okhttputils2 Library21=json
Library22=phone Library22=okhttputils2
Library23=preoptimizedclv Library23=phone
Library24=randomaccessfile Library24=preoptimizedclv
Library25=reflection Library25=randomaccessfile
Library26=runtimepermissions Library26=reflection
Library27=serial Library27=runtimepermissions
Library28=sql Library28=serial
Library29=xcustomlistview Library29=sql
Library3=batteryprogressview Library3=baqrcode
Library30=zxing_scanner Library30=xcustomlistview
Library31=appupdating Library31=zxing_scanner
Library4=bitmapcreator Library32=dateutils
Library5=byteconverter Library4=batteryprogressview
Library6=camera Library5=bitmapcreator
Library7=compressstrings Library6=byteconverter
Library8=contentresolver Library7=camera
Library9=core 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~<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="33"/>~\n~<supports-screens android:largeScreens="true" ~\n~ android:normalScreens="true" ~\n~ android:smallScreens="true" ~\n~ android:anyDensity="true"/>)~\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~<meta-data android:name="com.google.android.geo.API_KEY" android:value="AIzaSyBlBnx3O-DncOSv3oFIp-12wgujOYYcl-U"/>~\n~<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />~\n~)~\n~AddManifestText(<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" android:maxSdkVersion="33" />)~\n~AddManifestText(<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />)~\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(<uses-library android:name="org.apache.http.legacy" android:required="false"/>)~\n~SetApplicationAttribute(android:allowBackup, "false")~\n~SetApplicationAttribute(android:exported, "true")~\n~AddManifestText(<queries><package android:name="com.google.android.apps.maps" /></queries>)~\n~~\n~'Para provider (Envio de base de datos por whatsapp)~\n~AddApplicationText(~\n~ <provider android:name="android.support.v4.content.FileProvider" android:authorities="$PACKAGE$.provider" android:exported="false" android:grantUriPermissions="true">~\n~ <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/provider_paths"/>~\n~ </provider>~\n~ )~\n~CreateResource(xml, provider_paths,~\n~ <paths>~\n~ <external-files-path name="name" path="" />~\n~ <files-path name="name" path="" />~\n~ <files-path name="name" path="shared" />~\n~ </paths>~\n~ )~\n~ ~\n~ AddManifestText(<uses-permission~\n~ android:name="android.permission.WRITE_EXTERNAL_STORAGE"~\n~ android:maxSdkVersion="18" />~\n~ )~\n~ AddApplicationText(~\n~ <provider~\n~ android:name="android.support.v4.content.FileProvider"~\n~ android:authorities="$PACKAGE$.provider"~\n~ android:exported="false"~\n~ android:grantUriPermissions="true">~\n~ <meta-data~\n~ android:name="android.support.FILE_PROVIDER_PATHS"~\n~ android:resource="@xml/provider_paths"/>~\n~ </provider>~\n~ )~\n~ CreateResource(xml, provider_paths,~\n~ <paths>~\n~ <external-files-path name="name" path="" />~\n~ <files-path name="name" path="" />~\n~ <files-path name="name" path="shared" />~\n~ </paths>~\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~<intent-filter>~\n~<action android:name="android.intent.action.VIEW" />~\n~<category android:name="android.intent.category.DEFAULT" />~\n~<data android:mimeType="application/octet-stream" />~\n~</intent-filter>) 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~<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="33"/>~\n~<supports-screens android:largeScreens="true" ~\n~ android:normalScreens="true" ~\n~ android:smallScreens="true" ~\n~ android:anyDensity="true"/>)~\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~<meta-data android:name="com.google.android.geo.API_KEY" android:value="AIzaSyBlBnx3O-DncOSv3oFIp-12wgujOYYcl-U"/>~\n~<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />~\n~)~\n~AddManifestText(<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" android:maxSdkVersion="33" />)~\n~AddManifestText(<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />)~\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(<uses-library android:name="org.apache.http.legacy" android:required="false"/>)~\n~SetApplicationAttribute(android:allowBackup, "false")~\n~SetApplicationAttribute(android:exported, "true")~\n~AddManifestText(<queries><package android:name="com.google.android.apps.maps" /></queries>)~\n~~\n~'Para provider (Envio de base de datos por whatsapp)~\n~AddApplicationText(~\n~ <provider android:name="android.support.v4.content.FileProvider" android:authorities="$PACKAGE$.provider" android:exported="false" android:grantUriPermissions="true">~\n~ <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/provider_paths"/>~\n~ </provider>~\n~ )~\n~CreateResource(xml, provider_paths,~\n~ <paths>~\n~ <external-files-path name="name" path="" />~\n~ <files-path name="name" path="" />~\n~ <files-path name="name" path="shared" />~\n~ </paths>~\n~ )~\n~ ~\n~ AddManifestText(<uses-permission~\n~ android:name="android.permission.WRITE_EXTERNAL_STORAGE"~\n~ android:maxSdkVersion="18" />~\n~ )~\n~ AddApplicationText(~\n~ <provider~\n~ android:name="android.support.v4.content.FileProvider"~\n~ android:authorities="$PACKAGE$.provider"~\n~ android:exported="false"~\n~ android:grantUriPermissions="true">~\n~ <meta-data~\n~ android:name="android.support.FILE_PROVIDER_PATHS"~\n~ android:resource="@xml/provider_paths"/>~\n~ </provider>~\n~ )~\n~ CreateResource(xml, provider_paths,~\n~ <paths>~\n~ <external-files-path name="name" path="" />~\n~ <files-path name="name" path="" />~\n~ <files-path name="name" path="shared" />~\n~ </paths>~\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~<intent-filter>~\n~<action android:name="android.intent.action.VIEW" />~\n~<category android:name="android.intent.category.DEFAULT" />~\n~<data android:mimeType="application/octet-stream" />~\n~</intent-filter>)
Module1=appUpdater Module1=appUpdater
Module10=C_Principal Module10=C_Principal
@@ -1401,14 +1402,14 @@ Module7=C_Historico
Module8=C_Nota Module8=C_Nota
Module9=C_NoVenta Module9=C_NoVenta
NumberOfFiles=672 NumberOfFiles=672
NumberOfLibraries=31 NumberOfLibraries=32
NumberOfModules=24 NumberOfModules=24
Version=12.8 Version=12.8
@EndOfDesignText@ @EndOfDesignText@
#Region Project Attributes #Region Project Attributes
#ApplicationLabel: Durakelo #ApplicationLabel: Durakelo
#VersionCode: 1 #VersionCode: 1
#VersionName: 5.05.13 #VersionName: 5.05.25
'SupportedOrientations possible values: unspecified, landscape or portrait. 'SupportedOrientations possible values: unspecified, landscape or portrait.
#SupportedOrientations: portrait #SupportedOrientations: portrait
#CanInstallToExternalStorage: False #CanInstallToExternalStorage: False

View File

@@ -51,7 +51,7 @@ ModuleBreakpoints9=
ModuleClosedNodes0= ModuleClosedNodes0=
ModuleClosedNodes1= ModuleClosedNodes1=
ModuleClosedNodes10= ModuleClosedNodes10=
ModuleClosedNodes11=3,7,35,36,41,42 ModuleClosedNodes11=3
ModuleClosedNodes12= ModuleClosedNodes12=
ModuleClosedNodes13= ModuleClosedNodes13=
ModuleClosedNodes14= ModuleClosedNodes14=
@@ -73,6 +73,6 @@ ModuleClosedNodes6=
ModuleClosedNodes7= ModuleClosedNodes7=
ModuleClosedNodes8= ModuleClosedNodes8=
ModuleClosedNodes9= 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 SelectedBuild=0
VisibleModules=22,2,10,4,19,9,11,23,12,8 VisibleModules=22,2,10,4,11,23,12,8

View File

@@ -858,7 +858,10 @@ Sub traePromo(promo As String, cliente As String) As Map
promoMap.Put("prodsFijosPiezas", prodsFijosPiezas) promoMap.Put("prodsFijosPiezas", prodsFijosPiezas)
promoMap.Put("prodsVariablesCant", prodsVariables.Size) promoMap.Put("prodsVariablesCant", prodsVariables.Size)
promoMap.Put("prodsVariablesPrecios", prodsVariablesPrecios) 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("vigencia_abordo", c.GetString("CAT_PA_VIGENCIAABORDO").SubString2(0, c.GetString("CAT_PA_VIGENCIAABORDO").IndexOf(" ")))
promoMap.Put("resultado", "ok") promoMap.Put("resultado", "ok")
Else Else
@@ -1502,6 +1505,7 @@ Sub revisaFechaVigenciaPromo(pm As Map) As Boolean
DateTime.DateFormat = "yyyyMMdd" DateTime.DateFormat = "yyyyMMdd"
If Starter.tipov = "PREVENTA" Or Starter.tipov = "ABORDO" Then If Starter.tipov = "PREVENTA" Or Starter.tipov = "ABORDO" Then
Private vigencia As String = pm.Get("vigencia").As(String).Replace("-", "") Private vigencia As String = pm.Get("vigencia").As(String).Replace("-", "")
' Log("|" & vigencia & "|")
If vigencia >= DateTime.Date(DateTime.Now) Then vigente = True If vigencia >= DateTime.Date(DateTime.Now) Then vigente = True
Else if Starter.tipov = "VENTA" Then Else if Starter.tipov = "VENTA" Then
Private vigencia As String = pm.Get("vigencia_abordo").As(String).Replace("-", "") 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, ' 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. ' solo va uno con cantidades y totales sumados.
Sub agrupaProdsPromo (cliente As String) Sub agrupaProdsPromo (cliente As String)
Log("####################################################################################################################")
Log("####################################################################################################################")
Log("####################################################################################################################")
Starter.skmt.ExecNonQuery($"CREATE TEMP TABLE IF NOT EXISTS PEDIDO_AGRUPADOR ( Starter.skmt.ExecNonQuery($"CREATE TEMP TABLE IF NOT EXISTS PEDIDO_AGRUPADOR (
PE_PRECIO2, PE_PRECIO2,
PE_TIPO, 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.TransactionSuccessful 'Si no se pone TransactionSuccessful no se escribe NADA!!
Starter.skmt.EndTransaction Starter.skmt.EndTransaction
Log("LISTO!!") 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 End Sub