mirror of
https://github.com/KeymonSoft/Durakelo.git
synced 2026-04-21 13:19:16 +00:00
15/1/24 - Cambios para lista de precios alternativa y promos por proveedor
This commit is contained in:
@@ -211,17 +211,12 @@ Sub B4XPage_Appear
|
||||
' Log(Starter.tipov)
|
||||
c = Starter.skmt.ExecQuery("select count(*) as hayPromos from promos_comp")
|
||||
c.Position = 0
|
||||
' Log(Subs.revisaImpresa)
|
||||
If c.GetInt("hayPromos") > 0 And clienteId <> 0 And kh.revisaImpresa = False Then
|
||||
lv_catalogos.AddSingleLine("PROMOS")
|
||||
End If
|
||||
|
||||
' If c.GetInt("hayPromos") > 0 And clienteId <> 0 And kh.revisaImpresa = False Then
|
||||
' lv_catalogos.AddSingleLine("PROMOS")
|
||||
' End If
|
||||
|
||||
Sleep(100)
|
||||
' l_total.Visible = False
|
||||
' l_totProds.Visible = False
|
||||
' l_total.Left = 5dip
|
||||
' l_totProds.Width = Root.Width * 0.19
|
||||
' l_total.Left = l_totProds.Width + 20
|
||||
' l_total.Width = Root.Width * 0.25
|
||||
|
||||
' Log(Subs.traeTotalesClienteActual)
|
||||
Dim m As Map = Subs.traeTotalesClienteActual
|
||||
@@ -268,6 +263,31 @@ Sub B4XPage_Appear
|
||||
If PERFIL = "V-COSTO" Then
|
||||
skmt.ExecNonQuery("DELETE FROM CAT_GUNAPROD WHERE CAT_GP_ID IN (SELECT CAT_GP_ID FROM LISTA_PRECIOS WHERE NLISTA = '9' AND PRECIO = '0')")
|
||||
End If
|
||||
|
||||
' Log("select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_PRECIO, CAT_GP_ALMACEN, CAT_GP_IMG from " & query & " where CAT_GP_ALMACEN > 0 AND CAT_GP_TIPO = 'PROMOS' AND CAT_GP_SUBTIPO ='PROMOS' AND CAT_GP_TIPOPROD <> 1 and (length(CAT_GP_CODPROMO) = 1 OR CAT_GP_CODPROMO = CAT_GP_ID)")
|
||||
' c2=Starter.skmt.ExecQuery("select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_PRECIO, CAT_GP_ALMACEN, CAT_GP_IMG from " & query & " where CAT_GP_ALMACEN > 0 AND CAT_GP_TIPO = 'PROMOS' AND CAT_GP_SUBTIPO ='PROMOS' AND CAT_GP_TIPOPROD <> 1 and (length(CAT_GP_CODPROMO) = 1 OR CAT_GP_CODPROMO = CAT_GP_ID)")
|
||||
' Log($"Resultados : ${c2.RowCount}"$)
|
||||
|
||||
'Traemos las promociones con el proveedor incluido.
|
||||
c2=Starter.skmt.ExecQuery("Select distinct CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_PRECIO, CAT_GP_ALMACEN, CAT_GP_TIPO, CAT_DP_CLASIF, CAT_CLASF_PROD.* from " & query & " join CAT_DETALLES_PAQ on CAT_DP_ID = CAT_GP_ID join CAT_CLASF_PROD on CAT_DP_CLASIF = CAT_CP_ID where CAT_GP_ALMACEN > 0 And CAT_GP_TIPO = 'PROMOS' AND CAT_GP_SUBTIPO ='PROMOS' AND CAT_GP_TIPOPROD <> 1 and (length(CAT_GP_CODPROMO) = 1 OR CAT_GP_CODPROMO = CAT_GP_ID) order by CAT_CP_NOMPROD")
|
||||
' Log($"Resultados : ${c2.RowCount}"$)
|
||||
Private mPromosProv As Map
|
||||
mPromosProv.Initialize
|
||||
If c2.RowCount > 0 Then
|
||||
For i=0 To c2.RowCount -1
|
||||
c2.Position=i
|
||||
Private tm As Map = Subs.procesaPromocion(c2.GetString("CAT_GP_ID"), clienteId) 'Revisamos que la promo tenga inventario suficiente.
|
||||
If tm.Get("status") = "ok" Then 'Si tiene inventario suficiente, la agregamos al mapa de proveedores
|
||||
' LogColor($">>>>>>>>>> ${c2.GetString("CAT_GP_NOMBRE")} - "$, Colors.red)
|
||||
mPromosProv.Put(c2.GetString("CAT_CP_NOMPROD"),c2.GetString("CAT_CP_ID"))'Aqui tenemos un mapa con el nombre del proveedor y el id del proveedor.
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
For p = 0 To mPromosProv.Size - 1 'Por cada proveedor agregamos una linea al listview, el valor de la linea es el ID del proveedor.
|
||||
lv_catalogos.AddSingleLine2($"PROMOS ${mPromosProv.GetKeyAt(p)}"$, mPromosProv.GetValueAt(p))
|
||||
Next
|
||||
' Log(mPromos)
|
||||
traeListaPrecios(kh.traeAlmacen, kh.traeRuta, "", PERFIL)
|
||||
End Sub
|
||||
|
||||
Sub PCLV_AddProds
|
||||
@@ -295,28 +315,41 @@ Sub lv_catalogos_ItemClick (Position As Int, Value As Object)
|
||||
Dim label1 As Label
|
||||
label1 = lv_promos.TwoLinesLayout.Label
|
||||
label1.TextSize = 15
|
||||
' label1.Height = 200dip
|
||||
label1.TextColor = Colors.Black
|
||||
label1.Height = 60dip
|
||||
label1.Gravity = Gravity.TOP
|
||||
|
||||
Dim label2 As Label
|
||||
label2 = lv_promos.TwoLinesLayout.SecondLabel
|
||||
label2.TextSize = 15
|
||||
label2.TextColor = Colors.Black
|
||||
Dim label13 As Label
|
||||
label13 = lv_promos.TwoLinesAndBitmap.Label
|
||||
label13.TextSize = 15
|
||||
label13.TextColor = Colors.Black
|
||||
Dim label14 As Label
|
||||
label14 = lv_promos.TwoLinesAndBitmap.SecondLabel
|
||||
label14.TextSize = 15
|
||||
label14.TextColor = Colors.Black
|
||||
label2.TextSize = 15
|
||||
label2.Gravity = Gravity.TOP
|
||||
label2.Top = 40dip
|
||||
|
||||
lv_promos.TwoLinesLayout.ItemHeight = 60dip
|
||||
|
||||
' label2.Height = 200dip
|
||||
' Dim label13 As Label
|
||||
' label13 = lv_promos.TwoLinesAndBitmap.Label
|
||||
' label13.TextSize = 15
|
||||
' label13.TextColor = Colors.Black
|
||||
' Dim label14 As Label
|
||||
' label14 = lv_promos.TwoLinesAndBitmap.SecondLabel
|
||||
' label14.TextSize = 15
|
||||
' label14.TextColor = Colors.Black
|
||||
|
||||
' lfila.text = "PROMOS"
|
||||
' c2=Starter.skmt.ExecQuery2("select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_PRECIO, CAT_GP_ALMACEN, CAT_GP_IMG from " & query & " where CAT_GP_ALMACEN > 0 AND CAT_GP_TIPO = ? AND CAT_GP_SUBTIPO = ? AND CAT_GP_TIPOPROD <> 1 and (length(CAT_GP_CODPROMO) = 1 OR CAT_GP_CODPROMO = CAT_GP_ID)", Array As String(Value, Value))
|
||||
c2=Starter.skmt.ExecQuery2("select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_PRECIO, CAT_GP_ALMACEN, CAT_GP_IMG from " & query & " where CAT_GP_ALMACEN > 0 AND CAT_GP_TIPO = ? AND CAT_GP_SUBTIPO =? AND CAT_GP_TIPOPROD <> 1 and (length(CAT_GP_CODPROMO) = 1 OR CAT_GP_CODPROMO = CAT_GP_ID) ", Array As String( Value, Value))
|
||||
' Log($"Resultados : ${c2.RowCount}, ${Value}, ${marca}, ${tipo}"$)
|
||||
' c2=Starter.skmt.ExecQuery2("select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_PRECIO, CAT_GP_ALMACEN, CAT_GP_IMG from " & query & " where CAT_GP_ALMACEN > 0 AND CAT_GP_TIPO = ? AND CAT_GP_SUBTIPO =? AND CAT_GP_TIPOPROD <> 1 and (length(CAT_GP_CODPROMO) = 1 OR CAT_GP_CODPROMO = CAT_GP_ID) ", Array As String( Value, Value))
|
||||
|
||||
'Traemos las promociones del proveedor seleccionado.
|
||||
c2=Starter.skmt.ExecQuery2("Select distinct CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_PRECIO, CAT_GP_ALMACEN, CAT_GP_TIPO, CAT_DP_CLASIF, CAT_CLASF_PROD.* from " & query & " join CAT_DETALLES_PAQ on CAT_DP_ID = CAT_GP_ID join CAT_CLASF_PROD on CAT_DP_CLASIF = CAT_CP_ID where CAT_CP_ID = ? and CAT_GP_ALMACEN > 0 And CAT_GP_TIPO = 'PROMOS' AND CAT_GP_SUBTIPO = 'PROMOS' AND CAT_GP_TIPOPROD <> 1 and (length(CAT_GP_CODPROMO) = 1 OR CAT_GP_CODPROMO = CAT_GP_ID) order by CAT_CP_NOMPROD", Array As String( Value))
|
||||
If c2.RowCount > 0 Then
|
||||
For i=0 To c2.RowCount -1
|
||||
c2.Position=i
|
||||
Private tm As Map = Subs.procesaPromocion(c2.GetString("CAT_GP_ID"), clienteId)
|
||||
If tm.Get("status") = "ok" Then 'Solo muestrala si hay producto.
|
||||
Log(c2.GetString("CAT_GP_NOMBRE"))
|
||||
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
|
||||
Next
|
||||
@@ -587,7 +620,7 @@ Sub b_prodMenos_Click
|
||||
Private cs As CSBuilder
|
||||
cs.Initialize
|
||||
'Traemos el inventario actual
|
||||
Private i As Cursor = Starter.skmt.ExecQuery($"select CAT_GP_ALMACEN from cat_gunaprod2 where CAT_GP_ID = '${id}'"$)
|
||||
Private i As Cursor = Starter.skmt.ExecQuery($"select CAT_GP_ALMACEN from ${kh.traeTablaProds(Starter.tipov)} where CAT_GP_ID = '${id}'"$)
|
||||
Private invActualizado As String = "0"
|
||||
If i.RowCount > 0 Then
|
||||
i.Position = 0
|
||||
@@ -671,7 +704,7 @@ Sub b_prodMas_Click
|
||||
Private cs As CSBuilder
|
||||
cs.Initialize
|
||||
'Traemos el inventario actual
|
||||
Private i As Cursor = Starter.skmt.ExecQuery($"select CAT_GP_ALMACEN from cat_gunaprod2 where CAT_GP_ID = '${id}'"$)
|
||||
Private i As Cursor = Starter.skmt.ExecQuery($"select CAT_GP_ALMACEN from ${kh.traeTablaProds(Starter.tipov)} where CAT_GP_ID = '${id}'"$)
|
||||
Private invActualizado As String = "0"
|
||||
If i.RowCount > 0 Then
|
||||
i.Position = 0
|
||||
@@ -700,7 +733,7 @@ Private Sub et_pCant_FocusChanged (HasFocus As Boolean)
|
||||
End Sub
|
||||
|
||||
Private Sub et_pCant_TextChanged (Old As String, New As String)
|
||||
LogColor($"txt changed: ${Old}|${New}, hasfocus=${etCantHasFocus}"$,Colors.Magenta)
|
||||
' LogColor($"txt changed: ${Old}|${New}, hasfocus=${etCantHasFocus}"$,Colors.Magenta)
|
||||
' If Not(Old = "0" And New = "") And etCantHasFocus Then cuentaProds
|
||||
|
||||
If etCantHasFocus = True Then
|
||||
@@ -1082,8 +1115,8 @@ Sub l_prodX_Click
|
||||
' cb_precio2.SetItems(losPreciosList)
|
||||
' End If
|
||||
|
||||
Private listaPrecios As List = traeListaPrecios(Subs.traeAlmacen, ruta, id, PERFIL)
|
||||
If listaPrecios.Size > 0 Then
|
||||
Private listaPrecios As List = traeListaPrecios(kh.traeAlmacen, kh.traeRuta, id, PERFIL)
|
||||
If listaPrecios.Size > 1 Then
|
||||
cb_precio2.SetItems(listaPrecios)
|
||||
cb_precio2.Tag = elTag
|
||||
cb_precio2.mBase.Visible = True
|
||||
@@ -1182,7 +1215,11 @@ Private Sub clv_prods_ll_VisibleRangeChanged (FirstIndex As Int, LastIndex As In
|
||||
End If
|
||||
Private precio As String=NumberFormat2(clv_prods_ll.GetValue(i).As(Map).Get("precio").As(Double),1,2,2,False)
|
||||
If clv_prods_ll.GetValue(i).As(Map).Get("cant") <> Null Then et_pCant.Text = clv_prods_ll.GetValue(i).As(Map).Get("cant")
|
||||
l_prodX.Text = cs.Color(Colors.red).append(clv_prods_ll.GetValue(i).As(Map).Get("prod")).pop.append(CRLF).Append("Existencias: " & clv_prods_ll.GetValue(i).As(Map).Get("almacen")).Color(0xFF017F01).Append($" $${precio}"$).Popall
|
||||
Private precioAlt As String = ""
|
||||
If clv_prods_ll.GetValue(i).As(Map).get("precioAlt") <> "" And Starter.hayListaPreciosAlt Then
|
||||
precioAlt = "+"
|
||||
End If
|
||||
l_prodX.Text = cs.Color(Colors.red).append(clv_prods_ll.GetValue(i).As(Map).Get("prod")).pop.append(CRLF).Append("Existencias: " & clv_prods_ll.GetValue(i).As(Map).Get("almacen")).Color(0xFF017F01).Append($" $${precio} ${precioAlt}"$).Popall
|
||||
l_prodX.Tag = clv_prods_ll.GetValue(i).As(Map)
|
||||
l_pCant.Tag = clv_prods_ll.GetValue(i).As(Map).Get("id")
|
||||
et_pCant.Tag = clv_prods_ll.GetValue(i).As(Map)
|
||||
@@ -1276,7 +1313,8 @@ Sub LlenaProdsLL(p As ResultSet, extra As String)
|
||||
' Log($"YA HAY RESULTSET ${p.RowCount}"$)
|
||||
Else
|
||||
' Log("NO HAY RESULTSET")
|
||||
Dim p As ResultSet = Starter.skmt.ExecQuery($"select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_ALMACEN, CAT_GP_PRECIO, CAT_GP_TIPOPROD from ${Subs.traeTablaProds(Starter.tipov)} where CAT_GP_PRECIO > 0 And CAT_GP_CLASIF <> 'PROMOS' order by CAT_GP_NOMBRE"$)
|
||||
' Dim p As ResultSet = Starter.skmt.ExecQuery($"select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_ALMACEN, CAT_GP_PRECIO, CAT_GP_TIPOPROD from ${Subs.traeTablaProds(Starter.tipov)} where CAT_GP_PRECIO > 0 And CAT_GP_CLASIF <> 'PROMOS' order by CAT_GP_NOMBRE"$)
|
||||
Dim p As ResultSet = Starter.skmt.ExecQuery($"Select distinct ${Subs.traeTablaProds(Starter.tipov)}.CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_ALMACEN, CAT_GP_PRECIO, CAT_GP_TIPOPROD, LISTA_PRECIOS.CAT_GP_ID as precioAlt from ${Subs.traeTablaProds(Starter.tipov)} left join LISTA_PRECIOS on LISTA_PRECIOS.CAT_GP_ID = ${Subs.traeTablaProds(Starter.tipov)}.CAT_GP_ID where CAT_GP_PRECIO > 0 And CAT_GP_CLASIF <> 'PROMOS' order by CAT_GP_NOMBRE"$)
|
||||
End If
|
||||
|
||||
Do While p.NextRow
|
||||
@@ -1289,9 +1327,9 @@ Sub LlenaProdsLL(p As ResultSet, extra As String)
|
||||
If hayPedido And preciosMap.ContainsKey(p.GetString("CAT_GP_ID")) Then precioX = preciosMap.Get(p.GetString("CAT_GP_ID"))
|
||||
' Log(precioX)
|
||||
' Log(">>>>>> preciosMap: " & preciosMap)
|
||||
Dim tempMap As Map = CreateMap("prod":p.GetString("CAT_GP_NOMBRE"), "precio":precioX, "almacen":p.GetString("CAT_GP_ALMACEN"), "id":p.GetString("CAT_GP_ID"), "cant":cant, "tipo":Starter.tipoV)
|
||||
Dim tempMap As Map = CreateMap("prod":p.GetString("CAT_GP_NOMBRE"), "precio":precioX, "almacen":p.GetString("CAT_GP_ALMACEN"), "id":p.GetString("CAT_GP_ID"), "cant":cant, "tipo":Starter.tipoV, "precioAlt":p.GetString("precioAlt"))
|
||||
' Log($"tipo: |${tempMap.Get("tipo")}|${Starter.tipov}| - tempMap: ${tempMap}"$)
|
||||
Log($">>> ${p.GetString("CAT_GP_NOMBRE")} - ALMACEN: ${p.GetString("CAT_GP_ALMACEN")}"$)
|
||||
' Log($">>> ${p.GetString("CAT_GP_NOMBRE")} - ALMACEN: ${p.GetString("CAT_GP_ALMACEN")}"$)
|
||||
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
|
||||
@@ -1447,21 +1485,27 @@ End Sub
|
||||
|
||||
'Regresa la lista de precios de acuerdo al almacen, ruta, perfil y id dados.
|
||||
Sub traeListaPrecios (almacenX As String, rutaX As String, idX As String, perfilX As String) As List 'ignore
|
||||
Log($"${almacenX}, ${rutaX}, ${idX}, ${perfilX}"$)
|
||||
Private listaPrecios As List
|
||||
listaPrecios.Initialize
|
||||
listaPrecios.Add("-= Seleccione Precio =-")
|
||||
If almacenX = "6" And rutaX = "16" Then
|
||||
' Log("POR ALMACEN Y RUTA")
|
||||
Starter.hayListaPreciosAlt = True
|
||||
c = Starter.skmt.ExecQuery($"select PRECIO, NLISTA FROM LISTA_PRECIOS WHERE NLISTA IN ('1','10') AND CAT_GP_ID = '${idX}' ORDER BY NLISTA ASC"$)
|
||||
If c.RowCount>0 Then
|
||||
For i=0 To c.RowCount - 1
|
||||
If c.RowCount > 0 Then
|
||||
For i = 0 To c.RowCount - 1
|
||||
c.Position = i
|
||||
listaPrecios.Add($"${c.GetString("NLISTA")} - ${c.GetString("PRECIO")}"$)
|
||||
Next
|
||||
End If
|
||||
ELSE IF perfilX = "V-ESPECIAL" Then
|
||||
' Log($"POR PERFIL: V-ESPECIAL"$)
|
||||
Starter.hayListaPreciosAlt = True
|
||||
c = Starter.skmt.ExecQuery($"select PRECIO, NLISTA FROM LISTA_PRECIOS WHERE NLISTA IN ('5','6','7','8','10') AND CAT_GP_ID = '${idX}' ORDER BY NLISTA ASC"$)
|
||||
If c.RowCount>0 Then
|
||||
For i=0 To c.RowCount -1
|
||||
' Log(c.RowCount)
|
||||
If c.RowCount > 0 Then
|
||||
For i = 0 To c.RowCount - 1
|
||||
c.Position = i
|
||||
listaPrecios.Add($"${c.GetString("NLISTA")} - ${NumberFormat2(c.GetDouble("PRECIO"), 1, 2, 2, False)}"$)
|
||||
Next
|
||||
|
||||
Reference in New Issue
Block a user