- Se agregó la validacion para que se respete el limite de credito al hacer click en el boton de mas.

This commit is contained in:
Jose Alberto Guerra Ugalde
2024-06-03 16:42:51 -06:00
parent bd6d004575
commit 2739051f7e
9 changed files with 72 additions and 34 deletions

View File

@@ -145,6 +145,7 @@ Private Sub B4XPage_Created (Root1 As B4XView)
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CLIENTE_IMPRESO (CI_CUENTA TEXT)")
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_CLIENTE_CANT_PROMOS (HCCP_CLIENTE TEXT, HCCP_PROMO TEXT, HCCP_CANT TEXT, HCCP_CANT_VENDIDA TEXT)")
kh.agregaColumna(Starter.skmt, "HIST_CLIENTE_CANT_PROMOS", "HCCP_CANT_VENDIDA", "TEXT")
kh.agregaColumna(Starter.skmt, "kmt_info", "CAT_CL_LIMITECREDITO", "TEXT")
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_PROMO_MONTO (CPM_IDPROMO TEXT, CPM_MONTO TEXT, CPM_PROID TEXT, CPM_CLIENTE TEXT, CPM_CANT TEXT, CPM_RANGO TEXT, CPM_DESC TEXT)")
Starter.skmt.ExecNonQuery2("INSERT INTO HIST_ENVIOS VALUES (?,0,?)", Array As Object(sTime, "PEDIDO"))
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_EXHIBIDORES2 (HIST_EX_ID_CLIENTE TEXT, HIST_EX_TIPO TEXT, HIST_EX_CANT TEXT)")

View File

@@ -536,8 +536,6 @@ Sub B4XPage_Appear
' Log($"TOTAL DE LA VENTA: ${kh.traeTotalCliente}"$)
End If
If kh.traeTotalCliente < 0.01 And kh.traeTotalClienteDOE < 0.01 Then
If Not(clienteId.StartsWith("N")) And la_cuenta.Text <> "0" Then b_noVenta.Visible = True 'Ni cliente nuevo, ni abordo.
Else
@@ -695,11 +693,11 @@ Sub B4XPage_Appear
l_exhibidor2.Text = exhibs
l_exhibidores3.Text = exhibs
End If
'PARA LA PROMO DOE
b_whats.Visible = False
gps_boton_doe = "0"
C1=Starter.skmt.ExecQuery("select IMPRESION FROM kmt_info where CAT_CL_CODIGO In (select cuenta from cuentaa)")
C1.Position = 0
If C1.GetString("IMPRESION") <> "1" Then

View File

@@ -952,7 +952,9 @@ Sub JobDone(Job As HttpJob)
Dim CAT_CL_TIPO_RUTA As String = records(RESULT.Columns.Get("CAT_CL_TIPO_RUTA"))
Dim CAT_CL_CATEGORIA As String = records(RESULT.Columns.Get("CAT_CL_CATEGORIA"))
Dim CAT_CL_SEGMENTO As String = records(RESULT.Columns.Get("CAT_CL_SEGMENTO"))
Starter.skmt.ExecNonQuery2("INSERT INTO kmt_info(CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO,CAT_CL_BFACTURA,CAT_CL_BCREDITO,CAT_CL_DIAS_VISITA,CAT_CL_TIPO_RUTA, gestion, IMPRESION, CAT_CL_CATEGORIA, CAT_CL_SEGMENTO) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,0,?,?)", Array As Object (CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LAT,CAT_CL_LONG,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO,CAT_CL_BFACTURA,CAT_CL_BCREDITO,CAT_CL_DIAS_VISITA,CAT_CL_TIPO_RUTA,CAT_CL_CATEGORIA, CAT_CL_SEGMENTO))
Dim CAT_CL_LIMITECREDITO As String = records(RESULT.Columns.Get("CAT_CL_LIMITECREDITO"))
LogColor("CAT_CL_LIMITECREDITO:" & CAT_CL_LIMITECREDITO & " -- ID: " & CAT_CL_CODIGO, Colors.red)
Starter.skmt.ExecNonQuery2("INSERT INTO kmt_info(CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO,CAT_CL_BFACTURA,CAT_CL_BCREDITO,CAT_CL_DIAS_VISITA,CAT_CL_TIPO_RUTA, gestion, IMPRESION, CAT_CL_CATEGORIA, CAT_CL_SEGMENTO,CAT_CL_LIMITECREDITO) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,0,?,?,?)", Array As Object (CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LAT,CAT_CL_LONG,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO,CAT_CL_BFACTURA,CAT_CL_BCREDITO,CAT_CL_DIAS_VISITA,CAT_CL_TIPO_RUTA,CAT_CL_CATEGORIA, CAT_CL_SEGMENTO,CAT_CL_LIMITECREDITO))
Next
Starter.skmt.ExecNonQuery2("INSERT INTO kmt_info(CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_BFACTURA,CAT_CL_BCREDITO,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO,CAT_CL_DIAS_VISITA, gestion, IMPRESION) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,0,0,?,0,0) ",Array As Object ("0",e_ruta.TEXT, "VENTA ABORDO","null","null","null","null","null","null","null","null","null","null","null","null","NULL","null","null","NULL","NULL"))
Starter.skmt.TransactionSuccessful 'Si no se pone TransactionSuccessful no se escribe NADA!!
@@ -1955,22 +1957,22 @@ Sub JobDone(Job As HttpJob)
End If
End If
End If
If PB2.Progress = 100 And CARGA <> "SUBIR" Then
S_CP.Text = "LISTO"
End If
Job.Release
' if carga = "SUBIR" then logcolor(reqManager.reqsList, Colors.blue)
Log($"tiempo Request "${Job.Tag}": ${((reqManager.inicioJobDone - reqManager.inicioRequest)/1000)}"$)
Log($"tiempo JobDone "${Job.Tag}": ${((DateTime.Now - reqManager.inicioJobDone)/1000)}"$)
Log($"tiempo Total "${Job.Tag}": ${((DateTime.Now - inicioContador)/1000)}"$)
Log(reqManager.requestTimes(Job.Tag))
' Log($"tiempo Total "${Job.Tag}": ${((DateTime.Now - inicioContador)/1000)}"$)
' reqManager.PrintTable(RESULT)
' reqManager.PrintTable(RESULT)2
End Sub
Private Sub B4XPage_CloseRequest As ResumableSub
@@ -2027,7 +2029,7 @@ Sub connecta_Click
' If Result Then Log("Tenemos permisos de bluetooth.")
' Log($"Resultado del CheckAndRequest: ${Result}"$)
' Log("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")
' c=skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("RUTA"))
' c.Position =0
' If c.GetString("CAT_VA_VALOR") = l_ruta.Text Then
@@ -2055,9 +2057,9 @@ Sub connecta_Click
' End If
' Log("Terminamos permisos")
conn = "1"
reqManager.trackInit
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "select_version_KELL"

View File

@@ -604,7 +604,7 @@ Sub b_prodMenos_Click
End If
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"
If kh.totalPedido < 1 Then laCant.Text = "0"
' Log($"Total Prods: ${totalProds}, Total Compra: $$1.2{totalCompra}"$)
Sleep(300)
invTotal = laCant.Text + Subs.traeinventario(id)
@@ -636,12 +636,13 @@ Sub b_prodMas_Click
iq.Position = 0
' Log($"INV ${clv_prods_ll.GetValue(index).As(Map).Get("id")} = ${iq.GetString("CAT_GP_ALMACEN")}"$)
End If
' Log(tmpMap)
Log($"${kh.traeLimiteCredito(Subs.traeCliente)} < ${kh.totalPedido + precio}"$)
Log(kh.traeLimiteCredito(Subs.traeCliente) < (kh.totalPedido + precio))
If buttonTag = "vendido" Then
' Log("VENDIDO")
' Log($"${(laCant.Text + 1 <= inv)} And ${(Subs.totalPedido - precio > 1)}"$)
If inv > 0 And (laCant.Text + 1 <= (laCant.Text + existencias)) And (Subs.totalPedido - precio > 1) Then
' Log($"${(laCant.Text + 1 <= inv)} And ${(kh.totalPedido - precio > 1)}"$)
If inv > 0 And (laCant.Text + 1 <= (laCant.Text + existencias)) And (kh.totalPedido - precio > 1) Then
' Log(clv_prods_ll.GetValue(index).As(Map))
clv_prods_ll.GetValue(index).As(Map).Put("almacen", (inv - 1))
inv = inv - 1
@@ -649,17 +650,20 @@ Sub b_prodMas_Click
laCant.Text = NumberFormat2((laCant.Text + 1), 1, 0, 0, False)
' Log(clv_prods_ll.GetValue(index).As(Map))
End If
else if kh.traeLimiteCredito(Subs.traeCliente) < (kh.totalPedido + precio) Then
Log($"#######################${CRLF}#### LIMITE CREDITO SUPERADO${CRLF}#######################"$)
ToastMessageShow("LIMITE DE CREDITO SUPERADO", False)
else If laCant.Text + 1 <= inv And lfila.Text = "PRODUCTOS" Then
' LogColor(inv, Colors.blue)
' laCant.Text = $"$1.0{laCant.Text + 1}"$
laCant.Text = NumberFormat2((laCant.Text + 1), 1, 0, 0, False)
' Log(Subs.totalPedido)
else If lfila.Text = "RMI" And laCant.Text + 1 <= inv And (Subs.totalPedido - precio > 1) Then
' Log(kh.totalPedido)
else If lfila.Text = "RMI" And laCant.Text + 1 <= inv And (kh.totalPedido - precio > 1) Then
LogColor(inv, Colors.blue)
' laCant.Text = $"$1.0{laCant.Text + 1}"$
laCant.Text = NumberFormat2((laCant.Text + 1), 1, 0, 0, False)
Log(Subs.totalPedido)
else if Subs.totalPedido < 1 Then
Log(kh.totalPedido)
else if kh.totalPedido < 1 Then
laCant.Text = "0"
End If
Private id As String=clv_prods_ll.GetValue(index).As(Map).Get("id")
@@ -672,8 +676,8 @@ Sub b_prodMas_Click
precioX = precioX * -1
End If
Subs.actualizaProducto(almacenX, precioX, laCant.text, nombreX, id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, Starter.tipov)
Log($"TotalPedido: ${NumberFormat2(Subs.totalPedido,1,2,2,False)}"$)
If Subs.totalPedido < 0.01 Then
Log($"TotalPedido: ${NumberFormat2(kh.totalPedido,1,2,2,False)}"$)
If kh.totalPedido < 0.01 Then
etCantHasFocus = False
Log("A CERO")
laCant.Text = "0"
@@ -698,7 +702,7 @@ Sub b_prodMas_Click
Log(LastException)
End Try
End If
Log("VAMOS A CUENTAPRIDS")
Log("VAMOS A CUENTAPRODS")
cuentaProds
If lfila.Text <> "RMI" Then
Private cs As CSBuilder
@@ -732,9 +736,9 @@ Private Sub et_pCant_TextChanged (Old As String, New As String)
Private id As String=clv_prods_ll.GetValue(index).As(Map).Get("id")
Private precio As String=clv_prods_ll.GetValue(index).As(Map).Get("precio")
Log("++++++++++ " & precio)
Dim tempTot As String = Subs.totalPedido
Dim tempTot As String = kh.totalPedido
Dim disp As String = 0
If tempTot > 0 Then disp = (Subs.totalPedido / precio) - 1
If tempTot > 0 Then disp = (kh.totalPedido / precio) - 1
disp = NumberFormat2(disp, 1, 0, 0, False)
If existencias = "" Then existencias = 0
existencias = NumberFormat2(existencias, 1, 0, 0, False)
@@ -814,10 +818,10 @@ 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
' Log(Subs.totalPedido)
If kh.totalPedido > 1 And lfila.Text <> "RMI" And Starter.tipov <> "ABORDO" Then b_rmi.Visible = True Else b_rmi.Visible = False
' Log(kh.totalPedido)
If lfila.Text = "RMI" Then l_mDisponible.Visible = True Else l_mDisponible.Visible = False
l_mDisponible.Text = $"Disponible: $${Subs.totalPedido}"$
l_mDisponible.Text = $"Disponible: $${kh.totalPedido}"$
b_continuar.Visible = True
b_terminar1.Visible = True
' Log(clienteId)

Binary file not shown.

View File

@@ -887,7 +887,7 @@ Version=12.8
#Region Project Attributes
#ApplicationLabel: Kelloggs Venta
#VersionCode: 3000
#VersionName: 4.05.30
#VersionName: 4.06.01
#SupportedOrientations: portrait
#CanInstallToExternalStorage: False
#BridgeLogger:true

View File

@@ -63,7 +63,7 @@ ModuleBreakpoints9=
ModuleClosedNodes0=
ModuleClosedNodes1=
ModuleClosedNodes10=
ModuleClosedNodes11=
ModuleClosedNodes11=9
ModuleClosedNodes12=
ModuleClosedNodes13=
ModuleClosedNodes14=
@@ -91,6 +91,6 @@ ModuleClosedNodes6=
ModuleClosedNodes7=
ModuleClosedNodes8=
ModuleClosedNodes9=
NavigationStack=B4XMainPage,B4XPage_Appear,374,0,B4XMainPage,i_engranes_Click,632,6,B4XMainPage,B4XPage_Created,199,0,Visual Designer,login.bal,-100,2,kms_helperSubs,importaBDDesdeWhatsApp,963,6,C_Principal,Subir_Click,526,0,Subs,horaNormal,1753,0,Subs,bitacora,1698,6,C_Principal,SUBIR_INFO_PEDIDO,2863,0,B4XMainPage,user_EnterPressed,606,0
NavigationStack=Visual Designer,login.bal,-100,6,kms_helperSubs,RD_Init,71,0,Subs,totalPedido,1565,0,Subs,hayPedido,1563,0,kms_helperSubs,ping,1146,0,kms_helperSubs,traeLimiteCredito,1156,0,kms_helperSubs,totalPedido,1159,1,C_Productos,b_prodMenos_Click,596,1,C_Productos,b_prodMas_Click,650,6,C_Productos,et_pCant_TextChanged,730,2,C_Productos,cuentaProds,812,3
SelectedBuild=0
VisibleModules=1,28,11,3,26,23,29,12,4,13,17
VisibleModules=1,28,11,3,26,23,29,12,4,13

View File

@@ -1569,6 +1569,7 @@ thisC.Close
End Sub
'Regresa el total del pedido en la tabla "PEDIDO" del cliente actual.
'Utiliza la columna PE_COSTO_TOT para hacer la suma.
Sub totalPedido As String
Private cT As Cursor = Starter.skmt.ExecQuery($"select sum(PE_COSTO_TOT) as total from PEDIDO where PE_CLIENTE = '${traeCliente}'"$)
Log($"select sum(PE_COSTO_TOT) as total from PEDIDO where PE_CLIENTE = '${traeCliente}'"$)

View File

@@ -75,6 +75,7 @@ Sub RD_Init
If chkIfTableExists(skmt, "CAT_GUNAPROD2") Then rkmt.ExecNonQuery($"create table if not exists CAT_GUNAPROD2 (${getTableColumnList(skmt, "CAT_GUNAPROD2")}, FECHA TEXT)"$)
agregaColumna(rkmt,"CAT_GUNAPROD", "CAT_GP_TIPOPROD2", "TEXT")
agregaColumna(rkmt,"CAT_GUNAPROD2", "CAT_GP_TIPOPROD2", "TEXT")
agregaColumna(rkmt, "kmt_info", "CAT_CL_LIMITECREDITO", "TEXT")
If chkIfTableExists(skmt, "kmt_info") Then rkmt.ExecNonQuery($"create table if not exists kmt_info (${getTableColumnList(skmt, "kmt_info")}, FECHA TEXT)"$)
If chkIfTableExists(skmt, "PROMOS_COMP") Then rkmt.ExecNonQuery($"create table if not exists PROMOS_COMP (${getTableColumnList(skmt, "PROMOS_COMP")}, FECHA TEXT)"$)
If chkIfTableExists(skmt, "CAT_RMI") Then rkmt.ExecNonQuery($"create table if not exists CAT_RMI (${getTableColumnList(skmt, "CAT_RMI")}, FECHA TEXT)"$)
@@ -1147,4 +1148,35 @@ Sub ping As ResumableSub
Else
Log("Error: " & LastException)
End If
End Sub
'Trae el limite de credito para el cliente especificado.
Sub traeLimiteCredito(idCliente As String) As Double
Private limite As Double = 10000000
Private c As ResultSet = khdb.ExecQuery($"select CAT_CL_BFACTURA from kmt_info where CAT_CL_CODIGO = '${idCliente}' and CAT_CL_BCREDITO = 0 "$)
Do While c.NextRow
limite = c.GetString("CAT_CL_BFACTURA")
Loop
Log($"Limite: ${NumberFormat2(limite, 1, 0, 0, True)}"$)
Return limite
End Sub
'Regresa el total del pedido en la tabla "PEDIDO" del cliente actual.
'Utiliza la columna PE_COSTO_TOT para hacer la suma.
Sub totalPedido As String 'ignore
Private cT As Cursor = Starter.skmt.ExecQuery($"select sum(PE_COSTO_TOT) as total from PEDIDO where PE_CLIENTE = '${traeCliente}'"$)
Log($"select sum(PE_COSTO_TOT) as total from PEDIDO where PE_CLIENTE = '${traeCliente}'"$)
Private pTotal As String = "0"
If cT.RowCount > 0 Then
cT.Position = 0
' Log("|"&cT.GetLong("total")&"|"&pTotal)
Private tempT As String = cT.GetLong("total")
If tempT <> "null" And tempT <> Null Then
' Log("|"&cT.GetLong("total")&"|")
pTotal = tempT
End If
' Log($"Cliente actual=${traeCliente}, hayPedido=${hay}"$)
End If
cT.Close
Return pTotal
End Sub