From ceb093b6c2af522ff66825ce582192addf818c98 Mon Sep 17 00:00:00 2001 From: Javier Date: Wed, 10 Dec 2025 12:23:57 -0600 Subject: [PATCH] 5.10.23 --- B4A/B4XMainPage.bas | 12 + B4A/C_Cliente.bas | 523 +++++++++------ B4A/C_Historico.bas | 4 + B4A/C_Historico2.bas | 167 +++++ B4A/C_Nota.bas | 12 +- B4A/C_NuevoCliente.bas | 35 +- B4A/C_Principal.bas | 24 +- B4A/C_Productos.bas | 1146 +++++++++------------------------ B4A/C_Promos.bas | 1 + B4A/C_historicobat.bas | 202 ++++++ B4A/Files/cliente.bal | Bin 64392 -> 66869 bytes B4A/Files/historicobat.bal | Bin 0 -> 8534 bytes B4A/Files/historicobat2.bal | Bin 0 -> 8097 bytes B4A/Files/nota.bal | Bin 7507 -> 8406 bytes B4A/Files/nota2.bal | Bin 0 -> 8405 bytes B4A/Files/productos.bal | Bin 16658 -> 21545 bytes B4A/Guna Vistas V3.1.b4a | 213 +++--- B4A/Guna Vistas V3.1.b4a.meta | 18 +- B4A/Subs.bas | 83 ++- B4A/Tracker.bas | 7 +- 20 files changed, 1272 insertions(+), 1175 deletions(-) create mode 100644 B4A/C_Historico2.bas create mode 100644 B4A/C_historicobat.bas create mode 100644 B4A/Files/historicobat.bal create mode 100644 B4A/Files/historicobat2.bal create mode 100644 B4A/Files/nota2.bal diff --git a/B4A/B4XMainPage.bas b/B4A/B4XMainPage.bas index 29f0cc6..c089c19 100644 --- a/B4A/B4XMainPage.bas +++ b/B4A/B4XMainPage.bas @@ -38,6 +38,8 @@ Sub Class_Globals Public pedidos As C_Pedidos Public promos As C_Promos Public historico As C_Historico + + Public historicobat As C_historicobat Dim reqManager As DBRequestManager Dim v As String = Application.VersionName Dim ruta As String @@ -110,6 +112,8 @@ Private Sub B4XPage_Created (Root1 As B4XView) Root = Root1 Root.LoadLayout("login") ' B4XPages.SetTitle(Me, "Guna Preventa") + + login.Initialize B4XPages.AddPage("Login", login) principal.Initialize @@ -138,6 +142,10 @@ Private Sub B4XPage_Created (Root1 As B4XView) B4XPages.AddPage("Promos", promos) historico.Initialize B4XPages.AddPage("Historico", historico) + historicobat.Initialize + B4XPages.AddPage("historicobat", historicobat) + + p_Main.Height = Root.Height p_Main.Width = Root.Width ruta = Starter.ruta @@ -202,9 +210,13 @@ Private Sub B4XPage_Created (Root1 As B4XView) Subs.agregaColumna("HIST_ENCUESTA", "HE_LON", "TEXT") Subs.agregaColumna("HIST_VENTAS", "HVD_FECHA", "TEXT") Subs.agregaColumna("kmt_info3", "encuesta", "TEXT") + Subs.agregaColumna("kmt_info3", "CAT_CL_CLASIFICADOR3", "TEXT") + Subs.agregaColumna("kmt_info3", "CAT_CL_CLASIFICADOR2", "TEXT") Subs.agregaColumna("kmt_info3", "CAT_CL_TIPOCLIENTE", "TEXT") Subs.agregaColumna("kmt_info3", "CAT_CL_LIMITECREDITO", "TEXT") + Subs.agregaColumna("kmt_info3", "CAT_CL_DIASCREDITO", "TEXT") Subs.agregaColumna("kmt_info3", "CAT_CL_BCREDITO", "TEXT") '########################## CODIGO PARA CREDITOS #################### + Subs.agregaColumna("CAT_GUNAPROD", "CAT_GP_DEV", "TEXT") Subs.agregaColumna("CAT_GUNAPROD", "CAT_PA_BSEGMENTA", "TEXT") Subs.agregaColumna("CAT_GUNAPROD", "CAT_LISTAPRECIO", "TEXT") Subs.agregaColumna("CAT_GUNAPROD", "CAT_PA_SEGMENTAV", "TEXT") diff --git a/B4A/C_Cliente.bas b/B4A/C_Cliente.bas index 5e7f7a1..da42e17 100644 --- a/B4A/C_Cliente.bas +++ b/B4A/C_Cliente.bas @@ -465,6 +465,10 @@ Sub Class_Globals Private l_limite As Label Private l_credito As Label Private l_tipocliente As Label + Private l_deuda As Label + Private p_deuda As Panel + Private Label22 As Label + Private l_animal As Label End Sub 'You can add more parameters here. @@ -667,6 +671,9 @@ Sub B4XPage_Appear ALMACEN = C.GetString("ID_ALMACEN") End If c.Close + + + If ALMACEN = "1" Then Tels.Visible = False gest.Visible = True @@ -1210,7 +1217,44 @@ Sub B4XPage_Appear ' If l_credito.IsInitialized Then c=B4XPages.MainPage.skmt.ExecQuery("select IFNULL(CAT_CL_BCREDITO,0) AS CAT_CL_BCREDITO, CAT_CL_LIMITECREDITO from kmt_info3 where CAT_CL_CODIGO In (Select cuenta from cuentaa)") c.Position = 0 - If c.GetInt("CAT_CL_BCREDITO") = 1 Then + If c.GetInt("CAT_CL_BCREDITO") = 1 Then + + Dim pagarepen As Cursor = B4XPages.MainPage.skmt.ExecQuery("select FECHA, SALDO_PENDIENTE FROM ABONOSP WHERE CLIENTE IN (SELECT CUENTA FROM CUENTAA)") + If pagarepen.RowCount > 0 Then + + + pagarepen.Position = 0 + DateTime.DateFormat="dd/MM/yyyy" + Dim FechaInicio As String = pagarepen.GetString("FECHA") ' Formato: dd/MM/yyyy +' Dim FechaHoy As String = DateTime.Date(DateTime.Now) ' Fecha actual en formato dd/MM/yyyy + Log(pagarepen.GetString("FECHA")) + + ' Convertir las fechas a milisegundos (desde 01/01/1970) + Dim TicksInicio As Long = DateTime.DateParse(FechaInicio) + Dim TicksHoy As Long = DateTime.DateParse(DateTime.Date(DateTime.Now)) + + ' Calcular diferencia en días + Dim DiferenciaDias As Int = (TicksHoy - TicksInicio) / DateTime.TicksPerDay + + ' Mostrar resultado + Log($"Días transcurridos: ${DiferenciaDias}"$) + + Dim c4 As Cursor=B4XPages.MainPage.skmt.ExecQuery("select IFNULL(CAT_CL_DIASCREDITO,0) AS CAT_CL_DIASCREDITO from kmt_info3 where CAT_CL_CODIGO In (Select cuenta from cuentaa)") + c4.Position = 0 + + If DiferenciaDias <= c4.GetInt("CAT_CL_DIASCREDITO") + 1 Then + l_credito.Color = Colors.Green + l_limite.Color = Colors.Green + Else If DiferenciaDias > c4.GetInt("CAT_CL_DIASCREDITO") + 1 Then + l_credito.Color = Colors.Red + l_limite.Color = Colors.Red + + End If + Else + l_credito.Color = Colors.Transparent + l_limite.Color = Colors.Transparent + End If + l_credito.Visible = True l_limite.Visible = True l_limite.Text = c.GetInt("CAT_CL_LIMITECREDITO") @@ -1223,6 +1267,30 @@ Sub B4XPage_Appear Tels.Visible = False gest.Visible = False + Dim coloressaldo As Cursor=B4XPages.MainPage.skmt.ExecQuery("select IFNULL(CAT_CL_CLASIFICADOR3,0) AS CAT_CL_CLASIFICADOR3, IFNULL(CAT_CL_CLASIFICADOR2,'') AS CAT_CL_CLASIFICADOR2 from kmt_info3 where CAT_CL_CODIGO In (Select cuenta from cuentaa)") + coloressaldo.Position = 0 + + la_saldooper.Text = coloressaldo.GetDouble("CAT_CL_CLASIFICADOR3") + + l_animal.Text = coloressaldo.GetString("CAT_CL_CLASIFICADOR2") + + If coloressaldo.GetString("CAT_CL_CLASIFICADOR2") = "Chimpancé KIN" Then + l_animal.Color = Colors.RGB(84,255,172) + Label22.Color = Colors.RGB(84,255,172) + Else If coloressaldo.GetString("CAT_CL_CLASIFICADOR2") = "Delfín Niky" Then + l_animal.Color = Colors.RGB(84,255,245) + Label22.Color = Colors.RGB(84,255,245) + Else If coloressaldo.GetString("CAT_CL_CLASIFICADOR2") = "Tortuga KOPI" Then + l_animal.Color = Colors.RGB(255,123,84) + Label22.Color = Colors.RGB(255,123,84) + Else If coloressaldo.GetString("CAT_CL_CLASIFICADOR2") = "Lechuza MON" Then + l_animal.Color = Colors.RGB(255,250,140) + Label22.Color = Colors.RGB(255,250,140) + Else + l_animal.Color = Colors.Transparent + Label22.Color = Colors.Transparent + End If + End Sub Sub MejorarPrecisionGPS As ResumableSub @@ -1350,13 +1418,14 @@ End Sub Sub GPS_LocationChanged (Location1 As Location) - LogColor($"Entrando a Cliente.GPS_LocationChanged"$, Colors.red) +' LogColor($"Entrando a Cliente.GPS_LocationChanged"$, Colors.red) +' Log(Location1.Latitude& " aqui guerra "& Location1.Longitude) If Tracker.FLP.GetLastKnownLocation.IsInitialized And Tracker.FLP.GetLastKnownLocation.Latitude <> 0 Then B4XPages.MainPage.lat_gps = Tracker.FLP.GetLastKnownLocation.Latitude B4XPages.MainPage.lon_gps = Tracker.FLP.GetLastKnownLocation.Longitude ' Log("Coords set to: " & B4XPages.MainPage.lat_gps & " and " & B4XPages.MainPage.lon_gps) End If - Log(m_lat &" " & m_lon) +' Log(m_lat &" " & m_lon) @@ -1398,6 +1467,8 @@ Sub GPS_LocationChanged (Location1 As Location) B4XPages.MainPage.lon_gps = lonPromedio If Tels.IsInitialized Then + Dim al_longitud As String = 0 + Dim al_latitud As String = 0 c = skmt.ExecQuery2("SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("LATITUD")) If c.RowCount > 0 Then c.Position = 0 @@ -1419,177 +1490,7 @@ Sub GPS_LocationChanged (Location1 As Location) - If m_lat.Length > 0 And B4XPages.MainPage.lat_gps <> "0" Then - Dim l1, l2 As Location - l1.Initialize2(B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps) -' Log($"Coordenadas de la tienda - lat:${m_lat}, lon:${m_lon}"$) - l2.Initialize2(m_lat, m_lon) - BT_QR.Enabled = True - LA_GPS.TextColor = Colors.Blue - LA_GPS.Text = "CON UBICACION GPS" - B_GPS.Enabled = True - 'now we need the distance between our location and the target location - Dim distance As Long - distance = l1.DistanceTo(l2) 'the result is in meter - c = skmt.ExecQuery("SELECT HABILITADO FROM GPS") - If c.RowCount > 0 Then - c.Position = 0 - Dim habi As String = c.GetString("HABILITADO") - End If - c.Close - c = skmt.ExecQuery("SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = 'GEOCERCA'") - If c.RowCount > 0 Then - c.Position = 0 - Dim geo As String = c.GetString("CAT_VA_VALOR") - End If - c.Close - If gest.IsInitialized And Tels.IsInitialized Then - If geo = "0" Then - gest.Visible = True - Tels.Visible = True - iniciofin -' b_geo = "0" - bitacora.banderaGeoCerca = "0" - Else If geo = "1" Then - gest.Visible = False - Tels.Visible = False -' p_transparenteInicioFin.Visible = False -' Log(999) -' b_Inicio_Fin_venta.Visible = False - End If - End If - If geo = "1" Then - If distance < 100 Then - LA_GEO.TextColor = Colors.Blue - Tels.Visible = True - gest.Visible = True - bitacora.inicioFin - precision = "1" -' b_geo = "0" - bitacora.banderaGeoCerca = "0" -' ToastMessageShow("DENTRO de rango GPS", False) - Else If habi = "1" Then - - - - If distancealm < 50 Then - precision = "0" - LA_GEO.TextColor = Colors.Blue - Tels.Visible = True - gest.Visible = True -' b_geo = "1" - bitacora.banderaGeoCerca = "1" - iniciofin -' ToastMessageShow("DENTRO de rango GPS", False) - Else If distancealm > 50 Then - Tels.Visible = False - gest.Visible = False -' p_transparenteInicioFin.Visible = False - Log(998) -' b_Inicio_Fin_venta.Visible = False - c = skmt.ExecQuery("SELECT PC_CLIENTE FROM PEDIDO_CLIENTE WHERE PC_CLIENTE IN (Select CUENTA from cuentaa)") - If c.RowCount > 0 Then - precision = "0" - Tels.Visible = True - gest.Visible = True -' b_geo = "0" - bitacora.banderaGeoCerca = "0" - iniciofin - Else If c.RowCount = 0 Then - c = skmt.ExecQuery("SELECT NV_CLIENTE FROM NOVENTA CLIENTE WHERE NV_CLIENTE IN (Select CUENTA from cuentaa)") - If c.RowCount > 0 Then - Tels.Visible = True - gest.Visible = True - precision = "0" -' b_geo = "0" - iniciofin - Else If c.RowCount = 0 Then - Tels.Visible = False - gest.Visible = False -' p_transparenteInicioFin.Visible = False - Log(997) -' b_Inicio_Fin_venta.Visible = False - LA_GEO.TextColor = Colors.Red - If ALMACEN = "1" Then - Tels.Visible = False - gest.Visible = True -' b_geo = "0" - bitacora.banderaGeoCerca = "0" - iniciofin - End If - End If - End If - LA_GEO.TextColor = Colors.Red - If ALMACEN = "1" Then - Tels.Visible = False - gest.Visible = True -' b_geo = "0" - bitacora.banderaGeoCerca = "0" - iniciofin - End If - End If - Else If habi = 0 Then - c = skmt.ExecQuery("SELECT PC_CLIENTE FROM PEDIDO_CLIENTE WHERE PC_CLIENTE IN (Select CUENTA from cuentaa)") - If c.RowCount > 0 Then - Tels.Visible = True - gest.Visible = True -' b_geo = "0" - bitacora.banderaGeoCerca = "0" - iniciofin - Else If c.RowCount = 0 Then - Tels.Visible = False - gest.Visible = False -' p_transparenteInicioFin.Visible = False - Log(996) -' b_Inicio_Fin_venta.Visible = False - c = skmt.ExecQuery("SELECT NV_CLIENTE FROM NOVENTA CLIENTE WHERE NV_CLIENTE IN (Select CUENTA from cuentaa)") - If c.RowCount > 0 Then - Tels.Visible = True - gest.Visible = True -' b_geo = "0" - bitacora.banderaGeoCerca = "0" - iniciofin - Else If c.RowCount = 0 Then - Tels.Visible = False - gest.Visible = False -' p_transparenteInicioFin.Visible = False - Log(995) -' b_Inicio_Fin_venta.Visible = False - LA_GEO.TextColor = Colors.Red - If ALMACEN = "1" Then - Tels.Visible = False - gest.Visible = True -' b_geo = "0" - bitacora.banderaGeoCerca = "0" - iniciofin - End If - End If - LA_GEO.TextColor = Colors.Red - If ALMACEN = "1" Then - Tels.Visible = False - gest.Visible = True -' b_geo = "0" - bitacora.banderaGeoCerca = "0" - iniciofin - End If - End If - Else - Tels.Visible = False - gest.Visible = False -' p_transparenteInicioFin.Visible = False - Log(994) -' b_Inicio_Fin_venta.Visible = False - LA_GEO.TextColor = Colors.Red - If ALMACEN = "1" Then - Tels.Visible = False - gest.Visible = True -' b_geo = "0" - bitacora.banderaGeoCerca = "0" - iniciofin - End If - End If - End If - End If + ' Mostrar la precisión actual If LA_GPS.IsInitialized Then @@ -1603,7 +1504,180 @@ Sub GPS_LocationChanged (Location1 As Location) ' Tu lógica actual aquí B4XPages.MainPage.lat_gps = Location1.Latitude B4XPages.MainPage.lon_gps = Location1.Longitude - RevisarGeocerca + + If m_lat.Length > 0 And B4XPages.MainPage.lat_gps <> "0" Then + Dim l1, l2 As Location + l1.Initialize2(B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps) +' Log($"Coordenadas de la tienda - lat:${m_lat}, lon:${m_lon}"$) + l2.Initialize2(m_lat, m_lon) + BT_QR.Enabled = True +' LA_GPS.TextColor = Colors.Blue +' LA_GPS.Text = "CON UBICACION GPS" + B_GPS.Enabled = True + 'now we need the distance between our location and the target location + Dim distance As Long + distance = l1.DistanceTo(l2) 'the result is in meter + c = skmt.ExecQuery("SELECT HABILITADO FROM GPS") + If c.RowCount > 0 Then + c.Position = 0 + Dim habi As String = c.GetString("HABILITADO") + End If + c.Close + c = skmt.ExecQuery("SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = 'GEOCERCA'") + If c.RowCount > 0 Then + c.Position = 0 + Dim geo As String = c.GetString("CAT_VA_VALOR") + End If + c.Close + If gest.IsInitialized And Tels.IsInitialized Then + If geo = "0" Then + gest.Visible = True + Tels.Visible = True + iniciofin +' b_geo = "0" + bitacora.banderaGeoCerca = "0" + Else If geo = "1" Then + gest.Visible = False + Tels.Visible = False +' p_transparenteInicioFin.Visible = False +' Log(999) +' b_Inicio_Fin_venta.Visible = False + End If + End If + If geo = "1" Then + If distance < 100 Then + LA_GEO.TextColor = Colors.Blue + Tels.Visible = True + gest.Visible = True + bitacora.inicioFin + precision = "1" +' b_geo = "0" + bitacora.banderaGeoCerca = "0" +' ToastMessageShow("DENTRO de rango GPS", False) + Else If habi = "1" Then + + + + If distancealm < 50 Then + precision = "0" + LA_GEO.TextColor = Colors.Blue + Tels.Visible = True + gest.Visible = True +' b_geo = "1" + bitacora.banderaGeoCerca = "1" + iniciofin +' ToastMessageShow("DENTRO de rango GPS", False) + Else If distancealm > 50 Then + Tels.Visible = False + gest.Visible = False +' p_transparenteInicioFin.Visible = False + Log(998) +' b_Inicio_Fin_venta.Visible = False + c = skmt.ExecQuery("SELECT PC_CLIENTE FROM PEDIDO_CLIENTE WHERE PC_CLIENTE IN (Select CUENTA from cuentaa)") + If c.RowCount > 0 Then + precision = "0" + Tels.Visible = True + gest.Visible = True +' b_geo = "0" + bitacora.banderaGeoCerca = "0" + iniciofin + Else If c.RowCount = 0 Then + c = skmt.ExecQuery("SELECT NV_CLIENTE FROM NOVENTA CLIENTE WHERE NV_CLIENTE IN (Select CUENTA from cuentaa)") + If c.RowCount > 0 Then + Tels.Visible = True + gest.Visible = True + precision = "0" +' b_geo = "0" + iniciofin + Else If c.RowCount = 0 Then + Tels.Visible = False + gest.Visible = False +' p_transparenteInicioFin.Visible = False + Log(997) +' b_Inicio_Fin_venta.Visible = False + LA_GEO.TextColor = Colors.Red + If ALMACEN = "1" Then + Tels.Visible = False + gest.Visible = True +' b_geo = "0" + bitacora.banderaGeoCerca = "0" + iniciofin + End If + End If + End If + LA_GEO.TextColor = Colors.Red + If ALMACEN = "1" Then + Tels.Visible = False + gest.Visible = True +' b_geo = "0" + bitacora.banderaGeoCerca = "0" + iniciofin + End If + End If + Else If habi = 0 Then + c = skmt.ExecQuery("SELECT PC_CLIENTE FROM PEDIDO_CLIENTE WHERE PC_CLIENTE IN (Select CUENTA from cuentaa)") + If c.RowCount > 0 Then + Tels.Visible = True + gest.Visible = True +' b_geo = "0" + bitacora.banderaGeoCerca = "0" + iniciofin + Else If c.RowCount = 0 Then + Tels.Visible = False + gest.Visible = False +' p_transparenteInicioFin.Visible = False + Log(996) +' b_Inicio_Fin_venta.Visible = False + c = skmt.ExecQuery("SELECT NV_CLIENTE FROM NOVENTA CLIENTE WHERE NV_CLIENTE IN (Select CUENTA from cuentaa)") + If c.RowCount > 0 Then + Tels.Visible = True + gest.Visible = True +' b_geo = "0" + bitacora.banderaGeoCerca = "0" + iniciofin + Else If c.RowCount = 0 Then + Tels.Visible = False + gest.Visible = False +' p_transparenteInicioFin.Visible = False + Log(995) +' b_Inicio_Fin_venta.Visible = False + LA_GEO.TextColor = Colors.Red + If ALMACEN = "1" Then + Tels.Visible = False + gest.Visible = True +' b_geo = "0" + bitacora.banderaGeoCerca = "0" + iniciofin + End If + End If + LA_GEO.TextColor = Colors.Red + If ALMACEN = "1" Then + Tels.Visible = False + gest.Visible = True +' b_geo = "0" + bitacora.banderaGeoCerca = "0" + iniciofin + End If + End If + Else + Tels.Visible = False + gest.Visible = False +' p_transparenteInicioFin.Visible = False + Log(994) +' b_Inicio_Fin_venta.Visible = False + LA_GEO.TextColor = Colors.Red + If ALMACEN = "1" Then + Tels.Visible = False + gest.Visible = True +' b_geo = "0" + bitacora.banderaGeoCerca = "0" + iniciofin + End If + End If + End If + End If + +' RevisarGeocerca Else If LA_GPS.IsInitialized Then ' LA_GPS.Text = $"UBICACIÓN - Precisión: ${NumberFormat2(Location1.Accuracy, 0, 1, 1, False)}m"$ @@ -1632,7 +1706,7 @@ Sub GPS_LocationChanged (Location1 As Location) B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM HIST_GPS") B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO HIST_GPS (HGDATE, HGLAT, HGLON) VALUES(?,?,?) ", Array As Object (sDate & sTime, B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps)) - CallSubDelayed(Tracker, "CreateLocationRequest") + CallSubDelayed(Tracker, "CreateLocationRequestSmallD") End Sub @@ -1833,7 +1907,7 @@ Sub gest_Click ' Mejorar precisión antes de procesar la venta MejorarPrecisionGPS - Sleep(1000) ' Esperar un poco para que el GPS se estabilice + Sleep(500) ' Esperar un poco para que el GPS se estabilice Dim pagarepen As Cursor = B4XPages.MainPage.skmt.ExecQuery("select FECHA, SALDO_PENDIENTE FROM ABONOSP WHERE CLIENTE IN (SELECT CUENTA FROM CUENTAA)") If pagarepen.RowCount > 0 Then @@ -1853,7 +1927,12 @@ Sub gest_Click ' Mostrar resultado Log($"Días transcurridos: ${DiferenciaDias}"$) - If DiferenciaDias <= 7 Then + c=B4XPages.MainPage.skmt.ExecQuery("select IFNULL(CAT_CL_DIASCREDITO,0) AS CAT_CL_DIASCREDITO from kmt_info3 where CAT_CL_CODIGO In (Select cuenta from cuentaa)") + c.Position = 0 + + + If DiferenciaDias <= c.GetInt("CAT_CL_DIASCREDITO") + 1 Then + ' MsgboxAsync($"Favor de pagar su credito el día de mañana por un monto de $${pagarepen.GetString("SALDO_PENDIENTE")}"$, "Recordatorio") Msgbox2Async($"Favor de pagar su credito el día de mañana por un monto de $${pagarepen.GetString("SALDO_PENDIENTE")}"$, "Recordatorio", "Ok", "", "", LoadBitmap(File.DirAssets,"alert2.png"), False) @@ -1861,8 +1940,8 @@ Sub gest_Click If resultado = DialogResponse.POSITIVE Then gestionar End If - Else If DiferenciaDias > 7 Then - MsgboxAsync($"No se puede realizar venta por que presenta ${(DiferenciaDias-7)} días de atraso en el credito, por un monto de $${pagarepen.GetString("SALDO_PENDIENTE")}"$, "Atención") + Else If DiferenciaDias > c.GetInt("CAT_CL_DIASCREDITO") + 1 Then + MsgboxAsync($"No se puede realizar venta por que presenta ${(DiferenciaDias-(c.GetInt("CAT_CL_DIASCREDITO") +1))} días de atraso en el credito, por un monto de $${pagarepen.GetString("SALDO_PENDIENTE")}"$, "Atención") End If Else @@ -1961,13 +2040,13 @@ Sub compra ' Or (ALMACEN = 79 And rutasEncuesta.IndexOf(LA_RUTA.As(Int)) > -1) ' Encuesta Pedigree - If (alamcenesEncuesta.IndexOf(ALMACEN.As(Int)) > -1 ) Or (ALMACEN = 6 And LA_RUTA = 3) Then - Log($"${cuest.encuestaIniciada} - ${cuest.clienteConCuestionario(Subs.traeCliente)}"$) - If Not(cuest.encuestaIniciada) And Not(cuest.clienteConCuestionario(Subs.traeCliente)) Then - cuest.agregaPreguntaCheckbox("1", "¿Qué productos de Kileo Perro encuentras en esta tienda?", Array As String("Pedigree Adulto", "Pedigree Cachorro", "Pedigree Razas Pequeñas", "Champ", "PAL","DOG CHOW ADULTO","DOG CHOW CACHORRO","DOG CHOW RAZAS PEQUEÑAS","Campeon","Ganador","Poder canino","Perron","Silverkan","Woow","Chapetes","Dyno","Beriscan","Nogacan","Nutrescan","Fidus","Amigo Gourmet","Otros","Ninguno de los anteriores")) - Return False - End If - End If +' If (alamcenesEncuesta.IndexOf(ALMACEN.As(Int)) > -1 ) Or (ALMACEN = 6 And LA_RUTA = 3) Then +' Log($"${cuest.encuestaIniciada} - ${cuest.clienteConCuestionario(Subs.traeCliente)}"$) +' If Not(cuest.encuestaIniciada) And Not(cuest.clienteConCuestionario(Subs.traeCliente)) Then +' cuest.agregaPreguntaCheckbox("1", "¿Qué productos de Kileo Perro encuentras en esta tienda?", Array As String("Pedigree Adulto", "Pedigree Cachorro", "Pedigree Razas Pequeñas", "Champ", "PAL","DOG CHOW ADULTO","DOG CHOW CACHORRO","DOG CHOW RAZAS PEQUEÑAS","Campeon","Ganador","Poder canino","Perron","Silverkan","Woow","Chapetes","Dyno","Beriscan","Nogacan","Nutrescan","Fidus","Amigo Gourmet","Otros","Ninguno de los anteriores")) +' Return False +' End If +' End If If TOMAR_FOTO = 0 Then Cuestionario @@ -2786,7 +2865,7 @@ Sub NUEVO_Click End Sub Sub HIST_Click - B4XPages.ShowPage("Historico") + B4XPages.ShowPage("historicobat") End Sub Sub BT_QR_Click @@ -2981,7 +3060,7 @@ Sub Impresion3 For E=0 To ESPACIO -1 BLANCO = " " & BLANCO Next - Printer1.WriteString(BLANCO & s.GETSTRING("PE_CANT") & " X $" & s.GETSTRING("PE_COSTOU") & " $" & s.GETSTRING("PE_COSTO_TOT") & CRLF ) + Printer1.WriteString(BLANCO & s.GETSTRING("PE_CANT") & " X $" & s.GETSTRING("PE_COSTOU") & " $" & s.GETSTRING("PE_COSTO_TOT") & CRLF& CRLF ) TAMANO = 0 ESPACIO = 21 BLANCO = " " @@ -2996,7 +3075,13 @@ Sub Impresion3 For E=0 To ESPACIO -1 BLANCO = " " & BLANCO Next - Printer1.WriteString(BLANCO & s.GETSTRING("PE_CANT") & " X $" & s.GETSTRING("PE_RECALCULO") & " $" & s.GETSTRING("PE_COSTO_TOTREC") & CRLF ) + + Dim descpro As Cursor = Starter.skmt.ExecQuery($"SELECT CAT_PD_RANGO, CAT_PD_DESCUENTO, CAT_PD_RANGO2 FROM CAT_PROMOS_DESCUENTOS WHERE CAT_PD_PRODUCTO IN (SELECT CAT_GP_ID FROM CAT_GUNAPROD WHERE CAT_GP_NOMBRE = '${s.GetString("PE_PRONOMBRE")}') AND INSTR(',' || CAT_PD_TIER || ',' , ',${Subs.traeTipoCliente},') > 0 "$) + descpro.Position = 0 + + Printer1.WriteString(BLANCO & s.GETSTRING("PE_CANT") & " X $" & s.GETSTRING("PE_RECALCULO") & " $" & s.GETSTRING("PE_COSTO_TOTREC") & CRLF & CRLF ) + + Printer1.WriteString(BLANCO & "PL $" & s.GETSTRING("PE_COSTOU") & " Desc.: " & descpro.GetDouble("CAT_PD_DESCUENTO")&"%" & CRLF & CRLF) TAMANO = 0 ESPACIO = 21 BLANCO = " " @@ -6750,4 +6835,62 @@ End Sub Private Sub CH_FACTURA_CheckedChange(Checked As Boolean) +End Sub + +Private Sub l_limite_Click + + + Dim pagarepen As Cursor = B4XPages.MainPage.skmt.ExecQuery("select FECHA, SALDO_PENDIENTE FROM ABONOSP WHERE CLIENTE IN (SELECT CUENTA FROM CUENTAA)") + If pagarepen.RowCount > 0 Then + Dim cs As CSBuilder + cs.Initialize + p_deuda.Visible = True + p_deuda.Width = Root.Width + p_deuda.Height = Root.Height + + pagarepen.Position = 0 + DateTime.DateFormat="dd/MM/yyyy" + Dim FechaInicio As String = pagarepen.GetString("FECHA") ' Formato: dd/MM/yyyy +' Dim FechaHoy As String = DateTime.Date(DateTime.Now) ' Fecha actual en formato dd/MM/yyyy + Log(pagarepen.GetString("FECHA")) + + ' Convertir las fechas a milisegundos (desde 01/01/1970) + Dim TicksInicio As Long = DateTime.DateParse(FechaInicio) + Dim TicksHoy As Long = DateTime.DateParse(DateTime.Date(DateTime.Now)) + + ' Calcular diferencia en días + Dim DiferenciaDias As Int = (TicksHoy - TicksInicio) / DateTime.TicksPerDay + + ' Mostrar resultado + Log($"Días transcurridos: ${DiferenciaDias}"$) + + c=B4XPages.MainPage.skmt.ExecQuery("select IFNULL(CAT_CL_DIASCREDITO,0) AS CAT_CL_DIASCREDITO from kmt_info3 where CAT_CL_CODIGO In (Select cuenta from cuentaa)") + c.Position = 0 + + If DiferenciaDias <= c.GetInt("CAT_CL_DIASCREDITO") + 1 Then +' Msgbox2Async($"Favor de pagar su credito el día de mañana por un monto de $${pagarepen.GetString("SALDO_PENDIENTE")}"$, "Recordatorio", "Ok", "", "", LoadBitmap(File.DirAssets,"alert2.png"), False) + +' l_deuda.Text = ($"Favor de pagar su credito el día de mañana por un monto de $${pagarepen.GetString("SALDO_PENDIENTE")}"$) + l_deuda.Text = cs.Color(Colors.Black).Append("Monto de la deuda:" & CRLF&CRLF).Pop.Size(18).Color(Colors.RGB(48,109,0)).Append("$ "& pagarepen.GetString("SALDO_PENDIENTE")).PopAll + Else If DiferenciaDias > c.GetInt("CAT_CL_DIASCREDITO") + 1 Then +' l_deuda.Text = ($"No se puede realizar venta por que presenta ${(DiferenciaDias-(c.GetInt("CAT_CL_DIASCREDITO") +1))} días de atraso en el credito, por un monto de $${pagarepen.GetString("SALDO_PENDIENTE")}"$) + l_deuda.Text = cs.Color(Colors.Black).Append("Monto de la deuda:" & CRLF&CRLF).Pop.Color(Colors.Red).Size(18).Append("$ " &pagarepen.GetString("SALDO_PENDIENTE")&CRLF&CRLF).Pop.Size(14).Color(Colors.Black).Append("Dias de atraso:" & CRLF&CRLF).Pop.Size(18).Color(Colors.Red).Append((DiferenciaDias-(c.GetInt("CAT_CL_DIASCREDITO") +1))).PopAll + End If + Else + p_deuda.Visible = True + + p_deuda.Width = Root.Width + p_deuda.Height = Root.Height + + l_deuda.Text = "No tiene adeudo" + End If + +End Sub + +Private Sub b_okdeuda_Click + p_deuda.Visible = False +End Sub + +Private Sub p_deuda_Click + p_deuda.Visible = False End Sub \ No newline at end of file diff --git a/B4A/C_Historico.bas b/B4A/C_Historico.bas index 42fdef6..33bfc61 100644 --- a/B4A/C_Historico.bas +++ b/B4A/C_Historico.bas @@ -92,6 +92,10 @@ Sub B4XPage_Appear L_CANT.Text = c.GetString("PC_NOART") L_TOTAL.Text = c.GetString("PC_MONTO") End If +' ListView1.Visible = False +' CustomListView1.AsView.Visible = True + + End Sub Sub GPS_LocationChanged (Location1 As Location) diff --git a/B4A/C_Historico2.bas b/B4A/C_Historico2.bas new file mode 100644 index 0000000..58794bc --- /dev/null +++ b/B4A/C_Historico2.bas @@ -0,0 +1,167 @@ +B4A=true +Group=Default Group +ModulesStructureVersion=1 +Type=Class +Version=11.5 +@EndOfDesignText@ +Sub Class_Globals + Private Root As B4XView 'ignore + Private xui As XUI 'ignore + + Dim g As GPS + Dim clie_id As String + Dim sDate,sTime As String + Dim usuario As String + + Dim c As Cursor + Dim ruta As String + Dim Regresar As Button + + + Dim ListView1 As ListView + Dim L_CANT As Label + Dim L_TOTAL As Label + Dim borra As Button + Dim Existe As String + Dim result As String + ' Dim lat_gps, lon_gps As String + + Private Titulo As Label + Private b_desc As Button + Private ListView2 As ListView + Dim tgl As Toggle + Private p_nota As Panel + Private Panel1 As Panel + Private l_productohist As Label + Private l_s1 As Label + Private l_s2 As Label + Private l_s3 As Label + Private l_s4 As Label + Private CustomListView1 As CustomListView + +End Sub + +'You can add more parameters here. +'Public Sub Initialize As Object +'' Return Me +'End Sub + +'This event will be called once, before the page becomes visible. +Private Sub B4XPage_Created (Root1 As B4XView) + Root = Root1 + 'load the layout to Root + ruta = File.DirInternal + Root.LoadLayout("nota2") + borra.Visible = False + Titulo.Text = "Acumulado" + b_desc.Visible = False + If File.Exists(ruta, "kmt.db") = False Then + File.Copy(File.DirAssets, "kmt.db", ruta, "kmt.db") + End If +' skmt.Initialize(ruta,"kmt.db", True) +End Sub + +'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage. + +Sub B4XPage_Appear + p_nota.Height = Root.Height * 0.9 + p_nota.Width = Root.Width * 0.9 + Panel1.Visible = False + If Not(Starter.gps.GPSEnabled) Then + ToastMessageShow("Es necesario tener el GPS encendido", True) + StartActivity(Starter.gps.LocationSettingsIntent) + End If + L_CANT.Text ="" + L_TOTAL.Text="" + c=B4XPages.MainPage.skmt.ExecQuery("select count(*) as EXISTE from HIST_VENTAS WHERE HVD_CLIENTE IN (Select CUENTA from cuentaa)") + C.Position=0 + Existe = C.GetString("EXISTE") + C.Close + c=B4XPages.MainPage.skmt.ExecQuery("select HVD_CLIENTE,HVD_PRONOMBRE,HVD_CANT,HVD_COSTO_TOT, HVD_FECHA from HIST_VENTAS WHERE HVD_CLIENTE IN (Select CUENTA from cuentaa) order by HVD_FECHA asc") + ListView1.Clear + If c.RowCount>0 Then + For i=0 To c.RowCount -1 + c.Position=i + Dim label1 As Label + label1 = ListView1.TwoLinesLayout.Label + label1.TextSize = 15 + label1.TextColor = Colors.White + Dim label2 As Label + label2 = ListView1.TwoLinesLayout.SecondLabel + label2.TextSize = 15 + label2.TextColor = Colors.White + ListView1.AddTwoLines(c.GetString("HVD_PRONOMBRE"),"Cantidad #"& c.GetString("HVD_CANT")& " SubTotal $"& c.GetString("HVD_COSTO_TOT")&" Fecha: "& c.GetString("HVD_FECHA")) + Next + End If + If Existe <> 0 Then + c=B4XPages.MainPage.skmt.ExecQuery("select SUM(HVD_CANT) AS PC_NOART, SUM(HVD_COSTO_TOT) AS PC_MONTO from HIST_VENTAS where HVD_CLIENTE in (Select CUENTA from cuentaa)") + C.Position=0 + L_CANT.Text = c.GetString("PC_NOART") + L_TOTAL.Text = c.GetString("PC_MONTO") + End If +' ListView1.Visible = False +' CustomListView1.AsView.Visible = True +' c=B4XPages.MainPage.skmt.ExecQuery("select HVD_CLIENTE,HVD_PRONOMBRE,HVD_CANT,HVD_COSTO_TOT, HVD_FECHA from HIST_VENTAS WHERE HVD_CLIENTE IN (Select CUENTA from cuentaa) order by HVD_FECHA asc") +' + For sfdf = 0 To 1 + CustomListView1.Add(CreateListItem("ejemplo","1","2","3","4", 284, 144),sfdf) + + Next + + + +End Sub + + +Sub CreateListItem(prodhis As String, s1 As Int, s2 As Int, s3 As Int,s4 As Int, Width As Int, Height As Int) As Panel 'ignore + Dim p As B4XView = xui.CreatePanel("") + p.SetLayoutAnimated(0, 0, 0, Width, Height) + p.LoadLayout("historicobat") +' l_prodX.TextSize = 15 +' l_prodX.Text = Text +' l_prodX.TextSize = 15 + '' p_prods.Height = Height + 70 + '' l_prodX.Height = Height +' p_prods.height = su.MeasureMultilineTextHeight(l_prodX, l_prodX.Text) + 20 'Calculamos la altura del panel de acuerdo al texto contenido. +' If p_prods.Height < Height Then p_prods.Height = Height +' l_prodX.Height = p_prods.Height +' l_pCant.Tag = precioU&"|"&inv&"|"&prodId +' et_pCant.Tag = precioU&"|"&inv&"|"&prodId +' et_pCant.BringToFront + '' i_prod.Bitmap = img +' p.Height = p_prods.Height + Return p +End Sub + +Sub GPS_LocationChanged (Location1 As Location) + 'lat_gps=Location1.ConvertToSeconds(Location1.Latitude) + 'lon_gps=Location1.ConvertToSeconds(Location1.Longitude) +End Sub + +Sub Regresar_Click + B4XPages.ShowPage("Cliente") +End Sub + +Private Sub B4XPage_CloseRequest As ResumableSub +' BACK key pressed +' Return True To close, False To cancel + B4XPages.ShowPage("Cliente") + Return False +End Sub + +Sub ListView2_ItemClick (Position As Int, Value As Object) + ListView2.Visible = False + ListView1.Visible = True +End Sub + +Sub ListView1_ItemClick (Position As Int, Value As Object) + ListView2.Visible = True + ListView1.Visible = False + Dim label1 As Label + For i=0 To 20 + label1 = ListView2.SingleLineLayout.Label + label1.TextSize = 15 + label1.TextColor = Colors.Black + ListView2.AddSingleLine(i) + Next +End Sub \ No newline at end of file diff --git a/B4A/C_Nota.bas b/B4A/C_Nota.bas index b5b5d83..4ebb402 100644 --- a/B4A/C_Nota.bas +++ b/B4A/C_Nota.bas @@ -183,7 +183,7 @@ Sub borra_Click If folio <> "" Then result = Msgbox2("Seguro que desa borrar el pedido?","Cancelar pedido", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) 'ignore If result = DialogResponse.POSITIVE Then - c=B4XPages.MainPage.skmt.ExecQuery("select PE_PROID,PE_CANT FROM PEDIDO where pe_cliente in (Select CUENTA from cuentaa) ") + c=B4XPages.MainPage.skmt.ExecQuery("select PE_PROID,PE_CANT FROM PEDIDO where pe_cliente in (Select CUENTA from cuentaa) AND PE_CEDIS <> 'DUR'") If c.RowCount>0 Then For i=0 To c.RowCount -1 c.Position=i @@ -309,8 +309,13 @@ Sub ListView1_ItemLongClick (Position As Int, Value As Object) ' For j = 0 To c.RowCount -1 ' Log("aqui tronare?") '' c.Position = j + + If cedis <> "DUR" Then B4XPages.MainPage.skmt.ExecNonQuery($"update ${Subs.traeTablaProds(tipo_venta)} set cat_gp_almacen = cat_gp_almacen + ${c.GetString("PE_CANT")} where cat_gp_id = '${c.GetString("PE_PROID")}'"$) B4XPages.MainPage.skmt.ExecNonQuery2("delete from pedido where pe_cedis= ? and pe_cliente in (Select CUENTA from cuentaa) AND PE_FOLIO = ?", Array As Object(cedis, c.GetString("PE_FOLIO"))) + Else + B4XPages.MainPage.skmt.ExecNonQuery2("delete from pedido where pe_cedis= ? and pe_cliente in (Select CUENTA from cuentaa) AND PE_FOLIO = ?", Array As Object(cedis, c.GetString("PE_FOLIO"))) + End If ' Next ' End If ' j3.Close @@ -396,8 +401,13 @@ Sub ListView1_ItemLongClick (Position As Int, Value As Object) ' For j = 0 To c.RowCount -1 ' Log("aqui tronare?") ' ' c.Position = j + + If cedis <> "DUR" Then B4XPages.MainPage.skmt.ExecNonQuery($"update ${Subs.traeTablaProds(tipo_venta)} set cat_gp_almacen = cat_gp_almacen + ${c.GetString("PE_CANT")} where cat_gp_id = '${c.GetString("PE_PROID")}'"$) B4XPages.MainPage.skmt.ExecNonQuery2("delete from pedido where pe_cedis= ? and pe_cliente in (Select CUENTA from cuentaa) AND PE_FOLIO = ?", Array As Object(cedis, c.GetString("PE_FOLIO"))) + Else + B4XPages.MainPage.skmt.ExecNonQuery2("delete from pedido where pe_cedis= ? and pe_cliente in (Select CUENTA from cuentaa) AND PE_FOLIO = ?", Array As Object(cedis, c.GetString("PE_FOLIO"))) + End If ' Next ' End If ' j3.Close diff --git a/B4A/C_NuevoCliente.bas b/B4A/C_NuevoCliente.bas index dd8ba71..70e654d 100644 --- a/B4A/C_NuevoCliente.bas +++ b/B4A/C_NuevoCliente.bas @@ -20,6 +20,9 @@ Sub Class_Globals Dim no_cliente As String Dim no_ruta As String + Dim lat As Double = 0 + Dim lon As Double = 0 + Dim r_4 As RadioButton Dim E_NOMBRE As EditText Dim tgl As Toggle @@ -55,6 +58,17 @@ Sub B4XPage_Appear StartActivity(Starter.gps.LocationSettingsIntent) End If GUARDA.Visible = False + + CallSubDelayed(Tracker, "Track") + CallSubDelayed(Tracker, "StartFLPSmall") + If Tracker.FLP.IsInitialized And Tracker.FLP.GetLastKnownLocation.IsInitialized Then 'Si tenemos "UltimaUbicaccionConocida" la usamos. + B4XPages.MainPage.lat_gps = Tracker.FLP.GetLastKnownLocation.Latitude + B4XPages.MainPage.lon_gps = Tracker.FLP.GetLastKnownLocation.Longitude +' Log($"Tenemos UUC: ${Tracker.FLP.GetLastKnownLocation.Latitude},${Tracker.FLP.GetLastKnownLocation.Longitude}"$) + GPS_LocationChanged(Tracker.FLP.GetLastKnownLocation) + End If + + ' Subs.panelVisible(p_nuevoCliente,, 0) ' p_nuevoCliente.Height = Root.Height ' p_nuevoCliente.Width = Root.Width @@ -65,16 +79,31 @@ Sub B4XPage_Appear ' E_NOMBRE.Left = Round(Root.Width/2)-(E_NOMBRE.Width/2) If B4XPages.MainPage.lat_gps <> "0.0" Then GUARDA.Visible = True 'Si hay ubicaccion, mostramos el boton de guardar. - l_sinUbicacion.Visible = False + l_sinUbicacion.Visible = True End If Starter.skmt.ExecNonQuery("delete from cuentaa") End Sub Sub GPS_LocationChanged (Location1 As Location) If B4XPages.MainPage.lat_gps <> "0.0" Then + If GUARDA.IsInitialized Then GUARDA.Visible = True 'Si hay ubicaccion, mostramos el boton de guardar. - l_sinUbicacion.Visible = False + l_sinUbicacion.Visible = True + + End If End If + Log("CAMBIE") + If B4XPages.MainPage.lat_gps <> "0.0" Then + If GUARDA.IsInitialized Then + GUARDA.Visible = True 'Si hay ubicaccion, mostramos el boton de guardar. + l_sinUbicacion.Visible = True + lat = Location1.Latitude + lon = Location1.Longitude + l_sinUbicacion.Text = ("Latitud: " & lat & ", Longotud: "& lon) + + End If + End If + End Sub Sub CANCELA_Click @@ -102,7 +131,7 @@ Sub GUARDA_Click no_cliente= "N" & sTime & no_ruta Log("++ ++ no_cliente = "&no_cliente) ' c.Close - B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO kmt_info3(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, gestion) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,0,0) ",Array As Object (no_cliente,no_ruta, E_NOMBRE.Text,"null","null","null","null","null","null","null","null","null","null","null","null","null",B4XPages.MainPage.lon_gps,B4XPages.MainPage.lat_gps)) + B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO kmt_info3(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, gestion) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,0,0) ",Array As Object (no_cliente,no_ruta, E_NOMBRE.Text,"null","null","null","null","null","null","null","null","null","null","null","null","null",lon,lat)) B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO HIST_STAY_STORE(HSS_CODIGO, HSS_IN , HSS_OUT , HSS_TOT) VALUES (?,0,0,0)", Array As Object (no_cliente)) B4XPages.MainPage.skmt.ExecNonQuery("delete from CUENTAA") B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO CUENTAA VALUES (?)", Array As Object(no_cliente)) diff --git a/B4A/C_Principal.bas b/B4A/C_Principal.bas index a7f28c9..c0a56e6 100644 --- a/B4A/C_Principal.bas +++ b/B4A/C_Principal.bas @@ -1152,8 +1152,8 @@ Sub cargar_Click cmd.Initialize - cmd.Name = "select_hist_datos_GV2_2" - cmd.Parameters = Array As Object(e_ruta.text, ALMACEN,e_ruta.text, ALMACEN,e_ruta.text, ALMACEN) + cmd.Name = "select_hist_datos_GV2_3" + cmd.Parameters = Array As Object(e_ruta.text, ALMACEN,e_ruta.text, ALMACEN) B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "hist_datos") cmd.Initialize @@ -1223,8 +1223,8 @@ Sub cargar_Click B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "kmt_datos2") cmd.Initialize - cmd.Name = "select_hist_datos_GV2_2" - cmd.Parameters = Array As Object(E_RUTA2.text, ALMACEN,E_RUTA2.text, ALMACEN,E_RUTA2.text, ALMACEN) + cmd.Name = "select_hist_datos_GV2_3" + cmd.Parameters = Array As Object(E_RUTA2.text, ALMACEN,E_RUTA2.text, ALMACEN) B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "hist_datos") cmd.Initialize @@ -1418,10 +1418,13 @@ Sub JobDone(Job As HttpJob) Dim CAT_CL_NUM_SERIEFISICO As String = records(RESULT.Columns.Get("CAT_CL_NUM_SERIEFISICO")) Dim CAT_CL_TIPOCLIENTE As String = records(RESULT.Columns.Get("CAT_CL_TIPOCLIENTE")) Dim CAT_CL_LIMITECREDITO As String = records(RESULT.Columns.Get("CAT_CL_LIMITECREDITO")) + Dim CAT_CL_DIASCREDITO As String = records(RESULT.Columns.Get("CAT_CL_DIASCREDITO")) + Dim CAT_CL_CLASIFICADOR3 As String = records(RESULT.Columns.Get("CAT_CL_CLASIFICADOR3")) + Dim CAT_CL_CLASIFICADOR2 As String = records(RESULT.Columns.Get("CAT_CL_CLASIFICADOR2")) '########################## INICIA CODIGO PARA CREDITOS #################### Dim CAT_CL_BCREDITO As String = records(RESULT.Columns.Get("CAT_CL_BCREDITO")) - B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO kmt_info3(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, gestion,CAT_CL_BCREDITO,CAT_CL_TIPOCLIENTE,FOTO,CAT_CL_LIMITECREDITO) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,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_LONG,CAT_CL_LAT,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO,CAT_CL_BCREDITO,CAT_CL_TIPOCLIENTE,CAT_CL_FOTO,CAT_CL_LIMITECREDITO)) + B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO kmt_info3(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, gestion,CAT_CL_BCREDITO,CAT_CL_TIPOCLIENTE,FOTO,CAT_CL_LIMITECREDITO,CAT_CL_DIASCREDITO,CAT_CL_CLASIFICADOR3,CAT_CL_CLASIFICADOR2) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,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_LONG,CAT_CL_LAT,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO,CAT_CL_BCREDITO,CAT_CL_TIPOCLIENTE,CAT_CL_FOTO,CAT_CL_LIMITECREDITO,CAT_CL_DIASCREDITO,CAT_CL_CLASIFICADOR3,CAT_CL_CLASIFICADOR2)) '########################## TERMINA CODIGO PARA CREDITOS #################### B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO HIST_STAY_STORE(HSS_CODIGO, HSS_IN , HSS_OUT , HSS_TOT) VALUES (?,0,0,0)", Array As Object (CAT_CL_CODIGO)) Next @@ -1464,6 +1467,7 @@ Sub JobDone(Job As HttpJob) Dim CAT_CL_NUM_SERIEFISICO As String = records(RESULT.Columns.Get("CAT_CL_NUM_SERIEFISICO")) Dim CAT_CL_TIPOCLIENTE As String = records(RESULT.Columns.Get("CAT_CL_TIPOCLIENTE")) Dim CAT_CL_FOTO() As Byte = records(RESULT.Columns.Get("CAT_CL_FOTO")) + '########################## INICIA CODIGO PARA CREDITOS #################### Dim CAT_CL_BCREDITO As String = records(RESULT.Columns.Get("CAT_CL_BCREDITO")) B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO kmt_info3(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, gestion,CAT_CL_BCREDITO,CAT_CL_TIPOCLIENTE,FOTO) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,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_LONG,CAT_CL_LAT,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO,CAT_CL_BCREDITO,CAT_CL_TIPOCLIENTE,CAT_CL_FOTO)) @@ -1800,14 +1804,14 @@ Sub JobDone(Job As HttpJob) Dim CAT_GP_SUBTIPO As String = records(RESULT.Columns.Get("CAT_GP_SUBTIPO")) Dim CAT_GP_IMG() As Byte = records(RESULT.Columns.Get("CAT_GP_IMG")) Dim CAT_GP_ALMACEN As Int = records(RESULT.Columns.Get("CAT_GP_ALMACEN")) - ' Dim CAT_GP_DEV As String = records(RESULT.Columns.Get("CAT_GP_DEV")) + Dim CAT_GP_DEV As String = records(RESULT.Columns.Get("CAT_GP_DEV")) Dim CAT_GP_TIPOPROD As Int = records(RESULT.Columns.Get("CAT_GP_TIPOPROD")) Dim CAT_GP_INICIATIVA As Int = records(RESULT.Columns.Get("CAT_GP_INICIATIVA")) Dim CAT_LISTAPRECIO As String = records(RESULT.Columns.Get("CAT_LISTAPRECIO")) ' Dim CAT_LISTAPRECIO As Int = 10 ' CAT_GP_INICIATIVA = 5 ' skmt.ExecNonQuery2("INSERT INTO CAT_GUNAPROD(CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_IMP1,CAT_GP_IMP2,CAT_GP_PRECIO,CAT_GP_CLASIF,CAT_GP_STS,CAT_GP_TIPO,CAT_GP_SUBTIPO,CAT_GP_IMG,CAT_GP_ALMACEN,CAT_GP_DEV) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)", Array As Object (CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_IMP1,CAT_GP_IMP2,CAT_GP_PRECIO,CAT_GP_CLASIF,CAT_GP_STS,CAT_GP_TIPO,CAT_GP_SUBTIPO,CAT_GP_IMG, CAT_GP_ALMACEN,CAT_GP_DEV)) - B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO CAT_GUNAPROD(CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_IMP1,CAT_GP_IMP2,CAT_GP_PRECIO,CAT_GP_CLASIF,CAT_GP_STS,CAT_GP_TIPO,CAT_GP_SUBTIPO,CAT_GP_IMG,CAT_GP_ALMACEN,CAT_GP_TIPOPROD,CAT_GP_INICIATIVA,CAT_LISTAPRECIO) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?)", Array As Object (CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_IMP1,CAT_GP_IMP2,CAT_GP_PRECIO,CAT_GP_CLASIF,CAT_GP_STS,CAT_GP_TIPO,CAT_GP_SUBTIPO,CAT_GP_IMG, CAT_GP_ALMACEN,CAT_GP_TIPOPROD, CAT_GP_INICIATIVA,CAT_LISTAPRECIO)) + B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO CAT_GUNAPROD(CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_IMP1,CAT_GP_IMP2,CAT_GP_PRECIO,CAT_GP_CLASIF,CAT_GP_STS,CAT_GP_TIPO,CAT_GP_SUBTIPO,CAT_GP_IMG,CAT_GP_ALMACEN,CAT_GP_TIPOPROD,CAT_GP_INICIATIVA,CAT_LISTAPRECIO, CAT_GP_DEV) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", Array As Object (CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_IMP1,CAT_GP_IMP2,CAT_GP_PRECIO,CAT_GP_CLASIF,CAT_GP_STS,CAT_GP_TIPO,CAT_GP_SUBTIPO,CAT_GP_IMG, CAT_GP_ALMACEN,CAT_GP_TIPOPROD, CAT_GP_INICIATIVA,CAT_LISTAPRECIO,CAT_GP_DEV)) Next Listo2=1 If PB2.Progress = 0 Then @@ -2646,6 +2650,9 @@ Sub B_OK_PAS_Click Next End If c13.Close + + + checaPedido Else if CARGA = "CARGAR" And (S_CP.Text <> "LISTO" Or S_CC.Text <> "LISTO" Or S_CH.Text <> "LISTO") Then RES = Msgbox2("Seguro que desa abortar el proceso","Cierre", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) 'ignore @@ -3193,4 +3200,7 @@ Sub checaPedido If c.RowCount > 0 Then Starter.skmt.ExecNonQuery("Update kmt_info3 set gestion = 3 WHERE CAT_CL_CODIGO IN (SELECT NV_CLIENTE FROM NOVENTA)") End If + + B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE CAT_GUNAPROD SET CAT_GP_TIPOPROD = (?) WHERE CAT_GP_ID IN (SELECT CAT_PD_PRODUCTO FROM CAT_PROMOS_DESCUENTOS) ",Array As Object("PRIORITARIO")) + End Sub \ No newline at end of file diff --git a/B4A/C_Productos.bas b/B4A/C_Productos.bas index 268a755..bcb1944 100644 --- a/B4A/C_Productos.bas +++ b/B4A/C_Productos.bas @@ -4,830 +4,6 @@ ModulesStructureVersion=1 Type=Class Version=11.5 @EndOfDesignText@ -'Sub Class_Globals -' Private Root As B4XView 'ignore -' Private xui As XUI 'ignore -' -' Dim ruta As String -' Dim q_buscar As String -' Dim forzarbusqueda As Boolean = False -' Dim skmt As SQL -' Dim c As Cursor -' Dim c2 As Cursor -' Dim C3 As Cursor -' Dim s As Cursor -' Dim lv_catalogos As ListView -' Dim lv_promos As ListView -' Dim entro As String -' Dim gest As Button -' Dim lfila As Label -' Dim marca As String -' Dim tipo As String -' Dim subtipo As String -' Private BUSCA As EditText -' Dim ya_entro As String -' Dim TIENE_PROMOS As String -' Dim RES As String -' Dim S1 As Cursor -' Dim bmp As Bitmap -' Dim ciclo As String -' Private b_qr As Button -' Private p_productos As Panel -' Dim clv_productos As CustomListView -' Private ImageView1 As ImageView -' Private Panel3 As Panel -' Private p_prods As Panel -' Private i_prod As ImageView -' Private l_prodX As Label -' Private b_prodMas As Button -' Private l_pCant As Label -' Private et_pCant As EditText -' Private b_prodMenos As Button -' Dim b_terminar1 As Button -' Dim b_continuar As Button -' Private l_total As Label -' Private l_totProds As Label -' Dim totalProds As Int = 0 -' Dim totalCompra As Float = 0 -' Dim etCantHasFocus As Boolean = False -' Dim prodsMap As Map -' Private l_Cargando As Label -' Private l_info As Label -' Private b_buscar As Button -' Private p_botonesVenta As Panel -' Dim tipo_venta As String = Subs.traeTipoVentaDeBD -' Dim rutaActual As String -' Dim Panel2 As Panel -' -' Dim P_CALATOLOS As Panel -'End Sub -' -''You can add more parameters here. -'Public Sub Initialize As Object -' Return Me -'End Sub -' -''This event will be called once, before the page becomes visible. -'Private Sub B4XPage_Created (Root1 As B4XView) -' Root = Root1 -' 'load the layout to Root -'' Activity.RemoveAllViews -' Root.LoadLayout("productos") -' ruta = File.DirInternal -' If File.Exists(ruta, "kmt.db") = False Then -' File.Copy(File.DirAssets, "kmt.db", ruta, "kmt.db") -' End If -' ciclo = 1 -' l_info.Width = Root.Width * 0.8 -' l_info.Left = (Root.Width/2) - (l_info.Width/2) -'' llenaCatalogo(False) -'End Sub -' -''You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage. -' -'Sub B4XPage_Appear -' P_CALATOLOS.Visible = True -' lv_catalogos.Visible = True -' tipo_venta = Subs.traeTipoVentaDeBD -' rutaActual = Subs.traeRuta -' clv_productos.Clear -' LogColor(tipo_venta, Colors.red) -' LogColor(Subs.traeTablaProds(tipo_venta), Colors.red) -' prodsMap.Initialize -' B4XPages.MainPage.skmt.ExecNonQuery2($"UPDATE ${Subs.traeTablaProds(tipo_venta)} SET CAT_GP_TIPOPROD = (?) WHERE CAT_GP_TIPOPROD = (?)"$,Array As Object("PRIORITARIO","1")) -' B4XPages.MainPage.skmt.ExecNonQuery2($"UPDATE ${Subs.traeTablaProds(tipo_venta)} SET CAT_GP_TIPOPROD = (?) WHERE CAT_GP_TIPOPROD = (?)"$,Array As Object("ESTRATEGICO","2")) -' B4XPages.MainPage.skmt.ExecNonQuery2($"UPDATE ${Subs.traeTablaProds(tipo_venta)} SET CAT_GP_TIPOPROD = (?) WHERE CAT_GP_TIPOPROD = (?)"$,Array As Object("COMPLEMENTARIO","3")) -' B4XPages.MainPage.skmt.ExecNonQuery2($"UPDATE ${Subs.traeTablaProds(tipo_venta)} SET CAT_GP_TIPOPROD = (?) WHERE CAT_GP_TIPOPROD = (?)"$,Array As Object("CATALOGO REGULAR","0")) -' B4XPages.MainPage.skmt.ExecNonQuery2($"UPDATE ${Subs.traeTablaProds(tipo_venta)} SET CAT_GP_TIPOPROD = (?) WHERE CAT_GP_CLASIF = (?)"$,Array As Object("PROMOS","PROMOS")) -' -'' Private left = (Root.Width/2) - ((clv_productos.AsView.Width)/2) -' clv_productos.GetBase.SetLayoutAnimated(100, 0dip, 140dip, Root.Width, Root.Height * 0.68) 'Cambiamos el tamaño y posición de la lista de productos -' clv_productos.Base_Resize(clv_productos.GetBase.Width, clv_productos.GetBase.Height) 'Cambiamos el tamaño del panel interno de la lista para que ajuste al nuevo tamaño. -'' Log($"ya_entro=${ya_entro}, entro=${entro}"$) -' If B4XPages.MainPage.bTerminarClicked Then -' P_CALATOLOS.Visible = True -' P_CALATOLOS.BringToFront -' lv_catalogos.Visible = True -' lv_promos.Visible = False -' Panel2.Visible = False -' clv_productos.AsView.Visible = False -' B4XPages.MainPage.bTerminarClicked = False -' Log(1) -' End If -' If ya_entro <> "1" Then -' Log("ya_entro <> 1") -' If BUSCA.Text <> "" Then BUSCA.Text ="" -' entro ="3" -' ya_entro = "1" : Log("ya_entro=1") -' lv_catalogos.Clear -' Sleep(100) -' lfila.Text = "CATALOGOS" -' p_productos.Height = Root.Height -' clv_productos.AsView.Visible = False -' P_CALATOLOS.Visible = True -' P_CALATOLOS.BringToFront -' lv_catalogos.Visible = True -' p_botonesVenta.Visible = False -' p_botonesVenta.Top = clv_productos.AsView.top + clv_productos.AsView.Height -' lv_promos.Visible = False -' Panel2.Visible = False -' Log(2) -' End If -' Dim label1 As Label -' label1 = lv_catalogos.SingleLineLayout.Label -' label1.TextSize = 18 -' label1.TextColor = Colors.White -' label1.Typeface = Typeface.CreateNew(Typeface.DEFAULT_BOLD, Typeface.STYLE_BOLD) -' lv_catalogos.Clear -' lv_catalogos.AddSingleLine("CATALOGO") -' P_CALATOLOS.Visible = True -' lv_catalogos.Visible = True -'' Panel1.BringToFront -' c = B4XPages.MainPage.skmt.ExecQuery($"select count(*) as hayPromos from ${Subs.traeTablaProds(tipo_venta)} where CAT_GP_TIPOPROD = 'PROMOS'"$) -' c.Position = 0 -' If c.GetInt("hayPromos") > 0 Then -' Log(">>>>>>>>>> " & Subs.traeCliente) -' If Not(Subs.traeCliente.StartsWith("N")) And Subs.traeCliente <> "0" Then -' lv_catalogos.AddSingleLine("PROMOS") 'No se venden promos a clientes nuevos. -' End If -' End If -' Subs.SetDivider(lv_catalogos, Colors.White, 2) -' 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 -' -'' llenaCatalogo(False) -'End Sub -' -'Sub lv_catalogos_ItemClick (Position As Int, Value As Object) -' clv_productos.AsView.Visible = False -' BUSCA.Text = "" -' Dim cliente As C_Cliente = B4XPages.GetPage("Cliente") -' Log($"value=${Value}"$) -' If Value = "PROMOS" And cliente.cuenta <> "N" Then -' entro = "3" -' marca = "PROMOS" -' tipo = "PROMOS" -' Else if Value = "PROMOS" And cliente.cuenta = "N" Then -' entro = "5" -' B4XPages.ShowPage("Cliente") -' End If -' If Value = "PROMOS" Then -'' If Subs.traemontoprod Then -'' c2 = B4XPages.MainPage.skmt.ExecQuery2("select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_PRECIO, CAT_GP_ALMACEN, CAT_GP_IMG from cat_gunaprod where CAT_GP_PRECIO > 0 AND CAT_GP_ALMACEN > 0 and CAT_GP_TIPOPROD = ? AND CAT_GP_TIPO = ? AND CAT_GP_SUBTIPO = ? AND CAT_GP_ID NOT IN (SELECT PE_PROID FROM PEDIDO WHERE PE_CLIENTE IN (Select cuenta from cuentaa) )", Array As String(Value, marca, tipo)) -'' Else -' Private cd As Cursor = B4XPages.MainPage.skmt.ExecQuery("SELECT HVD_CLIENTE FROM PROMO_ESP WHERE HVD_CLIENTE IN (SELECT CUENTA FROM CUENTAA)") -' If cd.RowCount = 0 Then -' LogColor("1- Promos" & " | " & marca & " | " & tipo, Colors.red) -' c2 = B4XPages.MainPage.skmt.ExecQuery2($"Select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_PRECIO, CAT_GP_ALMACEN, CAT_GP_IMG, cat_pa_bsegmenta, cat_pa_segmentav from ${Subs.traeTablaProds(tipo_venta)} where CAT_GP_PRECIO > 0 And CAT_GP_ALMACEN > 0 And CAT_GP_TIPOPROD = ? AND CAT_GP_ID NOT IN (SELECT DISTINCT CAT_PE_IDPROMO FROM CAT_PROMO_ESP) AND CAT_GP_TIPO = ? AND CAT_GP_SUBTIPO = ? AND CAT_GP_ID NOT IN (SELECT PE_PROID FROM PEDIDO WHERE PE_CLIENTE IN (Select cuenta from cuentaa))"$, Array As String(Value, marca, tipo)) -' Else If cd.RowCount > 0 Then -' LogColor("2- Promos" & " | " & marca & " | " & tipo, Colors.red) -' c2 = B4XPages.MainPage.skmt.ExecQuery2($"Select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_PRECIO, CAT_GP_ALMACEN, CAT_GP_IMG, cat_pa_bsegmenta, cat_pa_segmentav from ${Subs.traeTablaProds(tipo_venta)} where CAT_GP_PRECIO > 0 And CAT_GP_ALMACEN > 0 And CAT_GP_TIPOPROD = ? and CAT_GP_ID <> 'PRO2265' AND CAT_GP_ID NOT IN (SELECT DISTINCT CAT_PE_IDPROMO FROM CAT_PROMO_ESP) AND CAT_GP_TIPO = ? AND CAT_GP_SUBTIPO = ? AND CAT_GP_ID NOT IN (SELECT PE_PROID FROM PEDIDO WHERE PE_CLIENTE IN (Select cuenta from cuentaa))"$, Array As String(Value, marca, tipo)) -' End If -'' End If -' Else -' LogColor("Catalogo", Colors.red) -' c2=B4XPages.MainPage.skmt.ExecQuery($"select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_PRECIO, CAT_GP_ALMACEN, CAT_GP_IMG, CAT_GP_TIPOPROD, CAT_GP_INICIATIVA from ${Subs.traeTablaProds(tipo_venta)} where CAT_GP_PRECIO > 0 AND CAT_GP_ALMACEN > 0 and CAT_GP_TIPOPROD <> 'PROMOS'"$) -' End If -' If Value = "CATALOGO" Then -' lv_catalogos.Visible = False -' P_CALATOLOS.Visible = False -' lv_promos.Visible = False -' Panel2.Visible = False -'' lv_catalogos.Clear -' lfila.text = "CATALOGO" -'' Dim ins As InputStream -'' Dim bmp As Bitmap -'' Dim jpeg() As Byte -' Log("PGS") -' ProgressDialogShow("Cargando catalogo ...") -' Sleep(100) -' Private inicioContador As String = DateTime.Now -' llenaCatalogo(False) -' clv_productos.AsView.Visible = True -' Log("PGH") -' LogColor("TIEMPO DE PROCESO DEL CATALOGO: " & ((DateTime.Now-inicioContador)/1000), Colors.Red) -' ProgressDialogHide -' c2.Close -' Else -' Log("--PROMOS--") -' clv_productos.AsView.Visible = False -' lv_promos.Visible = True -' Panel2.Visible = True -' lv_catalogos.Visible = False -' P_CALATOLOS.Visible = False -' lv_promos.Clear -' lv_promos.Height = Root.Height * 0.70 -' Panel2.Height = lv_promos.Height -' lv_promos.Width = Root.Width -' Panel2.Width = Root.Width -' Dim label1 As Label -' label1 = lv_promos.TwoLinesLayout.Label -' label1.TextSize = 20 -' label1.TextColor = Colors.White -' Dim label2 As Label -' label2 = lv_promos.TwoLinesLayout.SecondLabel -' label2.TextSize = 20 -' label2.TextColor = Colors.White -' Dim label13 As Label -' label13 = lv_promos.TwoLinesAndBitmap.Label -' label13.TextSize = 20 -' label13.TextColor = Colors.White -' Dim label14 As Label -' label14 = lv_promos.TwoLinesAndBitmap.SecondLabel -' label14.TextSize = 20 -' label14.TextColor = Colors.White -' -' -' -' label1.TextColor = Colors.White -' label1.Typeface = Typeface.CreateNew(Typeface.DEFAULT_BOLD, Typeface.STYLE_BOLD) -' label2.Typeface = Typeface.CreateNew(Typeface.DEFAULT_BOLD, Typeface.STYLE_BOLD) -' -' lfila.text = "PROMOS" -'' Dim ins As InputStream -'' Dim bmp As Bitmap -'' Dim jpeg() As Byte -' Private yaComproPRO2265 As Boolean = Subs.revisaPRO2265(Subs.traeCliente) -' Private yaComproPRO3054 As Boolean = Subs.revisaPRO3054(Subs.traeCliente) -' Private yaComproPRO3055 As Boolean = Subs.revisaPRO3055(Subs.traeCliente) -' Private tipoCliente = Subs.traeTipoCliente -' If c2.RowCount > 0 Then -' For i=0 To c2.RowCount - 1 -' c2.Position = i -' Private muestraPromo As Boolean = True -' Log($"SEGMENTADA: ${c2.GetString("CAT_PA_BSEGMENTA")}"$) -' If c2.GetInt("CAT_PA_BSEGMENTA") = 1 Then -' LogColor("####### PROMO SEGMENTADA ####", Colors.Blue) -' LogColor($"####### SEGV: ${c2.GetString("CAT_PA_SEGMENTAV")} ####"$, Colors.Blue) -' LogColor($"####### TIPOCLIE: ${tipoCliente} ####"$, Colors.Blue) -' LogColor($"####### ¿ENTRA?: ${c2.GetString("CAT_PA_SEGMENTAV").Contains(tipoCliente)} ####"$, Colors.Blue) -' If Not(c2.GetString("CAT_PA_SEGMENTAV").Contains(tipoCliente)) Then muestraPromo = False -' End If -'' jpeg = c2.GetBlob("CAT_GP_IMG") -'' ins.InitializeFromBytesArray(jpeg, 0, jpeg.Length) -'' bmp.Initialize2(ins) -'' ListView1.AddTwoLinesAndBitmap(c2.GetString("CAT_GP_NOMBRE"),"# " & c2.GetString("CAT_GP_ALMACEN") & " $ " & c2.GetString("CAT_GP_PRECIO"),bmp) -' Private tm As Map = Subs.procesaPromocion(c2.GetString("CAT_GP_ID"), Subs.traeCliente) -' Log($"TM=${tm}"$) -' If tm.Get("status") = "ok" Then 'Solo muestrala si hay producto. -' If yaComproPRO2265 And c2.GetString("CAT_GP_ID") = "PRO3015" Then ' Si la promo es la PRO3015 y ya compro la PRO2265, NO la mostramos. -' LogColor("Ya compro la PRO2265, ya no se muestra la PRO3015", Colors.Red) -' Else -' If (yaComproPRO3054 And c2.GetString("CAT_GP_ID") = "PRO3054") Or _ -' (yaComproPRO3055 And c2.GetString("CAT_GP_ID") = "PRO3055") Then ' Si la promo es la PRO3054 o PRO3055 y ya compro, NO la mostramos. -' LogColor("Ya compro prods de la PRO3054 o PRO3055 o es cliente nuevo, ya no se muestra.", Colors.Red) -' Else -' Log($"################################${CRLF} ${muestraPromo}${CRLF}################################"$) -' If muestraPromo Then 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 -' End If -' End If -' Next -' End If -' yaComproPRO2265 = False -' c2.Close -' label1.Height = 50dip -' label2.Height = 45dip -' label2.Top = label1.Height -' -' lv_promos.TwoLinesLayout.ItemHeight = 95dip -' Subs.SetDivider(lv_promos, Colors.White, 2) -' End If -' entro = "4" -'' Else If entro = "4" Then -'' Log("Entro = 4") -'' B4XPages.MainPage.skmt.ExecNonQuery("delete from PROID") -'' B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO PROID VALUES (?)", Array As Object(Value)) -'' Dim promos As C_Promos = B4XPages.GetPage("Promos") -'' promos.laPromo = Subs.traeProdIdDeBD.Get("id") -'' promos.elCliente = Subs.traeUsuarioDeBD -'' B4XPages.ShowPage("Promos") -'End Sub -' -'Sub lv_promos_ItemClick (Position As Int, Value As Object) -' clv_productos.AsView.Visible = False -' Dim cliente As C_Cliente = B4XPages.GetPage("Cliente") -'' Log($"Entro=${entro}, value=${Value}, cuenta=${cliente.cuenta}"$) -' LogColor("PROMOS CLIC", Colors.Magenta) -' If Value = "PROMOS" And cliente.cuenta <> "N" Then -' entro = "3" -' marca = "PROMOS" -' tipo = "PROMOS" -' Else if Value = "PROMOS" And cliente.cuenta = "N" Then -' entro = "5" -' B4XPages.ShowPage("Cliente") -' End If -' If entro = "3" Then -' LogColor("Promos YYY", Colors.red) -' c2=B4XPages.MainPage.skmt.ExecQuery2($"select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_PRECIO, CAT_GP_ALMACEN, CAT_GP_IMG from ${Subs.traeTablaProds(tipo_venta)} where CAT_GP_PRECIO > 0 AND CAT_GP_ALMACEN > 0 and CAT_GP_TIPOPROD = ? AND CAT_GP_TIPO = ? AND CAT_GP_SUBTIPO = ? AND CAT_GP_ID NOT IN (SELECT PE_PROID FROM PEDIDO WHERE PE_CLIENTE IN (Select cuenta from cuentaa) )"$, Array As String(Value, marca, tipo)) -' clv_productos.AsView.Visible = False -' lv_promos.Visible = True -' Panel2.Visible = True -' lv_catalogos.Visible = False -' P_CALATOLOS.Visible = False -' lv_promos.Clear -' Dim label1 As Label -' label1 = lv_promos.TwoLinesLayout.Label -' label1.TextSize = 13 -' label1.TextColor = Colors.Black -' Dim label2 As Label -' label2 = lv_promos.TwoLinesLayout.SecondLabel -' label2.TextSize = 13 -' label2.TextColor = Colors.Black -' Dim label13 As Label -' label13 = lv_promos.TwoLinesAndBitmap.Label -' label13.TextSize = 13 -' label13.TextColor = Colors.Black -' Dim label14 As Label -' label14 = lv_promos.TwoLinesAndBitmap.SecondLabel -' label14.TextSize = 13 -' label14.TextColor = Colors.Black -' lfila.text = "PROMOS" -'' Dim ins As InputStream -'' Dim bmp As Bitmap -'' Dim jpeg() As Byte -' If c2.RowCount > 0 Then -' For i=0 To c2.RowCount -1 -' c2.Position=i -'' jpeg = c2.GetBlob("CAT_GP_IMG") -'' ins.InitializeFromBytesArray(jpeg, 0, jpeg.Length) -'' bmp.Initialize2(ins) -'' ListView1.AddTwoLinesAndBitmap(c2.GetString("CAT_GP_NOMBRE"),"# " & c2.GetString("CAT_GP_ALMACEN") & " $ " & c2.GetString("CAT_GP_PRECIO"),bmp) -' -' Private tm As Map = Subs.procesaPromocion(c2.GetString("CAT_GP_ID"), Subs.traeCliente) -' If tm.Get("status") = "ok" Then 'Solo muestrala si hay producto. -' 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 -' End If -' c2.Close -' -' entro = "4" -' Else If entro = "4" Then -' Log("Entro = 4") -' B4XPages.MainPage.skmt.ExecNonQuery("delete from PROID") -' B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO PROID VALUES (?)", Array As Object(Value)) -' Dim promos As C_Promos = B4XPages.GetPage("Promos") -' promos.laPromo = Subs.traePromoIdDeBD.Get("id") -' Log(promos.laPromo) -' promos.elCliente = Subs.traeUsuarioDeBD -' B4XPages.ShowPage("Promos") -' lv_promos.Visible = False -' End If -'End Sub -' -'Sub llenaCatalogo(limpiar As Boolean) -' Log("LlenaCatalogo") -' If limpiar Then clv_productos.Clear -' Private c2 As Cursor -' c2 = B4XPages.MainPage.skmt.ExecQuery($"select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_PRECIO, CAT_GP_ALMACEN, CAT_GP_IMG, CAT_GP_TIPOPROD, CAT_GP_INICIATIVA from ${Subs.traeTablaProds(tipo_venta)} where CAT_GP_PRECIO > 0 AND CAT_GP_ALMACEN > 0 and CAT_GP_TIPOPROD <> 'PROMOS' -' order by -' Case CAT_GP_TIPOPROD when 'PRIORITARIO' THEN 0 -' WHEN 'ESTRATEGICO' THEN 1 -' WHEN 'COMPLEMENTARIO' then 2 -' Else 3 -' End, CAT_GP_NOMBRE"$) -' -'' Select cAT_GP_ID, cat_gp_tipoprod from cat_gunaprod order by -'' Case CAT_GP_TIPOPROD -'' When 'PRIORITARIO' THEN 0 -'' WHEN 'ESTRATEGICO' THEN 1 -'' WHEN 'CATALOGO REGULAR' then 2 -'' Else 3 -'' End -' -' Private bgColor, textColor As Int -' If c2.RowCount > 0 And clv_productos.Size <> c2.RowCount Then -' clv_productos.Clear : Log("limpiamos productos") -' For i=0 To c2.RowCount -1 -' c2.Position=i -' If c2.GetString("CAT_GP_TIPOPROD") = "PRIORITARIO" Then -' bgColor = Colors.RGB(255, 212, 163) 'naranja -' Else If c2.GetString("CAT_GP_TIPOPROD") = "COMPLEMENTARIO" Then -' bgColor = Colors.RGB(177, 200, 249)'azul -' else If c2.GetString("CAT_GP_TIPOPROD") = "CATALOGO REGULAR" Then -' bgColor = Colors.White -' else If c2.GetString("CAT_GP_TIPOPROD") = "ESTRATEGICO" Then -' bgColor = Colors.RGB(241, 255, 163) 'amarillo -' End If -' textColor = Colors.Black -' If c2.GetString("CAT_GP_ID") <> "GUN141" And c2.GetString("CAT_GP_ID") <> "GUN142" Then ' No mostramos los productos del Plan promocional Act II Cajitas (Conagra) -'' Log(c2.GetString("CAT_GP_ID")) -' clv_productos.Add(CreateListItem(c2.GetString("CAT_GP_NOMBRE"), c2.GetString("CAT_GP_PRECIO"), c2.GetString("CAT_GP_ALMACEN"), clv_productos.AsView.Width, 50dip, bmp, c2.GetString("CAT_GP_ID"), bgColor, textColor), c2.GetString("CAT_GP_NOMBRE")) -' End If -' Next -' End If -' ponProdsEnCero -' c2.Close -'End Sub -' -'Private Sub B4XPage_CloseRequest As ResumableSub -'' BACK key pressed -'' Return True To close, False To cancel -'' ya_entro ="0" : Log("ya_entro=0") -' If lv_catalogos.visible = True Then -' B4XPages.ShowPage("Cliente") -' Return False -' ELSE If l_info.Visible Then -' l_info.Visible = False -' Return False -' else if lv_promos.visible Then -' lv_promos.Visible = False -' Panel2.Visible = False -' P_CALATOLOS.Visible = True -' P_CALATOLOS.BringToFront -' lv_catalogos.Visible = True -' p_botonesVenta.Visible = False -' l_total.Visible = False -' l_totProds.Visible = False -' Return False -' else if clv_productos.AsView.Visible Then -' clv_productos.AsView.Visible = False -' P_CALATOLOS.Visible = True -' P_CALATOLOS.BringToFront -' lv_catalogos.Visible = True -' p_botonesVenta.Visible = False -' l_total.Visible = False -' l_totProds.Visible = False -' Return False -' else If entro = "4" Then -' entro = "3" -' B4XPage_Appear -' Return True -' Else If entro = "3" Then -' B4XPages.ShowPage("Cliente") -' Return False -' Else -' B4XPages.ShowPage("Cliente") -' Return False -' End If -'End Sub -' -'Sub BUSCA_TextChanged (Old As String, New As String) -' q_buscar = "%" & BUSCA.Text & "%" -' Log($"old=${Old}, new=|${New}|"$) -' Private bgColor, textColor As Int -' Private se As Cursor -' If New.Length > 2 Or forzarbusqueda Then -' forzarbusqueda = False -' Log("searching") -' se = B4XPages.MainPage.skmt.ExecQuery2($"select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_ALMACEN, CAT_GP_PRECIO, CAT_GP_TIPOPROD, CAT_GP_IMG from ${Subs.traeTablaProds(tipo_venta)} where CAT_GP_PRECIO > 0 AND CAT_GP_ALMACEN > 0 and CAT_GP_NOMBRE like ? and CAT_GP_CLASIF <> ?"$, Array As String(q_buscar,"PROMOS")) ' order by CAT_GP_NOMBRE asc -'' lv_catalogos.Clear -' lv_catalogos.Visible = False -' P_CALATOLOS.Visible = False -' lv_promos.Visible = False -' Panel2.Visible = False -' clv_productos.AsView.Visible = True -' Log(se.RowCount) -' If se.RowCount > 0 Then -' If se.RowCount > 50 Then ProgressDialogShow("Buscando productos") -' Sleep(100) -' clv_productos.Clear -' For i = 0 To se.RowCount -1 -' se.Position=i -' If se.GetString("CAT_GP_TIPOPROD") = "PRIORITARIO" Then -' bgColor = Colors.RGB(255, 212, 163) 'naranja -' Else If se.GetString("CAT_GP_TIPOPROD") = "COMPLEMENTARIO" Then -' bgColor = Colors.RGB(177, 200, 249)'azul -' else If se.GetString("CAT_GP_TIPOPROD") = "CATALOGO REGULAR" Then -' bgColor = Colors.White -' else If se.GetString("CAT_GP_TIPOPROD") = "ESTRATEGICO" Then -' bgColor = Colors.RGB(241, 255, 163) 'amarillo -' End If -' textColor = Colors.Black -' If se.GetString("CAT_GP_ID") <> "GUN141" And se.GetString("CAT_GP_ID") <> "GUN142" Then ' No mostramos los productos del Plan promocional Act II Cajitas (Conagra) -'' Log(c2.GetString("CAT_GP_ID")) -' clv_productos.Add(CreateListItem(se.GetString("CAT_GP_NOMBRE"), se.GetString("CAT_GP_PRECIO"), se.GetString("CAT_GP_ALMACEN"), clv_productos.AsView.Width, 50dip, bmp, se.GetString("CAT_GP_ID"), bgColor, textColor), se.GetString("CAT_GP_NOMBRE")) -' End If -' Next -' If se.RowCount > 50 Then ProgressDialogHide -' ponProdsEnCero -' End If -' se.Close -' entro= "4" -' End If -'End Sub -' -'Sub b_QR_Click -' If ciclo = 1 Then -' ciclo = 2 -'' b_qr.Visible = False -' ya_entro = "0" -' 'entro = 3 -' B4XPage_Appear -' else if ciclo = 2 Then -' ciclo = 3 -' ' ya_entro = 0 -' ya_entro = "0" -' B4XPage_Appear -'' b_qr.Visible = False -' else if ciclo = 3 Then -' ciclo = 4 -' ' ya_entro = 0 -' ya_entro = "0" -' B4XPage_Appear -'' b_qr.Visible = False -' else if ciclo = 4 Then -' ciclo = 5 -' ' ya_entro = 0 -' ya_entro = "0" -' B4XPage_Appear -'' b_qr.Visible = False -' else if ciclo = 5 Then -' ciclo = 1 -' ' ya_entro = 0 -' ya_entro = "0" -' B4XPage_Appear -'' b_qr.Visible = False -' End If -'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 -' Dim p As B4XView = xui.CreatePanel("") -' p.SetLayoutAnimated(0, 0, 0, Width, Height) -' p.LoadLayout("prodItem") -' p_prods.Color = bc -' l_prodX.TextColor = tc -' l_prodX.Text = Text&CRLF&"# " & inv & " $ " & precioU -' l_prodX.Tag = $"ID: ${prodId}${CRLF}${Text}${CRLF}Precio: $$1.2{precioU}${CRLF}Inv: ${inv} pzs"$ -'' l_pCant.Text = 0 -' l_pCant.Tag = precioU&"|"&inv&"|"&prodId -' et_pCant.Tag = precioU&"|"&inv&"|"&prodId -'' Log(l_pCant.Tag) -' et_pCant.BringToFront -'' i_prod.Bitmap = img -' Return p -'End Sub -' -'Sub b_prodMenos_Click -' etCantHasFocus = False -' LogColor("b_prodMenos_Click", Colors.Magenta) -' Dim index As Int = clv_productos.GetItemFromView(Sender) -' Dim pnl0 As B4XView = clv_productos.GetPanel(index) -' Dim pnl As B4XView = pnl0.GetView(0) -' Dim laCant As B4XView = pnl.GetView(2).GetView(3) -' Dim esteTag As List = Regex.Split("\|", laCant.Tag) -'' Log($"precio|stock:${laCant.tag}"$) -'' laCant.Text = laCant.text.Replace (",", "") -' If laCant.Text = "" Then laCant.Text = 0 -' laCant.Text = NumberFormat2(laCant.Text - 1, 1, 0, 0, False) -' If laCant.Text < 0 Then laCant.Text = 0 -' Subs.actualizaProducto(Subs.traeAlmacen, esteTag.Get(0), laCant.Text, Subs.traeProdNombre(esteTag.Get(2)), esteTag.Get(2), Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaActual, 0, B4XPages.MainPage.tipo_venta) -'' Dim chk As B4XView = pnl.GetView(2) -' cuentaProds -'End Sub -' -'Sub b_prodMas_Click -' etCantHasFocus = False -' LogColor("b_prodMas_Click", Colors.Magenta) -' Dim index As Int = clv_productos.GetItemFromView(Sender) -' Dim pnl0 As B4XView = clv_productos.GetPanel(index) -' Dim pnl As B4XView = pnl0.GetView(0) -' Dim laCant As B4XView = pnl.GetView(2).GetView(3) -'' laCant.Text = laCant.text.Replace (",", "") -'' Log($"precio|stock:${laCant.tag}"$) -'' Log($"Indice: ${index}, cant:${laCant.Text+1}, precioU: ${laCant.tag}"$) -' Dim esteTag As List = Regex.Split("\|", laCant.Tag) -'' LogColor(laCant.Tag&"|"&esteTag, Colors.Blue) -' If laCant.Text = "" Then laCant.Text = 0 -'' Log(laCant.Text + 1 <= esteTag.get(1)) -' If laCant.Text + 1 <= esteTag.get(1) Then -' laCant.Text = NumberFormat2(laCant.Text + 1, 1, 0, 0, False) -'' Subs.guardaProducto(Subs.traeAlmacen, esteTag.Get(0), laCant.Text + 1, Subs.traeProdNombre(esteTag.Get(2)), esteTag.Get(2), Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, Subs.traeRuta, 0, B4XPages.MainPage.tipo_venta) -' Subs.actualizaProducto(Subs.traeAlmacen, esteTag.Get(0), laCant.Text, Subs.traeProdNombre(esteTag.Get(2)), esteTag.Get(2), Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaActual, 0, B4XPages.MainPage.tipo_venta) -' cuentaProds -' End If -'' Log($"Total Prods: ${totalProds}, Total Compra: $$1.2{totalCompra}"$) -'End Sub -' -'Private Sub et_pCant_TextChanged (Old As String, New As String) -'' LogColor($"txt changed: ${Old}|${New}, hasfocus=${etCantHasFocus}"$,Colors.Magenta) -'' Try -' Dim index As Int = clv_productos.GetItemFromView(Sender) -' Dim pnl0 As B4XView = clv_productos.GetPanel(index) -' Dim pnl As B4XView = pnl0.GetView(0) -' Dim laCant As B4XView = pnl.GetView(2).GetView(3) -' Dim esteTag As List = Regex.Split("\|", laCant.Tag) -'' Log($"${esteTag}, ${laCant.text}"$) -' If New = "" Then -' laCant.Text = "0" -' New = "0" -' End If -' If esteTag.Get(1) < New Then laCant.Text = esteTag.Get(1) -' If Not(Old = "0" And New = "") And etCantHasFocus Then -'' Log(esteTag) -' Subs.actualizaProducto(Subs.traeAlmacen, esteTag.Get(0), laCant.Text, Subs.traeProdNombre(esteTag.Get(2)), esteTag.Get(2), Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaActual, 0, B4XPages.MainPage.tipo_venta) -' cuentaProds -' End If -'' Catch -'' Log(LastException) -'' End Try -'End Sub -' -'Sub et_pCant_Click -' Log("et_pCant clicked") -' etCantHasFocus = True ' Si se cambia la cantidad con los botnes y luego se regresa a editar la cantidad, el "focus" no cambia, con esto si forza el etCantHasFocus a verdadero. -'End Sub -' -'Private Sub et_pCant_FocusChanged (HasFocus As Boolean) -' LogColor($"focus changed=${HasFocus}"$, Colors.Magenta) -' etCantHasFocus = HasFocus -' If HasFocus Then -' Dim index As Int = clv_productos.GetItemFromView(Sender) -' Dim pnl0 As B4XView = clv_productos.GetPanel(index) -' Dim pnl As B4XView = pnl0.GetView(0) -' Dim laCant As B4XView = pnl.GetView(2).GetView(3) -' Log($"LaCant = ${laCant.text}"$) -' If laCant.Text = "" Then laCant.Text = "0" -' Dim esteTag As List = Regex.Split("\|", laCant.Tag) -' Log(esteTag) -' Log(laCant.text) -' Subs.actualizaProducto(Subs.traeAlmacen, esteTag.Get(0), laCant.Text, Subs.traeProdNombre(esteTag.Get(2)), esteTag.Get(2), Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaActual, 0, B4XPages.MainPage.tipo_venta) -' cuentaProds -' End If -'End Sub -' -'Sub cuentaProds -' Log("-= CUENTAPRODS =-") -'' totalProds = 0 -'' totalCompra = 0 -' '' Private inicioContador As String = DateTime.Now -'' For i = 0 To clv_productos.GetSize - 1 -'' Private p0 As B4XView = clv_productos.GetPanel(i) -'' Private p As B4XView = p0.GetView(0) -'' Private cant1 As B4XView = p.GetView(2).GetView(3) -'' If cant1.Text = "" Then cant1.Text = 0 -' '' Private cant2 As Int = 0 -' '' If cant1.Text <> "" Then cant2 = cant1.Text -' '' Private laCant As Int = cant1.text.Replace (",", "") -' '' cant1.Text = cant1.text -' '' cant1.Text = laCant -'' Log($"${totalProds}, ${cant1.text}, ${cant1.text}"$) -'' totalProds = totalProds + cant1.text -'' Private esteTag As List = Regex.Split("\|", cant1.Tag) -'' If cant1.Text > esteTag.Get(1) Then -'' Log(123) -'' cant1.Text = esteTag.Get(1) -'' End If -'' If cant1.Text > 0 Then -'' Log(esteTag.Get(2) & "|" & cant1.Text) -'' totalCompra = totalCompra + (esteTag.get(0) * cant1.text) -'' Log($"Cant: ${cant1.Text}, Suma: ${totalCompra}"$) -'' Private m As Map -'' m=CreateMap("cant":cant1.Text, "precio":esteTag.get(0)) -'' prodsMap.Put(esteTag.Get(2), m) -'' Log("-= Agregamos producto =-") -'' Else -'' prodsMap.Remove(esteTag.Get(2)) -'' Log("-= Quitamos producto =-") -'' End If -'' l_total.Visible = True -'' l_totProds.Visible = True -'' l_total.Text = $"Total: $$1.2{totalCompra}"$ -'' l_totProds.text = $"Prods: ${totalProds}"$ -'' Next -'' LogColor("TIEMPO cuentaProds -=" & ((DateTime.Now-inicioContador)/1000), Colors.Red) -'' Subs.revisaPromoProcterPRO3009(prodsMap) -'' LogColor(prodsMap, Colors.blue) -' If Subs.hayPedido Then p_botonesVenta.Visible = True -'' Log($"Total Prods: ${totalProds}, Total Compra: $$1.2{totalCompra}"$) -'End Sub -' -'Sub ponProdsEnCero -' Private inicioContador As String = DateTime.Now -' Private prodsVendidosList As List -' prodsVendidosList.Initialize -' Private pr As Cursor = B4XPages.MainPage.skmt.ExecQuery($"Select PE_PROID from PEDIDO where PE_CLIENTE='${Subs.traeCliente}'"$) -' If pr.RowCount > 0 Then -' pr.Position = 0 -' For i = 0 To pr.RowCount - 1 -' pr.Position = i -' prodsVendidosList.Add(pr.GetString("PE_PROID")) -' Next -' End If -' pr.Close -' Log("prodsVendidos="&prodsVendidosList) -' For i = 0 To clv_productos.GetSize - 1 -' Private p0 As B4XView = clv_productos.GetPanel(i) -' Private lVendido As B4XView = p0.GetView(1) 'Label l_vendido -' Private pProds As B4XView = p0.GetView(0) 'Panel p_prods -' Private cant1 As B4XView = pProds.GetView(2).GetView(3) -' Private x() As String = Regex.Split("\|", cant1.tag) 'El ultimo dato de cant1.tag es el id del producto. -' If prodsVendidosList.IndexOf(x(x.Length-1)) > -1 And Subs.revisaProdFueraDePromo(x(x.Length-1)) Then 'Revisamos si el producto es en la tabla "PEDIDO" y si forma parte de una promoción. -' lVendido.Visible = True -' pProds.GetView(2).As(Panel).Visible = False -' Else -' lVendido.Visible = False -' pProds.GetView(2).As(Panel).Visible = True -' End If -' cant1.Text = 0 -' Next -' LogColor("TIEMPO DE PROCESO DEL PONEMOSENCERO: " & ((DateTime.Now-inicioContador)/1000), Colors.Red) -' Log("Ponems en CERO") -'End Sub -' -'Private Sub b_terminar1_Click -' Log("b_terminar1_Click") -'' cuentaProds -'' Private p1 As Map -'' For Each p As String In prodsMap.Keys -'' p1 = prodsMap.Get(p) -'' Log(p & "|" & p1) -'' Private pn As String = Subs.traeProdNombre(p) -'' Subs.guardaProducto(Subs.traeAlmacen, p1.Get("precio"), p1.Get("cant"), pn, p, Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, Subs.traeRuta, 0, B4XPages.MainPage.tipo_venta) -'' Next -' etCantHasFocus = False -' ya_entro = "0" : Log("ya_entro=1") -' lv_promos.Visible = False -' Panel2.Visible = False -' clv_productos.AsView.Visible = False -' P_CALATOLOS.Visible = True -' P_CALATOLOS.BringToFront -' lv_catalogos.Visible = True -' Log("Terminar") -'' clv_productos.Clear -' ponProdsEnCero -' prodsMap.Initialize -' B4XPages.ShowPage("Cliente") -'End Sub -' - -' -'Private Sub b_continuar_Click -' Log("b_continuar_Click") -'' cuentaProds -'' Private p1 As Map -'' For Each p As String In prodsMap.Keys -'' p1 = prodsMap.Get(p) -'' Log(p & "|" & p1) -'' Private pn As String = Subs.traeProdNombre(p) -'' If pn <> "N/A" Then -'' Subs.guardaProducto(Subs.traeAlmacen, p1.Get("precio"), p1.Get("cant"), pn, p, Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, Subs.traeRuta, 0, B4XPages.MainPage.tipo_venta) -'' End If -'' Next -' etCantHasFocus = False -' Log("promos-inv, prods-inv, cat-vis") -' lv_promos.Visible = False -' Panel2.Visible = False -' P_CALATOLOS.Visible = True -' Subs.centraPanel(P_CALATOLOS,P_CALATOLOS.Width) -' P_CALATOLOS.BringToFront -' lv_catalogos.Visible = True -' clv_productos.AsView.Visible = False -' -'' clv_productos.Clear -' ponProdsEnCero -' prodsMap.Initialize -' Log("Continuar") -'' Activity_KeyPress(KeyCodes.KEYCODE_BACK) -'End Sub -' -'Private Sub l_prodX_LongClick -' Log("longclic = "&Sender.as(Label).tag) -' l_info.Text = Sender.as(Label).tag -' l_info.Visible = True -'End Sub -' -'Private Sub l_info_Click -' l_info.Visible = False -'End Sub -' -'Private Sub lv_promos_ItemLongClick (Position As Int, Value As Object) -' Log("Promo longclic = "&Value) -' Private id As String = "" -' -' Dim c As Cursor = B4XPages.MainPage.skmt.ExecQuery($"select CAT_GP_ID from ${Subs.traeTablaProds(tipo_venta)} where CAT_GP_TIPO = 'PROMOS' and CAT_GP_NOMBRE = '${Value}'"$) -' If c.RowCount > 0 Then -' c.Position = 0 -' id = c.GetString("CAT_GP_ID") -' Log("ENTRE") -' End If -' -' l_info.Text = $"ID: ${id}${CRLF}${Value}"$ -' l_info.Visible = True -'End Sub -' -'Private Sub b_buscar_Click -' forzarbusqueda = True -' BUSCA_TextChanged("","") -'End Sub -' -'' almacenes: 1, 5, 25, 2, 4, 38, 64, 3, 16, 14, 12, 22, 32 -'' Basicas GUN003, GUN002, GUN001 -'' Sabores GUN003, GUN005, GUN004, GUN050 -'' Basicas PRO3054, GUN141 -'' Sabores PRO3055, GUN142 - - - Sub Class_Globals Private Root As B4XView 'ignore Private xui As XUI 'ignore @@ -919,6 +95,19 @@ Sub Class_Globals Dim Panel2 As Panel Private p_botMasMenc As Panel + Private p_promodesc As Panel + Private l_promodesc As Label + Private b_okpromodesc As Button + Private p_devo As Panel + Private l_proddev As Label + Private b_devmas As Button + Private l_cantdev As Label + Private b_devmenos As Button + Private b_acep_dev As Button + + + Dim preciodev As Double + Dim nombredev As String End Sub 'You can add more parameters here. @@ -1098,6 +287,17 @@ Sub lv_catalogos_ItemClick (Position As Int, Value As Object) If clv_prods_ll.Size = 0 Then LlenaProdsLL(Null) clv_prods_ll.AsView.Visible = True If hayPedido Then p_botonesVenta.Visible = True 'Si ya hay pedido, entonces mostramos los botones. + + + c = B4XPages.MainPage.skmt.ExecQuery("select IFNULL(sum(PE_CANT),0) as PC_NOART, IFNULL(sum (PE_COSTO_TOT),0) as PC_MONTO from PEDIDO where PE_CLIENTE in (Select CUENTA from cuentaa) AND PE_PROID NOT IN (SELECT CAT_PA_ID FROM PROMOS_COMP ) ") + If c.RowCount > 0 Then + C.Position = 0 + Log($"registros: ${c.RowCount}, arts: ${c.GetString("PC_NOART")}, monto:${c.GetString("PC_MONTO")}"$) + l_totProds.Text = "Prods: " & c.GetString("PC_NOART") + l_total.Text = "Total: $" & c.GetString("PC_MONTO") + If l_total.Text = Null Or l_total.Text = "null" Or l_total.Text = "" Then l_total.Text = "Total: $0.0" + If l_totProds.Text = Null Or l_totProds.Text = "null" Or l_totProds.Text = "" Then l_totProds.Text = "Prods: 0" + End If Else clv_prods_ll.AsView.Visible = False lv_promos.Visible = True @@ -1436,9 +636,11 @@ Private Sub B4XPage_CloseRequest As ResumableSub ' Return True To close, False To cancel If l_info.Visible Then l_info.Visible = False + Log("AQUI") Return False else if p_vistaPreviaTrans.Visible Then p_vistaPreviaTrans.Visible = False + Log("AQUI") Return False else if lv_promos.visible Then lv_promos.Visible = False @@ -1446,6 +648,7 @@ Private Sub B4XPage_CloseRequest As ResumableSub p_botonesVenta.Visible = False l_total.Visible = False l_totProds.Visible = False + Log("AQUI") Return False else if clv_prods_ll.AsView.Visible Then lfila.text = "CATALOGO" @@ -1455,6 +658,7 @@ Private Sub B4XPage_CloseRequest As ResumableSub l_total.Visible = False l_totProds.Visible = False lv_catalogos.Visible = True + Log("AQUI") Return False ' else if lv_subtipo.Visible Then ' lfila.text = "TIPO" @@ -1467,14 +671,18 @@ Private Sub B4XPage_CloseRequest As ResumableSub ' lv_catalogos.Visible = True ' Return False else If entro = "4" Then - entro = "3" - B4XPage_Appear +' entro = "3" + Log("AQUI") +' B4XPage_Appear + B4XPages.ShowPage("Cliente") Return True Else If entro = "3" Then B4XPages.ShowPage("Cliente") + Log("AQUI") Return False Else B4XPages.ShowPage("Cliente") + Log("AQUI") Return False End If End Sub @@ -1550,7 +758,7 @@ Sub b_prodMenos_Click Private tmpMap As Map = CreateMap("precio":precio, "cant":laCant.Text, "almacen":Subs.traeAlmacen) Private nombreX As String = Subs.traeProdNombre(id) LogColor(tmpMap1,Colors.Magenta) -' prodsMap.Put(id, tmpMap) + prodsMap.Put(id, tmpMap) If laCant.Text = 0 Then prodsMap.Remove(id) ' If laCant.Text = 0 Then @@ -1566,7 +774,7 @@ Sub b_prodMenos_Click LogColor("prodsMap="&prodsMap, Colors.blue) ' (Subs.traeAlmacen, p1.Get("precio"), p1.Get("cant"), pn, p, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta) Log($"${Subs.traeAlmacen}, ${precio}, ${laCant.text}, ${Subs.traeProdNombre(id)}, ${id}, ${clienteId}"$) - Subs.actualizaProducto(Subs.traeAlmacen, precio, laCant.Text, Subs.traeProdNombre(id), id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta) + Subs.actualizaProducto(Subs.traeAlmacen, precio, laCant.Text, Subs.traeProdNombre(id), id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta,0) cuentaProds LogColor("prodsMap="&prodsMap, Colors.blue) Log($"Total Prods: ${totalProds}, Total Compra: $$1.2{totalCompra}"$) @@ -1620,6 +828,48 @@ Sub b_prodMenos_Click '' p_botMasMenc.Visible = False ' End If 'fin aparecer parte de cajas + + c = B4XPages.MainPage.skmt.ExecQuery("select IFNULL(sum(PE_CANT),0) as PC_NOART, IFNULL(sum (PE_COSTO_TOT),0) as PC_MONTO from PEDIDO where PE_CLIENTE in (Select CUENTA from cuentaa) AND PE_PROID NOT IN (SELECT CAT_PA_ID FROM PROMOS_COMP ) ") + + + If c.RowCount > 0 Then + C.Position = 0 + Log($"registros: ${c.RowCount}, arts: ${c.GetString("PC_NOART")}, monto:${c.GetString("PC_MONTO")}"$) + l_totProds.Text = "Prods: " & c.GetString("PC_NOART") + l_total.Text = "Total: $" & c.GetString("PC_MONTO") + If l_total.Text = Null Or l_total.Text = "null" Or l_total.Text = "" Then l_total.Text = "Total: $0.0" + If l_totProds.Text = Null Or l_totProds.Text = "null" Or l_totProds.Text = "" Then l_totProds.Text = "Prods: 0" + + + End If + + + Dim c7 As Cursor = B4XPages.MainPage.skmt.ExecQuery("select IFNULL(sum(PE_CANT),0) as PC_NOART, IFNULL(sum (PE_COSTO_TOT),0) as PC_MONTO from PEDIDO where PE_CLIENTE in (Select CUENTA from cuentaa) AND PE_PROID NOT IN (SELECT CAT_PA_ID FROM PROMOS_COMP ) and PE_CEDIS = 'DUR'") + If c7.RowCount > 0 Then + c7.Position = 0 + + Dim totaldev As Double = c7.GetString("PC_MONTO") + + End If + + Dim c6 As Cursor = B4XPages.MainPage.skmt.ExecQuery("select IFNULL(sum(PE_CANT),0) as PC_NOART, IFNULL(sum (PE_COSTO_TOT),0) as PC_MONTO from PEDIDO where PE_CLIENTE in (Select CUENTA from cuentaa) AND PE_PROID NOT IN (SELECT CAT_PA_ID FROM PROMOS_COMP ) and PE_CEDIS <> 'DUR' ") + If c6.RowCount > 0 Then + c6.Position = 0 + + Dim totalprod As Double = c6.GetString("PC_MONTO") + + End If + + Log(totaldev &" " & totalprod) + If totalprod = 0 Then + B4XPages.MainPage.skmt.ExecNonQuery("delete from pedido where PE_CLIENTE In (select cuenta from cuentaa) AND PE_CEDIS = 'DUR'") + MsgboxAsync("Las devloluciones se elimanron por que no hay venta.","Atención") + Else If totalprod < (totaldev * -1) Then + B4XPages.MainPage.skmt.ExecNonQuery("delete from pedido where PE_CLIENTE In (select cuenta from cuentaa) AND PE_CEDIS = 'DUR'") + MsgboxAsync("Las devloluciones se elimanron por que el monto de la devolucion es mayor al monto de la venta.","Atención") + End If + + ' LogColor("InvTotal PRODMAS: " & invTotal, Colors.Red) End Sub @@ -1686,7 +936,7 @@ Sub b_prodMas_Click ' Else ' totalcajasmaspiezas = laCant.Text ' End If - Subs.actualizaProducto( Subs.traeAlmacen, precio, laCant.Text, Subs.traeProdNombre(id), id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta) + Subs.actualizaProducto( Subs.traeAlmacen, precio, laCant.Text, Subs.traeProdNombre(id), id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta,0) cuentaProds ' Log($"Total Prods: ${totalProds}, Total Compra: $$1.2{totalCompra}"$) ' If 1 = 1 Then @@ -1709,6 +959,16 @@ Sub b_prodMas_Click '' Log(lProdX.Text) ' End If invTotal = totalcajasmaspiezas + Subs.traeinventario(id) + + c = B4XPages.MainPage.skmt.ExecQuery("select IFNULL(sum(PE_CANT),0) as PC_NOART, IFNULL(sum (PE_COSTO_TOT),0) as PC_MONTO from PEDIDO where PE_CLIENTE in (Select CUENTA from cuentaa) AND PE_PROID NOT IN (SELECT CAT_PA_ID FROM PROMOS_COMP ) ") + If c.RowCount > 0 Then + C.Position = 0 + Log($"registros: ${c.RowCount}, arts: ${c.GetString("PC_NOART")}, monto:${c.GetString("PC_MONTO")}"$) + l_totProds.Text = "Prods: " & c.GetString("PC_NOART") + l_total.Text = "Total: $" & c.GetString("PC_MONTO") + If l_total.Text = Null Or l_total.Text = "null" Or l_total.Text = "" Or l_total.Text = "Total: $null" Then l_total.Text = "Total: $0.0" + If l_totProds.Text = Null Or l_totProds.Text = "null" Or l_totProds.Text = "" Or l_totProds.Text = "Prods: null" Then l_totProds.Text = "Prods: 0" + End If ' LogColor("InvTotal PRODMAS: " & invTotal, Colors.Red) End Sub @@ -1780,7 +1040,7 @@ Private Sub et_pCant_TextChanged (Old As String, New As String) ' End If If Not(Old = "0" And New = "") And laCant.Text <> Null And laCant.Text <> "" And etCantHasFocus Then Log("actualizamos producto") - Subs.actualizaProducto(Subs.traeAlmacen, precio, laCant.Text, Subs.traeProdNombre(id), id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta) + Subs.actualizaProducto(Subs.traeAlmacen, precio, laCant.Text, Subs.traeProdNombre(id), id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta,0) cuentaProds End If @@ -1826,6 +1086,54 @@ Private Sub et_pCant_TextChanged (Old As String, New As String) ' End If End If + + c = B4XPages.MainPage.skmt.ExecQuery("select IFNULL(sum(PE_CANT),0) as PC_NOART, IFNULL(sum (PE_COSTO_TOT),0) as PC_MONTO from PEDIDO where PE_CLIENTE in (Select CUENTA from cuentaa) AND PE_PROID NOT IN (SELECT CAT_PA_ID FROM PROMOS_COMP ) ") + If c.RowCount > 0 Then + C.Position = 0 + Log($"registros: ${c.RowCount}, arts: ${c.GetString("PC_NOART")}, monto:${c.GetString("PC_MONTO")}"$) + l_totProds.Text = "Prods: " & c.GetString("PC_NOART") + l_total.Text = "Total: $" & c.GetString("PC_MONTO") + If l_total.Text = Null Or l_total.Text = "null" Or l_total.Text = "" Then l_total.Text = "Total: $0.0" + If l_totProds.Text = Null Or l_totProds.Text = "null" Or l_totProds.Text = "" Then l_totProds.Text = "Prods: 0" + End If + + c = B4XPages.MainPage.skmt.ExecQuery("select IFNULL(sum(PE_CANT),0) as PC_NOART, IFNULL(sum (PE_COSTO_TOT),0) as PC_MONTO from PEDIDO where PE_CLIENTE in (Select CUENTA from cuentaa) AND PE_PROID NOT IN (SELECT CAT_PA_ID FROM PROMOS_COMP ) ") + If c.RowCount > 0 Then + C.Position = 0 + Log($"registros: ${c.RowCount}, arts: ${c.GetString("PC_NOART")}, monto:${c.GetString("PC_MONTO")}"$) + l_totProds.Text = "Prods: " & c.GetString("PC_NOART") + l_total.Text = "Total: $" & c.GetString("PC_MONTO") + If l_total.Text = Null Or l_total.Text = "null" Or l_total.Text = "" Then l_total.Text = "Total: $0.0" + If l_totProds.Text = Null Or l_totProds.Text = "null" Or l_totProds.Text = "" Then l_totProds.Text = "Prods: 0" + + + End If + + + Dim c7 As Cursor = B4XPages.MainPage.skmt.ExecQuery("select IFNULL(sum(PE_CANT),0) as PC_NOART, IFNULL(sum (PE_COSTO_TOT),0) as PC_MONTO from PEDIDO where PE_CLIENTE in (Select CUENTA from cuentaa) AND PE_PROID NOT IN (SELECT CAT_PA_ID FROM PROMOS_COMP ) and PE_CEDIS = 'DUR'") + If c7.RowCount > 0 Then + c7.Position = 0 + + Dim totaldev As Double = c7.GetString("PC_MONTO") + + End If + + Dim c6 As Cursor = B4XPages.MainPage.skmt.ExecQuery("select IFNULL(sum(PE_CANT),0) as PC_NOART, IFNULL(sum (PE_COSTO_TOT),0) as PC_MONTO from PEDIDO where PE_CLIENTE in (Select CUENTA from cuentaa) AND PE_PROID NOT IN (SELECT CAT_PA_ID FROM PROMOS_COMP ) and PE_CEDIS <> 'DUR' ") + If c6.RowCount > 0 Then + c6.Position = 0 + + Dim totalprod As Double = c6.GetString("PC_MONTO") + + End If + + + If totalprod = 0 Then + B4XPages.MainPage.skmt.ExecNonQuery("delete from pedido where PE_CLIENTE In (select cuenta from cuentaa) AND PE_CEDIS = 'DUR'") + MsgboxAsync("Las devloluciones se elimanron por que no hay venta.","Atención") + Else If totalprod < totaldev Then + B4XPages.MainPage.skmt.ExecNonQuery("delete from pedido where PE_CLIENTE In (select cuenta from cuentaa) AND PE_CEDIS = 'DUR'") + MsgboxAsync("Las devloluciones se elimanron por que el monto de la devolucion es mayor al monto de la venta.","Atención") + End If End If End Sub @@ -1936,11 +1244,7 @@ Private Sub b_continuar_Click montoPedidoActual = m.Get("monto") End Sub -Private Sub l_prodX_LongClick -' Log("longclic = "&Sender.as(Label).tag) -' l_info.Text = Sender.as(Label).tag -' l_info.Visible = True -End Sub + Private Sub l_info_Click l_info.Visible = False @@ -2209,13 +1513,49 @@ Private Sub clv_prods_ll_ItemClick (Index As Int, Value As Object) End Sub Sub l_prodx_click - Dim index As Int = clv_prods_ll.GetItemFromView(Sender) - Private p0 As B4XView = clv_prods_ll.GetPanel(index) + + Dim cs As CSBuilder + cs.Initialize + Dim Index As Int = clv_prods_ll.GetItemFromView(Sender) + Private p0 As B4XView = clv_prods_ll.GetPanel(Index) Private p As B4XView = p0.GetView(0) Private cant1 As B4XView = p.GetView(2).GetView(2) - Dim index As Int = clv_prods_ll.GetItemFromView(Sender) + Private PRDOX As B4XView = p.GetView(1) + Dim Index As Int = clv_prods_ll.GetItemFromView(Sender) ' Log(clv_prods_ll.GetValue(index)) + Log(cant1.Text) + Dim prodx1() As String=Regex.Split(CRLF,PRDOX.Text) + Log(prodx1(1)) + p_promodesc.Visible = True + p_promodesc.Height = Root.Height + p_promodesc.Width = Root.Width + Dim textprom As String = "" + Dim descpro As Cursor = Starter.skmt.ExecQuery($"SELECT CAT_PD_RANGO, CAT_PD_DESCUENTO, CAT_PD_RANGO2 FROM CAT_PROMOS_DESCUENTOS WHERE CAT_PD_PRODUCTO IN (SELECT CAT_GP_ID FROM CAT_GUNAPROD WHERE CAT_GP_NOMBRE = '${prodx1(0)}') AND INSTR(',' || CAT_PD_TIER || ',' , ',${Subs.traeTipoCliente},') > 0 "$) + Log($"SELECT CAT_PD_RANGO, CAT_PD_DESCUENTO, CAT_PD_RANGO2 FROM CAT_PROMOS_DESCUENTOS WHERE CAT_PD_PRODUCTO IN (SELECT CAT_GP_ID FROM CAT_GUNAPROD WHERE CAT_GP_NOMBRE = '${prodx1(0)}') AND INSTR(',' || CAT_DP_TIER || ',' , ',${Subs.traeTipoCliente},') > 0 "$) + Log(descpro.RowCount) + If descpro.RowCount > 0 Then + l_promodesc.Text = "" + For hgfd = 0 To descpro.RowCount -1 + descpro.Position = hgfd + + Dim preciocat As Cursor = Starter.skmt.ExecQuery($"SELECT CAT_GP_PRECIO FROM CAT_GUNAPROD WHERE CAT_GP_NOMBRE = '${prodx1(0)}'"$) + preciocat.Position = 0 + textprom = "" + Private recalculo As Float = preciocat.GetString("CAT_GP_PRECIO") - NumberFormat2(((preciocat.GetString("CAT_GP_PRECIO") * descpro.GetString("CAT_PD_DESCUENTO"))/100),0,2,2,False) + + textprom = cs.Color(Colors.Black).Append("Descuento "& (hgfd + 1) & CRLF&CRLF &" Min: " & descpro.GetInt("CAT_PD_RANGO") & " Max: " & descpro.GetInt("CAT_PD_RANGO2") & CRLF&CRLF).Pop.Color(Colors.Red).Size(18).Append("Descuento: " & descpro.GetDouble("CAT_PD_DESCUENTO")&"%"&CRLF&CRLF).Pop.Color(Colors.Red).Size(18).Append("Precio: " & NumberFormat2(recalculo,0,0,2,False) &CRLF&CRLF).PopAll + l_promodesc.Text = "" + l_promodesc.Text = textprom + Next + + '' aqui poner un else para que los productos que los tier no jalen + Else + + l_promodesc.Text = "El producto no tiene descuento o el tipo de cliente no es apto para este descuento." + + End If + End Sub Private Sub clv_prods_ll_VisibleRangeChanged (FirstIndex As Int, LastIndex As Int) @@ -2907,4 +2247,134 @@ Sub terminarpromoesp c.Close End If c2.Close +End Sub + +Private Sub b_okpromodesc_Click + p_promodesc.Visible = False +End Sub + +Private Sub p_promodesc_Click + p_promodesc.Visible = False +End Sub + + + +Private Sub l_prodX_LongClick + Log(l_total.Text) + c = B4XPages.MainPage.skmt.ExecQuery("select IFNULL(sum(PE_CANT),0) as PC_NOART, IFNULL(sum (PE_COSTO_TOT),0) as PC_MONTO from PEDIDO where PE_CLIENTE in (Select CUENTA from cuentaa) AND PE_PROID NOT IN (SELECT CAT_PA_ID FROM PROMOS_COMP ) AND PE_CEDIS <> 'DUR'") + + If c.RowCount > 0 Then + C.Position = 0 + + If c.GetString("PC_MONTO") > 0 Then + + + Dim cs As CSBuilder + cs.Initialize + Dim Index As Int = clv_prods_ll.GetItemFromView(Sender) + Private p0 As B4XView = clv_prods_ll.GetPanel(Index) + Private p As B4XView = p0.GetView(0) + Private cant1 As B4XView = p.GetView(2).GetView(2) + Private PRDOX As B4XView = p.GetView(1) + Dim Index As Int = clv_prods_ll.GetItemFromView(Sender) +' Log(clv_prods_ll.GetValue(index)) + + Log(cant1.Text) + Dim prodx1() As String=Regex.Split(CRLF,PRDOX.Text) + Dim prodx3() As String=Regex.Split("\$",prodx1(1)) + Log(prodx1(1)) + + preciodev = prodx3(1) + nombredev = prodx1(0) + + Dim dev As Cursor = B4XPages.MainPage.skmt.ExecQuery($"select IFNULL(CAT_GP_DEV, 0) AS CAT_GP_DEV, CAT_GP_PRECIO from CAT_GUNAPROD where CAT_GP_NOMBRE = '${prodx1(0)}'"$) + dev.Position = 0 + If dev.GetInt("CAT_GP_DEV") = 1 Then + + + c.GetString("PC_MONTO") + + + If c.GetString("PC_MONTO") < dev.GetInt("CAT_GP_PRECIO") Then + MsgboxAsync("El monto de venta es menor al precio de este producto","Atención") + Log(1) + Else + p_devo.Visible = True + p_devo.Height = Root.Height + p_devo.Width = Root.Width + l_proddev.Text = prodx1(0) + + + Dim devo As Cursor = B4XPages.MainPage.skmt.ExecQuery($"select SUM(IFNULL(PE_CANT,0)) as suma from PEDIDO where PE_PRONOMBRE = '${prodx1(0)}' AND PE_CEDIS = 'DUR'"$) + devo.Position = 0 + + l_cantdev.Text = devo.GetInt("suma") + End If + + + + + + + + Else If dev.GetInt("CAT_GP_DEV") = 0 Then + MsgboxAsync("El producto no se puede devolver","Atención") + End If + + + + Else + MsgboxAsync("El Cliente no tiene venta para meter devoluciones","Atención") + + End If + + End If +End Sub + + +Private Sub b_acep_dev_Click + p_devo.Visible = False +End Sub + +Private Sub b_devmenos_Click + If NumberFormat2((l_cantdev.Text - 1),0,0,0, False) >= 0 Then + + Dim dev2 As Cursor = B4XPages.MainPage.skmt.ExecQuery($"select CAT_GP_ID from CAT_GUNAPROD where CAT_GP_NOMBRE = '${nombredev}'"$) + dev2.Position = 0 + l_cantdev.Text = NumberFormat2((l_cantdev.Text - 1),0,0,0, False) + Subs.actualizaProducto( "DUR", (preciodev * -1), l_cantdev.Text, nombredev, dev2.GetString("CAT_GP_ID"), clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta,1) + End If + +End Sub + +Private Sub b_devmas_Click + + Dim c6 As Cursor = B4XPages.MainPage.skmt.ExecQuery("select IFNULL(sum(PE_CANT),0) as PC_NOART, IFNULL(sum (PE_COSTO_TOT),0) as PC_MONTO from PEDIDO where PE_CLIENTE in (Select CUENTA from cuentaa) AND PE_PROID NOT IN (SELECT CAT_PA_ID FROM PROMOS_COMP ) and PE_CEDIS <> 'DUR' ") + If c6.RowCount > 0 Then + c6.Position = 0 + + + + Log(((l_cantdev.Text + 1)* preciodev)) + If c6.GetString("PC_MONTO")- ((l_cantdev.Text + 1)* preciodev) >= 0 Then + Dim dev2 As Cursor = B4XPages.MainPage.skmt.ExecQuery($"select CAT_GP_ID from CAT_GUNAPROD where CAT_GP_NOMBRE = '${nombredev}'"$) + dev2.Position = 0 + l_cantdev.Text = NumberFormat2((l_cantdev.Text + 1),0,0,0, False) + Subs.actualizaProducto( "DUR", (preciodev * -1), l_cantdev.Text, nombredev, dev2.GetString("CAT_GP_ID"), clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta,1) + Else + MsgboxAsync("El monto de venta es menor al precio de este producto","Atención") + + End If + + + + + End If + + + +End Sub + +Private Sub p_devo_Click + End Sub \ No newline at end of file diff --git a/B4A/C_Promos.bas b/B4A/C_Promos.bas index e7f5e99..6add409 100644 --- a/B4A/C_Promos.bas +++ b/B4A/C_Promos.bas @@ -596,6 +596,7 @@ Sub muestraPromo(promo As String, cliente As String) Private thisProd As Map = prodsPromo.Get(p) If thisLog Then Log(thisProd) clv_prodsVariabes.Add(CreateListItem(Subs.traeProdNombre(p)&CRLF&"Hay " & invDispPromo.Get(p) & " $" & estePrecio, estePrecio, invDispPromo.Get(p), clv_prodsVariabes.AsView.Width, 50dip, Null, p), p) + End If Next For Each p As String In pv2 diff --git a/B4A/C_historicobat.bas b/B4A/C_historicobat.bas new file mode 100644 index 0000000..e096cb0 --- /dev/null +++ b/B4A/C_historicobat.bas @@ -0,0 +1,202 @@ +B4A=true +Group=Default Group +ModulesStructureVersion=1 +Type=Class +Version=12.8 +@EndOfDesignText@ +Sub Class_Globals + Private Root As B4XView 'ignore + Private xui As XUI 'ignore + + Dim g As GPS + Dim clie_id As String + Dim sDate,sTime As String + Dim usuario As String + + Dim c As Cursor + Dim ruta As String + Dim Regresar As Button + + + Dim ListView1 As ListView + Dim L_CANT As Label + Dim L_TOTAL As Label + Dim borra As Button + Dim Existe As String + Dim result As String + ' Dim lat_gps, lon_gps As String + + Private Titulo As Label + Private b_desc As Button + Private ListView2 As ListView + Dim tgl As Toggle + Private p_nota As Panel + Private Panel1 As Panel + Private l_productohist As Label + Private l_s1 As Label + Private l_s2 As Label + Private l_s3 As Label + Private l_s4 As Label + Private CustomListView1 As CustomListView + Private L_PROMEDIOHIST As Label +End Sub + +'You can add more parameters here. +Public Sub Initialize As Object + Return Me +End Sub + +'This event will be called once, before the page becomes visible. +Private Sub B4XPage_Created (Root1 As B4XView) + Root = Root1 + 'load the layout to Root + Root.LoadLayout("nota2") + borra.Visible = False + Titulo.Text = "Acumulado" + b_desc.Visible = False +End Sub + + +Sub B4XPage_Appear +' p_nota.Height = Root.Height +' p_nota.Width = Root.Width + Panel1.Visible = False + If Not(Starter.gps.GPSEnabled) Then + ToastMessageShow("Es necesario tener el GPS encendido", True) + StartActivity(Starter.gps.LocationSettingsIntent) + End If + L_CANT.Text ="" + L_TOTAL.Text="" + c=B4XPages.MainPage.skmt.ExecQuery("select count(*) as EXISTE from HIST_VENTAS WHERE HVD_CLIENTE IN (Select CUENTA from cuentaa)") + C.Position=0 + Existe = C.GetString("EXISTE") + C.Close + c=B4XPages.MainPage.skmt.ExecQuery("select HVD_CLIENTE,HVD_PRONOMBRE,HVD_CANT,HVD_COSTO_TOT, HVD_FECHA from HIST_VENTAS WHERE HVD_CLIENTE IN (Select CUENTA from cuentaa) order by HVD_FECHA asc") + ListView1.Clear + If c.RowCount>0 Then + For i=0 To c.RowCount -1 + c.Position=i + Dim label1 As Label + label1 = ListView1.TwoLinesLayout.Label + label1.TextSize = 15 + label1.TextColor = Colors.White + Dim label2 As Label + label2 = ListView1.TwoLinesLayout.SecondLabel + label2.TextSize = 15 + label2.TextColor = Colors.White + ListView1.AddTwoLines(c.GetString("HVD_PRONOMBRE"),"Cantidad #"& c.GetString("HVD_CANT")& " SubTotal $"& c.GetString("HVD_COSTO_TOT")&" Fecha: "& c.GetString("HVD_FECHA")) + Next + End If + If Existe <> 0 Then + c=B4XPages.MainPage.skmt.ExecQuery("select SUM(HVD_CANT) AS PC_NOART, SUM(HVD_COSTO_TOT) AS PC_MONTO from HIST_VENTAS where HVD_CLIENTE in (Select CUENTA from cuentaa)") + C.Position=0 + L_CANT.Text = c.GetString("PC_NOART") + L_TOTAL.Text = c.GetString("PC_MONTO") + End If + ListView1.Visible = False +' CustomListView1.AsView.Visible = True + CustomListView1.AsView.Height = Root.Height * 0.45 + CustomListView1.Clear + Dim prohit As Cursor = B4XPages.MainPage.skmt.ExecQuery("select distinct HVD_PRONOMBRE from HIST_VENTAS WHERE HVD_CLIENTE IN (Select CUENTA from cuentaa) order by HVD_PRONOMBRE asc") + + If prohit.RowCount > 0 Then + + ' --- Bucle 1: Recorrer cada producto --- + For sfdf = 0 To prohit.RowCount - 1 + prohit.Position = sfdf + Dim nombreProducto As String = prohit.GetString("HVD_PRONOMBRE") + + ' 1. Preparamos las variables para las 4 semanas + ' (Sem4 = hace 28 días, Sem1 = hace 7 días) + Dim cant_sem4 As String = "0" + Dim cant_sem3 As String = "0" + Dim cant_sem2 As String = "0" + Dim cant_sem1 As String = "0" + + ' --- 2. Query 2: (MODIFICADO) --- + ' Este es el query de SQLite que hicimos, adaptado + ' para usar la variable 'nombreProducto' + Dim sql As String = $" + WITH FechasObjetivo (Fecha) AS ( + SELECT strftime('%d/%m/%Y', date('now', 'localtime', '-28 days')) + UNION ALL + SELECT strftime('%d/%m/%Y', date('now', 'localtime', '-21 days')) + UNION ALL + SELECT strftime('%d/%m/%Y', date('now', 'localtime', '-14 days')) + UNION ALL + SELECT strftime('%d/%m/%Y', date('now', 'localtime', '-7 days')) + ) + SELECT + COALESCE(SUM(H.HVD_CANT), 0) AS HVD_CANT_TOTAL + FROM + FechasObjetivo AS F + LEFT JOIN + HIST_VENTAS AS H + ON F.Fecha = H.HVD_FECHA + AND H.HVD_CLIENTE IN (SELECT CUENTA FROM cuentaa) + AND H.HVD_PRONOMBRE = '${nombreProducto}' + GROUP BY + F.Fecha + ORDER BY + SUBSTR(F.Fecha, 7, 4), + SUBSTR(F.Fecha, 4, 2), + SUBSTR(F.Fecha, 1, 2) + "$ + + ' Log($"Ejecutando para: ${nombreProducto}") + ' Log(sql) ' Descomenta esto si necesitas depurar el query + + Dim prohit2 As Cursor = B4XPages.MainPage.skmt.ExecQuery(sql) + + ' --- 3. Leer los 4 resultados (YA NO NECESITAMOS BUCLE) --- + ' Sabemos que el query SIEMPRE devuelve 4 filas + ' en el orden correcto (hace 28, 21, 14, 7 días) + Log(prohit2.RowCount) + If prohit2.RowCount = 4 Then + prohit2.Position = 0 + cant_sem4 = prohit2.GetString("HVD_CANT_TOTAL") ' Fila 1 (-28 días) + + prohit2.Position = 1 + cant_sem3 = prohit2.GetString("HVD_CANT_TOTAL") ' Fila 2 (-21 días) + + prohit2.Position = 2 + cant_sem2 = prohit2.GetString("HVD_CANT_TOTAL") ' Fila 3 (-14 días) + + prohit2.Position = 3 + cant_sem1 = prohit2.GetString("HVD_CANT_TOTAL") ' Fila 4 (-7 días) + Else + Log($"Error: El query no devolvió 4 filas para '${nombreProducto}'"$) + End If + + prohit2.Close ' Cerramos el cursor interno + + Dim promx As Double = (cant_sem4 + cant_sem3 + cant_sem2 + cant_sem1) / 4 + + + CustomListView1.Add(CreateListItem(nombreProducto, cant_sem4, cant_sem3, cant_sem2, cant_sem1, promx ), 1) + + Next + + prohit.Close ' Cerramos el cursor externo + + End If + + + + +End Sub + + +Sub CreateListItem(prodhis As String, s1 As Int, s2 As Int, s3 As Int,s4 As Int, prom As Double) As Panel 'ignore + Dim p As B4XView = xui.CreatePanel("") + p.SetLayoutAnimated(0, 0, 0, 288dip, 170dip) + p.LoadLayout("historicobat") + l_productohist.Text = prodhis + l_s1.Text = s1 + l_s2.Text = s2 + l_s3.Text = s3 + l_s4.Text = s4 + L_PROMEDIOHIST.text = "Promedio " & prom + + Return p +End Sub diff --git a/B4A/Files/cliente.bal b/B4A/Files/cliente.bal index 9bfbac906d98e14cdc0bf8866449757d9f11743e..13ee852c45ca7e21f3bb63f19df37c6818d40491 100644 GIT binary patch delta 5615 zcmb7{3tW^{7Qp9>4Dt;!9}GTl7Bdjm6cYj)hcEs)@o*;D5Rz#;G0U_bMMT@+!=9yEx+IS=KtM$&b{Z} zd(OEZFW>6&&MG%AokpW+_0eeb^t)}h*9Xu|BFeJl&7Gb7>};h5GPO}2)RJql&Yv^S zn(IaU@MG4j?A)n^*8KeJLN)+@XLh9Z%$)4`v$Juc+epu@yoHTpRaU!w2M~!f-EZ;c zd<$>J$z4CyyOUa~b$)hk4EFXo3~QA}j}@@E3$?nDgph=i^e1_UWB|!Pl0gCw7C21c zaAI|whlz)f3?+#WI8xv!2lv!OJ6<#~D&swUV25iX)K>b9BZ((TAW0N>q`;#D{*Ay% z0*@B>w*rrG@M6tadKpJDp5zgMlLbx@_)&o$6Zmm~CkQ-I;8cMpab9ejI8EqC7x)Q* zCks49;Hd&n6Zm%m|6btf0?(lNJ64||@JxX%0%rjhq1BD`!6_^$$&690|l?WYl*N>5&kBO|>CpO}-M7c?uE3i31Aaa?1#2Q{mu zT$y9e)JHKJdo^|^v=w63m}@K15}|q>SlJ*G=PHN$hYo=N^j=|BJf}Qo#`0VVzQXd` z12EtTz4B3Ei!XeMNdv<%f7v+Ht@Ou+n?|f29fDI<8qiP}47GU7k_P?IXITUsQ#EOb z1F^pN!SX~RC^X}c@DOaBkwkjWzf=uh;ghS|p^@)M#`_Y{=8{0Xd)|n(CEfLJsyh>jb;a=ybiK*$I<)^9*Wsecx5>$s zM!W0NF#m0L{oC}`K%xVzuQ4mb*A4~vo@NNc+N&Y*_tfK9bR%the>ji9&B-`?T?Jeq zy_j_u{pAZTYHY0+acE&YE?Gj6qeyspgM@oAQU3#J^7FWauzmturmg7V_aimJby_{& z?o0G$Vl8@nwX`ShEHT=5Cf(8FEVdf4aPTgqG zHf!+MzXzyJD3>>60JM_Rsd6h#;8<8Qizj^>wT&Q=+LWWERRCAH=G9I#uc?~X@Mvio zPJOKku9LDanl>iN*If*P!y~bD<3+eZ4u{c`9r+h!pTkXVv1?PJeACI|23A{w;1-%T z7bo4O9==`e1V52b9U%vQrU!3kQTq#PxkHb;4DQi`{khqi5vn4w{AMUHLMbKjKd;PG_R!OS`EH4RA#%+BXaCv1;yK`lm%u4n}} zX4Cscnwz`i<}?KjV}0X1=tw6_OCeic^0-%bQss4oel=LTeVVN(Xx#w|HVl^Cod(e1 z(jE2C6%W*#FfWJl?tl@4ju_>xE?Nbra(LY4Zk8~vGD`2LBbZXvw@YRcD;?(01e)>z zT7+ zuYD&7jJW%qG&FCK@SnS*T#bDNW8Y4UyL01S%6+r;5Da^CV%U=#u73MI!(I+UeDZw* z9XNB+kJO7@o$D>AmhMwkO?>19@4f;4JXZW!tc=0pB@$hLW$$eSGY?HF!m`=PF@Fk> zftWwVR<_FDknp4T*Fzt!y=I>z_i@rTWAWa48j*!L>kYWCH&!{lZ!|z4#L6_tsjzRFw?|$_Z!GXwZAX#$ExWPdhSo~>qo=zvkf88QT*7dLMU4Hhf4ja z?IG5V2d?_*nFdex6fFO=Ck=UUe?9Ix$gcJfJV(KQ_aK{yb{E4B88PPLMPjJSHGR93 zQ>dT)IB3uV!rXC7k{^7g0L-Wf)UjPXgA+fYSjV?MIShmOF$`wMuo6?xTOmw60Niuf zK;7cDdmk*rv!7W=C+SEIK6j`Bn?GkR55tjP7^s!p)efbhn&NnEzfd#wfwyG@g$KLn zfBkJ4L7qF3FpRGwubtnPI(}QyW$%Y$J}aaDi&-JGmk``j%Uq*O)JAoPO~aE%BQc{|PhUQ-VcC~i5W{U^I=9gdvjxP_qkAEi@8hmoNgK;HHvmu6 z4xy{_O37^PaKQWqf9(iX2>W8?F-acbG+r!za;zTPz6tR=NQcMEZJe`$QuoyYfOzH$ zJ+ZDYE7RHpTeyZEr?n-rK3rGVkN1qU`4#)kUKqs=99Nt%VA#nDTS>;EhIndUx+4|? zZ%R1#+X_f>t;D$JtN}(T1*dAkb2K?4lt*koM_sN(@r4QrP4yM%*VG+zs}eD)pchD~-!A0v*sPy~uFG{HT*f3XjysIwF;4+0HArEW2~X0Q9v*SvJ9;aG}N@ z11}8{>qAmo$p22QRGL$`1k2kzJZ)d+%zgI#?2=ZB_3{XSNj&x^x%g`@hHzd9ZY}~y z<4S3rD>)KG!sRWyAzj@!ZMrQIv69aC@79lx-)`PdgbfA~}TL zse`Vj>!;9UyzWlLv)9Zpjd{>(n%x8T&jtVE|9zyZ>5ZG3hSAr(JO1l>FI?Ct;p%HC zE(77E+w6lV9%r<($<>b`hhdJZ!K|MwohtUi0XNHFI+Z-fu}^o}p>!-b#XjXs>e|-a zny;NTQ>&UBuE-dHHGn_}KhKfKg_-%eZjSzDaVI@zdR znDBD~973N@b0CvvQKln{x_4xeRgDJO>NI3#r&*LmlRLIE%gMs(k|g>86axMv^i9xK m6M>n>xAAH|i!Wf7i>-RS&*oJVEV!s;0(zI}?Bb>c&3^%S7oUy* delta 5216 zcmb7{30PD|5`d>hP~RXk!-$Fl$Phr}Fajc?Acrdu)J5MQ4_DkE4!OT+|{_E zC{`lMhG_D+|kAZ#zeD2~`&;NB-_3P@c zs_xmo%3$q8UJJ8#F@TfdWSg`h$oElSGk33p_;N7=dF2j^muI7{?18Lk0eg zz{7|WND@hs1b#)}WPyhZJVM}+0{@o2-#loFz@r3C6*x`c(E^VVc&xzV1Wp(D)h5nn z-i#MICI~!H;7I~c7C1xT*94v-aHhan0>7@&WH)>NJE3E$z|#btF7O)y&k%T~z_SE? zQ{cCnnbv=H^NU6^N8q^v&l7mQz;6ruj=&29UMTP)ffo}mVf+6s$?r*Qk^cwcKa#vh z@+X0ruC0Bkz&Qdh6Zp>p|3%>C0%xxfUfvgYrNDm`c$L7p01KExN9BM@xkXYa)FOCrE|WyDlbrNXOA7#}&)Z zOZdi`3hhY^rd7JbDNM`@Hk`6k%*k7(`xmvb??|VyYPBy^Vor$%jp`71mNj;z$4?|3 zt&I<@=UB_n^e{3wO%F2(q+;M2FURAA=W)y0*Wm)X9Ct(abtO=RWr3-ND(VrZSC(Oc zi#Q_xk+xccmhXa~nmqR^cp1Qi^KxBv7SeYofhAb6KB{NS1gXu5#1XpCQ@Vs{;oWGy zamOs)FPtmp95Z*lL}o1$sirqJ;c%>Z?u#Kw9UZ@+mJ9MzOarK)!Gp2<3lpBaYckZR z4VxC&1ebAsY%+RoD26MfKLBeUyBn_9>5{kFe{0bD+re0xr^ht~qjXnEg)jLvoNo=q zkWD5G*ysec6b9YAuTv-7gQi8kMsIwPbp$RXQmtySuykWF)baSK-( zCD~9k7NEY_y1pIj+cxXl&DPPIOQ3<`qAOZA4>2^@8J1;);d@)^ppjhi(XF6m;7&I( zr}67geuO*Rbp5A840lwfjcA!|fxBq^G%x-a>f!5qkKk7lmarP>K0SCd3+e}~Ho4tsvt2v)W<*ms*` zw5qi zMxaG+aZ&@AUl@zCO2Z1QTB=!lZ)JfNV`MYd%rs%+24ADrUf+AR7tV{-;nM0jbS_B{ zE6nmQlnT>s#yZ#n|1{6o4t8U+jBO~P5+jc;T?jfy>JA~tq>gy1ED0xkr6>3A+;znv z3nkr0)WIXS6Q+FKfU`GMv`GtM3JcSiG2@Ag~0yk0!Hn^#V?t!cK4a6_^7DG?o+f&^uuip1AfEkxIrW(xZ zF521N;EomNlI6;Zp#UCS$)gP=Po{)5(w*Mmdprt+r4;?TWeW<%7EqVYC17DO5=Cyl5`C;in<%IGW z%@Xm2rxfY%88GE=5`O&h0_bP=b>-*^#>_(zblw&mIt;z}4)s=cNI3-zA1;L~@VD)f z(O)$PsS5j5kim}MPDgTa z=x}-6iJ^enADLqjhJNaq@~~1)@=>0NZOqv+QjbwJ~Z zZd7Ycxcf{$tok9ERaEGYsg)iOP6gEm*Hub}aMe&@_<7|;7{CT_J4pM?w|IbBMXoqY zi4egj5~1oEz-K&At~i$q5XluH+fW$9XXY5p+QGK;HQ}VH$+oH=#j3s` zN;Se@G+wNQXjPq$R%<9xL3LhUT3rk{^1K8}6)rmO)4Kj9DcEIQ5hP;i%~WHe%F_hpcuK;MTMhW^dS9Mnuh^@w980DgYrh5!e{pJ! zpiz|@JwJ1Y+kK?HBy*D!8z@yq@&FvEHfqT!dDIdr3DUH;4 zy&nyDImsQyuo?CkV>70F<9~`Vn+%>j7J-eAJSk)(?EW}_YL&PBC>Z{$Qa#41JWWyA z?|wMO-VVm`^%>W$)h*O(C?vx)ccrpiG8>mP+UfDYc%_TtEZdce*vQ9+<^c9 diff --git a/B4A/Files/historicobat.bal b/B4A/Files/historicobat.bal new file mode 100644 index 0000000000000000000000000000000000000000..6fc98d5018d265b6d0bc90fc32716cf2f7fe95fc GIT binary patch literal 8534 zcmc(j&vO%H7{}k(q!=mS4^UJT6vYB1Hcd-g`~jf}5=fJh2C6V)*(Td&b-T&zZc|}A zFyqAmahPFrxO(&8)q@95UZBGbPoDHY&>0Wj>hpb)eRo4!+U(7!CA(VDEPETY zvdWCAH&r6k!ENYfrzZ;e@pLMaKb@H@hIzIXZ`K3NI?=2LyPc^6Qc6h49UVg7gkq?A zoL6VjvpTo8NS%JE&SrU(&9cO1S#r%Dl{1E=G$N(ZU1S=6p++T$pXj0jH{iV^V}>JR zJB|#Aysr@RSlf0W|Z`W zvRc$^oi#sG>I%GtHwMjy|24%VTO{zw+sYgkvM~epSl}%p#_F1-kv~|pu9%u)*!}!= zsk1i1#;(>dc~L9d6_~E5+FZrP#EN2+DpiwhG(;#K`&=tqi1U5~z-svU)miZx##hmH z2sWTiX?A6-YSJlM&H!S5rfQZ|lihKfQ`jzOm3TryDQgQBL)O(gpCz`f8aT-^+~Q5e z(OFZrkfjv&~y{TQ8e8wF^s00Dn`(B^TjBdBiKS?GyQ0f zu0@d(=89C>a8cK4mUfjRBA3slSEf~fnyngka#6LajetWFlMo=4q)u|=#GM`QHd!~M2V{+s}sk82yyNB2@?KnG(;3NrbnG58@feZfPfAW z#rAj{Uc&3{<-h-1rdosnBnppl9ua|fjf6m#ZNXC>1%;@SvROdB<{>0&wuej|2_Z*! zAvuT2^g!Za0cn{91QQGRa3=@aFDP4->$W?1@PNqk!@|RC<^Pupv5` z2YWh3E$L2!2RjavE*NSwz(C;fJ+y0H`xf=c-AGH&3l0WAeSqopZeU_#jD}jToO`4$)HbjMe}XBOL|<HY2lMUb z!Mxi!F#UeOKsh*=2b%|j`(cM(r2#)+pd1{GOun;Z&R>p6bPmj*A23i34o2n}|6qnX z2j-|BFi;K-M&=m*V1_#fX2cH|C6fS{P^1UB?>=_k=g7OZ@`gblybEpP zjZ@p??+f=D{n&X=wwpH$`rwTpvF(X(d8P0l-*MVR7ZnkG?7Yv@Ds7E#81%vW0;#u$ zx4fzN=bfNUY?e1ob^i~!{`Yc<)F0-3IY|D7K_9%`n+nb2bg+Z^%LJ0+szvWp9pXH O%f~-&Fbm6v5dQfA4DVrM|W7 z{nIC}_vR97eZ7AdYZepZ(lr-s=_D>o z&+yM6h9RBz${r?` z4ZB#bIBcUXLh;;ZX353b?#KP#3O`?$O;<0ug|<(y4sFKt%3~FWcG2|*aL(r{PDwiK zPSBjeazU%e6Y@sMTyhz*C2PEwShlpWlO?#ti%O!iYLrT*y`VZ%a3-mm184@JU=Yn9 z9t@!w1ckF`29aSH%^*CCpc%x7Q8Y)eg!*E(1<28GQ=F`OXPH&kyvc_lH1bG!#ft4h%_TyX%$l~up1a

~IQ!a+)`S+XLJVV*MbugNQ%G?Lj`vv#wwJUkl#V(Z*mB+8q;9;!w3HF{uzc%4ct!oHs%Q7wfR_Z#&v0lbnu zaY$ekP=13-5Ay&v#e+Q^qaNi>od-J(lK~iN)WJaD@guZqe)lT%sMRP-&}$wHfNFs0 z4KHOIFn39Z!9Y0x156vi%uI`Or1b+91ZBmwKl+!d3Jxx-F!1U3p)E+$y43wJ(^8s1m z6Qd92Oy|JhG(0jGC^rx0yPbo1vvXkjb-+Nmc`y%l4hD%|hptje2Mm;(2cv@TJekvr zF$0|gGpGXw%FTmOF-9NEQ0Ks$)d2(L=E0~KqYq}db6`evz(BcqFe=9AgQ52~KHNb@ zGfI89o$+(@(93}ZrNzf-7H7p&i|AYQh$EW{<-qSy6CY4c?9Y?1M~EBg3+PGHW8=U6lDU3`)r z7a?4the~e_QX>}OAccP!L29jn7z7@Fi F;y*~N#`6FG literal 0 HcmV?d00001 diff --git a/B4A/Files/nota.bal b/B4A/Files/nota.bal index 415d67ff205c4c31d0e508dcacca60b74cf00209..0d788e36e1589cbc98d1030295f43eb2ece097d2 100644 GIT binary patch delta 865 zcmah{K~EDw6rMrbu$2YGBBgA5;AVSh>Y*%OTA@GtJW z_f{rA*4l}Qo3~YBHkI64nu6q~8u<^jXtkuK6G!6y!%uv|R`^PX^i#kXFyQVGA0OhB zY!WyPP?iBd1D*$_fwMz=W{4NSQ8+sZ%mV#f_ACF*+XtUVK4v=0W$3}SNL1AiWTNVk z)czf5#8KVH-;L_1_L{J+W8Bp!nVkP`tV$X-5Jue4s+Q~gi*o;2OU}XDz9fA4R5V+m zyy&M1LUef-U8QyfYFE{yUW>z6Q_K4PO{wY)LwCOwB`9V!QcYo090hIN`%@cfT6eXQ zk?BdJkhV6d@~Q|a_PUlyB5S?a4*aAMYeRL>Jkr7k1EwKq%oiqdHNSF~Kk6`LRDmMl)O;iES4$Na9+x_wVX9&XSSd+*CXDkA7Vwe_??LL2Z z_=FSfP!N~iO?1#Bo`_`Gsb@83U0%vyI^SH4uCyVyFH)Y?r&N5Y0q{Ss1z5?P< zG4$jd1G4~((KB!=FoSGXOqcB|FPHoEr%RLL1!muS^Y+lqm#AYs?E;8Li}Q$FB668q Mw^+7|r2=mC7r-^We*gdg delta 194 zcmccSc-e}Vm4SibFcSj<7mya8$Qv|q+G$3<$w`dn_3S_q4j=}}z}VbKY#tz+7l`?Q zm>-EP0AvdSu@DdoBe6x0*rGr-GZ3=?u^14;%x46$LFT39=S@~&dc~NsnVt;i) R6(W-_D6mXEufU3g*#Q_I7iIte diff --git a/B4A/Files/nota2.bal b/B4A/Files/nota2.bal new file mode 100644 index 0000000000000000000000000000000000000000..098024a22a4cefb4ff681a269ac98993e7fc28c7 GIT binary patch literal 8405 zcmeHLYit}>6&~YVC!0F0n@8Kwl9;qfQ_?K4oiuIQCSH5jj>*RBt~WLfw9a^U>>YQ! zv&@X`q!I`O6{T&eG*XKM5)w}dA;F)Z@`tuW3gizW;vob=q!bh+1W{TcR3X9geP?!N zcGkPD-A3e3E#154o_p`P=YHpP$5BO5qOFRu2EQLfTaA{;JNmrtoa_J{_XgvZS}to= z8+elw1S&aLI@v^uF7)rAx-<5jXIm&qm4vYczWeX1wMY41$Ai8rbW;!QnP?P8Hpo+z1) zDu<7#rO@Fr<~c%i`BXOrX0>TcvsHm9r#o|oNd)-U;{GTfz%TGtB51seM^g^3L@88< zfZTxAUPDtKk5BkLnrHBeH=_|=k6sUY1KLKkTWaWAYv|iRdpc|a?a8FRJY&i%70g|h zIb+6W%G19GXUntHkvDki^pQ2^dfT7+jh1=g)Q04@#!@#Y&!0M+=ve4}{)M*h^l01v z`|B5fcJ;*O^WPooNVZ4%UitE^Ctf~w|IszipF4B$@2?FV-n8mhtzZ52hBY_bw)yNH z{h68pP^zVnVNuN7a9s9zjBv-;6955Bd(?EGY`BmRYfjW1vR=`YV0 zZ<)FL^NZ(JKl#X~AA9RxnXk>BRo}en2N$h3|GEBhLjO;6)sOc*_p18p#4o=0;y1qk z=Pzx!^2+Uh`rF2JKWg9hkD-^;wO?O9_}43)GY7u8>4%?RHTldNYmef>bGQ}lkhgOu z%i0~Fl9Q^f=i^Du)~8FF6+famsuvNopo4Xd!i1JkOZu$p=w>N7XUQ*ND_H7+I%#Nk zHxQnz&c*w5XI3qHLs}^A?W>!k4pX|JEw&VWY1&d5$0W59Pc6{1w0W)M46Cym_3S;B4tRaPy?0wFHssMGXlhdU%Jw1QqR zDOp(kreRvtWnQ;+D8u9DRZCY(&Ta}dv?+(4=$K`SSv}g5hm%f}s-_LsofHj8-JQf@TRj z7>@HM)HF{7h;3ekX4Qf|XNyS;ZC+eNK$YCX`+W zNAFJ!=Tg~;Lz(Q*vCJ^?F?E9LYp|^`ls8K@_t?0Jp{4bbMks9Oq#@__WztEBB<+Ml zr5yYUesm9p*OZ#q2u3nBkT{yoQPjMDywn%>__0(rH`Jd<(-XRy#jcm|8x@4@Jftq( zJ=?ne;EkxKC#j1FOsTem$T1Bg<;EG6=&oJXO->I1cFP89ZT(?PE^hr?TwCvHu-;QA zJ_-wK28tayh^*VOIB-&#rMljFUcR8)k`O!|fvo0;T2>j=%+?AXi=CyN_hqu#M3y}Fl|T%3b?)8PnM{rL)1+R7Bp!QwJc7dAO=qB=a%aMF^gN2F&4uoR zKq%Jw9x9VVl{TnMdO}_Tl)85_x<=Rr?~BH75aN=T$I6Ih;;rN8n!W2CW$kpuCRIlr zwDbb~(-p#GNlQ%bQRCVPb+&A1J#lx6wwlM|hq)k$x0aVP7&z7OA<247H$x>Gx+LnW z2`xseW`YnWzGKuouNo9R;#x?;iE!FTo(|Qbf4OQ?0-s?#d9-LQxL(|+S`t~|mm9%V zl+PaQ1@XE&P-6V$nrY!nkVnvA z4V66J6_v*`X=1t?1+?cY+8mc$dfC24Xu}TLsVeq>o&XaE(FB-}VoLC6f)K6dBeWZfV_oR@7wJY9>p@rJCVMd4 zOFkXpJ~Uu?A+e8~`_cJ&%S{N3ph*1$#iJk|K$GnPCj|y@65Rc0QRP9ddI+75?!)BJ z+YX?$!LSv<8w2GaTC5jcfEEsfr>*dp04F8|Sx&PHPCQO<;@L~#G=%wgffM1EY=YlVj`|qJjWD2L!x)ew7;wu{ z7;s@21NV;P2N=*L1%u-t1Oxh@VDKD>r7$>*c^8ANpu{Qe1QGbkT^^gh(!@oUm&Vc% zAgbWkRqg@^0ftA0or8;)0)}1`2Bt+WPLTmHTqVG)1|jq02rvU6!oWxx0yol$t|q@9 z!BBu11`z<0@z^6E9zk*n~*js;#?eHyAvZnW&4rhU##YZN0AMRIE!q! zh(835XyXS~vm$;SzC|8`a`moy+AWKZdwS#7O%Xdl2#RqKQWjZ!!mdhz0h|PPKU&jo zkqJz?PU?M&v@W|K@^#d}0)9bc0EqRex9<5_Q-yR`rh_CrQufEHSo1%l#o9W0E-_OJyga0M2a#PVws z1N8WJvH+7$gBS?Dv95y!^3bW?0xO7tKVW;<0u;Cc3%r*YU;r+ag*YFMfhHEfx@tb+ zhqGHMHBc-Yu_<)ZKD+3#skn|7n?d&kT3h9Jzx|^DqJ`ULN!*L`_{xi!=*nnqmCv00 z_ov9Q(Aj8Fs-#4GNx=tX=u0vDUB@lVtig93Is9w*0p?($-p17ru*Wgw=V!r+2y~#y zy`|E0LB+6*DKM}x3%7r#nv%2l8!Rw3{%t4G!m56dr}d&skmy6_2T4uQr(S`vZ^TFh c@Y6vO9{=ql7q}0EeoGVJLZH zpB*S*tc;Aslu>0!j)&3@f3Yr+U`UE4a0^68QxokQ31ZO@W@tBc5yuXBnU%U9=EzSs zzNEn3Nuf{2*v4cip~SbBTg7REuZR{8N>MrD-KNe~_-GhT9l|GB82K0(rZ1dfGshO> zLJTX04a1J%z$oIl7`X(a6vK&e7^4iMoZ||OQ$nS-5UMy9Ij-iohGQ4UwH()RT+eX> z$8O|C0c=@;R0pC5!;6t&AIC>H?&SC=$9|5xIHr9wJ-ay$XuKB83K8>bOwh{-#V_6- zli|IobnSQcBV%gEb!zvw!xTNZ_kt{rOQIyo(ebbp6Xl4Q2!}@G1SZ6rN^De0DB|F$ zeo=~u@$hgmEJqWv82zw5D#w(-E}I&#<2h-BDyl}?*7ol5s`iPf&R4$)f?J!_+AXK+ zzY_Yqb?v?-<$>noCb;DEnrH#NrW}A?Zyk9CDWA(Ugb8Xo<1?^YJ+RS`17Ez2hQ9>b zolY?O`ruQC4J2O$nZf!N%M8{wW8_np;-+<LoG@eO-3LWFL^?GC0#f@Lpe%!%48|xuG|ZOYUOZyr|X|CISKeSRgubiT+5d`yXjlug8w` W3UhlLsaMn19Z5B&1dQLoc zfAS_qEk2OaocMyG{FGv#=wvpgd;Hu$p#rc_X>v(^@njxmV@9RPASvDJ{+>M-`?4J^)rnn0cw6oc8D3s_Sb85eH8#&&>nbD3bh;p7Ph LTx>uU42%o_JNGQ! diff --git a/B4A/Guna Vistas V3.1.b4a b/B4A/Guna Vistas V3.1.b4a index 01a339e..a09617c 100644 --- a/B4A/Guna Vistas V3.1.b4a +++ b/B4A/Guna Vistas V3.1.b4a @@ -1,15 +1,18 @@ Build1=Default,gunav2.keymon.com.mx File1=alert2.png File10=clientes.bal -File100=tache_rojo.png -File101=telefonos.bal -File102=Ticket dia.jpg -File103=ticketdia20.png -File104=ticketsdia.bal -File105=Tiendita.jpg -File106=usuario.png -File107=verde.png +File100=seleccion.bal +File101=senial.jpg +File102=sync.png +File103=tache_rojo.png +File104=telefonos.bal +File105=Ticket dia.jpg +File106=ticketdia20.png +File107=ticketsdia.bal +File108=Tiendita.jpg +File109=usuario.png File11=comis.bal +File110=verde.png File12=contrasena.png File13=datoscliente.bal File14=detalle_promo.bal @@ -43,69 +46,69 @@ File39=guna-fondo.png File4=amarillo.png File40=Hacer pedido.jpg File41=hacerpedido30.png -File42=ic_cloud_download_white_24dp.png -File43=images.png -File44=infonavit1.jpg -File45=inicioFinVenta.bal -File46=intmex_logo_192x192.jpg -File47=itembuttonblue.png -File48=keymon_logo.png -File49=kmt.db +File42=historicobat.bal +File43=historicobat2.bal +File44=ic_cloud_download_white_24dp.png +File45=images.png +File46=infonavit1.jpg +File47=inicioFinVenta.bal +File48=intmex_logo_192x192.jpg +File49=itembuttonblue.png File5=anterior.jpg -File50=login.bal -File51=Logo Guna_192x192.png -File52=Logo Guna-01.png -File53=logo sanfer.jpg -File54=Logo_192x192.jpg -File55=logo_exitus1.jpg -File56=logo-guna-18.png -File57=logo-guna-contorno.png -File58=MainPage.bal -File59=Malo.jpg +File50=keymon_logo.png +File51=kmt.db +File52=login.bal +File53=Logo Guna_192x192.png +File54=Logo Guna-01.png +File55=logo sanfer.jpg +File56=Logo_192x192.jpg +File57=logo_exitus1.jpg +File58=logo-guna-18.png +File59=logo-guna-contorno.png File6=bus-ar.png -File60=mapa.bal -File61=mapa_rutas.bal -File62=maparutas.bal -File63=mas-azul.png -File64=mas-azul-red.png -File65=mas-azul-red1.png -File66=menos.png -File67=menosred.png -File68=menos-red.png -File69=nota (conflict 2022-07-08-00-16-40).bal +File60=MainPage.bal +File61=Malo.jpg +File62=mapa.bal +File63=mapa_rutas.bal +File64=maparutas.bal +File65=mas-azul.png +File66=mas-azul-red.png +File67=mas-azul-red1.png +File68=menos.png +File69=menosred.png File7=carrito.png -File70=nota.bal -File71=noventa.bal -File72=nuevocliente.bal -File73=nuevo-cliente20.png -File74=Nvo Cliente.jpg -File75=p&g.png -File76=palomita_verde.png -File77=pedido.bal -File78=planfia_logo.png -File79=planfia_logo_old.png +File70=menos-red.png +File71=nota (conflict 2022-07-08-00-16-40).bal +File72=nota.bal +File73=nota2.bal +File74=noventa.bal +File75=nuevocliente.bal +File76=nuevo-cliente20.png +File77=Nvo Cliente.jpg +File78=p&g.png +File79=palomita_verde.png File8=celltitle.bal -File80=planfia_logo_old2.png -File81=principal.bal -File82=proditem.bal -File83=proditem1.bal -File84=proditem2.bal -File85=productos.bal -File86=productos_.bal -File87=promociones.bal -File88=qr.bal -File89=qr_gallina.jpg +File80=pedido.bal +File81=planfia_logo.png +File82=planfia_logo_old.png +File83=planfia_logo_old2.png +File84=principal.bal +File85=proditem.bal +File86=proditem1.bal +File87=proditem2.bal +File88=productos.bal +File89=productos_.bal File9=cliente.bal -File90=QRPlanLealtad.png -File91=resdia.bal -File92=ResDia.jpg -File93=resdia20.png -File94=rojo.png -File95=salma.jpg -File96=salma.png -File97=seleccion.bal -File98=senial.jpg -File99=sync.png +File90=promociones.bal +File91=qr.bal +File92=qr_gallina.jpg +File93=QRPlanLealtad.png +File94=resdia.bal +File95=ResDia.jpg +File96=resdia20.png +File97=rojo.png +File98=salma.jpg +File99=salma.png FileGroup1=Default Group FileGroup10=Default Group FileGroup100=Default Group @@ -116,7 +119,10 @@ FileGroup104=Default Group FileGroup105=Default Group FileGroup106=Default Group FileGroup107=Default Group +FileGroup108=Default Group +FileGroup109=Default Group FileGroup11=Default Group +FileGroup110=Default Group FileGroup12=Default Group FileGroup13=Default Group FileGroup14=Default Group @@ -229,20 +235,21 @@ Library2=b4xpages Library20=javaobject Library21=jhsicezxing1 Library22=json -Library23=okhttputils2 -Library24=phone -Library25=preoptimizedclv -Library26=randomaccessfile -Library27=rspopupmenu -Library28=runtimepermissions -Library29=serial +Library23=locationmanager +Library24=okhttputils2 +Library25=phone +Library26=preoptimizedclv +Library27=randomaccessfile +Library28=rspopupmenu +Library29=runtimepermissions Library3=baqrcode -Library30=sql -Library31=togglelibrary -Library32=xcustomlistview -Library33=xui -Library34=xui views -Library35=locationmanager +Library30=serial +Library31=sql +Library32=togglelibrary +Library33=xcustomlistview +Library34=xui +Library35=xui views +Library36=dateutils Library4=batteryprogressview Library5=bitmapcreator Library6=byteconverter @@ -251,41 +258,43 @@ Library8=clipboard Library9=compressstrings ManifestCode='This code will be applied to the manifest file during compilation.~\n~'You do not need to modify it in most cases.~\n~'See this link for for more information: https://www.b4x.com/forum/showthread.php?p=78136~\n~AddManifestText(~\n~~\n~)~\n~SetApplicationAttribute(android:icon, "@drawable/icon")~\n~SetApplicationAttribute(android:label, "$LABEL$")~\n~CreateResourceFromFile(Macro, Themes.LightTheme)~\n~AddApplicationText(~\n~)~\n~CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)~\n~ 'End of default text.~\n~ ~\n~ ''''' CAMBIA LA CLAVE API~\n~AddApplicationText(~\n~~\n~ ~\n~)~\n~AddApplicationText(~\n~~\n~)~\n~AddManifestText(~\n~~\n~)~\n~~\n~''CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)~\n~ 'End of default text.~\n~ ~\n~SetApplicationAttribute(android:usesCleartextTraffic, "true")~\n~ AddManifestText(~\n~~\n~)~\n~AddPermission(android.permission.ACCESS_BACKGROUND_LOCATION)~\n~AddManifestText(~\n~~\n~)~\n~AddManifestText(~\n~~\n~) 'in order to access the device non-resettable identifiers such as IMEI and serial number.~\n~~\n~'///////////////////////// FLP Y PUSH /////////////~\n~ CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)~\n~ CreateResourceFromFile(Macro, FirebaseAnalytics.Firebase)~\n~ CreateResourceFromFile(Macro, FirebaseAnalytics.FirebaseAnalytics)~\n~ CreateResourceFromFile(Macro, FirebaseNotifications.FirebaseNotifications)~\n~ SetServiceAttribute(Tracker, android:foregroundServiceType, "location")~\n~'//////////////////////////////////////////////////////~\n~~\n~'/////////////////////// App Updating ////////////////~\n~ AddManifestText(~\n~ )~\n~ AddApplicationText(~\n~ ~\n~ ~\n~ ~\n~ )~\n~ CreateResource(xml, provider_paths,~\n~ ~\n~ ~\n~ ~\n~ ~\n~ ~\n~ )~\n~AddManifestText()~\n~AddManifestText()~\n~AddManifestText()~\n~AddManifestText()~\n~~\n~AddPermission(android.permission.REQUEST_INSTALL_PACKAGES)~\n~AddPermission(android.permission.INTERNET)~\n~AddPermission(android.permission.INSTALL_PACKAGES)~\n~AddPermission(android.permission.READ_EXTERNAL_STORAGE)~\n~AddPermission(android.permission.WRITE_EXTERNAL_STORAGE)~\n~AddPermission(android.permission.READ_PHONE_STATE)~\n~AddPermission(android.permission.WAKE_LOCK)~\n~CreateResourceFromFile(Macro, JhsIceZxing1.CaturePortrait)~\n~ ~\n~SetApplicationAttribute(android:largeHeap, "true")~\n~SetApplicationAttribute(android:allowBackup, "false")~\n~AddPermission(android.permission.BLUETOOTH_ADVERTISE)~\n~AddPermission(android.permission.BLUETOOTH_CONNECT)~\n~AddPermission(android.permission.BLUETOOTH_SCAN)~\n~AddManifestText(~\n~ ~\n~ )~\n~AddManifestText()~\n~~\n~AddManifestText(~\n~ ~\n~ )~\n~ AddPermission(android.permission.MANAGE_EXTERNAL_STORAGE)~\n~ SetApplicationAttribute(android:allowBackup, "false")~\n~ ~\n~ ~\n~ AddManifestText(~\n~ )~\n~ AddPermission(android.permission.READ_EXTERNAL_STORAGE)~\n~~\n~ 'Para que se registre para abrir bases de datos~\n~' AddActivityText(main,~\n~'~\n~'~\n~'~\n~'~\n~')~\n~~\n~ 'Para que se registre para abrir bases de datos~\n~ AddActivityText(main,~\n~~\n~~\n~~\n~~\n~~\n~)~\n~AddPermission(android.permission.CALL_PHONE)~\n~AddPermission(android.permission.READ_EXTERNAL_STORAGE)~\n~AddPermission(android.permission.WRITE_EXTERNAL_STORAGE)~\n~AddPermission("android.permission.MANAGE_EXTERNAL_STORAGE")~\n~AddPermission(android.permission.READ_PHONE_STATE)~\n~ Module1=appUpdater -Module10=C_Nota -Module11=C_NoVenta -Module12=C_NuevoCliente -Module13=C_Pedidos -Module14=C_Principal -Module15=C_Productos -Module16=C_Promos -Module17=C_TicketsDia -Module18=C_UpdateAvailable -Module19=CameraExClass +Module10=C_historicobat +Module11=C_Mapas +Module12=C_Nota +Module13=C_NoVenta +Module14=C_NuevoCliente +Module15=C_Pedidos +Module16=C_Principal +Module17=C_Productos +Module18=C_Promos +Module19=C_TicketsDia Module2=B4XMainPage -Module20=cPDF -Module21=DBRequestManager -Module22=EscPosPrinter -Module23=FirebaseMessaging -Module24=MAPA_RUTAS -Module25=Starter -Module26=Subs -Module27=Tracker +Module20=C_UpdateAvailable +Module21=CameraExClass +Module22=cPDF +Module23=DBRequestManager +Module24=EscPosPrinter +Module25=FirebaseMessaging +Module26=MAPA_RUTAS +Module27=Starter +Module28=Subs +Module29=Tracker Module3=BatteryUtilities Module4=C_Bitacora Module5=C_Cliente Module6=C_Clientes Module7=C_Cuestionario Module8=C_Historico -Module9=C_Mapas -NumberOfFiles=107 -NumberOfLibraries=35 -NumberOfModules=27 +Module9=C_Historico2 +NumberOfFiles=110 +NumberOfLibraries=36 +NumberOfModules=29 Version=12.8 @EndOfDesignText@ #Region Project Attributes #ApplicationLabel: Guna Preventa #VersionCode: 1 - #VersionName: 5.10.16 + #VersionName: 5.10.23 'SupportedOrientations possible values: unspecified, landscape or portrait. #SupportedOrientations: portrait #CanInstallToExternalStorage: False diff --git a/B4A/Guna Vistas V3.1.b4a.meta b/B4A/Guna Vistas V3.1.b4a.meta index 37e8a72..f5631e5 100644 --- a/B4A/Guna Vistas V3.1.b4a.meta +++ b/B4A/Guna Vistas V3.1.b4a.meta @@ -19,6 +19,8 @@ ModuleBookmarks24= ModuleBookmarks25= ModuleBookmarks26= ModuleBookmarks27= +ModuleBookmarks28= +ModuleBookmarks29= ModuleBookmarks3= ModuleBookmarks4= ModuleBookmarks5= @@ -47,6 +49,8 @@ ModuleBreakpoints24= ModuleBreakpoints25= ModuleBreakpoints26= ModuleBreakpoints27= +ModuleBreakpoints28= +ModuleBreakpoints29= ModuleBreakpoints3= ModuleBreakpoints4= ModuleBreakpoints5= @@ -64,17 +68,19 @@ ModuleClosedNodes14= ModuleClosedNodes15= ModuleClosedNodes16= ModuleClosedNodes17= -ModuleClosedNodes18=4 +ModuleClosedNodes18= ModuleClosedNodes19= ModuleClosedNodes2= -ModuleClosedNodes20= +ModuleClosedNodes20=4 ModuleClosedNodes21= ModuleClosedNodes22= ModuleClosedNodes23= ModuleClosedNodes24= -ModuleClosedNodes25=4,6,7,8,9 +ModuleClosedNodes25= ModuleClosedNodes26= -ModuleClosedNodes27= +ModuleClosedNodes27=4,6,7,8,9 +ModuleClosedNodes28= +ModuleClosedNodes29= ModuleClosedNodes3= ModuleClosedNodes4= ModuleClosedNodes5= @@ -82,6 +88,6 @@ ModuleClosedNodes6= ModuleClosedNodes7=6,8,9,10,11 ModuleClosedNodes8= ModuleClosedNodes9= -NavigationStack=C_Cliente,HabilitarBotones,1319,0,C_Cliente,MejorarPrecisionGPS,1234,0,C_Cliente,B4XPage_Appear,1217,0,C_Cliente,GPS_LocationChanged,1617,0,C_Cliente,RevisarGeocerca,1303,4,C_Cliente,TraeCantProd,1276,0,C_Cliente,B_IMP_Click,2866,1,C_Cliente,Impresion,3252,0,C_Cliente,Impresion2,3076,0,C_Cliente,Impresion3,2881,0,C_Cliente,PDFGENERAR,5738,0 +NavigationStack=C_Principal,JobDone,1463,0,B4XMainPage,B4XPage_Created,206,0,C_Cliente,Class_Globals,464,0,C_Cliente,B4XPage_Created,483,0,C_Principal,cargar_Click,1142,0,C_Cliente,B4XPage_Appear,1263,6,C_Cliente,gest_Click,1899,0,C_Cliente,compra,2036,0,Diseñador Visual,cliente.bal,-100,6,C_Cliente,Cuestionario,5242,0 SelectedBuild=0 -VisibleModules=25,2,14,26,5,10,11,20,19,16 +VisibleModules=27,2,16,28,5,12,13,22,21,18 diff --git a/B4A/Subs.bas b/B4A/Subs.bas index 39f49e3..42caedb 100644 --- a/B4A/Subs.bas +++ b/B4A/Subs.bas @@ -741,7 +741,7 @@ Sub borraPedidoClienteActual As String ' Return 1 Private thisC As Cursor ' Private tablaProds As String = "cat_gunaprod2" - thisC=Starter.skmt.ExecQuery("select PE_PROID, PE_CANT, PE_FOLIO FROM PEDIDO where pe_cliente in (Select CUENTA from cuentaa) ") + thisC=Starter.skmt.ExecQuery("select PE_PROID, PE_CANT, PE_FOLIO FROM PEDIDO where pe_cliente in (Select CUENTA from cuentaa) AND PE_CEDIS <> 'DUR'") If thisC.RowCount>0 Then For i=0 To thisC.RowCount -1 thisC.Position = i @@ -759,7 +759,7 @@ End Sub 'Regresa el total del pedido en la tabla "PEDIDO" del cliente actual. Sub totalPedido As String - Private cT As Cursor = Starter.skmt.ExecQuery($"select sum(PE_COSTO_TOT) as total from PEDIDO where PE_CLIENTE = '${traeCliente}'"$) + Private cT As Cursor = Starter.skmt.ExecQuery($"select sum(PE_COSTO_TOT) as total from PEDIDO where PE_CLIENTE = '${traeCliente}' AND PE_CEDIS <> 'DUR'"$) Private pTotal As String = "0" If cT.RowCount > 0 Then cT.Position = 0 @@ -1755,40 +1755,71 @@ Sub traeUsarIntentBDWA As Boolean 'ignore Return BDWA End Sub -Sub actualizaProducto(cedis As String, costoU As String, cant As String, nombre As String, prodId As String, clienteId As String, fecha As String, usuario As String, rutaV As String, precioSin As String, tipoVenta As String) +Sub actualizaProducto(cedis As String, costoU As String, cant As String, nombre As String, prodId As String, clienteId As String, fecha As String, usuario As String, rutaV As String, precioSin As String, tipoVenta As String,dev As String) If nombre.Length < 6 Then ToastMessageShow("(actualizaProducto) El nombre del producto no es valido " & nombre, True) precioSin = NumberFormat2(precioSin, 1, 2, 2, False) costoU = NumberFormat2(costoU, 1, 2, 2, False) LogColor($"actualizaProducto, c=${clienteId}, p=${prodId}, nombre=${nombre}, cant=${cant}, cedis=${cedis}, tipo=${tipoVenta}"$, Colors.Magenta) ' Private tablaProds As String = "cat_gunaprod2" ' If tipoVenta = "ABORDO" Then tablaProds = "cat_gunaprod" - Private c As Cursor=Starter.skmt.ExecQuery($"select * from pedido where pe_cedis = '${cedis}' and pe_proid = '${prodId}' and pe_cliente = '${clienteId}'"$) - If c.RowCount > 0 Then + If dev = 0 Then + Private c As Cursor=Starter.skmt.ExecQuery($"select * from pedido where pe_cedis = '${cedis}' and pe_proid = '${prodId}' and pe_cliente = '${clienteId}' and PE_CEDIS <> 'DUR'"$) + If c.RowCount > 0 Then ' LogColor("ACTUALIZAMOS PROD - " & traeTablaProds(tipoVenta), Colors.Blue) - c.Position = 0 - Private antCant As Int = 0 - If IsNumber(c.GetInt("PE_CANT")) Then antCant=c.GetInt("PE_CANT") - Private difCant As Int = cant - antCant - Starter.skmt.ExecNonQuery($"update pedido set pe_cant = ${cant}, pe_costo_tot = ${NumberFormat2((cant*c.GetString("PE_COSTOU")), 1, 2, 2, False)}, pe_folio = '${tipoVenta}' where pe_cedis = '${cedis}' and pe_proid = '${prodId}' and pe_cliente = '${clienteId}' "$) - If cedis <> "DUR" Then Starter.skmt.ExecNonQuery($"update ${traeTablaProds(tipoVenta)} set cat_gp_almacen = cat_gp_almacen - (${difCant}) where cat_gp_id = '${prodId}' "$) - If cant = 0 Then - LogColor($"BORRAMOS PRODUCTO - ${prodId}"$, Colors.Red) - Starter.skmt.ExecNonQuery($"delete from pedido where pe_cedis = '${cedis}' and pe_proid = '${prodId}' and pe_cliente = '${clienteId}' "$) - Log($"Borramos pe_cedis='${cedis}' and pe_proid='${prodId}' and pe_cliente='${clienteId}'"$) - Private pe As Cursor = Starter.skmt.ExecQuery("select count(pe_cliente) as cuantosPedidos from pedido where pe_cliente In (select cuenta from cuentaa)") - pe.Position=0 - If pe.GetString("cuantosPedidos") = 0 Then - Log("###### delete from pedido_cliente - " & traeCliente & "|" & clienteId) - Log($"delete from pedido_cliente where PC_CLIENTE = '${traeCliente}'"$) - Starter.skmt.ExecNonQuery($"delete from pedido_cliente where PC_CLIENTE = '${traeCliente}'"$) + c.Position = 0 + Private antCant As Int = 0 + If IsNumber(c.GetInt("PE_CANT")) Then antCant=c.GetInt("PE_CANT") + Private difCant As Int = cant - antCant + Starter.skmt.ExecNonQuery($"update pedido set pe_cant = ${cant}, pe_costo_tot = ${NumberFormat2((cant*c.GetString("PE_COSTOU")), 1, 2, 2, False)}, pe_folio = '${tipoVenta}' where pe_cedis = '${cedis}' and pe_proid = '${prodId}' and pe_cliente = '${clienteId}' "$) + If cedis <> "DUR" Then Starter.skmt.ExecNonQuery($"update ${traeTablaProds(tipoVenta)} set cat_gp_almacen = cat_gp_almacen - (${difCant}) where cat_gp_id = '${prodId}' "$) + If cant = 0 Then + LogColor($"BORRAMOS PRODUCTO - ${prodId}"$, Colors.Red) + Starter.skmt.ExecNonQuery($"delete from pedido where pe_cedis = '${cedis}' and pe_proid = '${prodId}' and pe_cliente = '${clienteId}' "$) + Log($"Borramos pe_cedis='${cedis}' and pe_proid='${prodId}' and pe_cliente='${clienteId}'"$) + Private pe As Cursor = Starter.skmt.ExecQuery("select count(pe_cliente) as cuantosPedidos from pedido where pe_cliente In (select cuenta from cuentaa)") + pe.Position=0 + If pe.GetString("cuantosPedidos") = 0 Then + Log("###### delete from pedido_cliente - " & traeCliente & "|" & clienteId) + Log($"delete from pedido_cliente where PC_CLIENTE = '${traeCliente}'"$) + Starter.skmt.ExecNonQuery($"delete from pedido_cliente where PC_CLIENTE = '${traeCliente}'"$) + End If End If - End If - Else - 'INSERTAMOS + Else + 'INSERTAMOS ' LogColor("INSERTAMOS PROD", Colors.red) - If cant > 0 Then guardaProductoSinGestion(cedis, costoU, cant, nombre, prodId, clienteId, fecha, usuario, rutaV, precioSin, tipoVenta) + If cant > 0 Then guardaProductoSinGestion(cedis, costoU, cant, nombre, prodId, clienteId, fecha, usuario, rutaV, precioSin, tipoVenta) + End If + c.Close + Else If dev = 1 Then + Private c As Cursor=Starter.skmt.ExecQuery($"select * from pedido where pe_cedis = '${cedis}' and pe_proid = '${prodId}' and pe_cliente = '${clienteId}' and PE_CEDIS = 'DUR'"$) + If c.RowCount > 0 Then +' LogColor("ACTUALIZAMOS PROD - " & traeTablaProds(tipoVenta), Colors.Blue) + c.Position = 0 + Private antCant As Int = 0 + If IsNumber(c.GetInt("PE_CANT")) Then antCant=c.GetInt("PE_CANT") + Private difCant As Int = cant - antCant + Starter.skmt.ExecNonQuery($"update pedido set pe_cant = ${cant}, pe_costo_tot = ${NumberFormat2((cant*c.GetString("PE_COSTOU")), 1, 2, 2, False)}, pe_folio = '${tipoVenta}' where pe_cedis = '${cedis}' and pe_proid = '${prodId}' and pe_cliente = '${clienteId}' "$) + If cedis <> "DUR" Then Starter.skmt.ExecNonQuery($"update ${traeTablaProds(tipoVenta)} set cat_gp_almacen = cat_gp_almacen - (${difCant}) where cat_gp_id = '${prodId}' "$) + If cant = 0 Then + LogColor($"BORRAMOS PRODUCTO - ${prodId}"$, Colors.Red) + Starter.skmt.ExecNonQuery($"delete from pedido where pe_cedis = '${cedis}' and pe_proid = '${prodId}' and pe_cliente = '${clienteId}' "$) + Log($"Borramos pe_cedis='${cedis}' and pe_proid='${prodId}' and pe_cliente='${clienteId}'"$) + Private pe As Cursor = Starter.skmt.ExecQuery("select count(pe_cliente) as cuantosPedidos from pedido where pe_cliente In (select cuenta from cuentaa)") + pe.Position=0 + If pe.GetString("cuantosPedidos") = 0 Then + Log("###### delete from pedido_cliente - " & traeCliente & "|" & clienteId) + Log($"delete from pedido_cliente where PC_CLIENTE = '${traeCliente}'"$) + Starter.skmt.ExecNonQuery($"delete from pedido_cliente where PC_CLIENTE = '${traeCliente}'"$) + End If + End If + Else + 'INSERTAMOS +' LogColor("INSERTAMOS PROD", Colors.red) + If cant > 0 Then guardaProductoSinGestion(cedis, costoU, cant, nombre, prodId, clienteId, fecha, usuario, rutaV, precioSin, tipoVenta) + End If + c.Close End If - c.Close + End Sub diff --git a/B4A/Tracker.bas b/B4A/Tracker.bas index e7e4734..f82e459 100644 --- a/B4A/Tracker.bas +++ b/B4A/Tracker.bas @@ -425,7 +425,7 @@ Private Sub CreateLocationRequest As LocationRequest lr.Initialize lr.SetInterval(1) 'Intervalo deseado para actualizaciones de ubicacion lr.SetFastestInterval(lr.GetInterval / 2) 'Intervalo minimo para actualizaciones de ubicacion - lr.SetSmallestDisplacement(0) 'Solo registra cambio de ubicacion si es mayor a XX mts + lr.SetSmallestDisplacement(10) 'Solo registra cambio de ubicacion si es mayor a XX mts lr.SetPriority(lr.Priority.PRIORITY_HIGH_ACCURACY) actualLR=lr Return lr @@ -438,7 +438,7 @@ Private Sub CreateLocationRequestSmallD As LocationRequest lr.SetInterval(2000) 'Intervalo deseado para actualizaciones de ubicacion lr.SetFastestInterval(lr.GetInterval / 2) 'Intervalo minimo para actualizaciones de ubicacion lr.setNumUpdates(2) 'Solicitamos solo 2 actualizaciones con estos parametros - lr.SetSmallestDisplacement(1) 'Solo registra cambio de ubicacion si es mayor a XX mts + lr.SetSmallestDisplacement(0) 'Solo registra cambio de ubicacion si es mayor a XX mts lr.SetPriority(lr.Priority.PRIORITY_HIGH_ACCURACY) actualLR=lr Return lr @@ -529,6 +529,9 @@ Sub flp_LocationChanged (Location1 As Location) If B4XPages.MainPage.cliente.IsInitialized Then CallSub2(B4XPages.GetPage("Cliente"), "GPS_LocationChanged", Location1) End If + If B4XPages.MainPage.nuevoCliente.IsInitialized Then + CallSub2(B4XPages.GetPage("nuevocliente"), "GPS_LocationChanged", Location1) + End If ' CallSub2(nuevocliente, "GPS_LocationChanged", Location1) End Sub