- VERSION 4.09.06.EP_d

- Codigo para promo Procter PRO3009
- Codigo para promo Unilever PRO3015
This commit is contained in:
Jose Alberto Guerra Ugalde
2024-09-09 11:16:42 -06:00
parent 012169a186
commit 4de48f6db6
8 changed files with 308 additions and 86 deletions

View File

@@ -148,8 +148,8 @@ Private Sub B4XPage_Created (Root1 As B4XView)
' Subs.borraArribaDe100Errores ' Para Websockets
' Subs.borraArribaDe600RenglonesBitacora ' Para Websockets
If File.Exists(ruta, "kmt.db") = False Then
File.Copy(File.DirAssets, "kmt.db", ruta, "kmt.db")
If File.Exists(File.DirInternal, "kmt.db") = False Then
File.Copy(File.DirAssets, "kmt.db", File.DirInternal, "kmt.db")
End If
skmt.Initialize(File.DirInternal,"kmt.db", True)
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS IMPRESORA (HABILITADA)")
@@ -182,6 +182,9 @@ Private Sub B4XPage_Created (Root1 As B4XView)
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_ENCUESTA (HE_CLIE TEXT, HE_RES TEXT, HE_FECHA TEXT, HE_TIPO TEXT, HE_LAT TEXT, HE_LON TEXT)")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS BITACORAGPS(fechab TEXT, usuariob TEXT, almacenb TEXT, rutab TEXT, eventob TEXT, clienteb TEXT, iniciob TEXT, finb TEXT, latitudb TEXT, longitudb TEXT, precision TEXT, motivonoventa TEXT, motivonovisita TEXT)")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS kmt_info2(CAT_CL_FOTO BLOB, CAT_CL_NUM_SERIEFISICO TEXT, CAT_CL_MTOCOMPRA TEXT, CAT_CL_CEDIS TEXT, CAT_CL_LAT TEXT, CAT_CL_LONG TEXT, CAT_CL_FBAJA TEXT, CAT_CL_FALTA TEXT, CAT_CL_CP TEXT, CAT_CL_EDO TEXT, CAT_CL_MUNI TEXT, CAT_CL_COLONIA TEXT, CAT_CL_CALLE2 TEXT, CAT_CL_CALLE1 TEXT, CAT_CL_NOINT TEXT, CAT_CL_NOEXT TEXT, CAT_CL_CALLE TEXT, CAT_CL_EMAIL TEXT, CAT_CL_TELEFONO TEXT, CAT_CL_ATIENTE2 TEXT, CAT_CL_ATIENDE1 TEXT, CAT_CL_NOMBRE TEXT, CAT_CL_GIRO TEXT, CAT_CL_DIAS_VISITA TEXT, CAT_CL_TIPO_RUTA TEXT, CAT_CL_RUTA TEXT, CAT_CL_CODIGO TEXT, gestion NUMERIC)")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_PRO2265(H_IDCLIENTE)")
' skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_VARIABLES (CAT_VA_DESCRIPCION TEXT, CAT_VA_VALOR TEXT)")
Subs.agregaColumna("HIST_ENCUESTA", "HE_LAT", "TEXT")
Subs.agregaColumna("HIST_ENCUESTA", "HE_FOTO", "BLOB")
Subs.agregaColumna("PEDIDO", "PE_RECALCULO", "TEXT")
@@ -241,7 +244,6 @@ Private Sub B4XPage_Created (Root1 As B4XView)
almacen = 0
rutaPreventa = 0
p_appUpdate.Visible = False
Subs.guardaAppInfo
End Sub
Sub B4XPage_Appear
@@ -339,7 +341,7 @@ Sub B4XPage_Appear
Else
B4XSwitch1.Value = False
End If
Subs.guardaAppInfo
End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.

View File

@@ -423,6 +423,7 @@ Sub Class_Globals
Dim motivoNoVenta, motivoNoVisita As String
Dim contadorIniciarVenta As Int = 0
Dim IniVenNO As Boolean = False
private geoCont as int = 0
End Sub
'You can add more parameters here.
@@ -1164,10 +1165,10 @@ Private Sub b_geopass_Click
End Sub
Private Sub LA_GEO_LongClick
If distance > 99 Then
p_pideGeoPass.BringToFront
p_pideGeoPass.Visible = True
End If
' If distance > 99 Then
' p_pideGeoPass.BringToFront
' p_pideGeoPass.Visible = True
' End If
End Sub
Sub JobDone(Job As HttpJob)
@@ -1183,10 +1184,15 @@ Sub JobDone(Job As HttpJob)
Log("SIN REGISTROS " & result1.Rows.Size)
If result1.Rows.Size = 0 Then MsgboxAsync("Contraseña equivocada, por favor intente de nuevo.", "ATENCION")
For Each records() As Object In result1.Rows
' For Each k As String In result.Columns.Keys
' Log(k & ": " & records(result.Columns.Get(k)))
' Next
Private permiso_geoPass As String = records(result1.Columns.Get("'OK'"))
For Each k As String In result1.Columns.Keys
Log(k & ": " & records(result1.Columns.Get(k)))
Next
Private permiso_geoPass As String = "KO"
Log($"|${result1.Columns.Get("'OK'")}|"$)
' Log($"|${records(result1.Columns.Get("'OK'"))}|"$)
' If result1.Columns.Get("'OK'") <> "null" And result1.Columns.Get("'OK'") <> Null Then
permiso_geoPass = result1.Columns.Get("'OK'")
' End If
If permiso_geoPass = "OK" Then
m_lat = B4XPages.MainPage.lat_gps
m_lon = B4XPages.MainPage.lon_gps
@@ -1197,6 +1203,8 @@ Sub JobDone(Job As HttpJob)
cmd.Name = "delete_geoPass_GUNA"
cmd.Parameters = Array As Object( Subs.traeAlmacen, Subs.traeRuta)
reqManager.ExecuteQuery(cmd , 0, "traeGeoPass")
Else
MsgboxAsync("Contraseña equivocada, por favor intente de nuevo.", "ATENCION")
End If
Next
End If
@@ -4795,3 +4803,16 @@ Private Sub b_Inicio_Fin_venta_Click
b_Inicio_Fin_venta.Visible = False
End Sub
Private Sub LA_GEO_Click
Log(geoCont)
If geoCont = 3 Then
Subs.centraPanel(p_pideGeoPass, Root.Width)
geoCont = 0
If distance > 99 Then
p_pideGeoPass.BringToFront
p_pideGeoPass.Visible = True
End If
End If
geoCont = geoCont + 1
End Sub

View File

@@ -306,7 +306,7 @@ End Sub
Sub B4XPage_Appear
p_principal.Visible = True
Subs.validaPromoProcterPRO3009
HORAINGRESO ="000000"
Btn_Ubicar.Left = (Root.Width/2) - (Btn_Ubicar.Width/2)
' B4XPages.MainPage.reqManager.Initialize(Me, B4XPages.MainPage.SERVER)
@@ -976,6 +976,13 @@ Sub cargar_Click
cmd.Parameters = Array As Object(ALMACEN, e_ruta.text)
B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "HIST_PROM")
'Promo PRO3015 - 2 AXE AEROSOL 150 ML + 1 REXONA AEROSOL 150 ML $104.00
' Solo aplica para los que hayan comprado la PRO2265 durante Jul-Ago, el siguiente query trae esos clientes.
cmd.Initialize
cmd.Name = "selectPromo2265JulAgo_Guna"
cmd.Parameters = Array As Object(e_ruta.text, ALMACEN)
B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "hist_pro2265")
If E_RUTA2.text <> "" Then
cmd.Initialize
cmd.Name = "select_cat_clientes_guna_GV2"
@@ -1084,7 +1091,7 @@ Sub JobDone(Job As HttpJob)
End If
End If
Else 'If Job Success then ...
'Logcolor("JobDone: '" & B4XPages.MainPage.reqManager.HandleJob(Job).tag & "' - Registros: " & B4XPages.MainPage.reqManager.HandleJob(Job).Rows.Size, Colors.Green) 'Mod por CHV - 211027
LogColor("JobDone: '" & B4XPages.MainPage.reqManager.HandleJob(Job).tag & "' - Registros: " & B4XPages.MainPage.reqManager.HandleJob(Job).Rows.Size, Colors.Green) 'Mod por CHV - 211027
'Verificamos que el usuario guardado en BD sea VALIDO.
If Job.JobName = "DBRequest" Then
Dim RESULT As DBResult = B4XPages.MainPage.reqManager.HandleJob(Job)
@@ -1188,8 +1195,6 @@ Sub JobDone(Job As HttpJob)
End If
End If
End If
If Job.JobName = "DBRequest" Then
Dim RESULT As DBResult = B4XPages.MainPage.reqManager.HandleJob(Job)
@@ -1853,6 +1858,14 @@ Sub JobDone(Job As HttpJob)
B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("FOLIO",FOLIO))
Next
End If
Dim RESULT As DBResult = B4XPages.MainPage.reqManager.HandleJob(Job)
If RESULT.Tag = "hist_pro2265" Then 'query tag
Starter.skmt.ExecNonQuery("delete from HIST_PRO2265")
For Each records() As Object In RESULT.Rows
Starter.skmt.ExecNonQuery2("INSERT INTO HIST_PRO2265(H_IDCLIENTE) VALUES (?)", Array As Object (records(RESULT.Columns.Get("HVD_CLIENTE"))))
Next
End If
End If
End If
Job.Release

View File

@@ -208,6 +208,7 @@ Sub lv_catalogos_ItemClick (Position As Int, Value As Object)
' Dim ins As InputStream
' Dim bmp As Bitmap
' Dim jpeg() As Byte
Private yaComproPRO2265 As Boolean = Subs.revisaPRO2265(Subs.traeCliente)
If c2.RowCount > 0 Then
For i=0 To c2.RowCount -1
c2.Position=i
@@ -215,14 +216,18 @@ Sub lv_catalogos_ItemClick (Position As Int, Value As Object)
' ins.InitializeFromBytesArray(jpeg, 0, jpeg.Length)
' bmp.Initialize2(ins)
' ListView1.AddTwoLinesAndBitmap(c2.GetString("CAT_GP_NOMBRE"),"# " & c2.GetString("CAT_GP_ALMACEN") & " $ " & c2.GetString("CAT_GP_PRECIO"),bmp)
Private tm As Map = Subs.procesaPromocion(c2.GetString("CAT_GP_ID"), Subs.traeCliente)
Log($"TM=${tm}"$)
If tm.Get("status") = "ok" Then 'Solo muestrala si hay producto.
lv_promos.AddTwoLines(c2.GetString("CAT_GP_NOMBRE"),"# " & c2.GetString("CAT_GP_ALMACEN") & " $ " & c2.GetString("CAT_GP_PRECIO") & " F:" & tm.Get("mp").As(Map).Get("prodsFijosCant") & " V:" & tm.Get("mp").As(Map).Get("prodsVariablesCant"))
If yaComproPRO2265 And c2.GetString("CAT_GP_ID") = "PRO3015" Then ' Si la promo es la PRO3015 y ya compro la PRO2265, NO la mostramos.
LogColor("Ya compro la PRO2265, ya no se muestra la PRO3015", Colors.Red)
Else
lv_promos.AddTwoLines(c2.GetString("CAT_GP_NOMBRE"),"# " & c2.GetString("CAT_GP_ALMACEN") & " $ " & c2.GetString("CAT_GP_PRECIO") & " F:" & tm.Get("mp").As(Map).Get("prodsFijosCant") & " V:" & tm.Get("mp").As(Map).Get("prodsVariablesCant"))
End If
End If
Next
End If
yaComproPRO2265 = False
c2.Close
End If
entro = "4"
@@ -544,6 +549,7 @@ Sub cuentaProds
l_totProds.text = $"Prods: ${totalProds}"$
Next
' LogColor("TIEMPO cuentaProds -=" & ((DateTime.Now-inicioContador)/1000), Colors.Red)
Subs.revisaPromoProcterPRO3009(prodsMap)
LogColor(prodsMap, Colors.blue)
p_botonesVenta.Visible = True
Log($"Total Prods: ${totalProds}, Total Compra: $$1.2{totalCompra}"$)

View File

@@ -1,66 +1,96 @@
Build1=Default,gunav2.keymon.com.mx
File1=alerta_amarilla.png
File10=ENCUESTA_M4.bal
File11=ENCUESTA_M5.bal
File12=ENCUESTA_PED.bal
File13=engrane.jpg
File14=engrane.png
File15=engrane18.png
File16=engraneactual.png
File17=ESNCUESTA_M2.bal
File18=fondo_kmt.jpg
File19=gps20.png
File2=bus-ar.png
File20=guna.png
File21=guna18.png
File22=guna-fondo.png
File23=Hacer pedido.jpg
File24=hacerpedido30.png
File25=ic_cloud_download_white_24dp.png
File26=itembuttonblue.png
File27=login.bal
File28=Logo Guna_192x192.png
File29=logo-guna-18.png
File3=carrito.png
File30=MainPage.bal
File31=Malo.jpg
File32=mapa_rutas.bal
File33=mas-azul.png
File34=mas-azul-red.png
File35=mas-azul-red1.png
File36=menos.png
File37=menosred.png
File38=menos-red.png
File39=nota.bal
File4=celltitle.bal
File40=noventa.bal
File41=nuevocliente.bal
File42=nuevo-cliente20.png
File43=Nvo Cliente.jpg
File44=palomita_verde.png
File45=pedido.bal
File46=planfia_logo.png
File47=principal.bal
File48=proditem.bal
File49=productos.bal
File5=cliente.bal
File50=promociones.bal
File51=qr_gallina.jpg
File52=resdia.bal
File53=ResDia.jpg
File54=resdia20.png
File55=salma.jpg
File56=salma.png
File57=senial.jpg
File58=sync.png
File59=Ticket dia.jpg
File6=clientes.bal
File60=ticketdia20.png
File61=ticketsdia.bal
File62=Tiendita.jpg
File7=durakelo.png
File8=ENCUESSTA_M3.bal
File9=ENCUESTA.bal
File1=alert2.png
File10=clientes.bal
File11=comis.bal
File12=datoscliente.bal
File13=detalle_promo.bal
File14=durakelo.png
File15=durakelo1.png
File16=ENCUESSTA_M3.bal
File17=ENCUESTA.bal
File18=ENCUESTA_M4.bal
File19=ENCUESTA_M5.bal
File2=alerta.jpg
File20=ENCUESTA_PED.bal
File21=engrane.jpg
File22=engrane.png
File23=engrane18.png
File24=engraneactual.png
File25=errormanager.bal
File26=ESNCUESTA_M2.bal
File27=fondo_kmt.jpg
File28=foto.bal
File29=gps20.png
File3=alerta_amarilla.png
File30=guardagestion.bal
File31=guna.png
File32=guna_viejo.png
File33=guna18.png
File34=guna-fondo.png
File35=Hacer pedido.jpg
File36=hacerpedido30.png
File37=ic_cloud_download_white_24dp.png
File38=infonavit1.jpg
File39=itembuttonblue.png
File4=amarillo.png
File40=keymon_logo.png
File41=kmt.db
File42=login.bal
File43=Logo Guna_192x192.png
File44=Logo Guna-01.png
File45=logo sanfer.jpg
File46=logo_exitus1.jpg
File47=logo-guna-18.png
File48=MainPage.bal
File49=Malo.jpg
File5=anterior.jpg
File50=mapa.bal
File51=mapa_rutas.bal
File52=maparutas.bal
File53=mas-azul.png
File54=mas-azul-red.png
File55=mas-azul-red1.png
File56=menos.png
File57=menosred.png
File58=menos-red.png
File59=nota (conflict 2022-07-08-00-16-40).bal
File6=bus-ar.png
File60=nota.bal
File61=noventa.bal
File62=nuevocliente.bal
File63=nuevo-cliente20.png
File64=Nvo Cliente.jpg
File65=p&g.png
File66=palomita_verde.png
File67=pedido.bal
File68=planfia_logo.png
File69=planfia_logo_old.png
File7=carrito.png
File70=planfia_logo_old2.png
File71=principal.bal
File72=proditem.bal
File73=productos.bal
File74=promociones.bal
File75=qr.bal
File76=qr_gallina.jpg
File77=resdia.bal
File78=ResDia.jpg
File79=resdia20.png
File8=celltitle.bal
File80=rojo.png
File81=salma.jpg
File82=salma.png
File83=seleccion.bal
File84=senial.jpg
File85=sync.png
File86=tache_rojo.png
File87=telefonos.bal
File88=Ticket dia.jpg
File89=ticketdia20.png
File9=cliente.bal
File90=ticketsdia.bal
File91=Tiendita.jpg
File92=verde.png
FileGroup1=Default Group
FileGroup10=Default Group
FileGroup11=Default Group
@@ -120,9 +150,39 @@ FileGroup6=Default Group
FileGroup60=Default Group
FileGroup61=Default Group
FileGroup62=Default Group
FileGroup63=Default Group
FileGroup64=Default Group
FileGroup65=Default Group
FileGroup66=Default Group
FileGroup67=Default Group
FileGroup68=Default Group
FileGroup69=Default Group
FileGroup7=Default Group
FileGroup70=Default Group
FileGroup71=Default Group
FileGroup72=Default Group
FileGroup73=Default Group
FileGroup74=Default Group
FileGroup75=Default Group
FileGroup76=Default Group
FileGroup77=Default Group
FileGroup78=Default Group
FileGroup79=Default Group
FileGroup8=Default Group
FileGroup80=Default Group
FileGroup81=Default Group
FileGroup82=Default Group
FileGroup83=Default Group
FileGroup84=Default Group
FileGroup85=Default Group
FileGroup86=Default Group
FileGroup87=Default Group
FileGroup88=Default Group
FileGroup89=Default Group
FileGroup9=Default Group
FileGroup90=Default Group
FileGroup91=Default Group
FileGroup92=Default Group
Group=Default Group
Library1=appupdating
Library10=firebaseadmob
@@ -183,7 +243,7 @@ Module6=C_Cuestionario
Module7=C_Historico
Module8=C_Mapas
Module9=C_Nota
NumberOfFiles=62
NumberOfFiles=92
NumberOfLibraries=33
NumberOfModules=25
Version=12.8
@@ -191,7 +251,7 @@ Version=12.8
#Region Project Attributes
#ApplicationLabel: Guna V3.1
#VersionCode: 1
#VersionName: 4.08.30.EP_d
#VersionName: 4.09.06.EP_d
'SupportedOrientations possible values: unspecified, landscape or portrait.
#SupportedOrientations: portrait
#CanInstallToExternalStorage: False

View File

@@ -76,6 +76,6 @@ ModuleClosedNodes6=8,9,10
ModuleClosedNodes7=
ModuleClosedNodes8=
ModuleClosedNodes9=
NavigationStack=B4XMainPage,JobDone,543,0,C_Principal,cargar_Click,1057,0,C_Principal,b_mapa_Click,1943,0,C_Principal,t2_tick,1982,0,C_Principal,e_ruta_EnterPressed,1987,1,Subs,bitacora,1263,0,Diseñador Visual,principal.bal,-100,2,Subs,vendidoPromoEsp,1251,0,C_Principal,Class_Globals,0,0,C_Principal,Subir_Click,571,4
NavigationStack=Subs,agregaColumna,1173,0,Subs,guardaAppInfo,1186,0,B4XMainPage,Class_Globals,52,0,B4XMainPage,B4XPage_Appear,274,0,B4XMainPage,B4XPage_Created,144,2,Starter,Process_Globals,33,0,Starter,Service_Create,54,0,Main,Globals,25,0,Main,Process_Globals,21,0,Subs,revisaPromoProcterPRO3009,1425,0,Subs,validaPromoProcterPRO3009,1460,0
SelectedBuild=0
VisibleModules=23,2,24,13,14,4,6,9,12,5

View File

@@ -14,6 +14,7 @@ Sub Process_Globals
'These variables can be accessed from all modules.
Public gps As GPS
Dim ph As Phone
Dim skmt As SQL
Public rp As RuntimePermissions
Public FLP As FusedLocationProvider
' Private flpStarted As Boolean
@@ -52,6 +53,10 @@ Sub Service_Create
logs.Initialize
CallSubDelayed(FirebaseMessaging, "SubscribeToTopics") 'Para Push FirebaseMessaging
ubicacionActual.Initialize
If File.Exists(File.DirInternal, "kmt.db") = False Then
File.Copy(File.DirAssets, "kmt.db", File.DirInternal, "kmt.db")
End If
skmt.Initialize(File.DirInternal,"kmt.db", True)
End Sub
Private Sub BTAdmin_StateChanged (NewState As Int, OldState As Int)

View File

@@ -767,7 +767,7 @@ End Sub
' resultado="OK" 'Ok si existe la promocion.
' prodsVariablesRequeridos=5} 'Cantidad de productos variables requeridos para la promoción.
Sub traePromo(promo As String, cliente As String) As Map
Log($"TRAE PROMO = ${promo}"$)
LogColor($"TRAE PROMO = ${promo}"$, Colors.Red)
Private inicioContador As String = DateTime.Now
Private c As Cursor = B4XPages.MainPage.skmt.ExecQuery("Select * from promos_comp where cat_pa_id = '"& promo&"'") 'Obtenemos las el maximo de promocioones a otorgar.
Private siHistorico As String = 0
@@ -925,7 +925,6 @@ Sub traeMaxPromos(pm As Map) As Int
maxPromos.Add(pm.Get("maxXcliente")) 'Agregamos maxXcliente
If thisLog Then Log(maxPromos)
maxPromos.Sort(True)
' Log($"|${pm.Get("id").As(String).trim}|${traeCliente.Trim}|"$)
Private c As Cursor = B4XPages.MainPage.skmt.ExecQuery2("select sum(PE_CANT) as vendidas from PEDIDO where PE_PROID = ? and PE_CLIENTE = ? ", Array As String(pm.Get("id").As(String).trim, traeCliente.Trim))
If c.RowCount > 0 Then
@@ -933,7 +932,6 @@ Sub traeMaxPromos(pm As Map) As Int
vendidas = c.GetInt("vendidas")
' Log(vendidas)
End If
' If Starter.promosLog Then Log(maxPromos)
' If Starter.promosLog Then Log("Max Promos="&maxPromos.Get(0))
' LogColor($"maxPromos=${maxPromos.Get(0)} - vendidas=${vendidas}"$, Colors.red)
@@ -1387,3 +1385,120 @@ Sub iniciaActividad(ia As String)
' If B4XPages.MainPage.logger Then LogColor("Iniciamos --> " & ia, Colors.Blue)
End If
End Sub
'Revisa si en el pedido hay $150 o mas de los 2 productos especificados, y si si, entonces agrega el producto de regalo a la tabla pedido.
Sub revisaPromoProcterPRO3009(prodsMap1 As Map)
Log("entramos a promo Procter")
Dim almacenes As List
almacenes.Initialize2(Array As String("3", "17", "37", "31", "68", "71", "33", "80"))
Log("Posicion de almacen: " & almacenes.IndexOf(traeAlmacen))
' ("3", "17", "37", "31", "68", "71", "33", "80")
If almacenes.IndexOf(traeAlmacen) >= 0 Then ' Si el almacen actual esta dentro de la lista de almacenes autorizados para la promocion, entonces continuamos ...
Private idRegalo As String = "PYG1016"
Private newProdsMap As Map = prodsMap1
Private monto As String = 0
Private invRegalo As Int = 0
Private totalRegalos As Int = 0
Private r As ResultSet = Starter.skmt.ExecQuery($"select ifnull(cat_gp_almacen, 0) as CAT_GP_ALMACEN from cat_gunaprod where cat_gp_id = '${idRegalo}'"$) ' Traemos el inventario del regalo.
Do While r.NextRow
Log(r.GetString("CAT_GP_ALMACEN"))
If r.GetString("CAT_GP_ALMACEN") > 0 Then invRegalo = r.GetString("CAT_GP_ALMACEN")
Loop
Log("INV REGALO: " & invRegalo)
r = Starter.skmt.ExecQuery($"select pe_proid from pedido where pe_proid = '${idRegalo}' and pe_cedis = 'PRO3009' and pe_cant = 1 and pe_cliente = '${traeCliente}' "$) 'Revisamos si el regalo ya existe en el pedido.
If r.RowCount > 0 Then totalRegalos = r.RowCount
Log($"TOTAL REGALOS: ${totalRegalos}"$)
If prodsMap1.ContainsKey("PYG1014") Then ' Calculamos el monto del producto 1
Private m1 As Map = prodsMap1.Get("PYG1014")
monto = monto + m1.Get("cant") * m1.Get("precio")
End If
If prodsMap1.ContainsKey("PYG1025") Then ' Calculamos el monto del producto 2
Private m2 As Map = prodsMap1.Get("PYG1025")
monto = monto + m2.Get("cant") * m2.Get("precio")
End If
Private r2 As ResultSet = Starter.skmt.ExecQuery($"select ifnull(sum(pe_costo_tot),0) as monto from pedido where pe_cliente = '${traeCliente}' and PE_PROID in ("PYG1014", "PYG1025")"$)
Do While r2.NextRow
monto = monto + r2.GetString("monto")
Loop
Log($"Monto: ${monto}"$)
' Log("PM: " & prodsMap)
Log("prodsMap.Size: " & prodsMap1.Size)
If prodsMap1.Size > 0 Then
If monto > 149 Then
Log("Mas de 149")
If invRegalo > 0 Then
Log("Hay inventario para regalo")
If totalRegalos = 0 Then
guardaProducto("PRO3009", 1, 1, traeProdNombre(idRegalo), idRegalo, traeCliente, traeFecha, traeUsuarioDeBD, traeRuta, 0, B4XPages.MainPage.tipo_venta)
' ToastMessageShow("Agregamos regalo", False)
Private cs As CSBuilder
cs.Initialize
Msgbox(cs.Color(Colors.red).append("PRO3009:").Pop.append(" En la compra de $150 de la linea Oral B Procter & Gamble se agrega 1 Salvo Multiusuos 500 ml.").Color(Colors.red).Append(" con precio de $1.00").popall, "Producto de regalo agregado") 'ignore
End If
Else
LogColor("NO hay inventario para regalo PRO3009 Procter & Gamble.", Colors.red)
End If
Else
Log("Menos de 149")
If totalRegalos > 0 Then
Log("Quitamos regalo")
Starter.skmt.ExecNonQuery($"delete from pedido where pe_cedis = 'PRO3009' and pe_proid = '${idRegalo}' and pe_cliente = '${traeCliente}' and pe_cant = 1 "$)
Log($"Borramos pe_cedis='PRO3009' and pe_proid='${idRegalo}' and pe_cliente='${traeCliente}'"$)
Private pe As Cursor = Starter.skmt.ExecQuery("select count(pe_cliente) as cuantosPedidos from pedido where pe_cliente In (select cuenta from cuentaa)")
pe.Position=0
If pe.GetString("cuantosPedidos") = 0 Then
Log("###### delete from pedido_cliente - " & traeCliente & "|" & traeCliente)
Log($"delete from pedido_cliente where PC_CLIENTE = '${traeCliente}'"$)
Starter.skmt.ExecNonQuery($"delete from pedido_cliente where PC_CLIENTE = '${traeCliente}'"$)
End If
ToastMessageShow("Quitamos regalo PRO3009", False)
End If
End If
End If
Else
LogColor("El almacen actual NO esta en la lista para la promo de Procter & Gamble.", Colors.Magenta)
End If
' Return newProdsMap
End Sub
'Valida que si hay un regalo de la promo, tambien existan productos en el pedido para respaldarla.
Sub validaPromoProcterPRO3009
Private idRegalo As String = "PYG1016"
Private r As ResultSet = Starter.skmt.ExecQuery($"select pe_cliente from pedido where pe_proid = '${idRegalo}' and pe_cedis = 'PRO3009'"$)
' Private cont As Int = 0
Do While r.NextRow
Private monto As String = 0
Private r2 As ResultSet = Starter.skmt.ExecQuery($"select ifnull(sum(pe_costo_tot),0) as monto from pedido where pe_cliente = '${r.GetString("PE_CLIENTE")}' and PE_PROID in ("PYG1014", "PYG1025")"$)
Do While r2.NextRow
Log($"Cliente: ${r.GetString("PE_CLIENTE")}, monto: ${r2.GetString("monto")}"$)
' cont = cont + 1
' Log("CONT = " & cont & " , MONTO: " & r2.GetString("monto"))
If r2.GetString("monto") < 150 Then
Starter.skmt.ExecNonQuery($"delete from pedido where pe_cedis = 'PRO3009' and pe_proid = '${idRegalo}' and pe_cliente = '${r.GetString("PE_CLIENTE")}' and pe_cant = 1 "$)
' If cont = 1 Then
Msgbox($"Regalo de la promoción PRO3009 borrado por no cumplir con los requisitos mínimos."$, "Regalo Borrado") 'ignore
' End If
End If
Loop
r2 = Starter.skmt.ExecQuery($"select count(pe_proid) as cuantos from pedido where pe_cliente = '${r.GetString("PE_CLIENTE")}'"$) 'Revisamos si es que hay mas pedido del cliente, y si no, borramos el header.
Do While r2.NextRow
' Log(">>>> CUANTOS: " & r2.GetString("cuantos"))
If r2.GetString("cuantos") = 0 Then
Starter.skmt.ExecNonQuery($"delete from pedido_cliente where pc_cliente = '${r.GetString("PE_CLIENTE")}'"$)
Starter.skmt.ExecNonQuery($"update kmt_info2 set gestion = 0 where cat_cl_codigo = '${r.GetString("PE_CLIENTE")}'"$)
End If
Loop
Loop
End Sub
'Regresa TRUE si el cliente especificado existe en el historico de compra de la promo.
Sub revisaPRO2265(idCliente As String) As Boolean
Private r As ResultSet = Starter.skmt.ExecQuery($"select * from HIST_PRO2265 where H_IDCLIENTE = '${idCliente}'"$)
Private x As Boolean = False
Do While r.NextRow
x = True
Loop
Log($">>>> revisaPRO2265 ${idCliente} = ${x}"$)
Return x
End Sub