Se agrego el descuento de las condiciones comerciales, de acuerdo al tipo (salty snacks, ping y rtec) y por sku.

This commit is contained in:
2024-02-01 02:21:38 -06:00
parent 8e095d8bff
commit 4e56e0456f
7 changed files with 61 additions and 27 deletions

View File

@@ -536,7 +536,7 @@ Sub B4XPage_Appear
' b_noVenta.Visible = False
' End If
If CREDITO = "1" Then
Msgbox("ALTO","A este cliente no se le puede vender ya que tienen adeudo en su crédito") 'ignore
Msgbox("A este cliente no se le puede vender ya que tienen adeudo en su crédito", "ALTO") 'ignore
B_VENTA.Visible = False
clienteDeudor = True
' gest.Visible = False
@@ -595,7 +595,6 @@ Sub B4XPage_Appear
C1.Close
End If
' B_VENTA.Visible = True
If CREDITO = "1" Then
Msgbox("El cliente tiene credito excedido","Aviso") 'ignore
Subs.iniciaActividad("Principal")
@@ -1483,7 +1482,8 @@ Sub B_IMP2_Click
s.Position =0
Printer1.WriteString(Printer1.REVERSE & "===============================" & CRLF)
Private total2 As String = 0
If s.GETSTRING("TOTAL") <> Null And IsNumber(s.GETSTRING("TOTAL")) Then total2 = s.GETSTRING("TOTAL")
' If s.GETSTRING("TOTAL") <> Null And IsNumber(s.GETSTRING("TOTAL")) Then total2 = s.GETSTRING("TOTAL")
total2 = kh.traeTotalCliente
Printer1.WriteString(Printer1.UNREVERSE & Printer1.BOLD & "Total venta: $" & NumberFormat2(total2, 1, 2, 2, False) & CRLF)
' Printer1.WriteString(Printer1.UNREVERSE & Printer1.BOLD & "Total venta: $" & s.GetString("TOTAL") & CRLF)
' Printer1.WriteString("===============================" & CRLF)

View File

@@ -223,7 +223,7 @@ Sub CreateListItemPedidos(Texto1 As String, txtColor As Int, txtPromo As String,
Dim cs As CSBuilder
cs.Initialize
p.LoadLayout("pedidoItem")
l_pedido.Text = cs.append(Texto1).Append(CRLF).Color(txtColor).append(txtPromo).Append("Cantidad #" & cantp & " SubTotal $" & costoTotP & " Folio " & folioP).PopAll
l_pedido.Text = cs.append(Texto1).Append(CRLF).Color(txtColor).append(txtPromo).Append("Cantidad #" & cantp & " SubTotal $" & NumberFormat2(costoTotP, 1, 2, 2, True) & " Folio " & folioP).PopAll
Dim alto As Int = su.MeasureMultilineTextHeight(l_pedido, l_pedido.Text)
p.SetLayoutAnimated(0, 0, 0, clv_pedidos.AsView.Width, alto + 20)
' i_prod.Bitmap = img
@@ -446,7 +446,7 @@ Private Sub clv_pedidos_ItemLongClick (position As Int, Value As Object)
c.Close
c = Starter.skmt.ExecQuery2("select PE_PRONOMBRE, PE_COSTO_TOT, PE_CANT, PE_FOLIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) AND PE_PRONOMBRE = ? order by PE_PRONOMBRE asc", Array As String(Value) )
c.Position = 0
If c.GetString("PE_FOLIO") = "0" or 1 = 1 Then 'Para que el abordo borre siempre agregar -> " Or Subs.clienteActual = "0" "
If c.GetString("PE_FOLIO") = "0" Or 1 = 1 Then 'Para que el abordo borre siempre agregar -> " Or Subs.clienteActual = "0" "
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))
@@ -513,7 +513,7 @@ Private Sub lv_prodsDOE_ItemLongClick (Position As Int, Value As Object)
If kh.revisaImpresa Then
ToastMessageShow("Esta venta ya esta impresa, no se puede editar ni borrar.", False)
Else
If folio = "0" or 1 = 1 Then 'Si el folio es 0 o el cliente actual es "abordo", los deja borrar. - Mod por CHV 220512 poner esto para borrar abordo "Or Subs.clienteActual = "0""
If folio = "0" Or 1 = 1 Then 'Si el folio es 0 o el cliente actual es "abordo", los deja borrar. - Mod por CHV 220512 poner esto para borrar abordo "Or Subs.clienteActual = "0""
result = Msgbox2("Seguro que desea borrar el pedido?","Cancelar pedido", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) 'ignore
If result = DialogResponse.POSITIVE Then
c=Starter.skmt.ExecQuery2("select PE_PROID,PE_CANT, PE_TIPO FROM PEDIDO where pe_cliente in (Select CUENTA from cuentaa) AND PE_CEDIS = ?", Array As String("DOE"))

View File

@@ -597,7 +597,7 @@ Sub b_prodMenos_Click
i.Position = 0
invActualizado = i.GetString("CAT_GP_ALMACEN")
End If
If Starter.tipov <> "ABORDO" Then lProdX.Text = cs.Color(Colors.red).append(nombreX).pop.append(CRLF).Append("Existencias: " & invActualizado).Color(0xFF017F01).Append($" $${precio}"$).Popall
If Starter.tipov <> "ABORDO" Then lProdX.Text = cs.Color(Colors.red).append(nombreX).pop.append(CRLF).Append("Existencias: " & invActualizado).Color(0xFF017F01).Append($" $${numberformat2(precio, 1, 2, 2, False)}"$).Popall
End If
If Subs.totalPedido < 1 Then laCant.Text = "0"
' Log($"Total Prods: ${totalProds}, Total Compra: $$1.2{totalCompra}"$)
@@ -680,7 +680,7 @@ Sub b_prodMas_Click
i.Position = 0
invActualizado = i.GetString("CAT_GP_ALMACEN")
End If
If Starter.tipov <> "ABORDO" Then lProdX.Text = cs.Color(Colors.red).append(nombreX).pop.append(CRLF).Append("Existencias: " & invActualizado).Color(0xFF017F01).Append($" $${precio}"$).Popall
If Starter.tipov <> "ABORDO" Then lProdX.Text = cs.Color(Colors.red).append(nombreX).pop.append(CRLF).Append("Existencias: " & invActualizado).Color(0xFF017F01).Append($" $${numberformat2(precio, 1, 2, 2, False)}"$).Popall
End If
Log($"Total Prods: ${totalProds}, Total Compra: $$1.2{totalCompra}"$)
End Sub
@@ -854,7 +854,7 @@ Sub b_terminar1_Click
label2.TextColor = Colors.Blue
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"))
lv_prodsPedido.AddTwoLines(cs.Color(textColor).append(c_prods.GetString("PE_PRONOMBRE")).pop,"Cantidad #"& c_prods.GetString("PE_CANT")& " SubTotal $"& NumberFormat2(c_prods.GetString("PE_COSTO_TOT"), 1, 2, 2, True)& " 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")))
folio = 0
totalPedido = totalPedido + (c_prods.GetString("PE_COSTOU") * c_prods.GetString("PE_CANT"))
@@ -1162,13 +1162,12 @@ Private Sub clv_prods_ll_VisibleRangeChanged (FirstIndex As Int, LastIndex As In
b_prodMenos.Enabled = False
End If
End If
Private precio As String=NumberFormat2(clv_prods_ll.GetValue(i).As(Map).Get("precio").As(Double),1,2,2,False)
Private precio As Double=clv_prods_ll.GetValue(i).As(Map).Get("precio").As(Double)
If clv_prods_ll.GetValue(i).As(Map).Get("cant") <> Null Then et_pCant.Text = clv_prods_ll.GetValue(i).As(Map).Get("cant")
If Starter.tipov <> "ABORDO" Then
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
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($" $${NumberFormat2(precio,1,2,2,False)}"$).Popall
Else
l_prodX.Text = cs.Color(Colors.red).append(clv_prods_ll.GetValue(i).As(Map).Get("prod")).pop.append(CRLF).Append("Almacen: " & clv_prods_ll.GetValue(i).As(Map).Get("almacen")).color(Colors.RGB(48,99,192)).Append(" Abordo: " & clv_prods_ll.GetValue(i).As(Map).Get("abordo")).Color(0xFF017F01).Append($" $${precio}"$).Popall
l_prodX.Text = cs.Color(Colors.red).append(clv_prods_ll.GetValue(i).As(Map).Get("prod")).pop.append(CRLF).Append("Almacen: " & clv_prods_ll.GetValue(i).As(Map).Get("almacen")).color(Colors.RGB(48,99,192)).Append(" Abordo: " & clv_prods_ll.GetValue(i).As(Map).Get("abordo")).Color(0xFF017F01).Append($" $${NumberFormat2(precio,1,2,2,False)}"$).Popall
End If
l_prodX.Tag = clv_prods_ll.GetValue(i).As(Map).Get("id")
@@ -1192,7 +1191,7 @@ Sub Busca_TextChanged (Old As String, New As String)
' Log($"${Starter.tipov} - ${query} - ${Subs.traeTablaProds(Starter.tipov)}"$)
If lfila.text = "PROMOCIONES" Then
If Not(lv_promos.Visible) Then lv_promos.Visible = True
Private cPromo As Cursor=Starter.skmt.ExecQuery($"select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_PRECIO, CAT_GP_ALMACEN, CAT_GP_IMG from ${Subs.traeTablaProds(Starter.tipov)} where CAT_GP_NOMBRE like '%${New}%' 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)"$)
Private cPromo As Cursor=Starter.skmt.ExecQuery($"select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_PRECIO, CAT_GP_ALMACEN, CAT_GP_TIPO, CAT_GP_IMG from ${Subs.traeTablaProds(Starter.tipov)} where CAT_GP_NOMBRE like '%${New}%' 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)"$)
Log($"res:${cPromo.RowCount}"$)
If cPromo.RowCount > 0 Then
lv_promos.Clear
@@ -1223,7 +1222,7 @@ Sub Busca_TextChanged (Old As String, New As String)
listaProds.Initialize
listaHints.Initialize
Sleep(0)
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_NOMBRE like '%${New}%' and CAT_GP_PRECIO > 0 AND CAT_GP_ALMACEN > 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_TIPO, CAT_GP_TIPOPROD from ${Subs.traeTablaProds(Starter.tipov)} where CAT_GP_NOMBRE like '%${New}%' and CAT_GP_PRECIO > 0 AND CAT_GP_ALMACEN > 0 and CAT_GP_CLASIF <> 'PROMOS' order by CAT_GP_NOMBRE"$)
' 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("Llamamos LlenaProdsLL")
LlenaProdsLL(p, Null)
@@ -1257,7 +1256,7 @@ 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_TIPO, CAT_GP_TIPOPROD from ${Subs.traeTablaProds(Starter.tipov)} where CAT_GP_PRECIO > 0 And CAT_GP_CLASIF <> 'PROMOS' order by CAT_GP_NOMBRE"$)
' Log(p.RowCount & " - " & Subs.traeTablaProds(Starter.tipov))
End If
@@ -1272,9 +1271,20 @@ Sub LlenaProdsLL(p As ResultSet, extra As String)
invAbordo = ab.GetString("CAT_GP_ALMACEN")
End If
End If
Dim tempMap As Map = CreateMap("prod":p.GetString("CAT_GP_NOMBRE"), "precio":p.GetString("CAT_GP_PRECIO"), "almacen":p.GetString("CAT_GP_ALMACEN"), "abordo":invAbordo, "id":p.GetString("CAT_GP_ID"), "cant":cant)
Private precio As String = NumberFormat2(p.GetDouble("CAT_GP_PRECIO"),1,2,2,False)
'Descuentos de condiciones comerciales por TIPO
Private descXTipo As String = kh.traeDescXTipo(clienteId, p.GetString("CAT_GP_TIPO"))
If Starter.Logger And descXTipo > 0 Then LogColor(">>> DESCXTIPO CC - " & descXTipo & " | " & p.GetString("CAT_GP_NOMBRE"), Colors.Blue)
' Log($"precioAnt=${precio}, precioNew=${precio - (precio*(descXTipo/100))}"$)
precio = precio-(precio*(descXTipo/100))
'Descuentos de condiciones comerciales por SKU
Private descXSku As String = kh.traeDescXSku(clienteId, p.GetString("CAT_GP_ID"))
If Starter.Logger And descXSku > 0 Then LogColor(">>> DESCXSKU CC - " & descXSku & " | " & p.GetString("CAT_GP_NOMBRE"), Colors.red)
precio = precio-(precio*(descXSku/100))
Dim tempMap As Map = CreateMap("prod":p.GetString("CAT_GP_NOMBRE"), "precio":precio, "almacen":p.GetString("CAT_GP_ALMACEN"), "abordo":invAbordo, "id":p.GetString("CAT_GP_ID"), "cant":cant, "tipo":p.GetString("CAT_GP_TIPO"))
listaProds.Add(tempMap)
' Log($"${p.GetString("CAT_GP_ID")}, ${p.GetString("CAT_GP_NOMBRE")}, ${cant}"$)
Loop
p.Close

View File

@@ -38,7 +38,7 @@ Private Sub B4XPage_Created (Root1 As B4XView)
label2 = ListView1.TwoLinesLayout.SecondLabel
label2.TextSize = 13
label2.TextColor = Colors.Black
ListView1.AddTwoLines(c.GetString("PC_CLIENTE"),"Cantidad #"& c.GetString("PC_NOART")& " SubTotal $"& c.GetString("PC_MONTO"))
ListView1.AddTwoLines(c.GetString("PC_CLIENTE"),"Cantidad #"& c.GetString("PC_NOART")& " SubTotal $"& NumberFormat2(c.GetString("PC_MONTO"), 1, 2, 2, True))
Next
End If
End Sub
@@ -60,7 +60,7 @@ Sub B4XPage_Appear
label2 = ListView1.TwoLinesLayout.SecondLabel
label2.TextSize = 13
label2.TextColor = Colors.Black
ListView1.AddTwoLines(c.GetString("PC_CLIENTE"),c.GetString("NOMBRE") &" Cant. #"& c.GetString("PC_NOART")& " SubTotal $"& c.GetString("PC_MONTO"))
ListView1.AddTwoLines(c.GetString("PC_CLIENTE"),c.GetString("NOMBRE") &" Cant. #"& c.GetString("PC_NOART")& " SubTotal $"& NumberFormat2(c.GetString("PC_MONTO"), 1, 2, 2, True))
Next
End If
c.Close
@@ -129,7 +129,7 @@ Sub b_noventa_Click
label2 = ListView1.TwoLinesLayout.SecondLabel
label2.TextSize = 10
label2.TextColor = Colors.Black
ListView1.AddTwoLines(c.GetString("PC_CLIENTE"),c.GetString("NOMBRE") &" Cantidad #"& c.GetString("PC_NOART")& " SubTotal $"& c.GetString("PC_MONTO"))
ListView1.AddTwoLines(c.GetString("PC_CLIENTE"),c.GetString("NOMBRE") &" Cantidad #"& c.GetString("PC_NOART")& " SubTotal $"& NumberFormat2(c.GetString("PC_MONTO"), 1, 2, 2, True))
Next
End If
c.Close

View File

@@ -870,7 +870,7 @@ Version=12.5
#Region Project Attributes
#ApplicationLabel: Kelloggs Venta
#VersionCode: 3000
#VersionName: 4.01.16 P-V4
#VersionName: 4.01.17 P-V4
#SupportedOrientations: portrait
#CanInstallToExternalStorage: False
#BridgeLogger:true

View File

@@ -83,14 +83,14 @@ ModuleClosedNodes26=2
ModuleClosedNodes27=
ModuleClosedNodes28=9,10,11
ModuleClosedNodes29=
ModuleClosedNodes3=1,3,86
ModuleClosedNodes3=3,86
ModuleClosedNodes30=
ModuleClosedNodes4=
ModuleClosedNodes5=
ModuleClosedNodes6=
ModuleClosedNodes7=1,3,11,12
ModuleClosedNodes7=3,11,12
ModuleClosedNodes8=
ModuleClosedNodes9=
NavigationStack=C_Productos,b_prodMas_Click,621,6,C_Nota,Class_Globals,0,0,C_Productos,LlenaProdsLL,1226,0,C_Productos,b_prodMenos_Click,581,6,Subs,actualizaProducto,916,0,Visual Designer,proditem.bal,-100,6,Visual Designer,nota.bal,-100,3,C_Nota,B4XPage_Appear,108,0,C_Cliente,Class_Globals,0,0,Tracker,flp_LocationChanged,225,5,B4XMainPage,B4XPage_Created,169,0
NavigationStack=C_TicketsDia,B4XPage_Created,34,1,C_TicketsDia,B4XPage_Appear,56,0,C_TicketsDia,b_noventa_Click,109,0,kms_helperSubs,Class_Globals,0,0,C_Productos,clv_prods_ll_VisibleRangeChanged,1159,0,kms_helperSubs,traeDescXSku,1044,6,kms_helperSubs,traeDescXTipo,1030,0,Starter,Process_Globals,42,0,Starter,Service_Start,84,0,C_Productos,LlenaProdsLL,1283,6
SelectedBuild=0
VisibleModules=1,28,11,24,3,12,4,29,13,14,7,30
VisibleModules=1,28,11,24,3,12,4,29,13,14,7,15

View File

@@ -1031,4 +1031,28 @@ Private Sub StartActivityForResult(i As Intent)
ion = jo.CreateEvent("anywheresoftware.b4a.IOnActivityResult", "ion", Null)
jo.RunMethod("startActivityForResult", Array As Object(ion, i))
End Sub
'################ TERMINA ENABLE BLUETOOTH #########################
'################ TERMINA ENABLE BLUETOOTH #########################
'Regresa el descuento de condiciones comerciales por TIPO.
Sub traeDescXTipo(clienteId As String, tipo As String) As String 'ignore
Private desc As String = "0"
Private c As Cursor = khdb.ExecQuery($"Select * from DESC_CLIENTES where DC_CL_CLIENTE = '${clienteId}'"$)
If c.RowCount > 0 Then
c.Position = 0
If tipo = "PING" Then desc = c.GetString("CAT_CL_DESCUENTO_PING")
If tipo = "RTEC" Then desc = c.GetString("CAT_CL_DESCUENTO_RTEC")
If tipo = "SALTY SNACKS" Then desc = c.GetString("CAT_CL_DESCUENTO_SS")
End If
Return desc
End Sub
'Regresa el descuento de condiciones comerciales por SKU.
Sub traeDescXSku(clienteId As String, prodId As String) As String 'ignore
Private desc As String = "0"
Private c As Cursor = khdb.ExecQuery($"Select * from CAT_DESCUENTOS_SKU where CAT_DS_CLIENTE = '${clienteId}' and CAT_DS_PRODID = '${prodId}'"$)
If c.RowCount > 0 Then
c.Position = 0
desc = c.GetString("CAT_DS_PORCENTAJE")
End If
Return desc
End Sub