mirror of
https://github.com/KeymonSoft/Durakelo.git
synced 2026-04-17 19:36:12 +00:00
- VERSION 5.04.01
- Se agregó la validacion de fechas de fin de promoción para Preventa y Venta. - Se agregó que cuando se hace abordo (siguiente carga), los limites configurados para las promos (maxpromos, maxrec y maxxcliente) no se tomen en cuenta.
This commit is contained in:
@@ -170,6 +170,8 @@ Private Sub B4XPage_Created (Root1 As B4XView)
|
||||
Subs.agregaColumna("CAT_ENCUESTA_PREGUNTA", "CAT_EP_RUTAS", "TEXT")
|
||||
Subs.agregaColumna("HIST_ENCUESTA", "HE_LAT", "TEXT")
|
||||
Subs.agregaColumna("HIST_ENCUESTA", "HE_LON", "TEXT")
|
||||
Subs.agregaColumna("CAT_DETALLES_PAQ", "CAT_PA_VIGENCIA_FIN", "TEXT")
|
||||
Subs.agregaColumna("CAT_DETALLES_PAQ", "CAT_PA_VIGENCIAABORDO", "TEXT")
|
||||
c=Starter.skmt.ExecQuery2("select count(*) as CUANTOS from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("SERVER"))
|
||||
c.Position =0
|
||||
If c.GetString("CUANTOS") = 0 Then
|
||||
|
||||
@@ -917,7 +917,7 @@ Sub cargar_Click
|
||||
cmd.Name = "select_cat_paquetes_abordo_DUR"
|
||||
cmd.Parameters = Array As Object(ALMACEN)
|
||||
reqManager.ExecuteQuery(cmd , 0, "gunaprodpa") 'xxxxxxxxxxxxxx
|
||||
|
||||
|
||||
cmd.Initialize
|
||||
cmd.Name = "select_cat_paquetes_DUR"
|
||||
cmd.Parameters = Array As Object(ALMACEN)
|
||||
@@ -929,10 +929,10 @@ Sub cargar_Click
|
||||
reqManager.ExecuteQuery(cmd , 0, "gunaprodps") 'xxxxxxxxxxxxxxxx
|
||||
|
||||
cmd.Initialize
|
||||
cmd.Name = "select_cat_detallepa_DUR"
|
||||
cmd.Name = "select_cat_detallepa2_DUR"
|
||||
cmd.Parameters = Array As Object(ALMACEN)
|
||||
reqManager.ExecuteQuery(cmd , 0, "detallepaq")
|
||||
|
||||
|
||||
cmd.Initialize
|
||||
cmd.Name = "selectPromoProveedor"
|
||||
reqManager.ExecuteQuery(cmd , 0, "promoProveedor")
|
||||
@@ -964,10 +964,10 @@ Sub cargar_Click
|
||||
|
||||
''' validar para que sirve esto ya que no esta en la base de datos.
|
||||
|
||||
cmd.Initialize
|
||||
cmd.Name = "select_verificacion_DUR"
|
||||
cmd.Parameters = Array As Object(e_ruta.text, ALMACEN)
|
||||
reqManager.ExecuteQuery(cmd , 0, "cat_verificacion") 'xxxxxxxxxxxxxxx
|
||||
' cmd.Initialize
|
||||
' cmd.Name = "select_verificacion_DUR"
|
||||
' cmd.Parameters = Array As Object(e_ruta.text, ALMACEN)
|
||||
' reqManager.ExecuteQuery(cmd , 0, "cat_verificacion") 'xxxxxxxxxxxxxxx
|
||||
|
||||
cmd.Initialize
|
||||
cmd.Name = "select_fecha"
|
||||
@@ -1576,7 +1576,9 @@ Sub JobDone(Job As HttpJob)
|
||||
Dim CAT_DP_CLASIF As String = records(RESULT.Columns.Get("CAT_DP_CLASIF"))
|
||||
Dim CAT_DP_PRECIO As String = records(RESULT.Columns.Get("CAT_DP_PRECIO"))
|
||||
Dim CAT_DP_PRECIO_SIMPTOS As String = records(RESULT.Columns.Get("CAT_DP_PRECIO_SIMPTOS"))
|
||||
skmt.ExecNonQuery2("INSERT INTO CAT_DETALLES_PAQ(CAT_DP_ALMACEN,CAT_DP_ID,CAT_DP_IDPROD,CAT_DP_TIPO,CAT_DP_PZAS,CAT_DP_USUARIO,CAT_DP_FECHA,CAT_DP_REGALO,CAT_DP_CLASIF,CAT_DP_PRECIO,CAT_DP_PRECIO_SIMPTOS) VALUES (?,?,?,?,?,?,?,?,?,?,?)", Array As Object (CAT_DP_ALMACEN,CAT_DP_ID,CAT_DP_IDPROD,CAT_DP_TIPO,CAT_DP_PZAS,CAT_DP_USUARIO,CAT_DP_FECHA,CAT_DP_REGALO,CAT_DP_CLASIF,CAT_DP_PRECIO,CAT_DP_PRECIO_SIMPTOS))
|
||||
Dim CAT_PA_VIGENCIA_FIN As String = records(RESULT.Columns.Get("CAT_PA_VIGENCIA_FIN"))
|
||||
Dim CAT_PA_VIGENCIAABORDO As String = records(RESULT.Columns.Get("CAT_PA_VIGENCIAABORDO"))
|
||||
skmt.ExecNonQuery2("INSERT INTO CAT_DETALLES_PAQ(CAT_DP_ALMACEN,CAT_DP_ID,CAT_DP_IDPROD,CAT_DP_TIPO,CAT_DP_PZAS,CAT_DP_USUARIO,CAT_DP_FECHA,CAT_DP_REGALO,CAT_DP_CLASIF,CAT_DP_PRECIO,CAT_DP_PRECIO_SIMPTOS,CAT_PA_VIGENCIA_FIN,CAT_PA_VIGENCIAABORDO) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?)", Array As Object (CAT_DP_ALMACEN,CAT_DP_ID,CAT_DP_IDPROD,CAT_DP_TIPO,CAT_DP_PZAS,CAT_DP_USUARIO,CAT_DP_FECHA,CAT_DP_REGALO,CAT_DP_CLASIF,CAT_DP_PRECIO,CAT_DP_PRECIO_SIMPTOS,CAT_PA_VIGENCIA_FIN,CAT_PA_VIGENCIAABORDO))
|
||||
Next
|
||||
If PB2.Progress = 0 Then
|
||||
PB2.Progress = 30
|
||||
@@ -2535,7 +2537,7 @@ Sub Resumen_Click
|
||||
Else
|
||||
ImageView3.Bitmap = LoadBitmap(File.DirAssets, "palomita_verde.png")
|
||||
End If
|
||||
L_TICKPROM.Text = numberformat2(Round2((c.GetString("MONTO_DIA") / c.GetString("CLIENTES_DIA")),2), 1, 2, 2, true)
|
||||
L_TICKPROM.Text = NumberFormat2(Round2((c.GetString("MONTO_DIA") / c.GetString("CLIENTES_DIA")),2), 1, 2, 2, True)
|
||||
If c.GetString("MONTO_DIA") < 2500 Then
|
||||
ImageView5.Bitmap = LoadBitmap(File.DirAssets, "tache_rojo.png")
|
||||
Else if c.GetString("MONTO_DIA") > = 2500 And c.GetString("MONTO_DIA") < 4000 Then
|
||||
|
||||
@@ -165,6 +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 Starter.tipov = "PREVENTA" Then
|
||||
query = "cat_gunaprod"
|
||||
query2 = "COUNT_GUNAPROD"
|
||||
@@ -270,6 +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($"Resultados : ${c2.RowCount}"$)
|
||||
Private mPromosProv As Map
|
||||
mPromosProv.Initialize
|
||||
|
||||
@@ -591,31 +591,31 @@ File629=infonavit1.jpg
|
||||
File63=118.png
|
||||
File630=itembuttonblue.png
|
||||
File631=k.png
|
||||
File632=K-b27c0809.png
|
||||
File633=kelloggs.png
|
||||
File634=keymon_logo.png
|
||||
File635=kmt.db
|
||||
File636=login.bal
|
||||
File637=logo sanfer.jpg
|
||||
File638=Logo_durakelo_192xx192.jpeg
|
||||
File639=logo_exitus1.jpg
|
||||
File632=kelloggs.png
|
||||
File633=keymon_logo.png
|
||||
File634=kmt.db
|
||||
File635=login.bal
|
||||
File636=logo sanfer.jpg
|
||||
File637=Logo_durakelo_192xx192.jpeg
|
||||
File638=logo_exitus1.jpg
|
||||
File639=MainPage.bal
|
||||
File64=118marker-rojo.png
|
||||
File640=MainPage.bal
|
||||
File641=Malo.jpg
|
||||
File642=mapa.bal
|
||||
File643=mapa_rutas.bal
|
||||
File644=nestle.png
|
||||
File645=nota.bal
|
||||
File646=NoVenta.bal
|
||||
File647=nuevocliente.bal
|
||||
File648=palomita_verde.png
|
||||
File649=pedido.bal
|
||||
File640=Malo.jpg
|
||||
File641=mapa.bal
|
||||
File642=mapa_rutas.bal
|
||||
File643=nestle.png
|
||||
File644=nota.bal
|
||||
File645=NoVenta.bal
|
||||
File646=nuevocliente.bal
|
||||
File647=palomita_verde.png
|
||||
File648=pedido.bal
|
||||
File649=pedidoitem.bal
|
||||
File65=118marker-verde.png
|
||||
File650=pedidoitem.bal
|
||||
File651=planfia_logo.png
|
||||
File652=planfia_logo_old.png
|
||||
File653=planfia_logo_old2.png
|
||||
File654=principal.bal
|
||||
File650=planfia_logo.png
|
||||
File651=planfia_logo_old.png
|
||||
File652=planfia_logo_old2.png
|
||||
File653=principal.bal
|
||||
File654=principal.bal.bak
|
||||
File655=proditem.bal
|
||||
File656=productos.bal
|
||||
File657=productos.bal.old
|
||||
@@ -1406,7 +1406,7 @@ Version=12.8
|
||||
#Region Project Attributes
|
||||
#ApplicationLabel: Durakelo
|
||||
#VersionCode: 1
|
||||
#VersionName: 5.02.08
|
||||
#VersionName: 5.04.01
|
||||
'SupportedOrientations possible values: unspecified, landscape or portrait.
|
||||
#SupportedOrientations: portrait
|
||||
#CanInstallToExternalStorage: False
|
||||
|
||||
@@ -51,7 +51,7 @@ ModuleBreakpoints9=
|
||||
ModuleClosedNodes0=
|
||||
ModuleClosedNodes1=
|
||||
ModuleClosedNodes10=
|
||||
ModuleClosedNodes11=7,35,36,41,42
|
||||
ModuleClosedNodes11=3,7,35,36,41,42
|
||||
ModuleClosedNodes12=
|
||||
ModuleClosedNodes13=
|
||||
ModuleClosedNodes14=
|
||||
@@ -73,6 +73,6 @@ ModuleClosedNodes6=
|
||||
ModuleClosedNodes7=
|
||||
ModuleClosedNodes8=
|
||||
ModuleClosedNodes9=
|
||||
NavigationStack=Main,Globals,23,0,Main,Activity_Create,33,0,Main,Activity_ActionBarHomeClick,39,0,C_Principal,B_OK_PAS_Click,2330,0,C_Principal,Resumen_Click,2389,0,Main,Activity_KeyPress,40,0,Diseñador Visual,principal.bal,-100,6,C_Principal,initialize,164,0,C_Principal,B4XPage_Created,173,4,C_Cliente,Class_Globals,0,0,C_Cliente,B4XPage_Created,174,1
|
||||
NavigationStack=Subs,traePromosVendidas,1006,0,C_Promos,muestraPromo,89,0,Subs,procesaPromocion,1023,6,Subs,revisaMaxPromosProdsFijosPorInventario2,1059,6,Subs,traeMaxPromos,975,6,C_Productos,B4XPage_Appear,161,6,Subs,revisaMaxPromosProdsFijosPorInventario,1098,2,Subs,revisaFechaVigenciaPromo,1503,0,C_Nota,borra_Click,188,0,C_Nota,Activity_KeyPress,176,0,C_Nota,Class_Globals,14,0
|
||||
SelectedBuild=0
|
||||
VisibleModules=2,10,4,19,6,8,9,11,24,23
|
||||
VisibleModules=2,10,4,19,9,11,23,12,8
|
||||
|
||||
33
B4A/Subs.bas
33
B4A/Subs.bas
@@ -858,6 +858,8 @@ 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(" ")))
|
||||
promoMap.Put("vigencia_abordo", c.GetString("CAT_PA_VIGENCIAABORDO").SubString2(0, c.GetString("CAT_PA_VIGENCIAABORDO").IndexOf(" ")))
|
||||
promoMap.Put("resultado", "ok")
|
||||
Else
|
||||
promoMap.Put("resultado", "No hay datos de la promoción.")
|
||||
@@ -980,11 +982,11 @@ Sub traeMaxPromos(pm As Map) As Int
|
||||
' End If
|
||||
If thisLog Then LogColor("==== HISTORICO:"&pm.Get("historico"), Colors.Red)
|
||||
If thisLog Then Log(pm)
|
||||
Log(maxPromos)
|
||||
' Log(maxPromos)
|
||||
If pm.Get("historico") = "1" Then maxPromos.Add(pm.Get("maxRecurrente")) 'Si hay historico, agregamos maxRecurrente
|
||||
maxPromos.Add(pm.Get("maxPromos")) 'Agregamos maxPromos
|
||||
maxPromos.Add(pm.Get("maxXcliente")) 'Agregamos maxXcliente
|
||||
Log(maxPromos)
|
||||
' Log(maxPromos)
|
||||
If hccp.RowCount > 0 Then 'Agregamos promos HCCP
|
||||
hccp.Position = 0
|
||||
maxPromos.Add(hccp.GetString("HCCP_CANT"))
|
||||
@@ -994,6 +996,7 @@ Sub traeMaxPromos(pm As Map) As Int
|
||||
mp0 = maxPromos.Get(0)
|
||||
mp = mp0 - traePromosVendidas(pm.Get("id"), traeCliente)
|
||||
If thisLog Then Log($"Max Promos (${mp0}) - promos vendidas (${(traePromosVendidas(pm.Get("id"), traeCliente)).As(Int)}) = ${mp}"$)
|
||||
If Starter.tipov = "ABORDO" Then mp = 5000 ' Si es ABORDO (siguiente carga), se quitan los limites configurados
|
||||
Return mp 'Regresamos el numero mas pequeño de las opciones.
|
||||
End Sub
|
||||
|
||||
@@ -1019,11 +1022,13 @@ Sub procesaPromocion(idPromo As String, cliente As String) As Map 'ignore
|
||||
If thisLog Then LogColor(pm, Colors.Blue)
|
||||
' If thisLog Then LogColor("|" & pm.Get("maxPromos") & "|", Colors.Blue)
|
||||
' Log("|"&revisaMaxPromosProdsFijosPorInventario(pm)&"|")
|
||||
Private vigente As Boolean = revisaFechaVigenciaPromo(pm) ' Revisamos que la promo este vigente segun las fechas de preventa y venta
|
||||
If revisaMaxPromosProdsFijosPorInventario(pm) < 1 Then pm.Put("resultado", 0)
|
||||
Log($"resultado = ${pm.Get("resultado")}"$)
|
||||
If pm.Get("resultado") = "ok" Then 'Si encontramos la promoción, entonces ...
|
||||
Log($"Max promos de prodsFijos POR inventario = ${pm.Get("resultado")}"$)
|
||||
If vigente And pm.Get("resultado") = "ok" Then 'Si encontramos la promoción, entonces ...
|
||||
'Buscamos el máximo de promociones permitidas.
|
||||
mp = traeMaxPromos(pm)
|
||||
Log("########### " & Starter.tipov & "|" & mp & "|")
|
||||
' If thisLog Then LogColor($"Promociones permitidas=${mp}"$, Colors.Blue)
|
||||
' If thisLog Then Log("Promos vendidas: " & traePromosVendidas(idPromo, cliente))
|
||||
If mp < 1 Then
|
||||
@@ -1485,4 +1490,24 @@ Sub agregaColumna(tabla As String, columna As String, tipo As String) 'ignore
|
||||
End Try
|
||||
Log(2)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
'Regresa verdadero o falso dependiendo de la fecha de vigencia del tipo de venta.
|
||||
Sub revisaFechaVigenciaPromo(pm As Map) As Boolean
|
||||
Private vigente As Boolean = False
|
||||
LogColor("Entramos a revisaFechaVigenciaPromo", Colors.red)
|
||||
' Log("Fecha vigencia: " & pm.Get("vigencia"))
|
||||
' Log("Fecha vigencia abordo: " & pm.Get("vigencia_abordo"))
|
||||
' Log("Tipo venta: " & Starter.tipov)
|
||||
DateTime.DateFormat = "yyyyMMdd"
|
||||
If Starter.tipov = "PREVENTA" Or Starter.tipov = "ABORDO" Then
|
||||
Private vigencia As String = pm.Get("vigencia").As(String).Replace("-", "")
|
||||
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("-", "")
|
||||
If vigencia >= DateTime.Date(DateTime.Now) Then vigente = True
|
||||
End If
|
||||
' Log(Starter.tipov & "|" & vigencia & "|" & DateTime.Date(DateTime.Now))
|
||||
LogColor("Promo vigente: " & vigente, Colors.red)
|
||||
Return vigente
|
||||
End Sub
|
||||
Reference in New Issue
Block a user