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 9bfbac9..13ee852 100644
Binary files a/B4A/Files/cliente.bal and b/B4A/Files/cliente.bal differ
diff --git a/B4A/Files/historicobat.bal b/B4A/Files/historicobat.bal
new file mode 100644
index 0000000..6fc98d5
Binary files /dev/null and b/B4A/Files/historicobat.bal differ
diff --git a/B4A/Files/historicobat2.bal b/B4A/Files/historicobat2.bal
new file mode 100644
index 0000000..1bd7329
Binary files /dev/null and b/B4A/Files/historicobat2.bal differ
diff --git a/B4A/Files/nota.bal b/B4A/Files/nota.bal
index 415d67f..0d788e3 100644
Binary files a/B4A/Files/nota.bal and b/B4A/Files/nota.bal differ
diff --git a/B4A/Files/nota2.bal b/B4A/Files/nota2.bal
new file mode 100644
index 0000000..098024a
Binary files /dev/null and b/B4A/Files/nota2.bal differ
diff --git a/B4A/Files/productos.bal b/B4A/Files/productos.bal
index 02c4f1c..d31e31b 100644
Binary files a/B4A/Files/productos.bal and b/B4A/Files/productos.bal differ
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