From b6cb802c2c92b09fe89a7d8e5f9ed87668c5d34a Mon Sep 17 00:00:00 2001 From: cvaldes1201 Date: Mon, 17 Feb 2025 16:39:25 -0600 Subject: [PATCH] ,,, --- B4A/B4XMainPage.bas | 1 + B4A/C_Cliente.bas | 100 +++++++++++++++++++++++++++++++--- B4A/Guna Vistas V3.1.b4a | 2 +- B4A/Guna Vistas V3.1.b4a.meta | 2 +- B4A/Subs.bas | 20 +++++++ 5 files changed, 114 insertions(+), 11 deletions(-) diff --git a/B4A/B4XMainPage.bas b/B4A/B4XMainPage.bas index 635c6cb..3303ddc 100644 --- a/B4A/B4XMainPage.bas +++ b/B4A/B4XMainPage.bas @@ -148,6 +148,7 @@ Private Sub B4XPage_Created (Root1 As B4XView) skmt.Initialize(File.DirInternal,"kmt.db", True) skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS IMPRESORA (HABILITADA)") skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS GPS (HABILITADO)") + skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_GUNAPROD2 (CAT_GP_CODPROMO TEXT, CAT_GP_INICIATIVA TEXT, CAT_GP_TIPOPROD TEXT, CAT_GP_DEV TEXT, CAT_GP_ALMACEN NUM, CAT_GP_ID TEXT, CAT_GP_NOMBRE TEXT, CAT_GP_IMP1 TEXT, CAT_GP_IMP2 TEXT, CAT_GP_PRECIO TEXT, CAT_GP_CLASIF TEXT, CAT_GP_STS TEXT, CAT_GP_TIPO TEXT, CAT_GP_SUBTIPO TEXT, CAT_GP_IMG )") skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS PROMO_ESP (HVD_CLIENTE)") skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_PROMO_ESP(CAT_PE_ID TEXT,CAT_PE_IDPROMO TEXT,CAT_PE_MONTO TEXT)") skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_CUOTAS (HC_META6 TEXT, HC_META5 TEXT, HC_META4 TEXT, HC_META3 TEXT, HC_META2 TEXT, HC_META1 TEXT, HC_RUTA TEXT, HC_CUOTA1 TEXT, HC_CUOTA2 TEXT, HC_CUOTA3 TEXT, HC_CUOTA4 TEXT, HC_CUOTA5 TEXT, HC_CUOTA6 TEXT)") diff --git a/B4A/C_Cliente.bas b/B4A/C_Cliente.bas index 988b455..51db06b 100644 --- a/B4A/C_Cliente.bas +++ b/B4A/C_Cliente.bas @@ -746,6 +746,10 @@ Sub B4XPage_Appear Else End If End If + + + + If ALMACEN = 87 Or ALMACEN = 6 Then If Subs.traemontoprod And Subs.traeCliente <> "0" Then Msgbox2Async("El cliente tiene derecho a un descuento de 150 pesos por la compra de mas de $500 en productos participantes" , "Descuento disponible", "Aceptar", "", "", LoadBitmap(File.DirAssets,"alert2.png"), False) @@ -782,7 +786,7 @@ Sub B4XPage_Appear LogColor(recalculo,Colors.Blue) Private recalculototal As Float = c4.GetString("PE_CANT") * NumberFormat2(recalculo,0,2,2,False) ' Log(recalculo&"|||||"&recalculototal) - B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE PEDIDO set PE_RECALCULO = ?, PE_RECALCULOTOT = ? WHERE PE_CLIENTE IN (SELECT CUENTA FROM CUENTAA) AND PE_PROID = ? ",Array As String(NumberFormat2(recalculo,0,2,2,False) ,NumberFormat2(recalculototal,0,2,2,False), c4.GetString("PE_PROID"))) + skmt.ExecNonQuery2("UPDATE PEDIDO set PE_RECALCULO = ?, PE_RECALCULOTOT = ? WHERE PE_PROID = ? AND PE_CLIENTE IN (SELECT CUENTA FROM CUENTAA) ",Array As String(NumberFormat2(recalculo,0,2,2,False) ,NumberFormat2(recalculototal,0,2,2,False), c4.GetString("PE_PROID"))) Next End If c4.Close @@ -803,7 +807,7 @@ Sub B4XPage_Appear LogColor(recalculo,Colors.Blue) Private recalculototal As Float = c4.GetString("PE_CANT") * NumberFormat2(recalculo,0,2,2,False) ' Log(recalculo&"|||||"&recalculototal) - B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE PEDIDO set PE_RECALCULO = ?, PE_RECALCULOTOT = ? WHERE PE_CLIENTE IN (SELECT CUENTA FROM CUENTAA) AND PE_PROID = ? ",Array As String(NumberFormat2(recalculo,0,2,2,False) ,NumberFormat2(recalculototal,0,2,2,False), c4.GetString("PE_PROID"))) + skmt.ExecNonQuery2("UPDATE PEDIDO set PE_RECALCULO = ?, PE_RECALCULOTOT = ? WHERE PE_PROID = ? AND PE_CLIENTE IN (SELECT CUENTA FROM CUENTAA) ",Array As String(NumberFormat2(recalculo,0,2,2,False) ,NumberFormat2(recalculototal,0,2,2,False), c4.GetString("PE_PROID"))) Next End If c4.Close @@ -816,21 +820,99 @@ Sub B4XPage_Appear c.Close c2.Close c3.Close + Else If Subs.traemontoprod2 And Subs.traeCliente <> "0" Then + Msgbox2Async("El cliente tiene derecho a un descuento de 70 pesos por la compra de mas de $300 en productos participantes" , "Descuento disponible", "Aceptar", "", "", LoadBitmap(File.DirAssets,"alert2.png"), False) + Wait For Msgbox_Result (resultado As Int) + If resultado = DialogResponse.POSITIVE Then + Private c As Cursor = B4XPages.MainPage.skmt.ExecQuery("SELECT SUM(PE_CANT) AS PIEZAS FROM PEDIDO JOIN CAT_PROMO_ESP ON CAT_PE_ID = PE_PROID WHERE PE_CLIENTE IN (Select CUENTA FROM CUENTAA)") + If c.RowCount > 0 Then + c.Position = 0 + Private des As Float = NumberFormat2(70/c.GetString("PIEZAS"),0,2,2,False) + Log( NumberFormat2(des,0,2,2,False)) + Private c2 As Cursor = B4XPages.MainPage.skmt.ExecQuery2("SELECT Ifnull(SUM(PE_CANT),0) AS PE_CANT FROM PEDIDO JOIN CAT_PROMO_ESP ON CAT_PE_ID = PE_PROID WHERE PE_CLIENTE IN (Select CUENTA FROM CUENTAA) AND PE_COSTOU < ?",Array As String(des)) + If c2.RowCount > 0 Then + c2.Position = 0 + Log(c2.GetString("PE_CANT")) + End If + Private c3 As Cursor = B4XPages.MainPage.skmt.ExecQuery2("SELECT SUM(PE_CANT) AS PE_CANT FROM PEDIDO JOIN CAT_PROMO_ESP ON CAT_PE_ID = PE_PROID WHERE PE_CLIENTE IN (Select CUENTA FROM CUENTAA) AND PE_COSTOU >= ?",Array As String(des)) + If c3.RowCount > 0 Then + c3.Position = 0 + Log(c3.GetString("PE_CANT")) + Private rec As Float = (des * c2.GetString("PE_CANT"))/c3.GetString("PE_CANT") + Log( NumberFormat2(rec,0,2,2,False)) + Private cantres As Float = des + rec + Log( NumberFormat2(cantres,0,2,2,False)) + Private c5 As Cursor = B4XPages.MainPage.skmt.ExecQuery2("SELECT Ifnull(SUM(PE_CANT),0) AS PE_CANT FROM PEDIDO JOIN CAT_PROMO_ESP ON CAT_PE_ID = PE_PROID WHERE PE_CLIENTE IN (Select CUENTA FROM CUENTAA) AND PE_COSTOU > ? and PE_COSTOU < ?",Array As String(des, cantres)) + If c5.RowCount > 0 Then + c5.Position = 0 + Log(c5.GetString("PE_CANT")) + If c5.GetString("PE_CANT") = "0" Then + Private c4 As Cursor = B4XPages.MainPage.skmt.ExecQuery2("SELECT * FROM PEDIDO JOIN CAT_PROMO_ESP ON CAT_PE_ID = PE_PROID WHERE PE_CLIENTE IN (Select CUENTA FROM CUENTAA) AND PE_COSTOU >= ?",Array As String(NumberFormat2(cantres,0,2,2,False))) + If c4.RowCount > 0 Then + For i = 0 To c4.RowCount -1 + c4.Position = i + Private recalculo As Float = c4.GetString("PE_COSTOU") - NumberFormat2(cantres,0,2,2,False) + LogColor(recalculo,Colors.Blue) + Private recalculototal As Float = c4.GetString("PE_CANT") * NumberFormat2(recalculo,0,2,2,False) + Log(recalculo&"|||||"&recalculototal&"|||||||||||||||||||"&c4.GetString("PE_PROID")) + skmt.ExecNonQuery2("UPDATE PEDIDO set PE_RECALCULO = ?, PE_RECALCULOTOT = ? WHERE PE_PROID = ? AND PE_CLIENTE IN (SELECT CUENTA FROM CUENTAA) ",Array As String(NumberFormat2(recalculo,0,2,2,False) ,NumberFormat2(recalculototal,0,2,2,False), c4.GetString("PE_PROID"))) + Next + End If + c4.Close + Else + Private c6 As Cursor = B4XPages.MainPage.skmt.ExecQuery2("SELECT SUM(PE_CANT) AS PE_CANT FROM PEDIDO JOIN CAT_PROMO_ESP ON CAT_PE_ID = PE_PROID WHERE PE_CLIENTE IN (Select CUENTA FROM CUENTAA) AND PE_COSTOU >= ?",Array As String(cantres)) + If c6.RowCount > 0 Then + c6.Position = 0 + Log(c6.GetString("PE_CANT")) + Private rec1 As Float = (cantres * c5.GetString("PE_CANT"))/c6.GetString("PE_CANT") + Log( NumberFormat2(rec1,0,2,2,False)) + Private cantres1 As Float = cantres + rec1 + Log( NumberFormat2(cantres1,0,2,2,False)) + Private c4 As Cursor = B4XPages.MainPage.skmt.ExecQuery2("SELECT * FROM PEDIDO JOIN CAT_PROMO_ESP ON CAT_PE_ID = PE_PROID WHERE PE_CLIENTE IN (Select CUENTA FROM CUENTAA) AND PE_COSTOU >= ?",Array As String(NumberFormat2(cantres1,0,2,2,False))) + If c4.RowCount > 0 Then + For i = 0 To c4.RowCount -1 + c4.Position = i + Private recalculo As Float = c4.GetString("PE_COSTOU") - NumberFormat2(cantres1,0,2,2,False) + LogColor(recalculo,Colors.Blue) + Private recalculototal As Float = c4.GetString("PE_CANT") * NumberFormat2(recalculo,0,2,2,False) +' Log(recalculo&"|||||"&recalculototal) + skmt.ExecNonQuery2("UPDATE PEDIDO set PE_RECALCULO = ?, PE_RECALCULOTOT = ? WHERE PE_PROID = ? AND PE_CLIENTE IN (SELECT CUENTA FROM CUENTAA) ",Array As String(NumberFormat2(recalculo,0,2,2,False) ,NumberFormat2(recalculototal,0,2,2,False), c4.GetString("PE_PROID"))) + Next + End If + c4.Close + End If + End If + End If + End If + End If + End If + c.Close + c2.Close + c3.Close + End If - If Not(Subs.traemontoprod) Then - Private c4 As Cursor = B4XPages.MainPage.skmt.ExecQuery2("SELECT * FROM PEDIDO JOIN CAT_PROMO_ESP ON CAT_PE_ID = PE_PROID WHERE PE_CLIENTE IN (Select CUENTA FROM CUENTAA) AND (PE_RECALCULO <> ? OR PE_RECALCULO IS NOT NULL)",Array As String("null")) - If c4.RowCount > 0 Then - For i = 0 To c4.RowCount -1 - c4.Position = i + If Not(Subs.traemontoprod) Then + If Not(Subs.traemontoprod2) Then + Private c4 As Cursor = B4XPages.MainPage.skmt.ExecQuery2("SELECT * FROM PEDIDO JOIN CAT_PROMO_ESP ON CAT_PE_ID = PE_PROID WHERE PE_CLIENTE IN (Select CUENTA FROM CUENTAA) AND (PE_RECALCULO <> ? OR PE_RECALCULO IS NOT NULL)",Array As String("null")) + If c4.RowCount > 0 Then + For i = 0 To c4.RowCount -1 + c4.Position = i ' Private recalculo As Float = c4.GetString("PE_COSTOU") - NumberFormat2(cantres,0,2,2,False) ' Private recalculototal As Float = c4.GetString("PE_CANT") * NumberFormat2(recalculo,0,2,2,False) ' Log(recalculo&"|||||"&recalculototal) - B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE PEDIDO set PE_RECALCULO = ?, PE_RECALCULOTOT = ? WHERE PE_CLIENTE IN (SELECT CUENTA FROM CUENTAA) AND PE_PROID = ? ",Array As String("","",c4.GetString("PE_PROID"))) - Next + B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE PEDIDO set PE_RECALCULO = ?, PE_RECALCULOTOT = ? WHERE PE_CLIENTE IN (SELECT CUENTA FROM CUENTAA) AND PE_PROID = ? ",Array As String("","",c4.GetString("PE_PROID"))) + Next + End If + Else + End If Else + End If End If + + + 'AQUI CAMBIAR Private s3 As Cursor=B4XPages.MainPage.skmt.ExecQuery2("select * FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) and PE_RECALCULO <> ? OR PE_RECALCULO <> ? OR PE_RECALCULO IS NOT NULL",Array As String("","null")) ' LogColor(s3.RowCount,Colors.Yellow) diff --git a/B4A/Guna Vistas V3.1.b4a b/B4A/Guna Vistas V3.1.b4a index 27c651b..b9be0d8 100644 --- a/B4A/Guna Vistas V3.1.b4a +++ b/B4A/Guna Vistas V3.1.b4a @@ -257,7 +257,7 @@ Version=12.8 #Region Project Attributes #ApplicationLabel: Guna Preventa #VersionCode: 1 - #VersionName: 5.02.07 + #VersionName: 5.02.10 'SupportedOrientations possible values: unspecified, landscape or portrait. #SupportedOrientations: portrait #CanInstallToExternalStorage: False diff --git a/B4A/Guna Vistas V3.1.b4a.meta b/B4A/Guna Vistas V3.1.b4a.meta index 61847e8..a00c280 100644 --- a/B4A/Guna Vistas V3.1.b4a.meta +++ b/B4A/Guna Vistas V3.1.b4a.meta @@ -82,6 +82,6 @@ ModuleClosedNodes6= ModuleClosedNodes7=5,6,8,9,10,11 ModuleClosedNodes8= ModuleClosedNodes9= -NavigationStack=C_Principal,Class_Globals,0,0,C_Cliente,gest_Click,1346,6,Diseñador Visual,cliente.bal,-100,2,Diseñador Visual,nota (conflict 2022-07-08-00-16-40).bal,-100,1,Diseñador Visual,nota.bal,-100,2,C_Nota,Class_Globals,0,0,C_Cliente,Printer_Connected,2770,0,C_Cliente,B4XPage_Appear,700,0,C_Nota,borra_Click,155,0,C_Nota,ListView1_ItemLongClick,231,0 +NavigationStack=C_Cliente,Printer_Connected,2770,0,C_Nota,borra_Click,155,0,C_Nota,ListView1_ItemLongClick,231,0,Subs,guardaAppInfo,1214,0,Subs,TraeMontoProd,1237,0,C_Principal,Class_Globals,0,0,Subs,TraeMontoProd2,1245,6,B4XMainPage,B4XPage_Created,144,0,C_Cliente,B4XPage_Appear,876,6,C_Cliente,GPS_LocationChanged,1081,0 SelectedBuild=0 VisibleModules=25,2,14,26,5,10,15,20,4 diff --git a/B4A/Subs.bas b/B4A/Subs.bas index 6f7a4e4..956248b 100644 --- a/B4A/Subs.bas +++ b/B4A/Subs.bas @@ -1241,6 +1241,26 @@ Sub TraeMontoProd As Boolean Return x End Sub +Sub TraeMontoProd2 As Boolean + Private x As Boolean = False + Private c As Cursor = B4XPages.MainPage.skmt.ExecQuery("SELECT ifnull( SUM (PE_COSTO_TOT),0) As suma FROM PEDIDO JOIN CAT_PROMO_ESP ON CAT_PE_ID = PE_PROID WHERE PE_CLIENTE IN (Select CUENTA FROM CUENTAA)") + If c.RowCount > 0 Then + c.Position = 0 + Private c2 As Cursor = B4XPages.MainPage.skmt.ExecQuery("SELECT DISTINCT CAT_PE_MONTO FROM CAT_PROMO_ESP") + If c2.RowCount > 0 Then + c2.Position = 0 + If c.GetString("suma") >= 300 and c.GetString("suma") <= 499.99 Then + x = True + Else + x = False +' Log("Falso") + End If + + End If + End If + Return x +End Sub + Sub InvSuficientePromoEsp As Boolean Private y As Boolean = False Private c As Cursor = B4XPages.MainPage.skmt.ExecQuery($"select CAT_DP_IDPROD, CAT_DP_PZAS, ifnull(CAT_GP_ALMACEN, 0) As CAT_GP_ALMACEN from CAT_DETALLES_PAQ left JOIN ${traeTablaProds(traeTipoVentaDeBD)} ON CAT_DP_IDPROD = CAT_GP_ID WHERE CAT_DP_ID IN (SELECT DISTINCT CAT_PE_IDPROMO FROM CAT_PROMO_ESP)"$)