diff --git a/B4A/B4XMainPage.bas b/B4A/B4XMainPage.bas index 50f5cb2..a6c48e2 100644 --- a/B4A/B4XMainPage.bas +++ b/B4A/B4XMainPage.bas @@ -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)") diff --git a/B4A/C_Cliente.bas b/B4A/C_Cliente.bas index 1551565..29eb87f 100644 --- a/B4A/C_Cliente.bas +++ b/B4A/C_Cliente.bas @@ -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 diff --git a/B4A/C_Principal.bas b/B4A/C_Principal.bas index f330682..a0b162f 100644 --- a/B4A/C_Principal.bas +++ b/B4A/C_Principal.bas @@ -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" diff --git a/B4A/C_Productos.bas b/B4A/C_Productos.bas index 72ef9d9..d6b9d64 100644 --- a/B4A/C_Productos.bas +++ b/B4A/C_Productos.bas @@ -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) diff --git a/B4A/Files/login.bal b/B4A/Files/login.bal index 8cee956..e486fbb 100644 Binary files a/B4A/Files/login.bal and b/B4A/Files/login.bal differ diff --git a/B4A/KelloggsV4.b4a b/B4A/KelloggsV4.b4a index 64fecb8..a8c3bb5 100644 --- a/B4A/KelloggsV4.b4a +++ b/B4A/KelloggsV4.b4a @@ -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 diff --git a/B4A/KelloggsV4.b4a.meta b/B4A/KelloggsV4.b4a.meta index 815695a..f537833 100644 --- a/B4A/KelloggsV4.b4a.meta +++ b/B4A/KelloggsV4.b4a.meta @@ -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 diff --git a/B4A/Subs.bas b/B4A/Subs.bas index d186bd6..5a06866 100644 --- a/B4A/Subs.bas +++ b/B4A/Subs.bas @@ -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}'"$) diff --git a/B4A/kms_helperSubs.bas b/B4A/kms_helperSubs.bas index c64a87f..2b902b2 100644 --- a/B4A/kms_helperSubs.bas +++ b/B4A/kms_helperSubs.bas @@ -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 \ No newline at end of file