From 569b0ca1669ae2ec1de2b49c36894700c182ab31 Mon Sep 17 00:00:00 2001 From: IsR0d Date: Mon, 29 Jul 2024 12:48:27 -0600 Subject: [PATCH] Se agrego una validacion para revisar el campo CAT_LO_RMI --- B4A/B4XMainPage.bas | 1 + B4A/C_Principal.bas | 3 ++ B4A/C_Productos.bas | 84 ++++++++++++++++++++---------------- B4A/Durakelo.b4a | 2 +- B4A/Durakelo.b4a.meta | 2 +- B4A/Files/guardagestion.bal | Bin 10853 -> 13086 bytes B4A/Files/pedido.bal | Bin 11431 -> 11743 bytes 7 files changed, 53 insertions(+), 39 deletions(-) diff --git a/B4A/B4XMainPage.bas b/B4A/B4XMainPage.bas index 8c27f19..9317199 100644 --- a/B4A/B4XMainPage.bas +++ b/B4A/B4XMainPage.bas @@ -165,6 +165,7 @@ Private Sub B4XPage_Created (Root1 As B4XView) Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_ENCUESTA_PREGUNTA (CAT_EP_ID TEXT,CAT_EP_IDTIPOPREGUNTA TEXT,CAT_CE_DESCRIPCION TEXT,CAT_EP_PREGUNTA TEXT,CAT_EP_RES1_PRED TEXT,CAT_EP_RES2_PRED TEXT,CAT_EP_RES3_PRED TEXT,CAT_EP_ORDEN_PREGUNTA TEXT)") Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_ENCUESTA_PREGUNTA5P (CAT_EP_ID TEXT,CAT_EP_IDTIPOPREGUNTA TEXT,CAT_CE_DESCRIPCION TEXT,CAT_EP_PREGUNTA TEXT,CAT_EP_RES1_PRED TEXT,CAT_EP_RES2_PRED TEXT,CAT_EP_RES3_PRED TEXT,CAT_EP_ORDEN_PREGUNTA TEXT)") Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_CLASF_PROD (CAT_CP_ID TEXT, CAT_CP_NOMPROD TEXT)") + Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS BANDERA_RMI (BR_BANDERA INT)") Subs.agregaColumna("CAT_ENCUESTA_PREGUNTA", "CAT_EP_IDGRUPO", "TEXT") Subs.agregaColumna("HIST_ENCUESTA", "HE_LAT", "TEXT") Subs.agregaColumna("HIST_ENCUESTA", "HE_LON", "TEXT") diff --git a/B4A/C_Principal.bas b/B4A/C_Principal.bas index 7a2130a..e29f8c7 100644 --- a/B4A/C_Principal.bas +++ b/B4A/C_Principal.bas @@ -1202,10 +1202,13 @@ Sub JobDone(Job As HttpJob) If Job.JobName = "DBRequest" Then Dim RESULT As DBResult = B4XPages.MainPage.reqManager.HandleJob(Job) If RESULT.Tag = "usuarioA" Then 'query tag + skmt.ExecNonQuery("delete from BANDERA_RMI") Private n As String = "Sin Usuario" For Each records() As Object In RESULT.Rows n = records(RESULT.Columns.Get("USUARIO")) + Dim ban_RMI As String = records(RESULT.Columns.Get("CAT_LO_RMI")) Next + skmt.ExecNonQuery2("INSERT INTO BANDERA_RMI (BR_BANDERA) VALUES (?)", Array As Object (ban_RMI)) Log(n) 'Logcolor("**************************"&n, Colors.Green) If n = "OKActivo" Then diff --git a/B4A/C_Productos.bas b/B4A/C_Productos.bas index 2772024..f45a250 100644 --- a/B4A/C_Productos.bas +++ b/B4A/C_Productos.bas @@ -1144,57 +1144,67 @@ End Sub Private Sub l_prodX_LongClick Log("longClic = "&Sender.as(Label).Text) + c = Starter.skmt.ExecQuery("Select BR_BANDERA From BANDERA_RMI") + If c.RowCount > 0 Then + c.Position = 0 + Dim ban As Int = c.GetString("BR_BANDERA") + End If If Subs.traeCliente <> 0 Then - Dim index As Int = clv_prods_ll.GetItemFromView(Sender) - nuevaCantRMI = 0 - Private pId As String = clv_prods_ll.GetValue(index).As(Map).Get("id") - Log(clv_prods_ll.GetValue(index)) - Private pNombre As String = clv_prods_ll.GetValue(index).As(Map).Get("prod") - Private t As Cursor = Starter.skmt.ExecQuery($"select sum(PE_CANT) as cuantosProds from pedido where PE_CEDIS <> 'DUR' and PE_CLIENTE in (Select CUENTA from cuentaa)"$) - t.Position = 0 - Private ventaT As String = t.GetString("cuantosProds") - If ventaT = Null Then ventaT = 0 + If ban <> 0 Then + Dim index As Int = clv_prods_ll.GetItemFromView(Sender) + nuevaCantRMI = 0 + Private pId As String = clv_prods_ll.GetValue(index).As(Map).Get("id") + Log(clv_prods_ll.GetValue(index)) + Private pNombre As String = clv_prods_ll.GetValue(index).As(Map).Get("prod") + Private t As Cursor = Starter.skmt.ExecQuery($"select sum(PE_CANT) as cuantosProds from pedido where PE_CEDIS <> 'DUR' and PE_CLIENTE in (Select CUENTA from cuentaa)"$) + t.Position = 0 + Private ventaT As String = t.GetString("cuantosProds") + If ventaT = Null Then ventaT = 0 ' If Starter.tipov = "PREVENTA" Then ' ToastMessageShow("¡¡En preventa NO hay cambios!!", True) ' Return ' End If - Private rmis As Cursor =Starter.skmt.ExecQuery($"select CAT_GP_DEV from ${Subs.traeTablaProds(Starter.tipov)} where CAT_GP_ID = '${pId}'"$) + Private rmis As Cursor =Starter.skmt.ExecQuery($"select CAT_GP_DEV from ${Subs.traeTablaProds(Starter.tipov)} where CAT_GP_ID = '${pId}'"$) ' If rmis.RowCount > 0 Then ' rmis.Position = 0 ' Log(rmis.GetString("CAT_GP_DEV")) ' End If - rmis.Position = 0 - If rmis.RowCount > 0 And rmis.GetString("CAT_GP_DEV") = 1 Then - t = Starter.skmt.ExecQuery($"select sum(PE_CANT) as totalRMI from pedido where PE_PROID = '${pId}' and PE_CEDIS = 'DUR' and PE_CLIENTE in (Select CUENTA from cuentaa)"$) - t.Position = 0 - Private totalRMI As String = t.GetString("totalRMI") - Log($"Prods: ${ventaT}, RMIs: ${totalRMI}"$) - If totalRMI = Null Then totalRMI = 0 - Log($"Prods: ${ventaT}, RMIs: ${totalRMI}"$) - l_rmi_nombre.Text = Sender.as(Label).Text - Private pu0() As String = Regex.Split("\$", Sender.as(Label).Text) - Private pu As String - If pu0.Length > 1 Then pu = pu0(pu0.Length-1) Else pu = 0 - 'Log(ventaT & ", " & totalRMI & ", " & Sender.as(Label).tag & ", " & pu) + rmis.Position = 0 + If rmis.RowCount > 0 And rmis.GetString("CAT_GP_DEV") = 1 Then + t = Starter.skmt.ExecQuery($"select sum(PE_CANT) as totalRMI from pedido where PE_PROID = '${pId}' and PE_CEDIS = 'DUR' and PE_CLIENTE in (Select CUENTA from cuentaa)"$) + t.Position = 0 + Private totalRMI As String = t.GetString("totalRMI") + Log($"Prods: ${ventaT}, RMIs: ${totalRMI}"$) + If totalRMI = Null Then totalRMI = 0 + Log($"Prods: ${ventaT}, RMIs: ${totalRMI}"$) + l_rmi_nombre.Text = Sender.as(Label).Text + Private pu0() As String = Regex.Split("\$", Sender.as(Label).Text) + Private pu As String + If pu0.Length > 1 Then pu = pu0(pu0.Length-1) Else pu = 0 + 'Log(ventaT & ", " & totalRMI & ", " & Sender.as(Label).tag & ", " & pu) ' l_rmi_usado.Text = $"RMI usado: $1.0{(ventaT - totalRMI)}"$ - l_montoDisponible.Text = $"DEVOLUCIONES"$ - Private esteInv As Int = Subs.traeInventario(pId, Starter.tipov) - If esteInv < ventaT Then ventaT = esteInv 'Si el inventario disponble es menor a los productos del pedido, entoncs tomamos ese valor. - Private m As Map = CreateMap("disponible":clv_prods_ll.GetValue(index).As(Map).Get("almacen"), "inv":clv_prods_ll.GetValue(index).As(Map).Get("almacen"), "totalRMI":totalRMI, "pu":pu, "id":pId, "nombre":pNombre) - rmiMap = m - Log(rmiMap) - ' b_rmi_mas.Tag = m - ' b_rmi_menos.Tag = m - ' b_rmi_aceptar.Tag = m - Subs.centraPanel(p_rmi, Root.Width) - l_rmi_cant.Text = totalRMI + l_montoDisponible.Text = $"DEVOLUCIONES"$ + Private esteInv As Int = Subs.traeInventario(pId, Starter.tipov) + If esteInv < ventaT Then ventaT = esteInv 'Si el inventario disponble es menor a los productos del pedido, entoncs tomamos ese valor. + Private m As Map = CreateMap("disponible":clv_prods_ll.GetValue(index).As(Map).Get("almacen"), "inv":clv_prods_ll.GetValue(index).As(Map).Get("almacen"), "totalRMI":totalRMI, "pu":pu, "id":pId, "nombre":pNombre) + rmiMap = m + Log(rmiMap) + ' b_rmi_mas.Tag = m + ' b_rmi_menos.Tag = m + ' b_rmi_aceptar.Tag = m + Subs.centraPanel(p_rmi, Root.Width) + l_rmi_cant.Text = totalRMI ' l_rmi_total.text = "" - p_rmi.BringToFront - p_rmi.Visible = True + p_rmi.BringToFront + p_rmi.Visible = True + Else + ToastMessageShow("No hay devoluciones para este producto", True) + End If Else - ToastMessageShow("No hay devoluciones para este producto", True) + ToastMessageShow("No esta autorizado para devoluciones", True) End If End If + c.Close End Sub Private Sub clv_prods_ll_VisibleRangeChanged (FirstIndex As Int, LastIndex As Int) diff --git a/B4A/Durakelo.b4a b/B4A/Durakelo.b4a index 1f193f8..34177b0 100644 --- a/B4A/Durakelo.b4a +++ b/B4A/Durakelo.b4a @@ -1402,7 +1402,7 @@ Version=12.8 #Region Project Attributes #ApplicationLabel: Durakelo #VersionCode: 1 - #VersionName: 4.06.16 + #VersionName: 4.07.25 'SupportedOrientations possible values: unspecified, landscape or portrait. #SupportedOrientations: portrait #CanInstallToExternalStorage: False diff --git a/B4A/Durakelo.b4a.meta b/B4A/Durakelo.b4a.meta index 78d6fe4..be683fd 100644 --- a/B4A/Durakelo.b4a.meta +++ b/B4A/Durakelo.b4a.meta @@ -73,6 +73,6 @@ ModuleClosedNodes6= ModuleClosedNodes7= ModuleClosedNodes8= ModuleClosedNodes9= -NavigationStack=Subs,traeMaxPromos,983,0,C_Principal,B4XPage_Created,228,0,C_Principal,B4XPage_Appear,395,0,Diseñador Visual,principal.bal,-100,6,C_Principal,Resumen_Click,2464,4,C_Principal,JobDone,1188,2,C_Principal,connecta_Click,1967,3,C_Clientes,Class_Globals,0,0,C_Cliente,Class_Globals,0,0,C_Cliente,gest_Click,409,0,C_Cliente,B_VENTA_Click,1244,0 +NavigationStack=C_Productos,clv_prods_ll_ItemLongClick,1090,0,Diseñador Visual,productos.bal,-100,5,C_Principal,cargar_Click,814,0,B4XMainPage,Entrar_Click,303,0,C_Principal,connecta_Click,1993,6,C_Principal,JobDone,1195,6,C_Productos,l_prodX_Click,1136,0,C_Productos,l_prodX_LongClick,1145,6,B4XMainPage,B4XPage_Created,108,0,B4XMainPage,Class_Globals,94,0,B4XMainPage,Initialize,101,0 SelectedBuild=0 VisibleModules=2,10,4,19,5,6,8,9,11,24 diff --git a/B4A/Files/guardagestion.bal b/B4A/Files/guardagestion.bal index 6272b4e1a77c44c3a4ea1487eab88850f2d3a604..9156db1bbad1251a33df7a9a366da2b7e944f8ef 100644 GIT binary patch literal 13086 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 literal 10853 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