From ceaa5246e5b13da233669ca0f9df0aad1aa2b4ca Mon Sep 17 00:00:00 2001 From: Jose Alberto Guerra Ugalde Date: Mon, 20 Oct 2025 16:20:37 -0600 Subject: [PATCH] - VERSION 5.10.15 - Se pusieron los regalos y exhibidores como categorias exentas de bonificacion. --- B4A/C_Cliente.bas | 30 ++++++++++++++++-------------- B4A/C_Principal.bas | 11 +++++++---- B4A/Files/principal.bal | Bin 78098 -> 78098 bytes B4A/KelloggsV4.b4a | 2 +- B4A/KelloggsV4.b4a.meta | 4 ++-- B4A/Subs.bas | 40 ++++++++++++++++++++++++++++------------ C_TrendSpending.bas | 34 +++++++++++++++++++++------------- 7 files changed, 75 insertions(+), 46 deletions(-) diff --git a/B4A/C_Cliente.bas b/B4A/C_Cliente.bas index 65e321d..d5fbc98 100644 --- a/B4A/C_Cliente.bas +++ b/B4A/C_Cliente.bas @@ -774,7 +774,7 @@ Sub B4XPage_Appear Private mPromoXMonto As Map = Subs.revisaPromoPorMonto Private elMontoTSDeLaVenta As String = 0 ' LogColor("PROMOXMONTO:" & mPromoXMonto, Colors.Blue) - If mPromoXMonto.Size > 0 And clienteId <> 0 Then ' El "clienteId <> 0" es para que no la promo cuando se pida ABORDO + If mPromoXMonto.Size > 0 And clienteId <> 0 Then ' El "clienteId <> 0" es para que no de la promo cuando sea ABORDO If l_total.Text > mPromoXMonto.Get("rangoMin") And l_total.Text < mPromoXMonto.Get("precio1") Then Log("Eres candidato a una promocion") MsgboxAsync($"Si agregas venta para que supere los $${mPromoXMonto.Get("precio1")}, la promoción "${Subs.traeProdNombre(mPromoXMonto.Get("id"))}" se agregará automáticamente."$, "AGREGA VENTA") @@ -782,10 +782,12 @@ Sub B4XPage_Appear 'Agregamos la promocion y sus productos FIJOS. Private dp As Cursor = Starter.skmt.ExecQuery($"select * from cat_detalles_paq where cat_dp_id = '${mPromoXMonto.Get("id")}'"$) If dp.RowCount > 0 Then + Log(">>>> GUARDAMOS PROMOXMONTO HEADER") Subs.guardaProductoSinGestion(mPromoXMonto.Get("id"), 0, 1, Subs.traeProdNombre(mPromoXMonto.Get("id")), mPromoXMonto.Get("id"), Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, Subs.traeRuta, 0, Starter.tipov) For i = 0 To dp.RowCount - 1 dp.Position = i If dp.GetString("CAT_DP_TIPO") = "0" Then + Log(">>>> GUARDAMOS PROMOXMONTO PRODS") Subs.guardaProductoSinGestion(mPromoXMonto.Get("id"), dp.GetString("CAT_DP_PRECIO"), dp.GetString("CAT_DP_PZAS"), Subs.traeProdNombre(dp.GetString("CAT_DP_IDPROD")), dp.GetString("CAT_DP_IDPROD"), Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, Subs.traeRuta, 0, Starter.tipov) ' Traemos el monto de las bonificacionos a guardar. -- Trade Spending Log("Monto Bonificacion -->> " & B4XPages.MainPage.promos.ts.traeMontoBonificacion(dp.GetString("CAT_DP_IDPROD"), dp.GetString("CAT_DP_PRECIO"), mPromoXMonto.Get("id"))) @@ -1110,16 +1112,16 @@ End Sub Sub B_IMP_Click ' Buscamos los clientes que tienen pedido y NO estan impresos. - Private t As Cursor = Starter.skmt.ExecQuery("Select cat_cl_codigo from kmt_info where impresion = 0 and cat_cl_codigo not in (select ci_cuenta from cliente_impreso) and cat_cl_codigo in (select distinct pe_cliente from pedido)") - If t.RowCount > 0 Then - For i = 0 To t.RowCount - 1 - t.Position = i ' Y los BORRAMOS. - Log(t.GetString("CAT_CL_CODIGO")) - Starter.skmt.ExecNonQuery($"update CUENTAA set CUENTA = '${t.GetString("CAT_CL_CODIGO")}'"$) - Subs.borraPedidoClienteActual -' Msgbox2Async($"El pedido del cliente ${t.GetString("CAT_CL_CODIGO")} no está impreso, se va a borrar"$, "PEDIDO NO IMPRESO", "Aceptar", "", "", Null, True) - Next - End If +' Private t As Cursor = Starter.skmt.ExecQuery("Select cat_cl_codigo from kmt_info where impresion = 0 and cat_cl_codigo not in (select ci_cuenta from cliente_impreso) and cat_cl_codigo in (select distinct pe_cliente from pedido)") +' If t.RowCount > 0 Then +' For i = 0 To t.RowCount - 1 +' t.Position = i ' Y los BORRAMOS. +' Log(t.GetString("CAT_CL_CODIGO")) +' Starter.skmt.ExecNonQuery($"update CUENTAA set CUENTA = '${t.GetString("CAT_CL_CODIGO")}'"$) +' Subs.borraPedidoClienteActual +'' Msgbox2Async($"El pedido del cliente ${t.GetString("CAT_CL_CODIGO")} no está impreso, se va a borrar"$, "PEDIDO NO IMPRESO", "Aceptar", "", "", Null, True) +' Next +' End If Sleep(1000) @@ -1139,10 +1141,10 @@ Sub B_IMP_Click label2.TextColor = Colors.Black ' Aqui es donde esta el pedo de julieta de los descuentos, quitar el precio2 pero meter un if para saber si es ruta especial o es normal o que show. s=Starter.skmt.ExecQuery2 ("select CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_ALMACEN from cat_gunaprod2 where CAT_GP_CLASIF <> ? ORDER BY CAT_GP_NOMBRE ", Array As String("PROMOS")) - If s.RowCount>0 Then - For i=0 To S.RowCount -1 + If s.RowCount > 0 Then + For i = 0 To S.RowCount - 1 s.Position=i - S1=Starter.skmt.ExecQuery2("select CAT_GP_ALMACEN from cat_gunaprod5 where CAT_GP_ID = ?", Array As String(s.GetString("CAT_GP_ID"))) + S1=Starter.skmt.ExecQuery2("select CAT_GP_ALMACEN from cat_gunaprod2 where CAT_GP_ID = ?", Array As String(s.GetString("CAT_GP_ID"))) S1.Position=0 S3=Starter.skmt.ExecQuery2("select count(*) as CUANTOS from HIST_ABORDO where HIST_PROID = ?", Array As String(s.GetString("CAT_GP_ID"))) S3.Position=0 diff --git a/B4A/C_Principal.bas b/B4A/C_Principal.bas index 8d61804..fcd02a1 100644 --- a/B4A/C_Principal.bas +++ b/B4A/C_Principal.bas @@ -778,7 +778,7 @@ Sub cargar_Click bcarga3 = 0 e_ruta.Text = ruta_valida ' NUEVOS CLIENTE - + Starter.skmt.ExecNonQuery2("delete from kmt_info where substr(CAT_CL_CODIGO,1,1) <> ?", Array As Object ("N")) Starter.skmt.ExecNonQuery("delete from cod_result") Starter.skmt.ExecNonQuery("delete from hist_gest") @@ -2377,6 +2377,7 @@ Private Sub connecta_LongClick ' Loop '' End If ' Log("MANDAMOS BITACORA") + If e_ruta.Text = "KMTKLL1" Then Subs.deshabilitaValidaciones End Sub Sub BUSCA_Click @@ -2402,17 +2403,17 @@ Sub e_ruta_EnterPressed res = Msgbox2("Seguro que desea hacer el cierre? ... todos los datos se borraran","Cierre", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) 'ignore If res = DialogResponse.POSITIVE Then e_ruta.Text = "" + Starter.skmt.ExecNonQuery("delete from pedido") Starter.skmt.ExecNonQuery("delete from pedido_cliente") Starter.skmt.ExecNonQuery("delete from pedido_sugerido") - Starter.skmt.ExecNonQuery("delete from pedido") Starter.skmt.ExecNonQuery("delete from BITACORAGPS") Starter.skmt.ExecNonQuery("delete from noventa") Starter.skmt.ExecNonQuery("delete from clie_act") Starter.skmt.ExecNonQuery("delete from kmt_info") Starter.skmt.ExecNonQuery("delete from cat_gunaprod") + Starter.skmt.ExecNonQuery("delete from cat_gunaprod2") Starter.skmt.ExecNonQuery("delete from cat_inventario") Starter.skmt.ExecNonQuery("delete from cat_rmi") - Starter.skmt.ExecNonQuery("delete from cat_gunaprod2") Starter.skmt.ExecNonQuery("delete from CAT_DETALLES_PAQ") Starter.skmt.ExecNonQuery("delete from HIST_VENTAS") Starter.skmt.ExecNonQuery("delete from HIST_VERIFICACION") @@ -3802,9 +3803,11 @@ End Sub Sub borraClientesNuevosSinVenta 'ignore Private x As Cursor = Starter.skmt.ExecQuery("Select CAT_CL_CODIGO from kmt_info where CAT_CL_CODIGO like 'N%' and CAT_CL_CODIGO not in (Select pe_cliente from pedido)") If x.RowCount > 0 Then - x.Position = 0 +' x.Position = 0 For i = 0 To x.RowCount - 1 + x.Position = i Starter.skmt.ExecNonQuery($"delete from kmt_info where CAT_CL_CODIGO = '${x.GetString("CAT_CL_CODIGO")}'"$) +' Log($"delete from kmt_info where CAT_CL_CODIGO = '${x.GetString("CAT_CL_CODIGO")}'"$) LogColor($"Cliente nuevo "${x.GetString("CAT_CL_CODIGO")}" SIN VENTA -> BORRADO!!"$, Colors.red) Next End If diff --git a/B4A/Files/principal.bal b/B4A/Files/principal.bal index 525489c7cb01b0155ce0521bb8a6c7dbd0545731..5f163e2fcc97ec7ee25359f2e1bbacc5629009cf 100644 GIT binary patch delta 29 jcmbRAh-K0vmWC~i|GBu07#J8NftYa%!*(uiMh-Oqj;{wb delta 24 gcmbRAh-K0vmWC~i|G6gnr*Se_FmC7KX5>%<0DFE1wg3PC diff --git a/B4A/KelloggsV4.b4a b/B4A/KelloggsV4.b4a index 639bfcd..23226d2 100644 --- a/B4A/KelloggsV4.b4a +++ b/B4A/KelloggsV4.b4a @@ -917,7 +917,7 @@ Version=12.8 #Region Project Attributes #ApplicationLabel: Kelloggs Venta #VersionCode: 3000 - #VersionName: 5.10.02 + #VersionName: 5.10.15 #SupportedOrientations: portrait #CanInstallToExternalStorage: False #BridgeLogger:true diff --git a/B4A/KelloggsV4.b4a.meta b/B4A/KelloggsV4.b4a.meta index 6caf1b9..273c6b0 100644 --- a/B4A/KelloggsV4.b4a.meta +++ b/B4A/KelloggsV4.b4a.meta @@ -67,7 +67,7 @@ ModuleBreakpoints7= ModuleBreakpoints8= ModuleBreakpoints9= ModuleClosedNodes0= -ModuleClosedNodes1=6,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,31,32,33,34,35,37,38,39,40,41,42,43,45,46,47 +ModuleClosedNodes1=6,10,11,12,13,14,15,16,18,19,20,21,22,23,24,25,26,27,28,29,31,32,33,34,35,37,38,39,40,41,42,43,45,46,47 ModuleClosedNodes10= ModuleClosedNodes11= ModuleClosedNodes12=1 @@ -100,6 +100,6 @@ ModuleClosedNodes6= ModuleClosedNodes7= ModuleClosedNodes8= ModuleClosedNodes9= -NavigationStack=C_Cliente,B4XPage_Appear,774,0,B4XMainPage,B4XPage_Appear,407,0,kms_helperSubs,traeMaxClientesNuevos,1034,0,C_Principal,cargar_Click,881,0,C_Productos,Class_Globals,0,0,C_Promos,revisaInvProdsVariables,472,0,C_Promos,b_terminar1_Click,511,0,C_Promos,b_continuar_Click,551,0,C_TrendSpending,traeMontoBonificacion,360,0,C_Productos,b_terminar1_Click,1080,0,C_Productos,LlenaProdsLL,1507,0 +NavigationStack=Subs,revisaPromoPorMonto,2022,0,C_Principal,cargar_Click,833,0,Subs,guardaProducto,906,0,Subs,procesaPromocion,1257,0,C_TrendSpending,maxPromosPorProdsVariables,403,0,Subs,traePromo,1099,1,Subs,revisaMaxPromosProdsFijosPorInventario,1369,1,C_Principal,e_ruta_EnterPressed,2412,0,C_Principal,JobDone,1833,6,Subs,comparaVersiones,2102,6,C_TrendSpending,traeMontoBonificacion,383,6,C_TrendSpending,traeBonificacionesMaximas,359,0 SelectedBuild=0 VisibleModules=31,1,12,5,16,3,32,13,14,9,8,26 diff --git a/B4A/Subs.bas b/B4A/Subs.bas index 7fa12f5..63b2427 100644 --- a/B4A/Subs.bas +++ b/B4A/Subs.bas @@ -915,17 +915,20 @@ End Sub 'NO ACTUALIZA LA BANDERA DE GESTION EN LA TABLA "kmt_info". 'Si "gestion=2" entonces el sistema considera que el pedido ya se guardó y ya no se debe modificar. Sub guardaProductoSinGestion(cedis As String, costoU As String, cant As String, nombre As String, prodId As String, clienteId As String, fecha As String, usuario As String, rutaV As String, precioSin As String, tipoVenta As String) - Log($"Guarda producto ${nombre}, cant: ${cant}"$) + Log($"Guarda producto ${nombre}, cant: ${cant}, cedis: ${cedis}"$) If nombre.Length < 6 Then ToastMessageShow("(guardaProductoSinGestion) El nombre del producto no es valido " & nombre, True) precioSin = NumberFormat2(precioSin, 1, 2, 2, False) costoU = NumberFormat2(costoU, 1, 2, 2, False) -' LogColor("guardaProductoSinGestion: "&prodId&", cant="&cant&", tipo="&tipoVenta, Colors.Magenta) + LogColor("guardaProductoSinGestion: "&prodId&", cant="&cant&", tipo="&tipoVenta, Colors.Magenta) Private c As Cursor ' Private tablaProds As String = "cat_gunaprod2" ' If tipoVenta = "ABORDO" Then tablaProds = "cat_gunaprod" Starter.skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS, PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_FECHA, PE_USUARIO, PE_RUTA, PE_COSTO_SIN, PE_TIPO, PE_ENVIADO) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,0) ", Array As Object (cedis, (cant * costoU), costoU, cant, nombre, prodId, clienteId, fecha, usuario, rutaV, precioSin, tipoVenta)) 'Actualizamos el inventario en cat_gunaprod solo si no es RMI - If cedis <> "DUR" Then Starter.skmt.ExecNonQuery2($"update ${traeTablaProds(tipoVenta)} set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? "$, Array As Object(cant, prodId)) + If cedis <> "DUR" Then + Starter.skmt.ExecNonQuery2($"update ${traeTablaProds(tipoVenta)} set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? "$, Array As Object(cant, prodId)) + Log($"update ${traeTablaProds(tipoVenta)} set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? -- ${cant}, ${prodId}"$) + End If c=Starter.skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, SUM(PE_COSTO_SIN) AS TOTAL_CLIE_SIN FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)") c.Position=0 ' Log("###### delete from pedido_cliente - " & traeCliente & "|" & clienteId) @@ -1026,8 +1029,8 @@ Sub traePromo(promo As String, cliente As String) As Map '######### PROMOCIONES SEGMENTADAS ########## ' Si la promo esta en la lista, SOLO los clientes que la tengan la pueden ver. Private ps As Cursor = Starter.skmt.ExecQuery($"select * from HIST_CLIENTE_CANT_PROMOS where HCCP_PROMO = '${promo}'"$) ' and HCCP_CLIENTE = '${cliente}' -' Log($"select * from HIST_CLIENTE_CANT_PROMOS where HCCP_PROMO = '${promo}'"$) - If thisLog Then Log($"PROMOS SEGMENTADAS DISPONIBLES: ${ps.RowCount}"$) + Log($"select * from HIST_CLIENTE_CANT_PROMOS where HCCP_PROMO = '${promo}'"$) + If thisLog Then Log($"PROMOS SEGMENTADAS ENCONTRADAS: ${ps.RowCount}"$) If thisLog Then Log(promoMap) If ps.RowCount > 0 Then ps.Position = 0 @@ -1035,8 +1038,8 @@ Sub traePromo(promo As String, cliente As String) As Map If thisLog Then Log($">>> PROMO "${promo}" SEGMENTADA PARA EL CLIENTE ${ps.GetString("HCCP_CLIENTE")}"$) ' Select hccp_cliente As valido from HIST_CLIENTE_CANT_PROMOS where HCCP_PROMO = '${promo}' and HCCP_CLIENTE = '${traecliente}' Private ps2 As Cursor = Starter.skmt.ExecQuery($"Select * from HIST_CLIENTE_CANT_PROMOS where HCCP_PROMO = '${promo}' and HCCP_CLIENTE = '${traeCliente}' and HCCP_CANT > HCCP_CANT_VENDIDA"$) -' Log($"Select * from HIST_CLIENTE_CANT_PROMOS where HCCP_PROMO = '${promo}' and HCCP_CLIENTE = '${traeCliente}' and HCCP_CANT > HCCP_CANT_VENDIDA"$) -' Log($"registros:${ps2.RowCount}"$) + Log($"Select * from HIST_CLIENTE_CANT_PROMOS where HCCP_PROMO = '${promo}' and HCCP_CLIENTE = '${traeCliente}' and HCCP_CANT > HCCP_CANT_VENDIDA"$) + Log($"registros:${ps2.RowCount}"$) If ps2.RowCount > 0 Then ps2.Position = 0 If thisLog Then Log($"registros:${ps2.RowCount}, cliente: ${ps2.GetString("HCCP_CLIENTE")} cant:${ps2.GetString("HCCP_CANT")}"$) @@ -1100,7 +1103,7 @@ Sub traePromo(promo As String, cliente As String) As Map If thisLog Then Log($"Inv variables: ${cuantosVariablesDisponiblesDB(promo)}"$) If thisLog Then Log($"Inv dispo: ${traemosInventarioDisponibleParaPromo(promo)}"$) If thisLog Then LogColor($"Promo ${promo}: ${promoMap}"$, Colors.Blue) - If thisLog Then LogColor("TIEMPO para traePromo -=" & promo & "=- : " & ((DateTime.Now-inicioContador)/1000), Colors.Red) +' If thisLog Then LogColor("TIEMPO para traePromo -=" & promo & "=- : " & ((DateTime.Now-inicioContador)/1000), Colors.Red) Return promoMap End Sub @@ -1195,7 +1198,7 @@ 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 = True '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 mp0, mp As String = "0" maxPromos.Initialize @@ -1245,7 +1248,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 = True '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 Private mp As Int = 0 If thisLog Then LogColor($"****************************************************************"$, Colors.red) @@ -2112,12 +2115,14 @@ Sub comparaVersiones(versionMinima As String, versionActual As String) As Int Dim partesMin() As String = Regex.Split("\.", versionMinima) Dim partesAct() As String = Regex.Split("\.", versionActual) If partesMin.Length < 2 Then - ToastMessageShow("Version incorrecta", False) +' ToastMessageShow("Version incorrecta", False) + LogColor("VERSION INCORRECTA", Colors.red) Return -1 ' ← Actual no cumple el formato mínimo End If ' Si la actual tiene MENOS partes que la mínima, es inválida (opcional) If partesAct.Length < partesMin.Length Then - ToastMessageShow("Version incorrecta", False) +' ToastMessageShow("Version incorrecta", False) + LogColor("VERSION INCORRECTA", Colors.red) Return -1 ' ← Actual no cumple el formato mínimo End If ' Compara solo las partes que existen en la versión mínima @@ -2438,4 +2443,15 @@ Sub EstaEnHorarioPermitido As Boolean Else Return False End If +End Sub + +'Desahabilita validaciones de Ruta y Version +Sub deshabilitaValidaciones + Log("Deshabilitamos VERIFY_DEVICE") + Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("VERIFY_DEVICE")) + Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("VERIFY_DEVICE", 0)) + Log("Deshabilitamos VALIDA_VERSION") + Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("VALIDA_VERSION")) + Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("VALIDA_VERSION", 0)) + ToastMessageShow("REALIZADO", False) End Sub \ No newline at end of file diff --git a/C_TrendSpending.bas b/C_TrendSpending.bas index 1240955..5eccb1b 100644 --- a/C_TrendSpending.bas +++ b/C_TrendSpending.bas @@ -13,6 +13,11 @@ Version=12.8 ' el presupuesto de bonificaciones ya se agoto, ya no aparecen promociones, o si el de descuentos se agoto, ya no se pueden agregar ' mas productos con descuento. +' Descuento es TODO lo que tenga un precio diferente al precio de lista y NO esta en promo. +' Bonificacion es lo que tiene precio diferente al orginal y esta en promo y NO es regalo o exhibidor. + + + Sub Class_Globals Private EventName As String 'ignore Private CallBack As Object 'ignore @@ -330,7 +335,7 @@ End Sub ' Trae la cantidad máxima de productos con bonificacion por presupuesto. ' Si el presupuesto es 10 y la bonificacion del producto es 2, el máximo es 5 productos. Sub traeBonificacionesMaximas(tipo As String, clienteId As String, id As String, laCant As String, elPrecioVenta As String, promoId As String) As Int - Private thisLog As Boolean = True + Private thisLog As Boolean = False Private tsMaximas As Int = 100000000 Private tsRestantes As String = 0 Private tsMonto As String @@ -366,20 +371,23 @@ Sub traeMontoBonificacion(id As String, precio As String, promoId As String) As Private thisLog As Boolean = True LogColor($">>>>>>> ${promoId}, ${precio}, ${id}"$, Colors.Magenta) Private tsMonto As String = 0 - Private c As Cursor = tsdb.ExecQuery($"SELECT CAT_DP_ID, CAT_DP_IDPROD, CAT_DP_PRECIO, CAT_DP_TIPO, CAT_GP_PRECIO, CAT_DP_PRECIOB FROM CAT_DETALLES_PAQ join ${traeTablaProds(Starter.tipov)} on CAT_GP_ID = CAT_DP_IDPROD where CAT_GP_ID = '${id}' and CAT_DP_PRECIO = '${precio}' and CAT_DP_ID = '${promoId}'"$) - Log($"SELECT CAT_DP_ID, CAT_DP_IDPROD, CAT_DP_PRECIO, CAT_DP_TIPO, CAT_GP_PRECIO, CAT_DP_PRECIOB FROM CAT_DETALLES_PAQ join ${traeTablaProds(Starter.tipov)} on CAT_GP_ID = CAT_DP_IDPROD where CAT_GP_ID = '${id}' and CAT_DP_PRECIO = '${precio}' and CAT_DP_ID = '${promoId}'"$) - Log($"rowcount: ${c.RowCount}"$) - If c.RowCount > 0 Then - c.Position = 0 - If c.GetInt("CAT_DP_PRECIOB") = 1 Or (c.GetInt("CAT_DP_PRECIOB") = 0 And c.GetString("CAT_GP_PRECIO") = c.GetString("CAT_DP_PRECIO")) Then - tsMonto = c.GetString("CAT_GP_PRECIO") - c.GetString("CAT_DP_PRECIO") ' Precio original - precio de venta. - Else - tsMonto = c.GetString("CAT_GP_PRECIO") ' Precio original. - End If + Private re As Cursor = Starter.skmt.ExecQuery($"select cat_gp_id from cat_gunaprod2 where (cat_gp_tipo like 'REGALO%' or cat_gp_tipo like 'EXHIBIDOR%') and cat_gp_id = '${id}'"$) ' Revisamos si el producto es regalo o exhibidor. + If re.RowCount = 0 Then' No es regalo ni exhibidor. + Private c As Cursor = tsdb.ExecQuery($"SELECT CAT_DP_ID, CAT_DP_IDPROD, CAT_DP_PRECIO, CAT_DP_TIPO, CAT_GP_PRECIO, CAT_DP_PRECIOB FROM CAT_DETALLES_PAQ join ${traeTablaProds(Starter.tipov)} on CAT_GP_ID = CAT_DP_IDPROD where CAT_GP_ID = '${id}' and CAT_DP_PRECIO = '${precio}' and CAT_DP_ID = '${promoId}'"$) + Log($"SELECT CAT_DP_ID, CAT_DP_IDPROD, CAT_DP_PRECIO, CAT_DP_TIPO, CAT_GP_PRECIO, CAT_DP_PRECIOB FROM CAT_DETALLES_PAQ join ${traeTablaProds(Starter.tipov)} on CAT_GP_ID = CAT_DP_IDPROD where CAT_GP_ID = '${id}' and CAT_DP_PRECIO = '${precio}' and CAT_DP_ID = '${promoId}'"$) + Log($"rowcount: ${c.RowCount}"$) + If c.RowCount > 0 Then + c.Position = 0 + If c.GetInt("CAT_DP_PRECIOB") = 1 Or (c.GetInt("CAT_DP_PRECIOB") = 0 And c.GetString("CAT_GP_PRECIO") = c.GetString("CAT_DP_PRECIO")) Then + tsMonto = c.GetString("CAT_GP_PRECIO") - c.GetString("CAT_DP_PRECIO") ' Precio original - precio de venta. + Else + tsMonto = c.GetString("CAT_GP_PRECIO") ' Precio original. + End If ' Log("PRECIOB: " & c.GetInt("CAT_DP_PRECIOB")) - If thisLog Then Log($"Precio normal: ${c.GetString("CAT_GP_PRECIO")}, Precio desc: ${c.GetString("CAT_DP_PRECIO")}, Monto bonificacion: ${tsMonto}"$) + If thisLog Then Log($"Precio normal: ${c.GetString("CAT_GP_PRECIO")}, Precio desc: ${c.GetString("CAT_DP_PRECIO")}, Monto bonificacion: ${tsMonto}"$) + End If +' Log("ROWCOUNT: " & c.RowCount) End If -' Log("ROWCOUNT: " & c.RowCount) Return tsMonto End Sub