- Se completó el codigo para las promos por ruta, si ya se vendio la promo, esta las vendidas del total disponible.

This commit is contained in:
2024-02-28 13:57:40 -06:00
parent 0d5ef58209
commit 4e4354145b
3 changed files with 34 additions and 16 deletions

View File

@@ -1067,7 +1067,7 @@ Version=12.5
#Region Project Attributes
#ApplicationLabel: Mariana
#VersionCode: 1
#VersionName: 4.02.25
#VersionName: 4.02.26
'SupportedOrientations possible values: unspecified, landscape or portrait.
#SupportedOrientations: portrait
#CanInstallToExternalStorage: False

View File

@@ -82,6 +82,6 @@ ModuleClosedNodes6=
ModuleClosedNodes7=
ModuleClosedNodes8=
ModuleClosedNodes9=
NavigationStack=C_Productos,b_terminar1_Click,581,1,B4XMainPage,B4XPage_Created,173,5,C_Principal,Subir_Click,513,6,Subs,revisaMaxPromosProdsFijosPorInventario2,1042,0,Subs,revisaMaxPromosProdsVariablesPorInventario,1129,0,Subs,alcanzanLosVariablesParaPromo,954,0,C_Principal,cargar_Click,950,1,C_Principal,JobDone,1731,2,Subs,traeMaxPromos,957,6,C_Productos,lv_catalogos_ItemClick,213,0
NavigationStack=Subs,revisaMaxPromosProdsFijosPorInventario2,1042,0,Subs,revisaMaxPromosProdsVariablesPorInventario,1129,0,C_Principal,cargar_Click,950,1,C_Principal,JobDone,1731,2,Subs,alcanzanLosVariablesParaPromo,954,0,C_Productos,lv_catalogos_ItemClick,242,0,Subs,procesaPromocion,1032,1,Subs,restaFijosPromo,920,0,Subs,traeMaxPromosXruta,1009,6,Subs,traeMaxPromos,989,6
SelectedBuild=0
VisibleModules=2,12,4,5,6,7,8,9,10,26,13

View File

@@ -961,21 +961,16 @@ End Sub
'Regresa el numero máximo de promociones permitidas, tomando en cuenta recurrentes, clientes y maxPromos.
Sub traeMaxPromos(pm As Map) As Int
Private thisLog As Boolean = False 'Si es verdadero, muestra los logs de este sub.
Private thisLog As Boolean = True 'Si es verdadero, muestra los logs de este sub.
Private maxPromos As List
Private vendidas As Int = 0
maxPromos.Initialize
' If Starter.promosLog Then Log("==== HISTORICO:"&pm.Get("historico"))
If thisLog Then Log(pm)
'Traemos las promos por ruta, y si existe, la agregamos a la lista.
Private pxr As Cursor = Starter.skmt.ExecQuery($"select * from CAT_PROMOS_RUTA where CPR_PROMO = '${pm.Get("id")}'"$)
Private maxXruta As String = ""
If pxr.RowCount > 0 Then
pxr.Position = 0
Log($"PROMOS POR RUTA PARA ${pm.Get("id")} = ${pxr.GetString("CPR_CANT")}"$)
maxXruta = pxr.GetString("CPR_CANT")
End If
Private maxXruta As String = traeMaxPromosXruta(pm.Get("id"))
If pm.Get("historico") = "1" Then maxPromos.Add(pm.Get("maxRecurrente")) 'Si hay historico, agregamos maxRecurrente
maxPromos.Add(pm.Get("maxPromos").As(Int)) 'Agregamos maxPromos
@@ -998,6 +993,29 @@ Sub traeMaxPromos(pm As Map) As Int
Return maxPromos.Get(0) - vendidas 'Regresamos el numero mas pequeño de las opciones.
End Sub
'Regresa las promos disponibles por ruta o "" si no hay.
Sub traeMaxPromosXruta(idPromo As String) As String
'Traemos las promos por ruta, y si existe, la agregamos a la lista.
Private pxr As Cursor = Starter.skmt.ExecQuery($"select * from CAT_PROMOS_RUTA where CPR_PROMO = '${idPromo}'"$)
Private maxXruta As String = ""
If pxr.RowCount > 0 Then
pxr.Position = 0
Log($"PROMOS POR RUTA PARA ${idPromo} = ${pxr.GetString("CPR_CANT")}"$)
maxXruta = pxr.GetString("CPR_CANT")
End If
'Revisamos las promos que ya se hayan vendido y las restamos del máximo.
Private cp As Cursor = Starter.skmt.ExecQuery($"select count(PE_CANT) as cuantos from PEDIDO where PE_PROID = '${idPromo}'"$)
Log(cp.RowCount)
If cp.RowCount > 0 Then
Private pa As Int = 0
cp.Position = 0
Log(cp.GetInt("cuantos"))
If IsNumber(cp.GetInt("cuantos")) Then pa = cp.GetInt("cuantos")
If maxXruta <> "" Then maxXruta = maxXruta - pa
End If
Return maxXruta
End Sub
'Regresa la cantidad de promos que se le han vendido al cliente.
Sub traePromosVendidas(promo As String, cliente As String) As Int
Private c As Cursor
@@ -1011,7 +1029,7 @@ Sub traePromosVendidas(promo As String, cliente As String) As Int
End Sub
Sub procesaPromocion(idPromo As String, cliente As String) As Map 'ignore
Private thisLog As Boolean = False 'Si es verdadero, muestra los logs de este sub.
Private thisLog As Boolean = True 'Si es verdadero, muestra los logs de este sub.
Private inicioContador As String = DateTime.Now
If thisLog Then LogColor($"********* Iniciamos revision de Promo ${idPromo} *********"$, Colors.Magenta)
'Obtenemos el mapa con toda la info de la promoción.
@@ -1035,7 +1053,7 @@ Sub procesaPromocion(idPromo As String, cliente As String) As Map 'ignore
If thisLog Then Log("Alcanzan los variables? --> " & pv)
If pv Then Return CreateMap("status":"ok", "mp":pm) Else Return CreateMap("status":"ko", "mp":pm)
Else
If thisLog Then LogColor("NO HAY INVENTARIO SUFICIENTE " & idPromo, Colors.red)
LogColor("NO HAY INVENTARIO SUFICIENTE " & idPromo, Colors.red)
Return CreateMap("status":"ko", "mp":pm)
End If
End If