20/10/23 - RMIs

- Se agregó código para meter RMIs con el clic largo sobre un producto.
This commit is contained in:
2023-10-20 01:22:20 -06:00
parent 3a3ac503c5
commit 59c37d1621
13 changed files with 532 additions and 495 deletions

View File

@@ -7,7 +7,7 @@ Version=11.5
Sub Class_Globals
Private Root As B4XView 'ignore
Private xui As XUI 'ignore
dim kh as kms_helperSubs
Dim kh As kms_helperSubs
Dim ruta As String
Dim q_buscar As String
Dim forzarBusqueda As Boolean = False
@@ -93,8 +93,9 @@ Sub Class_Globals
Dim rmiMap As Map
Private l_rmi_usado As Label
Dim list_prodsPedido As List
Private b_rmi As Button
' Private b_rmi As Button
Private l_mDisponible As Label
dim nuevaCantRMI as int
End Sub
'You can add more parameters here.
@@ -141,6 +142,8 @@ Private Sub B4XPage_Created (Root1 As B4XView)
list_prodsPedido.Initialize
Log("list_prodsPedido.Initialize")
prodsMap.Initialize
p_vistaPreviaTrans.Top = 0 : p_vistaPreviaTrans.left = 0
p_productos.Top = 0 : p_productos.left = 0
End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
@@ -217,7 +220,7 @@ Sub B4XPage_Appear
' l_total.Width = Root.Width * 0.25
' Log(Subs.traeTotalesClienteActual)
Dim m As Map = subs.traeTotalesClienteActual
Dim m As Map = Subs.traeTotalesClienteActual
prodsPedidoActual = m.Get("productos")
montoPedidoActual = m.Get("monto")
hayPedido = kh.hayPedido(Starter.skmt)
@@ -228,7 +231,7 @@ Sub B4XPage_Appear
else If hayPedido Then
' LogColor("HAY PEDIDO ANTERIOR", Colors.red)
' Log("Llamamos LlenaProdsLL")
LlenaProdsLL(Null, Null)
' LlenaProdsLL(Null, Null)
End If
If clv_prods_ll.Size > 0 Then
@@ -245,10 +248,10 @@ Sub B4XPage_Appear
Else
PCLV.B4XSeekBar1.mBase.Left=Root.Width *1.5 'Si no hay productos, que NO se vea la barra de busqueda.
End If
If lfila.Text = "RMI" Then
b_rmi.Visible = False
l_mDisponible.Visible = True
End If
' If lfila.Text = "RMI" Then
' b_rmi.Visible = False
' l_mDisponible.Visible = True
' End If
' Log(Starter.tipov)
End Sub
@@ -261,7 +264,7 @@ Sub lv_catalogos_ItemClick (Position As Int, Value As Object)
' lfila.text = "TIPO"
lfila.text = "PRODUCTOS"
lv_catalogos.Visible = False
If Starter.tipov <> "ABORDO" Then b_rmi.Visible = True
' If Starter.tipov <> "ABORDO" Then b_rmi.Visible = True
' lv_tipo.Visible = True
LlenaProdsLL(Null, Null)
clv_prods_ll.AsView.BringToFront
@@ -408,7 +411,7 @@ Sub lv_promos_ItemClick (Position As Int, Value As Object)
End Sub
'Generamos la lista de productos.
Sub llenaCatalogo(subtipo1 As String)
Sub llenaCatalogo(subtipo1 As String) 'ignore
' Log("LlenaCatalogo")
' Private c2 As Cursor
' c2=Starter.skmt.ExecQuery2("select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_PRECIO, CAT_GP_ALMACEN, CAT_GP_IMG, CAT_GP_TIPOPROD, CAT_GP_INICIATIVA from cat_gunaprod where CAT_GP_PRECIO > 0 AND CAT_GP_ALMACEN > 0 and CAT_GP_TIPOPROD <> 'PROMOS' and CAT_GP_SUBTIPO = ? ", Array As String(subtipo1))
@@ -501,7 +504,7 @@ End Sub
'****************************************************************************
'***************** PARA EL MAS/MENOS *************************************
'****************************************************************************
Sub CreateListItem(Text As String, precioU As String, inv As Int, Width As Int, Height As Int, img As Bitmap, prodId As String, bc As Int, tc As Int) As Panel
Sub CreateListItem(Text As String, precioU As String, inv As Int, Width As Int, Height As Int, img As Bitmap, prodId As String, bc As Int, tc As Int) As Panel 'ignore
' Dim p As B4XView = xui.CreatePanel("")
' p.SetLayoutAnimated(0, 0, 0, Width, Height)
' p.LoadLayout("prodItem")
@@ -571,7 +574,7 @@ Sub b_prodMas_Click
Dim pnl As B4XView = pnl0.GetView(0)
Dim laCant As B4XView = pnl.GetView(2).GetView(2)
If laCant.Text = "" Then laCant.Text = 0
Private tmpMap As Map = clv_prods_ll.GetValue(index).As(Map)
' Private tmpMap As Map = clv_prods_ll.GetValue(index).As(Map)
Private precio As String=clv_prods_ll.GetValue(index).As(Map).Get("precio")
Private inv As Int = clv_prods_ll.GetValue(index).As(Map).Get("almacen")
If buttonTag = "vendido" Then
@@ -691,7 +694,7 @@ Sub cuentaProds
p_botonesVenta.Visible = True
p_botonesVenta.BringToFront
c.Position=0
If Subs.totalPedido > 1 And lfila.Text <> "RMI" And Starter.tipov <> "ABORDO" Then b_rmi.Visible = True Else b_rmi.Visible = False
' If Subs.totalPedido > 1 And lfila.Text <> "RMI" And Starter.tipov <> "ABORDO" Then b_rmi.Visible = True Else b_rmi.Visible = False
Log(Subs.totalPedido)
If lfila.Text = "RMI" Then l_mDisponible.Visible = True Else l_mDisponible.Visible = False
l_mDisponible.Text = $"Disponible: $${Subs.totalPedido}"$
@@ -710,7 +713,7 @@ Sub b_terminar1_Click
Subs.agrupador
lv_prodsPedido.Clear
list_prodsPedido.Initialize
Private c_prods As Cursor=Starter.skmt.ExecQuery("select PE_PRONOMBRE,PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_FOLIO, PE_CEDIS, PE_PROID FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_CEDIS, PE_PRONOMBRE")
Private c_prods As Cursor=Starter.skmt.ExecQuery("select PE_PRONOMBRE,PE_COSTO_TOT, ifnull(PE_COSTOU, 0) as PE_COSTOU, PE_CANT, PE_FOLIO, PE_CEDIS, PE_PROID, PE_TIPO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_CEDIS, PE_PRONOMBRE")
' Log(c_prods.RowCount)
If c_prods.RowCount > 0 Then
c_prods.Position = 0
@@ -735,11 +738,13 @@ Sub b_terminar1_Click
label2 = lv_prodsPedido.TwoLinesLayout.SecondLabel
label2.TextSize = 10
label2.TextColor = Colors.Blue
' label2.Color = Colors.Gray
label2.Tag = i
' Log(c_prods.GetString("PE_PRONOMBRE"))
lv_prodsPedido.AddTwoLines(cs.Color(textColor).append(c_prods.GetString("PE_PRONOMBRE")).pop,"Cantidad #"& c_prods.GetString("PE_CANT")& " SubTotal $"& c_prods.GetString("PE_COSTO_TOT")& " Folio "& c_prods.GetString("PE_FOLIO"))
list_prodsPedido.Add(CreateMap("prodNom":c_prods.GetString("PE_PRONOMBRE"), "cedis":c_prods.GetString("PE_CEDIS"), "prodId": c_prods.GetString("PE_PROID"), "cant": c_prods.GetString("PE_CANT")))
list_prodsPedido.Add(CreateMap("prodNom":c_prods.GetString("PE_PRONOMBRE"), "cedis":c_prods.GetString("PE_CEDIS"), "prodId": c_prods.GetString("PE_PROID"), "cant": c_prods.GetString("PE_CANT"), "tipo": c_prods.GetString("PE_TIPO")))
folio = 0
Log($"${totalPedido} + (${c_prods.GetString("PE_COSTOU")} * ${c_prods.GetString("PE_CANT")}"$)
totalPedido = totalPedido + (c_prods.GetString("PE_COSTOU") * c_prods.GetString("PE_CANT"))
' Log("|" & Subs.esPromo(c_prods.GetString("PE_PROID")) & "|")
If Not(Subs.esPromo(c_prods.GetString("PE_PROID"))) Then cantPedido = cantPedido + c_prods.GetString("PE_CANT")
@@ -887,50 +892,59 @@ Private Sub b_aceptar_Click
End Sub
Private Sub lv_prodsPedido_ItemLongClick (Position As Int, Value As Object)
c=Starter.skmt.ExecQuery("select count(*) as CUANTOS from CLIENTE_IMPRESO where CI_CUENTA in (Select CUENTA from cuentaa)")
c = Starter.skmt.ExecQuery("select count(*) as CUANTOS from CLIENTE_IMPRESO where CI_CUENTA in (Select CUENTA from cuentaa)")
c.Position = 0
Log(list_prodsPedido)
Log("lista prods="&list_prodsPedido.Get(Position))
'#################################################################################
'#### Probablemente se pueda quitar el mapa (m) y cambiaro por el cursor (prod)
'#### Sustituir por ejemplo: m.get("prodId") por prods.getString("PE_PROID")
'#################################################################################
Private m As Map = list_prodsPedido.Get(Position)
Log("m1= "&m)
If c.GetString("CUANTOS") = 0 Then 'Si la venta no está impresa o es abordo entonces continuamos ... 'Para que baordo pueda borra poner "Or Subs.clienteActual = "0""
' Log("m1= "&m)
If c.GetString("CUANTOS") = 0 Then 'Si la venta no está impresa o es abordo entonces continuamos ... 'Para que abordo pueda borra poner "Or Subs.clienteActual = "0""
Private sDate,sTime, clie_id, usuario As String
result = Msgbox2("Seguro que desea borrar este articulo?","Borrar Articulo", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) 'ignore
If result = DialogResponse.POSITIVE Then
Private prod As Cursor=Starter.skmt.ExecQuery2("select PE_PROID, PE_CANT, PE_CEDIS FROM PEDIDO where pe_pronombre = ? and pe_cliente in (Select CUENTA from cuentaa) ", Array As String(Value))
prod.Position=0
Log("m2= " & m)
Private prod As Cursor = Starter.skmt.ExecQuery($"select PE_PROID, PE_CANT, PE_CEDIS, PE_TIPO FROM PEDIDO where pe_pronombre = '${Value}' and pe_cliente in (Select CUENTA from cuentaa)"$)
prod.Position = 0
' Log("m2= " & m)
c.Close
Log($"Buscamos: ${Value}, ${m.Get("cedis")}"$)
c=Starter.skmt.ExecQuery2("select count(*) AS CUANTOS from cat_gunaprod2 where CAT_GP_ID in (select pe_cedis from pedido where pe_pronombre = ? and pe_cedis = ? and pe_cliente in (Select CUENTA from cuentaa)) and CAT_GP_CLASIF = 'PROMOS' AND CAT_GP_TIPO = 'PROMOS' AND CAT_GP_SUBTIPO = 'PROMOS'", Array As String(Value, m.Get("cedis")))
c.Position=0
' Log($"Buscamos: ${Value}, ${m.Get("cedis")}"$)
' Log($"mapaTipo: ${m.get("tipo")}, queryTipo: ${prod.GetString("PE_TIPO")}"$)
' Log($"mapaCedis: ${m.get("cedis")}, queryCedis: ${prod.GetString("PE_CEDIS")}"$)
' Log($"mapaCant: ${m.get("cant")}, queryCant: ${prod.GetString("PE_CANT")}"$)
' Log($"mapaProd: ${m.get("prodId")}, queryProd: ${prod.GetString("PE_PROID")}"$)
c = Starter.skmt.ExecQuery2($"select count(*) AS CUANTOS from ${Subs.traeTablaProds(prod.GetString("PE_TIPO"))} where CAT_GP_ID in (select pe_cedis from pedido where pe_pronombre = ? and pe_cedis = ? and pe_cliente in (Select CUENTA from cuentaa)) and CAT_GP_CLASIF = 'PROMOS' AND CAT_GP_TIPO = 'PROMOS' AND CAT_GP_SUBTIPO = 'PROMOS'"$, Array As String(Value, m.Get("cedis")))
c.Position = 0
If c.GetString("CUANTOS") > 0 Then
Log($"Borramos de PROMO ${Value}"$)
Private pPromos As Cursor = Starter.skmt.ExecQuery($"select pe_proid, pe_cant from pedido where pe_cedis = '${m.Get("cedis")}'"$)
For tp = 0 To pPromos.RowCount - 1
pPromos.Position = tp
Log($"SUMAMOS ${pPromos.GetString("PE_CANT")} a ${pPromos.GetString("PE_PROID")} "$)
Starter.skmt.ExecNonQuery($"update ${Subs.traeTablaProds(Starter.tipov)} set cat_gp_almacen = cat_gp_almacen + ${pPromos.GetString("PE_CANT")} where cat_gp_id = '${pPromos.Getstring("PE_PROID")}'"$)
Starter.skmt.ExecNonQuery($"update ${Subs.traeTablaProds(prod.GetString("PE_TIPO"))} set cat_gp_almacen = cat_gp_almacen + ${pPromos.GetString("PE_CANT")} where cat_gp_id = '${pPromos.Getstring("PE_PROID")}'"$)
Next
Starter.skmt.ExecNonQuery2("delete from pedido where pe_cedis in (select pe_cedis from pedido where PE_CEDIS = ? and pe_pronombre = ?) and pe_cliente in (Select CUENTA from cuentaa)", Array As Object(m.Get("cedis"), Value))
Else
Log($"SUMAMOS ${m.get("cant")} a ${m.get("prodId")} "$)
Starter.skmt.ExecNonQuery2($"update ${Subs.traeTablaProds(Starter.tipov)} set cat_gp_almacen = cat_gp_almacen + ? where cat_gp_id = ?"$, Array As Object(m.get("cant"), m.get("prodId")))
Starter.skmt.ExecNonQuery2($"update ${Subs.traeTablaProds(prod.GetString("PE_TIPO"))} set cat_gp_almacen = cat_gp_almacen + ? where cat_gp_id = ?"$, Array As Object(m.get("cant"), m.get("prodId")))
Log($"BORRAMOS ${Value}, ${m.Get("cedis")}"$)
Starter.skmt.ExecNonQuery2("delete from pedido where pe_pronombre = ? and pe_cedis = ? and pe_cant = ? and pe_cliente in (Select CUENTA from cuentaa)", Array As Object(Value, m.Get("cedis"), m.Get("cant")))
End If
prod.Close
DateTime.DateFormat = "MM/dd/yyyy"
sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now)
c=Starter.skmt.ExecQuery("Select CUENTA from cuentaa")
c.Position=0
sDate = DateTime.Date(DateTime.Now)
sTime = DateTime.Time(DateTime.Now)
c = Starter.skmt.ExecQuery("Select CUENTA from cuentaa")
c.Position = 0
clie_id = c.GetString("CUENTA")
c=Starter.skmt.ExecQuery("select USUARIO from usuarioa")
c.Position=0
c.Position = 0
usuario = c.GetString("USUARIO")
c=Starter.skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, count(*) as CUANTOS FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
c.Position=0
c.Position = 0
If c.GetString("CUANTOS") > 0 Then
Log($"============== TOTAL = ${c.GetString("TOTAL_CLIE")}"$)
If c.GetString("TOTAL_CLIE") < 1 Then
@@ -951,8 +965,11 @@ Private Sub lv_prodsPedido_ItemLongClick (Position As Int, Value As Object)
End If
End Sub
Private Sub clv_prods_ll_ItemClick (Index As Int, Value As Object)
Private Sub clv_prods_ll_ItemLongClick (Index As Int, Value As Object)
Log("LONGCLIC")
kh.centraPanel(p_rmi, Root.Width)
p_rmi.BringToFront
p_rmi.Visible = True
End Sub
Sub l_prodX_Click
@@ -971,41 +988,52 @@ Sub l_prodX_Click
End Sub
Private Sub l_prodX_LongClick
'' Log("longClic = "&Sender.as(Label).Text)
' If Subs.traeCliente <> 0 Then
' Dim index As Int = clv_prods_ll.GetItemFromView(Sender)
' Private pId As String = clv_prods_ll.GetValue(index).As(Map).Get("id")
' Private pNombre As String = clv_prods_ll.GetValue(index).As(Map).Get("prod")
' Private t As Cursor = Starter.skmt.ExecQuery("select sum(PE_COSTO_TOT) as ventaTotal from pedido where PE_CLIENTE in (Select CUENTA from cuentaa)")
' t.Position = 0
' Private ventaT As String = t.GetString("ventaTotal")
' If ventaT = Null Then ventaT = 0
' If ventaT > 0 Then
' t = Starter.skmt.ExecQuery("select sum(PE_PRECIO2) as totalRMI from pedido where PE_PRONOMBRE like 'CAMBIO%' and PE_CLIENTE in (Select CUENTA from cuentaa)")
' t.Position = 0
' Private totalRMI As String = t.GetString("totalRMI")
' If totalRMI = Null Then totalRMI = 0
' 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.2{(totalRMI)}"$
' l_montoDisponible.Text = $"Disponible para RMI: $$1.2{(ventaT-totalRMI)}"$
' Private m As Map = CreateMap("disponible":(ventaT-totalRMI), "inv":Sender.as(Label).tag, "totalRMI":totalRMI, "pu":pu, "id":pId, "nombre":pNombre)
' rmiMap = m
' ' 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 = 0
' Log("longClic = "&Sender.as(Label).Text)
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_PROID = '${pId}' and 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
If ventaT > 0 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 = $"Disponible para RMI: $1.0{(ventaT)}"$
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":(ventaT - totalRMI), "inv":ventaT, "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
' Else
' ToastMessageShow("No hay venta suficiente para RMIs", True)
' End If
' End If
p_rmi.BringToFront
p_rmi.Visible = True
Else
ToastMessageShow("No hay venta suficiente para RMIs", True)
End If
End If
End Sub
Private Sub clv_prods_ll_VisibleRangeChanged (FirstIndex As Int, LastIndex As Int)
@@ -1026,9 +1054,10 @@ Private Sub clv_prods_ll_VisibleRangeChanged (FirstIndex As Int, LastIndex As In
l_prodX.Width = p_prods.Width - p_botMasMen.Width
l_prodX.SetTextSizeAnimated(0, 13)
If clv_prods_ll.GetValue(i).As(Map).Get("cant") <> Null And clv_prods_ll.GetValue(i).As(Map).Get("cant") > 0 Then
p_prods.Color=0xFFE2EEFF
p_prods.Color = 0xFFE2EEFF
et_pCant.TextColor=Colors.Red
' Log("VENDIDO ")
Log(clv_prods_ll.GetValue(i).As(Map))
Log("VENDIDO ")
b_prodMenos.Tag = "vendido"
b_prodMas.Tag = "vendido"
If Subs.revisaImpresa Then
@@ -1080,7 +1109,7 @@ Sub Busca_TextChanged (Old As String, New As String)
Dim p As ResultSet = Starter.skmt.ExecQuery($"select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_PRECIO, '1000' as CAT_GP_ALMACEN from CAT_RMI where CAT_GP_NOMBRE like '%${New}%' order by CAT_GP_NOMBRE"$)
Log($"Llamamos LlenaProdsLL con ${p.RowCount} prods."$)
lfila.Text = "RMI"
b_rmi.Visible = False
' b_rmi.Visible = False
lv_catalogos.Visible = False
LlenaProdsLL(p, "rmi")
clv_prods_ll.AsView.BringToFront
@@ -1100,24 +1129,28 @@ Sub Busca_TextChanged (Old As String, New As String)
End Sub
Sub LlenaProdsLL(p As ResultSet, extra As String)
' Log("LlenaProdsLL")
Log("LlenaProdsLL")
listaProds.Initialize
hayPedido = Subs.hayPedido
' Log($"HAYPEDIDO: ${hayPedido}"$)
Log($"HAYPEDIDO: ${hayPedido}"$)
If hayPedido Then 'Si hay pedido obtenemos las cantidades de los productos para agregarlos al CLV.
Dim cantsMap As Map
Dim cantsMap, tiposMap As Map
cantsMap.Initialize
Dim pe As ResultSet = Starter.skmt.ExecQuery($"select PE_PROID, PE_CANT from PEDIDO where PE_CLIENTE = '${clienteId}' and PE_CEDIS = '${Subs.traeAlmacen}'"$)
tiposMap.Initialize
Dim pe As ResultSet = Starter.skmt.ExecQuery($"select PE_PROID, PE_CANT, PE_TIPO from PEDIDO where PE_CLIENTE = '${clienteId}' and PE_CEDIS = '${Subs.traeAlmacen}'"$)
'Si EXTRA es igual a rmi, entonces regresamos los RMIs existentes.
If extra = "rmi" Then pe = Starter.skmt.ExecQuery($"select PE_PROID, PE_CANT from PEDIDO where PE_CLIENTE = '${clienteId}' and PE_CEDIS = 'DUR'"$)
' LogColor("Ponemos productos de pedido anterior: "&pe.RowCount, Colors.red)
LogColor("Ponemos productos de pedido anterior: "&pe.RowCount, Colors.red)
Do While pe.NextRow
Private cant As Int = 0
Private tipo As String = ""
cantsMap.put(pe.GetString("PE_PROID"), pe.GetString("PE_CANT"))
tiposMap.put(pe.GetString("PE_PROID"), pe.GetString("PE_TIPO"))
Loop
' Log($"Con pedido: ${pe.RowCount}"$)
' Log("CANTSMAP: " & cantsMap)
Log($"Con pedido: ${pe.RowCount}"$)
Log("CANTSMAP: " & cantsMap)
Log("TIPOSMAP: " & tiposMap)
pe.Close
End If
' Log(p.IsInitialized)
@@ -1131,9 +1164,12 @@ Sub LlenaProdsLL(p As ResultSet, extra As String)
Do While p.NextRow
Private cant As Int = 0
Private tipoV As String = ""
If hayPedido And cantsMap.ContainsKey(p.GetString("CAT_GP_ID")) Then cant = cantsMap.Get(p.GetString("CAT_GP_ID"))
Dim tempMap As Map = CreateMap("prod":p.GetString("CAT_GP_NOMBRE"), "precio":p.GetString("CAT_GP_PRECIO"), "almacen":p.GetString("CAT_GP_ALMACEN"), "id":p.GetString("CAT_GP_ID"), "cant":cant)
listaProds.Add(tempMap)
If hayPedido And tiposMap.ContainsKey(p.GetString("CAT_GP_ID")) Then tipoV = tiposMap.Get(p.GetString("CAT_GP_ID"))
Dim tempMap As Map = CreateMap("prod":p.GetString("CAT_GP_NOMBRE"), "precio":p.GetString("CAT_GP_PRECIO"), "almacen":p.GetString("CAT_GP_ALMACEN"), "id":p.GetString("CAT_GP_ID"), "cant":cant, "tipo":tipoV)
' Log($"tipo: |${tempMap.Get("tipo")}|${Starter.tipov}| - tempMap: ${tempMap}"$)
If tempMap.Get("tipo") = "" Or tempMap.Get("tipo") = Starter.tipov Then listaProds.Add(tempMap) 'Si el tipo de venta del producto es igual al actual, mostramos el producto en la lista.
' Log($"${p.GetString("CAT_GP_ID")}, ${p.GetString("CAT_GP_NOMBRE")}, ${cant}"$)
Loop
p.Close
@@ -1160,7 +1196,7 @@ Sub LlenaProdsLL(p As ResultSet, extra As String)
Private Pnl As B4XView = xui.CreatePanel("")
Pnl.SetLayoutAnimated(0, 0, 0, clv_prods_ll.AsView.Width, 50dip)
Private tempMap As Map = listaProdsConCant.Get(pr0)
Private inv = tempMap.Get("almacen") + tempMap.Get("cant")
Private inv As String = tempMap.Get("almacen") + tempMap.Get("cant")
tempMap.Put("almacen", inv)
' Log(tempMap)
clv_prods_ll.Add(Pnl, tempMap)
@@ -1212,8 +1248,8 @@ Private Sub p_rmi_Click
End Sub
Private Sub b_rmi_aceptar_Click
If l_rmi_cant.Text > 0 Then Subs.guardaCambiosDeProducto(l_rmi_cant.Text, rmiMap.Get("nombre"), rmiMap.Get("id"), rmiMap.Get("pu")*l_rmi_cant.Text, query)
' Log($"${l_rmi_cant.Text}, ${rmiMap.Get("nombre")}, ${rmiMap.Get("id")}, ${rmiMap.Get("pu")}, ${query}"$)
Subs.guardaCambiosDeProducto(l_rmi_cant.Text, nuevaCantRMI, rmiMap.Get("nombre"), rmiMap.Get("id"), 0, query)
Log($"${nuevaCantRMI}, ${rmiMap.Get("nombre")}, ${rmiMap.Get("id")}, ${rmiMap.Get("pu")}, ${query}"$)
p_rmi.Visible = False
End Sub
@@ -1223,25 +1259,30 @@ Private Sub b_rmi_menos_Click
Private cant As String = l_rmi_cant.Text
If (cant - 1) >= 0 Then
l_rmi_cant.Text = $"$1.0{(l_rmi_cant.Text - 1)}"$
l_rmi_total.Text = $"Total RMI $$1.2{(cant - 1) * rmiMap.Get("pu")}"$
' l_rmi_total.Text = $"Total RMI $$1.2{(cant - 1) * rmiMap.Get("pu")}"$
End If
nuevaCantRMI = (rmiMap.Get("totalRMI") - l_rmi_cant.Text) * -1
Log(nuevaCantRMI)
End Sub
Private Sub b_rmi_mas_Click
Log(rmiMap)
Log(Sender.As(Button).tag)
' Private d As Map = Sender.As(Button).tag
Private cant As String = l_rmi_cant.Text
If (cant + 1) <= rmiMap.Get("inv") And ((cant + 1) * rmiMap.Get("pu")) <= rmiMap.Get("disponible") Then
If (cant + 1) <= rmiMap.Get("inv") Then
l_rmi_cant.Text = $"$1.0{(l_rmi_cant.Text + 1)}"$
l_rmi_total.Text = $"Total RMI $$1.2{(cant + 1) * rmiMap.Get("pu")}"$
' l_rmi_total.Text = $"Total RMI $$1.2{(cant + 1) * rmiMap.Get("pu")}"$
End If
nuevaCantRMI = (rmiMap.Get("totalRMI") - l_rmi_cant.Text) * -1
Log(nuevaCantRMI)
End Sub
Private Sub b_rmi_Click
Dim p As ResultSet = Starter.skmt.ExecQuery($"select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_PRECIO, '1000' as CAT_GP_ALMACEN from CAT_RMI order by CAT_GP_NOMBRE"$)
Log($"Llamamos LlenaProdsLL con ${p.RowCount} prods."$)
lfila.Text = "RMI"
b_rmi.Visible = False
' b_rmi.Visible = False
lv_catalogos.Visible = False
LlenaProdsLL(p, "rmi")
clv_prods_ll.AsView.BringToFront