diff --git a/B4A/B4XMainPage.bas b/B4A/B4XMainPage.bas
index aedcdb9..5eae53a 100644
--- a/B4A/B4XMainPage.bas
+++ b/B4A/B4XMainPage.bas
@@ -148,8 +148,13 @@ Private Sub B4XPage_Created (Root1 As B4XView)
skmt.Initialize(File.DirInternal,"kmt.db", True)
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS IMPRESORA (HABILITADA)")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS PLAN_LEALTAD (PL_CLIENTE TEXT, PL_BANDERA TEXT)")
+
+ skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS ABONOSP(NOTA TEXT, CLIENTE TEXT, SALDO_PENDIENTE TEXT, FECHA TEXT)")
+
+
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS COMENTARIOS (COMENTARTIO TEXT, CLIENTE TEXT, DESCARGADO TEXT)")
Subs.agregaColumna("PLAN_LEALTAD", "DESCARGADO", "TEXT")
+ Subs.agregaColumna("PEDIDO_CLIENTE", "PC_FACTURA", "INTEGER")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS GPS (HABILITADO)")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_GUNAPROD2 (CAT_GP_CODPROMO TEXT, CAT_GP_INICIATIVA TEXT, CAT_GP_TIPOPROD TEXT, CAT_GP_DEV TEXT, CAT_GP_ALMACEN NUM, CAT_GP_ID TEXT, CAT_GP_NOMBRE TEXT, CAT_GP_IMP1 TEXT, CAT_GP_IMP2 TEXT, CAT_GP_PRECIO TEXT, CAT_GP_CLASIF TEXT, CAT_GP_STS TEXT, CAT_GP_TIPO TEXT, CAT_GP_SUBTIPO TEXT, CAT_GP_IMG )")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS PROMO_ESP (HVD_CLIENTE)")
@@ -193,8 +198,10 @@ Private Sub B4XPage_Created (Root1 As B4XView)
Subs.agregaColumna("HIST_ENCUESTA", "HE_LON", "TEXT")
Subs.agregaColumna("kmt_info3", "encuesta", "TEXT")
Subs.agregaColumna("kmt_info3", "CAT_CL_TIPOCLIENTE", "TEXT")
+ Subs.agregaColumna("kmt_info3", "CAT_CL_LIMITECREDITO", "TEXT")
Subs.agregaColumna("kmt_info3", "CAT_CL_BCREDITO", "TEXT") '########################## CODIGO PARA CREDITOS ####################
Subs.agregaColumna("CAT_GUNAPROD", "CAT_PA_BSEGMENTA", "TEXT")
+ Subs.agregaColumna("CAT_GUNAPROD", "CAT_LISTAPRECIO", "TEXT")
Subs.agregaColumna("CAT_GUNAPROD", "CAT_PA_SEGMENTAV", "TEXT")
Subs.agregaColumna("CAT_GUNAPROD2", "CAT_PA_BSEGMENTA", "TEXT")
Subs.agregaColumna("CAT_GUNAPROD2", "CAT_PA_SEGMENTAV", "TEXT")
@@ -817,12 +824,13 @@ End Sub
Sub i_engrane_Click
p_appUpdate.Left = (Root.Width/2) - (p_appUpdate.Width/2)
lv_server.Clear
- lv_server.AddSingleLine("http://keymon.lat:1782")
+ lv_server.AddSingleLine("http://keymon.net:1782")
If user.Text = "KMTS1" Then lv_server.AddSingleLine("http://10.0.0.205:1782")
l_server.Text = Starter.server
et_server.Text = Starter.server
Subs.panelVisible(p_appUpdate,0,0)
p_appUpdate.Height = Root.Height
+ p_appUpdate.Width = Root.Width
c = skmt.ExecQuery("SELECT HABILITADA FROM IMPRESORA")
If c.RowCount = 0 Then
skmt.ExecNonQuery2("INSERT INTO IMPRESORA VALUES (?)", Array As Object(0))
@@ -839,7 +847,8 @@ Sub i_engrane_Click
End Sub
Sub b_regesar_Click
- Subs.panelVisible(p_Main,0,0)
+' Subs.panelVisible(p_Main,0,0)
+ p_appUpdate.Visible = False
skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("DBReqServer"))
skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("DBReqServer", et_server.Text))
Starter.server = et_server.Text
@@ -898,6 +907,8 @@ Private Sub B4XSwitch2_ValueChanged (Value2 As Boolean)
p_validacion.Visible = True
p_validacion.Left = (Root.Width/2) - (p_appUpdate.Width/2)
Subs.panelVisible(p_validacion,0,0)
+ p_validacion.Height = Root.Height
+ p_validacion.Width = Root.Width
Else
skmt.ExecNonQuery2("UPDATE GPS SET HABILITADO = (?)",Array As Object(0))
End If
diff --git a/B4A/C_Cliente.bas b/B4A/C_Cliente.bas
index 263526b..f4d0c5d 100644
--- a/B4A/C_Cliente.bas
+++ b/B4A/C_Cliente.bas
@@ -460,6 +460,9 @@ Sub Class_Globals
Private et_comentario As EditText
Private lv_comentarios As ListView
Private ImageView4 As ImageView
+ Private p_cliente_ As Panel
+ Private l_limite As Label
+ Private l_credito As Label
End Sub
'You can add more parameters here.
@@ -537,11 +540,15 @@ Sub B4XPage_Appear
que_modulo = 1
dentroDeGeocerca = False
indicePregunta = 0
-
+ l_credito.Visible = False
+ l_limite.Visible = False
pnlPlanLealtad.Top = 0
pnlPlanLealtad.Left = 0
pnlPlanLealtad.Width = Root.Width
pnlPlanLealtad.Height = Root.Height
+ p_cliente.Width = Root.Width
+ p_cliente.Height = Root.Height
+ p_cliente_.Width = Root.Width
If TOMAR_FOTO <> 0 Then Cuestionario
Starter.idCliente = Subs.traeCliente
@@ -935,13 +942,16 @@ Sub B4XPage_Appear
End If
End If
+
+
+
'AQUI CAMBIAR
Private s3 As Cursor=B4XPages.MainPage.skmt.ExecQuery2("select * FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) and PE_RECALCULO <> ? OR PE_RECALCULO <> ? OR PE_RECALCULO IS NOT NULL",Array As String("","null"))
' LogColor(s3.RowCount,Colors.Yellow)
If s3.RowCount > 0 Then
'########################## CODIGO PARA CREDITOS ####################
- c=B4XPages.MainPage.skmt.ExecQuery("select 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 from kmt_info3 where CAT_CL_CODIGO In (Select cuenta from cuentaa)")
+ c=B4XPages.MainPage.skmt.ExecQuery("select 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,IFNULL(CAT_CL_BCREDITO,0) AS CAT_CL_BCREDITO from kmt_info3 where CAT_CL_CODIGO In (Select cuenta from cuentaa)")
s=B4XPages.MainPage.skmt.ExecQuery2("select iFNULL(sum(pe_costo_tot),0) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) and (PE_RECALCULO = ? or PE_RECALCULO = ? or PE_RECALCULO IS NULL)",Array As String("","null"))
s.Position=0
Private s5 As Cursor = B4XPages.MainPage.skmt.ExecQuery2("select iFNULL(sum(PE_RECALCULOTOT),0) as TOTAL_CLIE FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) and (PE_RECALCULO <> ? or PE_RECALCULO <> ? OR PE_RECALCULO IS NOT NULL)",Array As String("","null"))
@@ -992,7 +1002,7 @@ Sub B4XPage_Appear
s.Close
Else If s3.RowCount = 0 Then
'########################## CODIGO PARA CREDITOS ####################
- c=B4XPages.MainPage.skmt.ExecQuery("select 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 from kmt_info3 where CAT_CL_CODIGO In (Select cuenta from cuentaa)")
+ c=B4XPages.MainPage.skmt.ExecQuery("select 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,IFNULL(CAT_CL_BCREDITO,0) AS CAT_CL_BCREDITO from kmt_info3 where CAT_CL_CODIGO In (Select cuenta from cuentaa)")
s=B4XPages.MainPage.skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
s.Position=0
If c.RowCount > 0 Then
@@ -1062,8 +1072,9 @@ Sub B4XPage_Appear
b_Inicio_Fin_venta.Visible = False
' ToastMessageShow("aaa", False)
End If
- gest.Text = "PreVenta"
- If Subs.traeTipoVentaDeBD = "VENTA" Then gest.Text = "Venta"
+ gest.Typeface =Typeface.CreateNew(Typeface.FONTAWESOME, Typeface.STYLE_BOLD)
+ gest.Text = " Preventa"
+ If Subs.traeTipoVentaDeBD = "VENTA" Then gest.Text = " Venta"
' Log($">>>>>>>>>> |${la_cuenta.Text.trim}|"$)
If la_cuenta.Text.trim = "0" Then gest.Text = "Carga Abordo"
' Log($"ALMACEN: ${ALMACEN}${CRLF}RUTA:${LA_RUTA}"$)
@@ -1100,7 +1111,43 @@ Sub B4XPage_Appear
'' ImageView4 = fotomostrar.GetBlob("foto")
' Log("LO LOGRAMOS")
' End If
-
+ If ALMACEN = 88 Then
+ If Not(Subs.TraeMontoProd) Then
+ B4XPages.MainPage.skmt.ExecNonQuery2("delete from pedido where pe_cedis = 'MYKONOS_01' and pe_cliente in (Select CUENTA from cuentaa) AND PE_FOLIO = ?", Array As Object(tipo_venta))
+' B4XPage_Appear
+ Private s3 As Cursor=B4XPages.MainPage.skmt.ExecQuery2("select * FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) and PE_RECALCULO <> ? OR PE_RECALCULO <> ? OR PE_RECALCULO IS NOT NULL",Array As String("","null"))
+' LogColor(s3.RowCount,Colors.Yellow)
+ If s3.RowCount > 0 Then
+ c=B4XPages.MainPage.skmt.ExecQuery("select 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,IFNULL(CAT_CL_BCREDITO,0) AS CAT_CL_BCREDITO from kmt_info3 where CAT_CL_CODIGO In (Select cuenta from cuentaa)")
+ s=B4XPages.MainPage.skmt.ExecQuery2("select iFNULL(sum(pe_costo_tot),0) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) and (PE_RECALCULO = ? or PE_RECALCULO = ? or PE_RECALCULO IS NULL)",Array As String("","null"))
+ s.Position=0
+ Private s5 As Cursor = B4XPages.MainPage.skmt.ExecQuery2("select iFNULL(sum(PE_RECALCULOTOT),0) as TOTAL_CLIE FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) and (PE_RECALCULO <> ? or PE_RECALCULO <> ? OR PE_RECALCULO IS NOT NULL)",Array As String("","null"))
+ s5.Position = 0
+ If c.RowCount > 0 Then
+ c.Position = 0
+ If s.GetString("TOTAL_CLIE") = Null Then
+ l_total.Text = 0
+ Else
+ l_total.Text =NumberFormat2((s.GetString("TOTAL_CLIE") + s5.GetString("TOTAL_CLIE")),0,2,2,False)
+ End If
+ total_cliente = s.GetString("TOTAL_CLIE") + s5.GetString("TOTAL_CLIE")
+ End If
+ Else
+ c=B4XPages.MainPage.skmt.ExecQuery("select 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,IFNULL(CAT_CL_BCREDITO,0) AS CAT_CL_BCREDITO from kmt_info3 where CAT_CL_CODIGO In (Select cuenta from cuentaa)")
+ s=B4XPages.MainPage.skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
+ s.Position=0
+ If c.RowCount > 0 Then
+ c.Position=0
+ If s.GetString("TOTAL_CLIE") = Null Then
+ l_total.Text = 0
+ Else
+ l_total.Text =NumberFormat2(s.GetString("TOTAL_CLIE"),0,2,2,False)
+ End If
+ total_cliente = s.GetString("TOTAL_CLIE")
+ End If
+ End If
+ End If
+ End If
Dim fotomostrar As Cursor = Starter.skmt.ExecQuery("SELECT foto FROM kmt_info3 where CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA)")
If fotomostrar.RowCount > 0 Then
@@ -1122,7 +1169,36 @@ Sub B4XPage_Appear
End If
End If
+ SV_ENCUESTA.Visible = False
+ P_gallina.Visible = False
+ p_pregunta1.Visible = False
+ p_camara.Visible = False
+ Panel2.Visible = False
+ p_comentario.Visible = False
+ p_transparenteTicketImpreso.Visible = False
+ p_encuesta.Visible = False
+ pnlPlanLealtad.Visible = False
+ Panel10.Visible = False
+ p_transparentePDF.Visible = False
+ CH_FACTURA.Checked = False
+ Dim fac As Cursor=B4XPages.MainPage.skmt.ExecQuery("Select ifnull(SUM(PE_COSTO_TOT), 0) As TOTAL_CLIE, SUM(PE_CANT) As CANT_CLIE, PC_FACTURA FROM PEDIDO_CLIENTE INNER JOIN PEDIDO ON PEDIDO_CLIENTE.PC_CLIENTE = PEDIDO.PE_CLIENTE WHERE (PE_CLIENTE IN (Select cuenta from cuentaa))")
+ fac.Position = 0
+ Private factura As String = 0
+ If fac.GetString("PC_FACTURA") <> Null And IsNumber(fac.GetString("PC_FACTURA")) Then factura = fac.GetString("PC_FACTURA")
+ If factura = "1" Then CH_FACTURA.Checked = True
+' 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
+ l_credito.Visible = True
+ l_limite.Visible = True
+ l_limite.Text = c.GetInt("CAT_CL_LIMITECREDITO")
+ Else If c.GetInt("CAT_CL_BCREDITO") = 0 Then
+ l_credito.Visible = False
+ l_limite.Visible = False
+ End If
+' End If
End Sub
@@ -1173,7 +1249,7 @@ Sub GPS_LocationChanged (Location1 As Location)
End If
End If
If geo = "1" Then
- If distance < 100 Then
+ If distance < 10000000000000000000000000000000 Then
LA_GEO.TextColor = Colors.Blue
Tels.Visible = True
gest.Visible = True
@@ -1325,6 +1401,7 @@ Sub GPS_LocationChanged (Location1 As Location)
' If distance > 100 Then ToastMessageShow("Fuera de rango GPS", False)
+
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")
@@ -1489,6 +1566,45 @@ Sub ListView1_ItemLongClick (Position As Int, Value As Object)
End Sub
Sub gest_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
+ 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}"$)
+
+ If DiferenciaDias <= 7 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)
+ Wait For Msgbox_Result (resultado As Int)
+ 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")
+ End If
+
+ Else
+
+ gestionar
+
+ End If
+End Sub
+
+Sub gestionar
If B_IMP.Visible = True Then
If Not(Subs.revisaImpreso) Then
c=B4XPages.MainPage.skmt.ExecQuery("select IFNULL(encuesta,0) AS encuesta from kmt_info3 where CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA)")
@@ -2323,24 +2439,27 @@ Sub Guardar_Click
'AQUI CAMBIAR
Private s3 As Cursor=B4XPages.MainPage.skmt.ExecQuery2("select * FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) and PE_RECALCULO <> ? AND PE_RECALCULO <> ? AND PE_RECALCULO <> ?",Array As String("","null",Null))
' LogColor(s3.RowCount,Colors.Yellow)
+ Private suma As Float = 0
If s3.RowCount > 0 Then
Private s As Cursor=B4XPages.MainPage.skmt.ExecQuery2("select iFNULL(sum(pe_costo_tot),0) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) and PE_RECALCULO = ? AND PE_RECALCULO = ? AND PE_RECALCULO = ?",Array As String("","null",Null))
s.Position = 0
Private s5 As Cursor = B4XPages.MainPage.skmt.ExecQuery2("select iFNULL(sum(PE_RECALCULOTOT),0) as TOTAL_CLIE FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) and PE_RECALCULO <> ? AND PE_RECALCULO <> ? AND PE_RECALCULO <> ?",Array As String("","null",Null))
s5.Position = 0
- Private suma As Float = s.GetString("TOTAL_CLIE") + s5.GetString("TOTAL_CLIE")
+ suma = s.GetString("TOTAL_CLIE") + s5.GetString("TOTAL_CLIE")
s.Close
Else If s3.RowCount = 0 Then
Private s As Cursor=B4XPages.MainPage.skmt.ExecQuery("select iFNULL(sum(pe_costo_tot),0) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
s.Position=0
- Private suma As Float = s.GetString("TOTAL_CLIE")
+ suma = s.GetString("TOTAL_CLIE")
s.Close
End If
'AQUI TERMINA
If c.GetString("CUANTOS") > 0 Then
+ Private cbFactura As Int = 0
+ If CH_FACTURA.Checked Then cbFactura = 1
B4XPages.MainPage.skmt.ExecNonQuery("delete from NOVENTA where NV_CLIENTE In (select cuenta from cuentaa)")
B4XPages.MainPage.skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)")
- B4XPages.MainPage.skmt.ExecNonQuery2("insert into pedido_cliente(PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT) VALUES (?,?,?,?,?,?,?)", Array As Object(clie_id, sDate & sTime, usuario, c.GetString("CANT_CLIE"),NumberFormat2(suma,0,2,2,False), B4XPages.MainPage.lon_gps, B4XPages.MainPage.lat_gps))
+ B4XPages.MainPage.skmt.ExecNonQuery2("insert into pedido_cliente(PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT,PC_FACTURA,PC_ALMACEN,PC_RUTA) VALUES (?,?,?,?,?,?,?,?,?,?)", Array As Object(clie_id, sDate & sTime, usuario, c.GetString("CANT_CLIE"),NumberFormat2(suma,0,2,2,False), B4XPages.MainPage.lon_gps, B4XPages.MainPage.lat_gps,cbFactura,Subs.traeAlmacen,Subs.traeRuta))
B4XPages.MainPage.skmt.ExecNonQuery("UPDATE kmt_info3 set gestion = 2 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
' B4XPages.MainPage.skmt.ExecNonQuery("delete from TICKET_IMPRESO where idCliente In (select cuenta from cuentaa)")
' B4XPages.MainPage.skmt.ExecNonQuery($"insert into TICKET_IMPRESO (idCliente) values ('${Subs.traeCliente}')"$)
@@ -2370,17 +2489,17 @@ Sub Guardar_Click
DateTime.TimeFormat = "HH:mm:ss"
'########################## INICIA CODIGO PARA CREDITOS ####################
Log(BCREDITO)
- If BCREDITO = 1 And suma > 0 Then
- Msgbox2Async("¿La venta va a ser a crédito o contado?" , "AVISO", "Crédito", "", "Efectivo", LoadBitmap(File.DirAssets,"alert2.png"), False)
- Wait For Msgbox_Result (resultado As Int)
- If resultado = DialogResponse.POSITIVE Then
-' ToastMessageShow("Positivo", False)
- mandaWAMsgCredito(telefono.Trim, suma)
- Else
-' ToastMessageShow("Efectivo", False)
- End If
-' ToastMessageShow("ENVIAR MSG WA POR MONTO $XXX", False)
- End If
+' If BCREDITO = 1 And suma > 0 Then
+' Msgbox2Async("¿La venta va a ser a crédito o contado?" , "AVISO", "Crédito", "", "Efectivo", LoadBitmap(File.DirAssets,"alert2.png"), False)
+' Wait For Msgbox_Result (resultado As Int)
+' If resultado = DialogResponse.POSITIVE Then
+'' ToastMessageShow("Positivo", False)
+' mandaWAMsgCredito(telefono.Trim, suma)
+' Else
+'' ToastMessageShow("Efectivo", False)
+' End If
+'' ToastMessageShow("ENVIAR MSG WA POR MONTO $XXX", False)
+' End If
'########################## TERMINA CODIGO PARA CREDITOS ####################
' B4XPages.ShowPage("Principal")
End Sub
@@ -2464,27 +2583,6 @@ Sub b_mapa_Click
B4XPages.ShowPage("mapas")
End Sub
-Sub Printer1_Connected (Success As Boolean)
-' If Logger Then Log("Printer1_Connected")
- If Success Then
- ToastMessageShow("Impresora conectada", False)
- skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("MACIMP"))
- skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("MACIMP",Starter.mac_impresora))
- LogColor("Impresora conectada", Colors.Green)
-' B_IMP2.Enabled = True
- impresoraConectada = True
- Else
-' Msgbox(Printer1.ConnectedErrorMsg, "Error connecting.") 'ignore
-' ToastMessageShow("Error conectando la impresora", False)
- LogColor("Error conectando la impresora", Colors.Red)
- errorImpresora = errorImpresora + 1
- If errorImpresora > 1 Then
- Starter.MAC_IMPRESORA = "0"
- errorImpresora = 0
- End If
- End If
-End Sub
-
Sub B_IMP_Click
' Printer1.Connect2
' c=Starter.skmt.ExecQuery2("select count(*) AS CUANTOS from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("PERFIL"))
@@ -2531,28 +2629,26 @@ Sub Impresion2
ProgressDialogShow("Imprimiendo, un momento ...")
Printer1.DisConnect
If Not(Printer1.IsConnected) Then
- Log("Conectando a impresora ...")
+' If logger Then Log("conectando 1")
Printer1.Connect
Private cont As Int = 0
Do While Not(impresoraConectada)
Sleep(1000)
- Log("++++++ " & cont)
cont = cont + 1
- If cont = 2 Then Printer1.Connect 'Tratamos de reconectar
- If cont > 3 Then impresoraConectada = True
+ If cont = 7 Then Printer1.Connect 'Tratamos de reconectar
+ If cont > 15 Then impresoraConectada = True
Loop
Sleep(500)
impresoraConectada = False
Else
- Log("conectando 2")
+' If logger Then Log("conectando 2")
Printer1.Connect
Private cont As Int = 0
Do While Not(impresoraConectada) Or Not(Printer1.IsConnected)
Sleep(1000)
- Log("****** " & cont)
cont = cont + 1
If cont = 2 Then Printer1.Connect
- If cont > 3 Then impresoraConectada = True
+ If cont > 4 Then impresoraConectada = True
Loop
Sleep(500)
impresoraConectada = False
@@ -2733,28 +2829,26 @@ Sub Impresion
ProgressDialogShow("Imprimiendo, un momento ...")
Printer1.DisConnect
If Not(Printer1.IsConnected) Then
- Log("Conectando a impresora ...")
+' If logger Then Log("conectando 1")
Printer1.Connect
Private cont As Int = 0
Do While Not(impresoraConectada)
Sleep(1000)
- Log("++++++ " & cont)
cont = cont + 1
- If cont = 2 Then Printer1.Connect 'Tratamos de reconectar
- If cont > 3 Then impresoraConectada = True
+ If cont = 7 Then Printer1.Connect 'Tratamos de reconectar
+ If cont > 15 Then impresoraConectada = True
Loop
Sleep(500)
impresoraConectada = False
Else
- Log("conectando 2")
+' If logger Then Log("conectando 2")
Printer1.Connect
Private cont As Int = 0
Do While Not(impresoraConectada) Or Not(Printer1.IsConnected)
Sleep(1000)
- Log("****** " & cont)
cont = cont + 1
If cont = 2 Then Printer1.Connect
- If cont > 3 Then impresoraConectada = True
+ If cont > 4 Then impresoraConectada = True
Loop
Sleep(500)
impresoraConectada = False
@@ -2794,16 +2888,17 @@ Sub Impresion
Printer1.WriteString("-----------PREVENTA-----------" & CRLF)
' aqui es donde esta el pedo de julieta de los descuentos quitar el precio2 pero meter un if para saber si es ruta especial o es normal o que show.
- s=skmt.ExecQuery2("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU,PE_CANT * PE_COSTOU AS PE_COSTO_TOT, length(PE_CANT * PE_COSTOU) as L_COSTO_TOT,PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_CEDIS <> ? AND LENGTH(PE_CEDIS) < 4 AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_PROID", Array As String("DUR"))
+' s=skmt.ExecQuery2("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU,PE_CANT * PE_COSTOU AS PE_COSTO_TOT, length(PE_CANT * PE_COSTOU) as L_COSTO_TOT,PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_CEDIS <> ? AND LENGTH(PE_CEDIS) < 4 AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_PROID", Array As String("DUR"))
+ s=skmt.ExecQuery2("select PE_PRONOMBRE, SUM(PE_CANT) AS PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU,SUM(PE_CANT) * PE_COSTOU AS PE_COSTO_TOT, length(PE_CANT * PE_COSTOU) as L_COSTO_TOT,PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_CEDIS <> ? AND PE_CLIENTE IN (Select CUENTA from cuentaa) AND PE_COSTOU > 0.01 GROUP by PE_PROID", Array As String("DUR"))
If S.RowCount>0 Then
For i=0 To S.RowCount -1
S.Position=i
- If s.GetString("PE_CEDIS") = s.GetString("PE_PROID") Then
+' If s.GetString("PE_CEDIS") = s.GetString("PE_PROID") Then
Printer1.WriteString(s.GetString("PE_PRONOMBRE") & CRLF)
- Else
+' Else
- Printer1.WriteString(s.GetString("PE_CANT") & " " & s.GetString("PE_PRONOMBRE") & CRLF)
+' Printer1.WriteString(s.GetString("PE_CANT") & " " & s.GetString("PE_PRONOMBRE") & CRLF)
TAMANO = s.GetLong("L_CANT") + TAMANO
TAMANO = s.GetLong("L_COSTOU") + TAMANO
TAMANO = s.GetLong("L_COSTO_TOT") + TAMANO
@@ -2817,22 +2912,24 @@ Sub Impresion
TAMANO = 0
ESPACIO = 21
BLANCO = " "
- End If
+' End If
Next
End If
s.Close
Printer1.WriteString(" " & CRLF)
- s=skmt.ExecQuery("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU,PE_CANT * PE_COSTOU AS PE_COSTO_TOT, length(PE_CANT * PE_COSTOU) as L_COSTO_TOT,PE_PROID, PE_CEDIS FROM PEDIDO WHERE LENGTH(PE_CEDIS) > 3 AND PE_PROID NOT IN (SELECT CAT_PA_ID FROM PROMOS_COMP ) AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_CEDIS, PE_COSTOU")
+' s=skmt.ExecQuery("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU,PE_CANT * PE_COSTOU AS PE_COSTO_TOT, length(PE_CANT * PE_COSTOU) as L_COSTO_TOT,PE_PROID, PE_CEDIS FROM PEDIDO WHERE LENGTH(PE_CEDIS) > 3 AND PE_PROID NOT IN (SELECT CAT_PA_ID FROM PROMOS_COMP ) AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_CEDIS, PE_COSTOU")
+ s=skmt.ExecQuery2("select PE_PRONOMBRE, SUM(PE_CANT) AS PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU,SUM(PE_CANT) * PE_COSTOU AS PE_COSTO_TOT, length(PE_CANT * PE_COSTOU) as L_COSTO_TOT,PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_CEDIS <> ? AND PE_CLIENTE IN (Select CUENTA from cuentaa) AND PE_COSTOU = 0.01 GROUP by PE_PROID", Array As String("DUR"))
+
If S.RowCount>0 Then
- Printer1.WriteString("------------PROMOS------------" & CRLF)
+ Printer1.WriteString("--------BONIFICACIONES--------" & CRLF)
For i=0 To S.RowCount -1
S.Position=i
- If s.GetString("PE_CEDIS") = s.GetString("PE_PROID") Then
+' If s.GetString("PE_CEDIS") = s.GetString("PE_PROID") Then
Printer1.WriteString(s.GetString("PE_PRONOMBRE") & CRLF)
- Else
+' Else
- Printer1.WriteString(s.GetString("PE_CANT") & " " & s.GetString("PE_PRONOMBRE") & CRLF)
+' Printer1.WriteString(s.GetString("PE_CANT") & " " & s.GetString("PE_PRONOMBRE") & CRLF)
TAMANO = s.GetLong("L_CANT") + TAMANO
TAMANO = s.GetLong("L_COSTOU") + TAMANO
TAMANO = s.GetLong("L_COSTO_TOT") + TAMANO
@@ -2846,7 +2943,7 @@ Sub Impresion
TAMANO = 0
ESPACIO = 21
BLANCO = " "
- End If
+' End If
Next
Printer1.WriteString(" " & CRLF)
End If
@@ -2956,12 +3053,38 @@ End Sub
'' printer.Close
'End Sub
+Sub Printer1_Connected (Success As Boolean)
+' If Logger Then Log("Printer1_Connected")
+ If Success Then
+ ToastMessageShow("Impresora conectada", False)
+ Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("MACIMP"))
+ Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("MACIMP",Starter.mac_impresora))
+' If logger Then LogColor("Impresora conectada", Colors.Green)
+' B_IMP2.Enabled = True
+ impresoraConectada = True
+ Else
+' Msgbox(Printer1.ConnectedErrorMsg, "Error connecting.") 'ignore
+' ToastMessageShow("Error conectando la impresora", False)
+ LogColor("Error conectando la impresora", Colors.Red)
+ errorImpresora = errorImpresora + 1
+ If errorImpresora > 1 Then
+ Starter.MAC_IMPRESORA = "0"
+ errorImpresora = 0
+ End If
+ End If
+End Sub
+
+Sub Printer1_Error
+ Log("error printer")
+End Sub
+
Sub Printer_Connected (Success As Boolean)
If Success Then
- B_IMP.Enabled = True
+' B_IMP.Enabled = True
+' PASA_IMP = "1"
Else
- B_IMP.Enabled = False
- If Msgbox2("", "Printer Error","Reprint","Cancel","",Null) = DialogResponse.POSITIVE Then 'Ignore
+' B_IMP.Enabled = False
+ If Msgbox2("", "Printer Error","Reprint","Cancel","",Null) = DialogResponse.POSITIVE Then 'ignore
StartPrinter
End If
End If
@@ -2969,37 +3092,39 @@ End Sub
Sub StartPrinter
Dim PairedDevices As Map
- Dim L As List
+ Dim L1 As List
Dim resimp As Int
ToastMessageShow("Printing.....",True)
PairedDevices.Initialize
Try
PairedDevices = cmp20.GetPairedDevices
Catch
- Msgbox("Getting Paired Devices","Printer Error") 'Ignore
+ Msgbox("Getting Paired Devices","Printer Error") 'ignore
printer.Close
cmp20.Disconnect
End Try
+
If PairedDevices.Size = 0 Then
- Msgbox("Error Connecting to Printer - Printer Not Found","") 'Ignore
+ Msgbox("Error Connecting to Printer - Printer Not Found","") 'ignore
Return
End If
+
If PairedDevices.Size = 1 Then
Try
- cmp20.ConnectInsecure(btAdmin,PairedDevices.Get(PairedDevices.GetKeyAt(0)),1)
+ cmp20.Connect(PairedDevices.Get(PairedDevices.GetKeyAt(0)))
Catch
- Msgbox("Connecting","Printer Error") 'Ignore
+ Msgbox("Connecting","Printer Error") 'ignore
printer.Close
cmp20.Disconnect
End Try
Else
- L.Initialize
+ L1.Initialize
For i = 0 To PairedDevices.Size - 1
- L.Add(PairedDevices.GetKeyAt(i))
+ L1.Add(PairedDevices.GetKeyAt(i))
Next
- resimp = InputList(L, "Choose device", -1) 'Ignore
+ resimp = InputList(L1, "Choose device", -1) 'ignore
If resimp <> DialogResponse.CANCEL Then
- cmp20.Connect(PairedDevices.Get(L.Get(resimp)))
+ cmp20.Connect(PairedDevices.Get(L1.Get(resimp)))
End If
End If
End Sub
@@ -4809,6 +4934,7 @@ Sub Cuestionario
' Starter.tipov = "VENTA"
B4XPages.ShowPage("productos")
End If
+
End Sub
'Muestra el panel de la encuesta, le da el alto y ancho de la pantalla y la pone en 0,0
@@ -5192,7 +5318,7 @@ Private Sub PDFGENERAR
Dim s56 As Cursor=skmt.ExecQuery2("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU,PE_CANT * PE_COSTOU AS PE_COSTO_TOT, length(PE_CANT * PE_COSTOU) as L_COSTO_TOT,PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_FOLIO = ? AND LENGTH(PE_CEDIS) < 4 AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_PROID", Array As String("PREVENTA"))
Dim s57 As Cursor = skmt.ExecQuery2("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU,PE_CANT * PE_COSTOU AS PE_COSTO_TOT, length(PE_CANT * PE_COSTOU) as L_COSTO_TOT,PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_FOLIO = ? AND LENGTH(PE_CEDIS) > 3 AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_CEDIS, PE_COSTOU", Array As String("PREVENTA"))
- Dim pagina As Double = ((18 + (s56.RowCount*2) + (s57.RowCount*2)) * (6)) + 18
+ Dim pagina As Double = ((18 + (s56.RowCount*2) + (s57.RowCount*2)) * (6)) + 12
' Dim pagina As Double = ((18 + s56.RowCount + s57.RowCount +2) * (6)) + 18
Dim multiplicador As Int = 0
PDF.pageAdd(-300,pagina)
@@ -5221,14 +5347,14 @@ Private Sub PDFGENERAR
PDF.outtext(1,pagina-multiplicador*6," ")
c = skmt.ExecQuery2("SELECT * FROM PEDIDO WHERE PE_FOLIO = ?",Array As String("PREVENTA"))
If c.RowCount > 0 Then
- multiplicador = multiplicador +1
- PDF.outtext(1,pagina-multiplicador*6,"------------------------------------PREVENTA-----------------------------------------")
- multiplicador = multiplicador +1
- PDF.outtext(1,pagina-multiplicador*6,"Cant. Precio Importe")
- multiplicador = multiplicador +1
- PDF.outtext(1,pagina-multiplicador*6,"-----------------------------------------------------------------------------------------")
s=skmt.ExecQuery2("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU,PE_CANT * PE_COSTOU AS PE_COSTO_TOT, length(PE_CANT * PE_COSTOU) as L_COSTO_TOT,PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_FOLIO = ? AND LENGTH(PE_CEDIS) < 4 AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_PROID", Array As String("PREVENTA"))
If S.RowCount>0 Then
+ multiplicador = multiplicador +1
+ PDF.outtext(1,pagina-multiplicador*6,"------------------------------------PREVENTA-----------------------------------------")
+ multiplicador = multiplicador +1
+ PDF.outtext(1,pagina-multiplicador*6,"Cant. Precio Importe")
+ multiplicador = multiplicador +1
+ PDF.outtext(1,pagina-multiplicador*6,"-----------------------------------------------------------------------------------------")
For i=0 To S.RowCount -1
S.Position=i
If s.GetString("PE_CEDIS") = s.GetString("PE_PROID") Then
@@ -5257,9 +5383,9 @@ Private Sub PDFGENERAR
' pdf.outtext(1,108-9*6,s.GETSTRING("PE_COSTO_TOT") )
End If
Next
+ PDF.outtext(1,108-9*6," " )
End If
s.Close
- PDF.outtext(1,108-9*6," " )
s=skmt.ExecQuery2("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU,PE_CANT * PE_COSTOU AS PE_COSTO_TOT, length(PE_CANT * PE_COSTOU) as L_COSTO_TOT,PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_FOLIO = ? AND LENGTH(PE_CEDIS) > 3 AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_CEDIS, PE_COSTOU", Array As String("PREVENTA"))
If S.RowCount>0 Then
multiplicador = multiplicador +1
@@ -5328,9 +5454,193 @@ Private Sub PDFGENERAR
PDF.outtext(1,pagina-multiplicador*6," " )
multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6," " )
+' multiplicador = multiplicador +1
+' PDF.outtext(1,pagina-multiplicador*6," " )
+' multiplicador = multiplicador +1
+' PDF.outtext(1,pagina-multiplicador*6," " )
+' multiplicador = multiplicador +1
+' PDF.outtext(1,pagina-multiplicador*6,"-----------------------------------------------------------------------------------------" )
+' 'all combinations of font normal, bold,italic,underline and strikethrough
+' For i=0 To 15
+' 'select a font
+' pdf.sFont(pdf.fontHelvetica,s,30,pdf.colorBlack)
+' 'draw a text at position 20 (from left) and 277 (from bottom)
+' pdf.outtext(20,277-i*15,"Hello world!")
+' Next
+ DateTime.DateFormat = "ddmmyyyy"
+ DateTime.TimeFormat = "HHmmss"
+ sDate=DateTime.Date(DateTime.Now)
+ sTime=DateTime.Time(DateTime.Now)
+ archivoTicketPDF = sDate&sTime&".pdf"
+ 'save to file with compression if data compressed are smaller
+ savePDF(PDF, archivoTicketPDF, PDF.CompressAlways)
+ 'open with default viewer
+' openPDF(sDate&sTime&".pdf")
+End Sub
+
+Private Sub PDFGENERAR2
+ ESPACIO = 0
+ DateTime.DateFormat = "MM/dd/yyyy"
+ DateTime.TimeFormat = "HH:mm:ss"
+ sDate=DateTime.Date(DateTime.Now)
+ sTime=DateTime.Time(DateTime.Now)
+ Dim PDF As cPDF
+ 'initialize with mm unit
+ PDF.Initialize("mm")
+ 'set properties
+ PDF.sProperty(PDF.PropertyAuthor,"Keymonsoft"). _
+ sProperty(PDF.PropertyTitle,"Ticket"). _
+ sProperty(PDF.PropertyKeywords,"B4X,PDF,Cross platform")
+ 'add a page
+
+ Dim s56 As Cursor=skmt.ExecQuery2("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU,PE_CANT * PE_COSTOU AS PE_COSTO_TOT, length(PE_CANT * PE_COSTOU) as L_COSTO_TOT,PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_FOLIO = ? AND LENGTH(PE_CEDIS) < 4 AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_PROID", Array As String("PREVENTA"))
+ Dim s57 As Cursor = skmt.ExecQuery2("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU,PE_CANT * PE_COSTOU AS PE_COSTO_TOT, length(PE_CANT * PE_COSTOU) as L_COSTO_TOT,PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_FOLIO = ? AND LENGTH(PE_CEDIS) > 3 AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_CEDIS, PE_COSTOU", Array As String("PREVENTA"))
+
+ Dim pagina As Double = ((18 + (s56.RowCount*2) + (s57.RowCount*2)) * (6)) + 12
+' Dim pagina As Double = ((18 + s56.RowCount + s57.RowCount +2) * (6)) + 18
+ Dim multiplicador As Int = 0
+ PDF.pageAdd(-300,pagina)
+' pdf.pageAdd(-350,-1900)
+
+ PDF.sFont(PDF.fontHelvetica,0,10,PDF.colorBlack)
+
+ PDF.outImage(xui.DefaultFolder,"guna-fondo.jpg",1,pagina-45,45,0)
+ multiplicador = multiplicador +1
+ PDF.outtext(1,pagina-multiplicador*6,"GUNA")
+ multiplicador = multiplicador +1
+ PDF.outtext(1,pagina-multiplicador*6,sDate& " " & sTime)
+ multiplicador = multiplicador +1
+ PDF.outtext(1,pagina-multiplicador*6,"Vendedor:" & Subs.traeUsuarioDeBD)
+ multiplicador = multiplicador +1
+ PDF.outtext(1,pagina-multiplicador*6,"Tienda: " & La_nombre.Text)
+ multiplicador = multiplicador +1
+ PDF.outtext(1,pagina-multiplicador*6,"ID.Cliente: " & la_cuenta.Text)
+ multiplicador = multiplicador +1
+ PDF.outtext(1,pagina-multiplicador*6,"Calle: " & la_Calle.Text)
+ multiplicador = multiplicador +1
+ PDF.outtext(1,pagina-multiplicador*6,"Colonia: " & la_col.Text)
+ multiplicador = multiplicador +1
+ PDF.outtext(1,pagina-multiplicador*6," ")
+ multiplicador = multiplicador +1
+ PDF.outtext(1,pagina-multiplicador*6," ")
+ c = skmt.ExecQuery2("SELECT * FROM PEDIDO WHERE PE_FOLIO = ?",Array As String("PREVENTA"))
+ If c.RowCount > 0 Then
+ s=skmt.ExecQuery2("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU,PE_CANT * PE_COSTOU AS PE_COSTO_TOT, length(PE_CANT * PE_COSTOU) as L_COSTO_TOT,PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_FOLIO = ? AND LENGTH(PE_CEDIS) < 4 AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_PROID", Array As String("PREVENTA"))
+ If S.RowCount>0 Then
+ multiplicador = multiplicador +1
+ PDF.outtext(1,pagina-multiplicador*6,"------------------------------------PREVENTA-----------------------------------------")
+ multiplicador = multiplicador +1
+ PDF.outtext(1,pagina-multiplicador*6,"Cant. Precio Importe")
+ multiplicador = multiplicador +1
+ PDF.outtext(1,pagina-multiplicador*6,"-----------------------------------------------------------------------------------------")
+ For i=0 To S.RowCount -1
+ S.Position=i
+ If s.GetString("PE_CEDIS") = s.GetString("PE_PROID") Then
+ multiplicador = multiplicador +1
+ PDF.outtext(1,pagina-multiplicador*6,s.GetString("PE_PRONOMBRE") )
+ Else
+ PDF.sFont(PDF.fontHelvetica,0,7,PDF.colorBlack)
+ multiplicador = multiplicador +1
+ PDF.outtext(1,pagina-multiplicador*6,s.GetString("PE_PRONOMBRE"))
+' LogColor(s.GetLong("L_CANT"),Colors.Magenta)
+' LogColor(s.GetLong("L_COSTOU"),Colors.Magenta)
+' LogColor(s.GetLong("L_COSTO_TOT"),Colors.Magenta)
+ TAMANO = s.GetLong("L_CANT") + s.GetLong("L_COSTOU") + s.GetLong("L_COSTO_TOT")
+ ESPACIO = 92
+ BLANCO = " "
+ ESPACIO = ESPACIO - TAMANO
+ ESPACIO = ESPACIO / 2
+ For E=0 To ESPACIO -1
+ BLANCO = " " & BLANCO
+ Next
+ PDF.sFont(PDF.fontHelvetica,0,10,PDF.colorBlack)
+ multiplicador = multiplicador +1
+ PDF.outtext(1,pagina-multiplicador*6, s.GETSTRING("PE_CANT") & BLANCO & s.GETSTRING("PE_COSTOU") & BLANCO & s.GETSTRING("PE_COSTO_TOT"))
+' pdf.outtext(1,108-9*6,s.GETSTRING("PE_COSTOU"))
+
+' pdf.outtext(1,108-9*6,s.GETSTRING("PE_COSTO_TOT") )
+ End If
+ Next
+ PDF.outtext(1,108-9*6," " )
+ End If
+ s.Close
+ s=skmt.ExecQuery2("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU,PE_CANT * PE_COSTOU AS PE_COSTO_TOT, length(PE_CANT * PE_COSTOU) as L_COSTO_TOT,PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_FOLIO = ? AND LENGTH(PE_CEDIS) > 3 AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_CEDIS, PE_COSTOU", Array As String("PREVENTA"))
+ If S.RowCount>0 Then
+ multiplicador = multiplicador +1
+ PDF.outtext(1,pagina-multiplicador*6,"--------------------------PROMOS PREVENTA-------------------------------------")
+ multiplicador = multiplicador +1
+ PDF.outtext(1,pagina-multiplicador*6,"Cant. Precio Importe")
+ multiplicador = multiplicador +1
+ PDF.outtext(1,pagina-multiplicador*6,"-----------------------------------------------------------------------------------------")
+ For i=0 To S.RowCount -1
+ S.Position=i
+ If s.GetString("PE_CEDIS") = s.GetString("PE_PROID") Then
+ multiplicador = multiplicador +1
+ PDF.outtext(1,pagina-multiplicador*6,s.GetString("PE_PRONOMBRE") )
+ Else
+ PDF.sFont(PDF.fontHelvetica,0,7,PDF.colorBlack)
+ multiplicador = multiplicador +1
+ PDF.outtext(1,pagina-multiplicador*6,s.GetString("PE_PRONOMBRE"))
+ LogColor(s.GetLong("L_CANT"),Colors.Magenta)
+ LogColor(s.GetLong("L_COSTOU"),Colors.Magenta)
+ LogColor(s.GetLong("L_COSTO_TOT"),Colors.Magenta)
+ TAMANO = s.GetLong("L_CANT") + s.GetLong("L_COSTOU") + s.GetLong("L_COSTO_TOT")
+ ESPACIO = 92
+ BLANCO = " "
+ ESPACIO = ESPACIO - TAMANO
+ ESPACIO = ESPACIO / 2
+ For E=0 To ESPACIO -1
+ BLANCO = " " & BLANCO
+ Next
+ PDF.sFont(PDF.fontHelvetica,0,10,PDF.colorBlack)
+ multiplicador = multiplicador +1
+ PDF.outtext(1,pagina-multiplicador*6, s.GETSTRING("PE_CANT") & BLANCO & s.GETSTRING("PE_COSTOU") & BLANCO & s.GETSTRING("PE_COSTO_TOT"))
+ End If
+ Next
+ End If
+ s.Close
+' multiplicador = multiplicador +1
+' pdf.outtext(1,pagina-multiplicador*6," " )
+ multiplicador = multiplicador +1
+ PDF.outtext(1,pagina-multiplicador*6," " )
+ multiplicador = multiplicador +1
+ PDF.outtext(1,pagina-multiplicador*6,"-----------------------------------------------------------------------------------------")
+ s=skmt.ExecQuery2("select SUM(PE_COSTO_TOT) AS TOTAL FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) AND PE_FOLIO = ?", Array As String("PREVENTA"))
+ s.Position =0
+
+
+ multiplicador = multiplicador +1
+ PDF.outtext(1,pagina-multiplicador*6,"Descuento: $" & 150)
+ multiplicador = multiplicador +1
+ PDF.outtext(1,pagina-multiplicador*6,"Total preventa: $" & (s.GetString("TOTAL") -150))
+ s.Close
+ c= skmt.ExecQuery2("select sum(PE_CANT) as PC_NOART from PEDIDO where PE_CLIENTE in (Select CUENTA from cuentaa) AND PE_PROID NOT IN (SELECT CAT_PA_ID FROM PROMOS_COMP ) AND PE_FOLIO = ?", Array As String("PREVENTA"))
+ C.Position=0
+ multiplicador = multiplicador +1
+ PDF.outtext(1,pagina-multiplicador*6,"Total articulos preventa: " & c.GetString("PC_NOART") )
+ c.Close
+ End If
+' multiplicador = multiplicador +1
+' pdf.outtext(1,pagina-multiplicador*6," " )
+ multiplicador = multiplicador +1
+ PDF.outtext(1,pagina-multiplicador*6,"-----------------------------------------------------------------------------------------" )
+ multiplicador = multiplicador +1
+ PDF.outtext(1,pagina-multiplicador*6,"--------------------------ESTE TICKET NO ES UN ---------------------------" )
+ multiplicador = multiplicador +1
+ PDF.outtext(1,pagina-multiplicador*6,"-------------------COMPROBANTE FISCAL, SOLO ES--------------------" )
+ multiplicador = multiplicador +1
+ PDF.outtext(1,pagina-multiplicador*6,"---------------------------------INFORMATIVO-----------------------------------" )
+ multiplicador = multiplicador +1
+ PDF.outtext(1,pagina-multiplicador*6,"-----------------------------------------------------------------------------------------" )
multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6," " )
multiplicador = multiplicador +1
+ PDF.outtext(1,pagina-multiplicador*6," " )
+ multiplicador = multiplicador +1
+ PDF.outtext(1,pagina-multiplicador*6," " )
+ multiplicador = multiplicador +1
+ PDF.outtext(1,pagina-multiplicador*6," " )
+' multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6,"-----------------------------------------------------------------------------------------" )
' 'all combinations of font normal, bold,italic,underline and strikethrough
' For i=0 To 15
@@ -5525,7 +5835,15 @@ Sub EnviarPDFWhatsAppNumero2(NumeroTelefono As String)
End Sub
Private Sub b_envioPDF_Click
- PDFGENERAR
+ If ALMACEN = 87 Or ALMACEN = 6 Then
+ If Subs.traemontoprod Then
+ PDFGENERAR2
+ Else
+ PDFGENERAR
+ End If
+ Else
+ PDFGENERAR
+ End If
EnviarPDFWhatsAppNumero(et_numeroPDF.Text)
B4XPages.MainPage.skmt.ExecNonQuery("delete from TICKET_IMPRESO where idCliente In (select cuenta from cuentaa)")
@@ -5726,7 +6044,7 @@ Private Sub Label19_Click
End Sub
Private Sub Label19_LongClick
-
+
Dim numeroTel As String = Label19.Text
numeroTel = numeroTel.Replace(" ", "").Replace("-", "").Replace("(", "").Replace(")", "")
@@ -5868,4 +6186,16 @@ Private Sub StopCamera2
If camEx.IsInitialized Then
camEx.Release
End If
+End Sub
+
+Private Sub p_cliente__Click
+
+End Sub
+
+Private Sub pnlPlanLealtad_Click
+
+End Sub
+
+Private Sub CH_FACTURA_CheckedChange(Checked As Boolean)
+
End Sub
\ No newline at end of file
diff --git a/B4A/C_Clientes.bas b/B4A/C_Clientes.bas
index 1e48481..70cfae8 100644
--- a/B4A/C_Clientes.bas
+++ b/B4A/C_Clientes.bas
@@ -42,9 +42,11 @@ Private Sub B4XPage_Created (Root1 As B4XView)
Root.LoadLayout("clientes")
'Dim ruta As String
entro ="2"
- p_clientes.Height = Root.Height
+ p_clientes.Height = Root.Height
p_clientes.Width = Root.Width
Panel4.Left = Round(Root.Width/2)-(Panel4.Width/2)
+ Panel4.Height = Root.Height * 0.70
+ ListView1.Height = Panel4.Height * 0.95
' valido donde escribo el archivo de la base de datos de kmt
' If File.ExternalWritable Then
@@ -70,17 +72,24 @@ Sub B4XPage_Appear
c = B4XPages.MainPage.skmt.ExecQuery("select CAT_CL_NOMBRE, CAT_CL_CALLE, CAT_CL_CODIGO from kmt_info3 where gestion = 0 ORDER BY CAT_CL_CODIGO")
ListView1.Clear
lfila.Text = "NOMBRE"
+ Subs.SetDivider(ListView1, Colors.White, 2)
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 = 13
- label1.TextColor = Colors.Black
+ label1.TextSize = 20
+ label1.TextColor = Colors.White
Dim label2 As Label
label2 = ListView1.TwoLinesLayout.SecondLabel
- label2.TextSize = 13
- label2.TextColor = Colors.Black
+ label2.TextSize = 20
+ label2.TextColor = Colors.White
+ label1.Height = 25dip
+ label2.Height = 60dip
+
+ ListView1.TwoLinesLayout.ItemHeight = 95dip
+ label1.Typeface = Typeface.CreateNew(Typeface.DEFAULT_BOLD, Typeface.STYLE_BOLD)
+ label2.Typeface = Typeface.CreateNew(Typeface.DEFAULT_BOLD, Typeface.STYLE_BOLD)
ListView1.AddTwoLines(c.GetString("CAT_CL_CODIGO"), c.GetString("CAT_CL_NOMBRE"))
Next
End If
@@ -135,7 +144,7 @@ Sub ListView1_ItemClick (Position As Int, Value As Object)
B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE HIST_STAY_OUT set HSO_INI = ? where HSO_INI = 0 ", Array As Object(STIME))
DateTime.TimeFormat = "HH:mm:ss"
' Log(entro)
- If B4XPages.MainPage.cliente.bitacora.IsInitialized Then
+ If B4XPages.MainPage.cliente.bitacora.IsInitialized Then
Log("VAMOS A CLIENTE CON ENVENTA = FALSO")
B4XPages.MainPage.cliente.bitacora.iniciamosVenta
Log(B4XPages.MainPage.cliente.bitacora.enVenta)
@@ -159,19 +168,26 @@ Sub BUSCA_TextChanged (Old As String, New As String)
q_buscar = "%" & busca.Text & "%"
c2=B4XPages.MainPage.skmt.ExecQuery2("select CAT_CL_NOMBRE, CAT_CL_CALLE, CAT_CL_CODIGO from kmt_info3 where (CAT_CL_NOMBRE like ? OR CAT_CL_CODIGO LIKE ? OR CAT_CL_CALLE LIKE ?)and gestion = 0 order by CAT_CL_NOMBRE ", Array As String(q_buscar,q_buscar,q_buscar))
ListView1.Clear
+ Subs.SetDivider(ListView1, Colors.White, 2)
lfila.text = "Nombre y Calle"
If c2.RowCount>0 Then
For i=0 To c2.RowCount -1
c2.Position=i
Dim label1 As Label
label1 = ListView1.TwoLinesLayout.Label
- label1.TextSize = 9
- label1.TextColor = Colors.Gray
+ label1.TextSize = 20
+ label1.TextColor = Colors.White
Dim label2 As Label
label2 = ListView1.TwoLinesLayout.SecondLabel
- label2.TextSize = 17
- label2.TextColor = Colors.Gray
- ListView1.AddTwoLines(c2.GetString("CAT_CL_CODIGO"), c2.GetString("CAT_CL_NOMBRE") &" CALLE: "& c2.GetString("CAT_CL_CALLE"))
+ label2.TextSize = 20
+ label2.TextColor = Colors.White
+ label1.Height = 25dip
+ label2.Height = 60dip
+
+ ListView1.TwoLinesLayout.ItemHeight = 95dip
+ label1.Typeface = Typeface.CreateNew(Typeface.DEFAULT_BOLD, Typeface.STYLE_BOLD)
+ label2.Typeface = Typeface.CreateNew(Typeface.DEFAULT_BOLD, Typeface.STYLE_BOLD)
+ ListView1.AddTwoLines(c2.GetString("CAT_CL_CODIGO"), c2.GetString("CAT_CL_NOMBRE")& CRLF &"CALLE: "& c2.GetString("CAT_CL_CALLE"))
Next
End If
entro = "4"
diff --git a/B4A/C_Historico.bas b/B4A/C_Historico.bas
index a277a14..96b581e 100644
--- a/B4A/C_Historico.bas
+++ b/B4A/C_Historico.bas
@@ -30,6 +30,8 @@ Sub Class_Globals
Private b_desc As Button
Private ListView2 As ListView
Dim tgl As Toggle
+ Private p_nota As Panel
+ Private Panel1 As Panel
End Sub
'You can add more parameters here.
@@ -55,6 +57,9 @@ 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)
diff --git a/B4A/C_NoVenta.bas b/B4A/C_NoVenta.bas
index 73aa460..a8eda6e 100644
--- a/B4A/C_NoVenta.bas
+++ b/B4A/C_NoVenta.bas
@@ -33,6 +33,7 @@ Sub Class_Globals
Private p_NoVenta As Panel
Dim tipo_venta = Subs.traeTipoVentaDeBD
Dim bitacora As C_Bitacora
+ Private Panel1 As Panel
End Sub
'You can add more parameters here.
@@ -58,13 +59,20 @@ End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
Sub B4XPage_Appear
+ Panel1.Height = Root.Height
+ Panel1.Width = Root.Width
+ Subs.centraPanel(Panel1, Root.Width)
+ Subs.centraPanelV(Panel1, Root.Height)
e_comm.Text=""
tgl.Initialize
If Not(Starter.gps.GPSEnabled) Then
ToastMessageShow("Es necesario tener el GPS encendido", True)
StartActivity(Starter.gps.LocationSettingsIntent)
End If
- r_1.Checked = True
+ r_1.Checked = False
+ r_2.Checked = False
+ r_3.Checked = False
+ r_4.Checked = False
End Sub
Sub GPS_LocationChanged (Location1 As Location)
diff --git a/B4A/C_Nota.bas b/B4A/C_Nota.bas
index acd5e02..88cc0e1 100644
--- a/B4A/C_Nota.bas
+++ b/B4A/C_Nota.bas
@@ -35,6 +35,7 @@ Sub Class_Globals
Private almacen As String
Private p_nota As Panel
Dim tipo_venta As String = Subs.traeTipoVentaDeBD
+ Private Panel1 As Panel
End Sub
'You can add more parameters here.
@@ -64,6 +65,9 @@ Sub B4XPage_Appear
ToastMessageShow("Es necesario tener el GPS encendido", True)
StartActivity(Starter.gps.LocationSettingsIntent)
End If
+ p_nota.Height = Root.Height * 0.9
+ p_nota.Width = Root.Width * 0.9
+ Panel1.Visible = True
c=B4XPages.MainPage.skmt.ExecQuery("select ID_ALMACEN from CAT_ALMACEN")
C.Position =0
almacen = C.GetString("ID_ALMACEN")
@@ -76,6 +80,7 @@ Sub B4XPage_Appear
C.Close
c=B4XPages.MainPage.skmt.ExecQuery("select PE_PRONOMBRE,PE_COSTO_TOT, PE_CANT, PE_FOLIO, PE_CEDIS FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_CEDIS desc")
ListView1.Clear
+ ListView1.Height = Root.Height * 0.65
Private cs As CSBuilder
If c.RowCount>0 Then
For i=0 To c.RowCount -1
@@ -83,25 +88,33 @@ Sub B4XPage_Appear
c.Position=i
Dim label1 As Label
label1 = ListView1.TwoLinesLayout.Label
- label1.TextSize = 15
+ label1.TextSize = 20
label1.TextColor = Colors.Black
label1.color = Colors.White
- Private textColor As Int = Colors.black
- If c.GetString("PE_CEDIS").Contains("PRO") Then textColor = Colors.RGB(210,105,30) 'Si es promo, cambiamos el color del texto.
- If Not(IsNumber(c.GetString("PE_CEDIS"))) Then textColor = Colors.RGB(210,105,30) 'Si es promo, cambiamos el color del texto.
+ Private textColor As Int = Colors.White
+ If c.GetString("PE_CEDIS").Contains("PRO") Then textColor = Colors.Blue 'Si es promo, cambiamos el color del texto.
+ If Not(IsNumber(c.GetString("PE_CEDIS"))) Then textColor = Colors.Blue 'Si es promo, cambiamos el color del texto.
Dim label2 As Label
label2 = ListView1.TwoLinesLayout.SecondLabel
- label2.TextSize = 10
- label2.TextColor = Colors.Blue
- ListView1.AddSingleLine(cs.Color(textColor).Size(12).append(c.GetString("PE_PRONOMBRE") & " ").pop.Append(CRLF).Size(8).Color(Colors.Blue).Append("Cantidad #"& c.GetString("PE_CANT")).Append(" SubTotal $"& c.GetString("PE_COSTO_TOT")).Append(" " & c.GetString("PE_FOLIO")& " " &c.GetString("PE_CEDIS")).PopAll)
+ label2.TextSize = 16
+ label2.TextColor = Colors.White
+
+ ListView1.AddSingleLine(cs.Color(textColor).Size(20).append(c.GetString("PE_PRONOMBRE") & " ").pop.Append(CRLF).Size(16).Color(Colors.White).Append("Cantidad #"& c.GetString("PE_CANT")).Append(" SubTotal $"& c.GetString("PE_COSTO_TOT")).Append(" " & c.GetString("PE_FOLIO")& " " &c.GetString("PE_CEDIS")).PopAll)
+ label1.Height = 90dip
+' label2.Height = 60dip
+'
+' ListView1.TwoLinesLayout.ItemHeight = 120dip
+ ListView1.SingleLineLayout.ItemHeight = 90dip
+ label1.Typeface = Typeface.CreateNew(Typeface.DEFAULT_BOLD, Typeface.STYLE_BOLD)
+ label2.Typeface = Typeface.CreateNew(Typeface.DEFAULT_BOLD, Typeface.STYLE_BOLD)
folio = c.GetString("PE_FOLIO")
Next
End If
If Existe <> 0 Then
- c=B4XPages.MainPage.skmt.ExecQuery("select pc_noart, pc_monto from pedido_cliente where pc_cliente in (Select CUENTA from cuentaa)")
+ c=B4XPages.MainPage.skmt.ExecQuery("select SUM(PE_CANT) AS PE_CANT from pedido where pe_cliente in (Select CUENTA from cuentaa) AND PE_PROID NOT IN (SELECT CAT_PA_ID FROM PROMOS_COMP ) ")
C.Position=0
- L_CANT.Text = c.GetString("PC_NOART")
- L_TOTAL.Text = NumberFormat2(c.GetString("PC_MONTO"), 1, 2, 2, True)
+ L_CANT.Text = c.GetString("PE_CANT")
+' L_TOTAL.Text = NumberFormat2(c.GetString("PC_MONTO"), 1, 2, 2, True)
c.Close
c=B4XPages.MainPage.skmt.ExecQuery("select SUM(IFNULL(PE_DESC,0)) AS DESCUENTO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
c.Position=0
@@ -121,8 +134,6 @@ Sub B4XPage_Appear
L_TOTAL.Text =NumberFormat2(s.GetString("TOTAL_CLIE") + s5.GetString("TOTAL_CLIE"),0,2,2,True)
-
-
s.Close
@@ -234,6 +245,8 @@ Sub borra_Click
End Sub
Sub ListView1_ItemLongClick (Position As Int, Value As Object)
+ Log(Subs.traeTablaProds(tipo_venta))
+ Log(Value)
Private X() As String = Regex.Split(" ", Value)
Log(X.Length)
Private nom As String = ""
@@ -349,7 +362,13 @@ Sub ListView1_ItemLongClick (Position As Int, Value As Object)
Next
' Log(nom)
nom = nom.Trim
- Private cedis As String = X(X.Length-1)
+ If X(X.Length-1) <> ".01" Then
+ Private cedis As String = X(X.Length-1)
+ Else
+ Private cedis As String = (X(X.Length-2) &" " & X(X.Length-1))
+ End If
+ Log(nom)
+ Log(cedis)
c=B4XPages.MainPage.skmt.ExecQuery($"select PE_PROID,PE_CANT, PE_FOLIO, PE_CEDIS, PE_PRONOMBRE FROM PEDIDO where (pe_pronombre = '${nom}' or pe_pronombre = '${nom} ') AND PE_CEDIS = '${cedis}' and pe_cliente in (Select CUENTA from cuentaa)"$) ' Se agregó el "pe_pronombre = '${nom} '" porque al nombre de los productos de promo se les agrega un "espacio al final" para que cuando exiiste en el pedido un mismo producto fuera de promocion, el "quitaduplicados" no los elimine.
Log($"select PE_PROID,PE_CANT, PE_FOLIO, PE_CEDIS FROM PEDIDO where (pe_pronombre = '${nom}' or pe_pronombre = '${nom} ') AND PE_CEDIS = '${cedis}' and pe_cliente in (Select CUENTA from cuentaa)"$)
Log(c.RowCount)
diff --git a/B4A/C_NuevoCliente.bas b/B4A/C_NuevoCliente.bas
index bcdc4cd..dd8ba71 100644
--- a/B4A/C_NuevoCliente.bas
+++ b/B4A/C_NuevoCliente.bas
@@ -55,12 +55,13 @@ Sub B4XPage_Appear
StartActivity(Starter.gps.LocationSettingsIntent)
End If
GUARDA.Visible = False
- Subs.panelVisible(p_nuevoCliente, 0, 0)
- p_nuevoCliente.Height = Root.Height
- p_nuevoCliente.Width = Root.Width
- Subs.centraEtiqueta(Label1, Root.Width)
- Subs.centraEtiqueta(l_sinUbicacion, Root.Width)
- Subs.centraPanel(p_botones, Root.Width)
+' Subs.panelVisible(p_nuevoCliente,, 0)
+' p_nuevoCliente.Height = Root.Height
+' p_nuevoCliente.Width = Root.Width
+' Subs.centraEtiqueta(Label1, Root.Width)
+' Subs.centraEtiqueta(l_sinUbicacion, Root.Width)
+' Subs.centraPanel(p_botones, Root.Width)
+ Subs.centraPanel(p_nuevoCliente, Root.Width)
' 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.
diff --git a/B4A/C_Principal.bas b/B4A/C_Principal.bas
index 6c30838..c28dd45 100644
--- a/B4A/C_Principal.bas
+++ b/B4A/C_Principal.bas
@@ -241,6 +241,12 @@ Sub Class_Globals
Dim bitacora As C_Bitacora
Private l_version As Label
Dim contadorSubir As Int = 0
+
+ Private p_somvra_2 As Panel
+ Private b_resdia As Button
+ Private b_hacerpedido As Button
+ Private b_nuevocliente As Button
+ Private b_clientesvisitados As Button
End Sub
'You can add more parameters here.
@@ -303,7 +309,7 @@ Private Sub B4XPage_Created (Root1 As B4XView)
If Subs.traeTipoVentaDeBD = "VENTA" Or Subs.traeTipoVentaDeBD = "ABORDO" Then
If l_ruta.Text <> "0" Then
Log(999 & "|" & l_ruta.Text & "|")
- b_abordo.Visible = True
+ b_abordo.Visible = False
End If
Else
b_abordo.Visible = False
@@ -329,7 +335,7 @@ Private Sub B4XPage_Created (Root1 As B4XView)
'where pc_fecha = ?", Array As String(fecha)
c.Position=0
b.Position=0
- L_MONTOD.Text = c.GetString("MONTO_DIA")
+ L_MONTOD.Text = NumberFormat2(c.GetDouble("MONTO_DIA"), 0, 2, 2, False)
l_cuantosc.Text = c.GetString("CLIENTES_DIA")
l_cuantosn.Text = b.GetString("CUANTOS")
drop = c.GetString("MONTO_DIA") / c.GetString("CLIENTES_DIA")
@@ -368,6 +374,8 @@ Sub B4XPage_Appear
p_principal.Visible = True
E_RUTA2.Text = ""
p_ruta2.Visible = False
+ E_RUTA2.Visible = False
+ p_somvra_2.Visible = False
Subs.validaPromoProcterPRO3009
HORAINGRESO ="000000"
Btn_Ubicar.Left = (Panel4.Width/2) - (Btn_Ubicar.Width/2)
@@ -453,7 +461,7 @@ Sub B4XPage_Appear
b=B4XPages.MainPage.skmt.ExecQuery("select count( distinct NV_CLIENTE) as CUANTOS from noventa")
c.Position=0
b.Position=0
- L_MONTOD.Text = c.GetString("MONTO_DIA")
+ L_MONTOD.Text = NumberFormat2(c.GetDouble("MONTO_DIA"), 0, 2, 2, False)
l_cuantosc.Text = c.GetString("CLIENTES_DIA")
D2=B4XPages.MainPage.skmt.ExecQuery("select COUNT(*) AS CUANTOS from PEDIDO ")
D2.Position = 0
@@ -477,14 +485,14 @@ Sub B4XPage_Appear
End If
Log("|" & c.GetString("MONTO_DIA") & "|")
Log("|" & c.GetString("CLIENTES_DIA") & "|")
- L_TICKPROM.Text = Round2((c.GetString("MONTO_DIA") / c.GetString("CLIENTES_DIA")), 2)
- If c.GetString("MONTO_DIA") < 4000 Then
- ImageView5.Bitmap = LoadBitmap(File.DirAssets, "tache_rojo.png")
- Else if c.GetString("MONTO_DIA") > = 4000 And c.GetString("MONTO_DIA") < 6250 Then
- ImageView5.bitmap = LoadBitmap(File.DirAssets, "alerta_amarilla.png")
- Else
- ImageView5.Bitmap = LoadBitmap(File.DirAssets, "palomita_verde.png")
- End If
+' L_TICKPROM.Text = Round2((c.GetString("MONTO_DIA") / c.GetString("CLIENTES_DIA")), 2)
+' If c.GetString("MONTO_DIA") < 4000 Then
+' ImageView5.Bitmap = LoadBitmap(File.DirAssets, "tache_rojo.png")
+' Else if c.GetString("MONTO_DIA") > = 4000 And c.GetString("MONTO_DIA") < 6250 Then
+' ImageView5.bitmap = LoadBitmap(File.DirAssets, "alerta_amarilla.png")
+' Else
+' ImageView5.Bitmap = LoadBitmap(File.DirAssets, "palomita_verde.png")
+' End If
b.Close
c.Close
End If
@@ -533,6 +541,7 @@ Sub B4XPage_Appear
End Sub
Sub Subir_Click
+ checaPedido
CARGA = "SUBIR"
P1.Visible = True
P1.BringToFront
@@ -549,6 +558,10 @@ Sub Subir_Click
PB1.Visible = False
Resumen.Visible= False
+ p_principal.Visible = False
+ Subs.panelVisible(P1, 0, 0)
+ Subs.centraPanel(P1, Root.Width)
+ Subs.centraPanelV(P1, Root.Height)
B4XPages.MainPage.reqManager.trackInit
L_P_2.Text = "Envio de Pedidos"
@@ -585,15 +598,15 @@ Sub Subir_Click
c.Close
' PEDIO_CLIENTE
- c=B4XPages.MainPage.skmt.ExecQuery("SELECT PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT, PC_COSTO_SIN, PC_RUTA, PC_ALMACEN FROM PEDIDO_CLIENTE ")
+ c=B4XPages.MainPage.skmt.ExecQuery("SELECT PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT, PC_COSTO_SIN, PC_RUTA, PC_ALMACEN, PC_FACTURA FROM PEDIDO_CLIENTE ")
d=B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDOSC FROM PEDIDO_CLIENTE ")
If c.RowCount>0 Then
For i=0 To c.RowCount -1
c.Position=i
Dim cmd As DBCommand
cmd.Initialize
- cmd.Name = "insert_pedidos_GV2"
- cmd.Parameters = Array As Object(C.GetString("PC_CLIENTE"),C.GetString("PC_FECHA"),C.GetString("PC_USER"),C.GetString("PC_NOART"),C.GetString("PC_MONTO"),C.GetString("PC_LON"),C.GetString("PC_LAT"),ALMACEN,l_ruta.text,C.GetString("PC_COSTO_SIN") )
+ cmd.Name = "insert_pedidos_GV3"
+ cmd.Parameters = Array As Object(C.GetString("PC_CLIENTE"),C.GetString("PC_FECHA"),C.GetString("PC_USER"),C.GetString("PC_NOART"),C.GetString("PC_MONTO"),C.GetString("PC_LON"),C.GetString("PC_LAT"),ALMACEN,l_ruta.text,C.GetString("PC_COSTO_SIN"),C.GetString("PC_FACTURA") )
B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "ins_pedidos")
Next
End If
@@ -644,6 +657,21 @@ Sub Subir_Click
Next
End If
c.Close
+
+
+ Dim fotomostrar1 As Cursor = Starter.skmt.ExecQuery("SELECT * FROM kmt_info3 where foto is not NULL")
+ If fotomostrar1.RowCount>0 Then
+ For i=0 To fotomostrar1.RowCount -1
+ fotomostrar1.Position=i
+ Dim fotoenvio() As Byte = fotomostrar1.GetBlob("foto")
+ Dim cmd As DBCommand
+ cmd.Initialize
+ cmd.Name = "UPDATE_FOTO_GUNA"
+ cmd.Parameters = Array As Object(fotoenvio,fotomostrar1.GetString("CAT_CL_CODIGO"),Subs.traeAlmacen,Subs.traeRuta)
+ B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "INS_coment")
+ Next
+ End If
+ fotomostrar1.Close
c=B4XPages.MainPage.skmt.ExecQuery("SELECT CAT_CL_NUM_SERIEFISICO,CAT_CL_CODIGO ,CAT_CL_LONG,CAT_CL_LAT, CAT_CL_FOTO FROM kmt_info3 where CAT_CL_NUM_SERIEFISICO IS NOT NULL and gestion <> '0'")
If c.RowCount>0 Then
@@ -825,7 +853,7 @@ Sub Subir_Click
cmd.Name ="insert_drop_GV2_3"
cmd.Parameters = Array As Object(usuario,l_ruta.Text,sDate & sTime, l_porvisitar.Text,l_drop.Text,l_efectiva.Text,l_cuantosc.Text,l_cuantosn.Text, L_MONTOD.Text,"ENVIO",ALMACEN,Application.VersionName)
B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "inst_drop")
- img2.Visible =True
+ img2.Visible =False
PORCENTAJE = Round(100/ (cuantos_noventa + cuantos_pedido + cuantos_pedidosc + 1))
If Starter.marcaCel <> "Sony" Then ToastMessageShow("Se Actualizaran los datos, Este proceso podria tardar hasta un minuto, gracias "& l_ruta.text , True)
End If
@@ -921,7 +949,7 @@ Sub cargar_Click
B4XPages.MainPage.skmt.ExecNonQuery2("DELETE FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("LONGITUD"))
B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE GPS SET HABILITADO = (?)",Array As Object(0))
CARGA = "CARGAR"
- img2.Visible =True
+' img2.Visible =True
L_P_1.Visible = True
S_CC.Visible = True
Btn_Ubicar.Visible=False
@@ -930,6 +958,11 @@ Sub cargar_Click
Subs.panelVisible(P1, 0, 0)
Subs.centraPanel(P1, Root.Width)
Subs.centraPanelV(P1, Root.Height)
+ Label4.Visible = False
+ l_ruta.Visible = False
+ Label22.Visible = False
+ l_rutasuplencia.Visible = False
+
' trabajar.Visible = False
NUEVO.Visible =False
BUSCA.Visible=False
@@ -956,6 +989,7 @@ Sub cargar_Click
B4XPages.MainPage.skmt.ExecNonQuery("delete from kmt_info3")
B4XPages.MainPage.skmt.ExecNonQuery("delete from PROMO_ESP")
B4XPages.MainPage.skmt.ExecNonQuery("delete from cod_result")
+ B4XPages.MainPage.skmt.ExecNonQuery("delete from ABONOSP")
B4XPages.MainPage.skmt.ExecNonQuery("delete from hist_gest")
B4XPages.MainPage.skmt.ExecNonQuery("delete from cat_gunaprod")
B4XPages.MainPage.skmt.ExecNonQuery("delete from cat_gunaprod2")
@@ -1027,6 +1061,11 @@ Sub cargar_Click
cmd.Parameters = Array As Object(ALMACEN, e_ruta.text)
B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "gunaprod2")
+ cmd.Initialize
+ cmd.Name = "select_abonosp_GUNA_pre"
+ cmd.Parameters = Array As Object(ALMACEN, e_ruta.text, e_ruta.Text,ALMACEN)
+ B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "select_abonosp")
+
cmd.Initialize
cmd.Name = "select_HIST_ESPECIAL_GUNA"
' cmd.Parameters = Array As Object(ALMACEN)
@@ -1060,6 +1099,15 @@ Sub cargar_Click
End If
+ If ALMACEN = 88 Or ALMACEN = 6 Then
+
+ cmd.Initialize
+ cmd.Name = "select_cat_promoesp_GUNA3"
+ cmd.Parameters = Array As Object(ALMACEN)
+ B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "promoesp")
+
+ End If
+
cmd.Initialize
cmd.Name = "select_cat_paquetess_GV2"
cmd.Parameters = Array As Object(ALMACEN)
@@ -1075,6 +1123,7 @@ Sub cargar_Click
cmd.Parameters = Array As Object(e_ruta.text, ALMACEN)
B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "kmt_datos")
+
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)
@@ -1139,6 +1188,7 @@ Sub cargar_Click
B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO RUTA_SUPLENCIA(RS_RUTA) VALUES(?)",Array As String(E_RUTA2.Text))
E_RUTA2.Visible = False
p_ruta2.Visible = False
+ p_somvra_2.Visible = False
cmd.Initialize
cmd.Name = "select_cat_clientes2_guna_GV2" '########################## CODIGO PARA CREDITOS ####################
@@ -1229,6 +1279,8 @@ Sub cargar_Click
If Starter.marcaCel <> "Sony" Then ToastMessageShow("Se Actualizaran los datos, Este proceso podria tardar hasta un minuto, gracias" , True)
End Sub
+
+
Sub JobDone(Job As HttpJob)
B4XPages.MainPage.reqManager.trackNext(Job)
Log("JOBDONE PRINCIPAL")
@@ -1276,6 +1328,21 @@ Sub JobDone(Job As HttpJob)
End If
End If
+ If Job.JobName = "DBRequest" Then
+ Dim RESULT As DBResult = B4XPages.MainPage.reqManager.HandleJob(Job)
+ If RESULT.Tag = "select_abonosp" Then 'query tag
+ B4XPages.MainPage.skmt.ExecNonQuery("delete from ABONOSP")
+ For Each records() As Object In RESULT.Rows
+ Dim NOTA As String = records(RESULT.Columns.Get("NOTA"))
+ Dim CLIENTE As String = records(RESULT.Columns.Get("CLIENTE"))
+ Dim SALDO_PENDIENTE As String = records(RESULT.Columns.Get("SALDO_PENDIENTE"))
+' Dim NOMBRE As String = records(RESULT.Columns.Get("NOMBRE"))
+ Dim FECHA_PAGARE As String = records(RESULT.Columns.Get("FECHA_PREVENTA"))
+ Starter.skmt.ExecNonQuery2("INSERT INTO ABONOSP(NOTA,CLIENTE,SALDO_PENDIENTE,FECHA) VALUES (?,?,?,?)", Array As Object (NOTA, CLIENTE,SALDO_PENDIENTE,FECHA_PAGARE))
+ Next
+ End If
+ End If
+
If Job.JobName = "DBRequest" Then
Dim result1 As DBResult = B4XPages.MainPage.reqManager.HandleJob(Job)
If result1.Tag = "CHECAENCUESTA" Then 'query tag
@@ -1319,12 +1386,15 @@ Sub JobDone(Job As HttpJob)
Dim CAT_CL_CP As String = records(RESULT.Columns.Get("CAT_CL_CP"))
Dim CAT_CL_LONG As String = records(RESULT.Columns.Get("CAT_CL_LONG"))
Dim CAT_CL_LAT As String = records(RESULT.Columns.Get("CAT_CL_LAT"))
+ Dim CAT_CL_FOTO() As Byte = records(RESULT.Columns.Get("CAT_CL_FOTO"))
Dim CAT_CL_MTOCOMPRA As String = records(RESULT.Columns.Get("CAT_CL_MTOCOMPRA"))
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"))
+
'########################## 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) 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))
+ 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))
'########################## 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
@@ -1333,7 +1403,7 @@ Sub JobDone(Job As HttpJob)
S_CC.Text = "LISTO"
' If Starter.marcaCel <> "Sony" Then ToastMessageShow("Catalogo Clientes Actualizados." , True)
If Listo1 =1 And Listo2 =1 And Listo3 = 1 And Listo4 = 1 Then
- B4XPage_Appear
+' B4XPage_Appear
img2.Visible=False
EJECUTANDO=0
End If
@@ -1366,9 +1436,10 @@ Sub JobDone(Job As HttpJob)
Dim CAT_CL_MTOCOMPRA As String = records(RESULT.Columns.Get("CAT_CL_MTOCOMPRA"))
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) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,?,?)", Array As Object (CAT_CL_CODIGO,E_RUTA2.Text,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))
+ 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))
'########################## TERMINA CODIGO PARA CREDITOS ####################
' Subs.bitacora(Subs.fechanormal(DateTime.Now),usuario,Subs.traeAlmacen, e_ruta.Text, "Suplencia", "",Subs.fechanormal(DateTime.Now),Subs.fechanormal(DateTime.Now),B4XPages.MainPage.lat_gps,B4XPages.MainPage.lon_gps,"2","","")
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))
@@ -1377,7 +1448,7 @@ Sub JobDone(Job As HttpJob)
S_CC.Text = "LISTO"
' If Starter.marcaCel <> "Sony" Then ToastMessageShow("Catalogo Clientes Actualizados." , True)
If Listo1 =1 And Listo2 =1 And Listo3 = 1 And Listo4 = 1 Then
- B4XPage_Appear
+' B4XPage_Appear
img2.Visible=False
EJECUTANDO=0
End If
@@ -1688,9 +1759,11 @@ Sub JobDone(Job As HttpJob)
' 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 Int = 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) 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))
+ 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))
Next
Listo2=1
If PB2.Progress = 0 Then
@@ -1704,7 +1777,7 @@ Sub JobDone(Job As HttpJob)
End If
' If Starter.marcaCel <> "Sony" Then ToastMessageShow("Productos Actualizados." , True)
If Listo1 =1 And Listo2 =1 And Listo3 = 1 And Listo4 = 1 Then
- B4XPage_Appear
+' B4XPage_Appear
img2.Visible=False
EJECUTANDO=0
End If
@@ -1747,7 +1820,7 @@ Sub JobDone(Job As HttpJob)
End If
' If Starter.marcaCel <> "Sony" Then ToastMessageShow("Productos Actualizados." , True)
If Listo1 =1 And Listo2 =1 And Listo3 = 1 And Listo4 = 1 Then
- B4XPage_Appear
+' B4XPage_Appear
img2.Visible=False
EJECUTANDO=0
End If
@@ -1795,11 +1868,11 @@ Sub JobDone(Job As HttpJob)
' If Starter.marcaCel <> "Sony" Then ToastMessageShow("Promociones Actualizados." , True)
Listo4=1
If Listo1 =1 And Listo2 =1 And Listo3 = 1 And Listo4 = 1 Then
- B4XPage_Appear
+' B4XPage_Appear
img2.Visible=False
EJECUTANDO=0
Else If Listo4 = 1 And Listo3 = 1 And inve = 1 Then
- B4XPage_Appear
+' B4XPage_Appear
img2.Visible=False
EJECUTANDO=0
End If
@@ -1838,11 +1911,11 @@ Sub JobDone(Job As HttpJob)
' If Starter.marcaCel <> "Sony" Then ToastMessageShow("Promociones especiales Actualizados." , True)
Listo4=1
If Listo1 =1 And Listo2 =1 And Listo3 = 1 And Listo4 = 1 Then
- B4XPage_Appear
+' B4XPage_Appear
img2.Visible=False
EJECUTANDO=0
Else If Listo4 = 1 And Listo3 = 1 And inve = 1 Then
- B4XPage_Appear
+' B4XPage_Appear
img2.Visible=False
EJECUTANDO=0
End If
@@ -1877,11 +1950,11 @@ Sub JobDone(Job As HttpJob)
End If
Listo3 =1
If Listo1 =1 And Listo2 =1 And Listo3 = 1 And Listo4 = 1 Then
- B4XPage_Appear
+' B4XPage_Appear
img2.Visible=False
EJECUTANDO=0
Else If Listo4 = 1 And Listo3 = 1 And inve = 1 Then
- B4XPage_Appear
+' B4XPage_Appear
img2.Visible=False
EJECUTANDO=0
End If
@@ -1913,7 +1986,7 @@ Sub JobDone(Job As HttpJob)
End If
' If Starter.marcaCel <> "Sony" Then ToastMessageShow("Venta historico Actualizado." , True)
If Listo1 =1 And Listo2 =1 And Listo3 = 1 And Listo4 = 1 Then
- B4XPage_Appear
+' B4XPage_Appear
img2.Visible=False
EJECUTANDO=0
End If
@@ -2295,6 +2368,7 @@ Log("--------> BORRAMOS")
B4XPages.MainPage.skmt.ExecNonQuery("delete from pedido_cliente")
B4XPages.MainPage.skmt.ExecNonQuery("delete from pedido")
B4XPages.MainPage.skmt.ExecNonQuery("delete from noventa")
+ B4XPages.MainPage.skmt.ExecNonQuery("delete from COMENTARIOS")
B4XPages.MainPage.skmt.ExecNonQuery("delete from PLAN_LEALTAD")
B4XPages.MainPage.skmt.ExecNonQuery("delete from clie_act")
B4XPages.MainPage.skmt.ExecNonQuery("delete from kmt_info3")
@@ -2371,6 +2445,7 @@ Sub e_ruta_EnterPressed
e_ruta.Text = ""
E_RUTA2.Visible = True
p_ruta2.Visible = True
+ p_somvra_2.Visible = False
End If
End Sub
@@ -2448,9 +2523,12 @@ Sub B_OK_PAS_Click
Resumen.Visible= True
img2.Visible=False
CARGA = ""
- Subs.panelVisible(p_principal, 0, 0)
+' Subs.panelVisible(p_principal, 0, 0)
E_RUTA2.Text = ""
e_ruta.Text = ""
+ Label4.Visible = True
+ l_ruta.Visible = True
+ B4XPage_Appear
Else If CARGA = "SUBIR" And S_CP.Text = "ERROR" Then
Msgbox("Tiene que subir de nuevo la información","Atención") 'ignore
P1.Visible = False
@@ -2460,7 +2538,7 @@ Sub B_OK_PAS_Click
connecta.Visible=True
Resumen.Visible= True
img2.Visible=False
- Subs.panelVisible(p_principal, 0, 0)
+' Subs.panelVisible(p_principal, 0, 0)
Else if CARGA = "SUBIR" And S_CP.Text <> "INFO OK" Then
RES = Msgbox2("Seguro que desa abortar el proceso","Cierre", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) 'ignore
If RES = DialogResponse.POSITIVE Then
@@ -2471,7 +2549,7 @@ Sub B_OK_PAS_Click
connecta.Visible=True
Resumen.Visible= True
img2.Visible=False
- Subs.panelVisible(p_principal, 0, 0)
+' Subs.panelVisible(p_principal, 0, 0)
ExitApplication
End If
End If
@@ -2484,7 +2562,11 @@ Sub B_OK_PAS_Click
connecta.Visible=True
Resumen.Visible= True
img2.Visible=False
- Subs.panelVisible(p_principal, 0, 0)
+
+ Label4.Visible = True
+ l_ruta.Visible = True
+ B4XPage_Appear
+' Subs.panelVisible(p_principal, 0, 0)
B4XPages.MainPage.skmt.ExecNonQuery2("DELETE FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String("CARGA_DIA"))
B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("CARGA_DIA",1))
If E_RUTA2.Visible = True Then
@@ -2518,6 +2600,7 @@ 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
If RES = DialogResponse.POSITIVE Then
@@ -2528,7 +2611,8 @@ Sub B_OK_PAS_Click
connecta.Visible=True
Resumen.Visible= True
img2.Visible=False
- Subs.panelVisible(p_principal, 0, 0)
+' Subs.panelVisible(p_principal, 0, 0)
+ B4XPage_Appear
B4XPages.MainPage.skmt.ExecNonQuery("delete from kmt_info3")
B4XPages.MainPage.skmt.ExecNonQuery("delete from cod_result")
B4XPages.MainPage.skmt.ExecNonQuery("delete from hist_gest")
@@ -2546,7 +2630,7 @@ Sub B_OK_PAS_Click
If Subs.traeTipoVentaDeBD = "VENTA" Or Subs.traeTipoVentaDeBD = "ABORDO" Then
If l_ruta.Text <> "0" Then
Log(888 & "|" & l_ruta.Text & "|")
- b_abordo.Visible = True
+ b_abordo.Visible = False
End If
Else
b_abordo.Visible = False
@@ -2590,7 +2674,7 @@ Sub CARGA_Click
End Sub
Sub resdia_Click
- p_principal.Visible = False
+' p_principal.Visible = False
Btn_Ubicar.Visible=False
SCROLL_RESDIA.Visible = True
SCROLL_RESDIA.Panel.LoadLayout("RESDIA")
@@ -2697,7 +2781,7 @@ Sub resdia_Click
Else if ru_o.RowCount >=1 Then
Private rutOr As String = ru_o.GetString("PE_RUTA")
Label2.Text = "Ruta " & rutOr
- l_ru_pri.Text = NumberFormat2(ru_o.GetString("TOTAL_CLIE"), 0, 2, 2, False)
+ l_ru_pri.Text = NumberFormat2(ru_o.GetDouble("TOTAL_CLIE"), 0, 2, 2, False)
End If
ru_o.Close
@@ -2710,7 +2794,7 @@ Sub resdia_Click
Private RuSu As String = ru_s.GetString("PE_RUTA")
Label4.Text = "Ruta " & RuSu
ru_s.Position = 0
- l_ru_sup.Text = NumberFormat2(ru_s.GetString("TOTAL_CLIE"), 0, 2, 2, False)
+ l_ru_sup.Text = NumberFormat2(ru_s.GetDouble("TOTAL_CLIE"), 0, 2, 2, False)
End If
ru_s.Close
@@ -2862,6 +2946,8 @@ Sub B_COMM_Click
SCROLL_RESDIA.Panel.Height = Panel_C.Height
Panel4.Visible = False
Panel_C.Visible = True
+ Panel_C.Width = Root.Width * 0.90
+
' trabajar.Visible = False
NUEVO.Visible =False
@@ -2870,7 +2956,7 @@ Sub B_COMM_Click
Subir.Visible=False
cargar.Visible=False
Resumen.Visible= False
-'
+
If l_ruta.Text <> 0 Then
c=B4XPages.MainPage.skmt.ExecQuery("Select HCM_TOTAL_V, HCM_TOTAL_VIVE, HCM_TOTAL_GUNA, HCM_TOTAL_BEB from HIST_COMISIONES_MOVIL")
If c.RowCount > 0 Then
@@ -2889,6 +2975,7 @@ Sub B_COMM_Click
L_TOTAL_VIVE.Text = 0
L_TOTAL_COMIS.Text = 0
End If
+
End Sub
Sub B_OK_COMISS_Click
@@ -3029,4 +3116,35 @@ End Sub
Private Sub P1_Click
+End Sub
+
+Private Sub b_clientesvisitados_Click
+ tickets_dia_Click
+End Sub
+
+Private Sub b_ubicar_Click
+ Btn_Ubicar_Click
+End Sub
+
+Private Sub b_nuevocliente_Click
+ nvo_cliente_Click
+End Sub
+
+Private Sub b_hacerpedido_Click
+ hacer_ped_Click
+End Sub
+
+Private Sub b_resdia_Click
+ resdia_Click
+End Sub
+
+Sub checaPedido
+ Private c As Cursor = Starter.skmt.ExecQuery("SELECT PC_CLIENTE FROM PEDIDO_CLIENTE")
+ If c.RowCount > 0 Then
+ Starter.skmt.ExecNonQuery("Update kmt_info3 set gestion = 2 WHERE CAT_CL_CODIGO IN (SELECT PC_CLIENTE FROM PEDIDO_CLIENTE)")
+ End If
+ Private c As Cursor = Starter.skmt.ExecQuery("SELECT NV_CLIENTE FROM NOVENTA")
+ 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
End Sub
\ No newline at end of file
diff --git a/B4A/C_Productos.bas b/B4A/C_Productos.bas
index 571d1ff..ddb9153 100644
--- a/B4A/C_Productos.bas
+++ b/B4A/C_Productos.bas
@@ -4,13 +4,836 @@ 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
-
Dim ruta As String
Dim q_buscar As String
- Dim forzarbusqueda As Boolean = False
+ Dim forzarBusqueda As Boolean = False
Dim skmt As SQL
Dim c As Cursor
Dim c2 As Cursor
@@ -55,8 +878,47 @@ Sub Class_Globals
Private l_info As Label
Private b_buscar As Button
Private p_botonesVenta As Panel
+ Private lv_tipo As ListView
+ Private lv_subtipo As ListView
+ Private p_vistaPreviaTrans As Panel
+ Private lv_prodsPedido As ListView
+ Private b_rechazar As Button
+ Private b_aceptar As Button
+ Private p_vistaPrevia As Panel
+ Dim folio As String
+ Dim result As String
+ Private l_cant As Label
+ Private l_total2 As Label
+ Dim prodsPedidoActual As String
+ Dim montoPedidoActual As String
Dim tipo_venta As String = Subs.traeTipoVentaDeBD
- Dim rutaActual As String
+ Dim clv_prods_ll As CustomListView
+ Private PCLV As PreoptimizedCLV
+ Dim listaProds As List
+' Type AirportData (Name As String, AirportID As Int, IATA As String, ICAO As String, City As String, Latitude As Float, Longitude As Float, Altitude As String)
+ Dim pedidoMap As Map
+ Private p_botMasMen As Panel
+ Dim reiniciarlistaProds As Boolean= False
+' Dim listaRenglones As List
+ Dim listaTiempos As List
+ Dim clienteId As String
+ Dim rutaUsuario As String
+ Dim hayPedido As Boolean
+ Dim listaHints As List
+ Dim r As Cursor
+ Dim vamoaver As List
+ Dim j3 As Cursor
+ Dim invTotal As Int
+ Private et_pCantc As EditText
+ Private b_prodMenosc As Button
+ Private b_prodMasc As Button
+ Dim totalcajasmaspiezas As Int
+ Dim cajas As Int
+ Dim piezas As Int
+ Dim P_CALATOLOS As Panel
+
+ Dim Panel2 As Panel
+ Private p_botMasMenc As Panel
End Sub
'You can add more parameters here.
@@ -74,79 +936,317 @@ Private Sub B4XPage_Created (Root1 As B4XView)
If File.Exists(ruta, "kmt.db") = False Then
File.Copy(File.DirAssets, "kmt.db", ruta, "kmt.db")
End If
+ PCLV.Initialize(Me, "PCLV", clv_prods_ll)
ciclo = 1
l_info.Width = Root.Width * 0.8
l_info.Left = (Root.Width/2) - (l_info.Width/2)
+ c = B4XPages.MainPage.skmt.ExecQuery("select distinct CAT_GP_TIPO from cat_gunaprod where CAT_GP_TIPO <> 'PROMOS' order by CAT_GP_TIPO")
+ If c.RowCount > 0 Then
+ Dim label1 As Label
+ label1 = lv_tipo.SingleLineLayout.Label
+ label1.TextSize = 17
+ label1.TextColor = Colors.Black
+ lv_tipo.Clear
+ For i=0 To c.RowCount-1
+ c.Position=i
+ Log("ENTRE AQUI EN PROMOS create")
+ lv_tipo.AddSingleLine(c.GetString("CAT_GP_TIPO"))
+ Next
+ End If
+ c.Close
' llenaCatalogo(False)
+' listaRenglones.Initialize
+ listaTiempos.Initialize
+ listaProds.Initialize
+ pedidoMap.Initialize
+ listaHints.Initialize
+' Log("Llamamos LlenaProdsLL")
+' LlenaProdsLL(Null)
+ clv_prods_ll.Clear
+ prodsMap.Initialize
End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
Sub B4XPage_Appear
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.tipo_venta = "PREVENTA" Or B4XPages.MainPage.tipo_venta = "ABORDO" Then
+ Starter.tabla = "CAT_GUNAPROD"
+ Else If B4XPages.MainPage.tipo_venta = "VENTA" Then
+ Starter.tabla = "CAT_GUNAPROD2"
+ Else If B4XPages.MainPage.tipo_venta = "RECARGA" Then
+ Starter.tabla = "CAT_GUNAPROD3"
+ End If
+ Log(Starter.tabla)
+ clienteId = Subs.traeCliente
+ rutaUsuario = Subs.traeRuta
+ B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE CAT_GUNAPROD SET CAT_GP_TIPOPROD = (?) WHERE CAT_GP_TIPOPROD = (?) ",Array As Object("PRIORITARIO","1"))
+ B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE CAT_GUNAPROD SET CAT_GP_TIPOPROD = (?) WHERE CAT_GP_TIPOPROD = (?) ",Array As Object("ESTRATEGICO","2"))
+ B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE CAT_GUNAPROD SET CAT_GP_TIPOPROD = (?) WHERE CAT_GP_TIPOPROD = (?) ",Array As Object("COMPLEMENTARIO","3"))
+ B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE CAT_GUNAPROD SET CAT_GP_TIPOPROD = (?) WHERE CAT_GP_TIPOPROD = (?) ",Array As Object("CATALOGO REGULAR","0"))
+ B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE CAT_GUNAPROD SET CAT_GP_TIPOPROD = (?) WHERE CAT_GP_CLASIF = (?) ",Array As Object("PROMOS","PROMOS"))
+ clv_prods_ll.GetBase.SetLayoutAnimated(0, 5dip, 130dip, Root.Width + 10, Root.Height * 0.74) 'Cambiamos el tamaño y posición de la lista de productos
+ clv_prods_ll.Base_Resize(clv_prods_ll.GetBase.Width, clv_prods_ll.GetBase.Height) 'Cambiamos el tamaño del panel interno de la lista para que ajuste al nuevo tamaño.
If B4XPages.MainPage.bTerminarClicked Then
lv_catalogos.Visible = True
lv_promos.Visible = False
- clv_productos.AsView.Visible = False
+ lv_tipo.Visible = False
+ lv_subtipo.Visible = False
+ clv_prods_ll.AsView.Visible = False
B4XPages.MainPage.bTerminarClicked = False
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
+ clv_prods_ll.AsView.Visible = False
lv_catalogos.Visible = True
p_botonesVenta.Visible = False
- p_botonesVenta.Top = clv_productos.AsView.top + clv_productos.AsView.Height
+ p_botonesVenta.Top = clv_prods_ll.AsView.top + clv_prods_ll.AsView.Height - 10
lv_promos.Visible = False
End If
Dim label1 As Label
label1 = lv_catalogos.SingleLineLayout.Label
- label1.TextSize = 13
- label1.TextColor = Colors.Black
+ label1.TextSize = 20
+ label1.TextColor = Colors.White
+ label1.Color = Colors.ARGB(58,255,255,255)
+ label1.Typeface = Typeface.CreateNew(Typeface.DEFAULT_BOLD, Typeface.STYLE_BOLD)
+ lv_catalogos.Width = Root.Width * 0.99
lv_catalogos.Clear
lv_catalogos.AddSingleLine("CATALOGO")
- c = B4XPages.MainPage.skmt.ExecQuery($"select count(*) as hayPromos from ${Subs.traeTablaProds(tipo_venta)} where CAT_GP_TIPOPROD = 'PROMOS'"$)
+' c = B4XPages.MainPage.skmt.ExecQuery($"select count(*) as hayPromos from ${Starter.tabla} where CAT_GP_TIPOPROD = 'PROMOS'"$)
+ c = B4XPages.MainPage.skmt.ExecQuery($"select count(*) as hayPromos from ${Subs.traeTablaProds(tipo_venta)} where CAT_GP_TIPO = '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.
+
+ c = B4XPages.MainPage.skmt.ExecQuery($"SELECT CUENTA FROM CUENTAA"$)
+ c.Position = 0
+ If c.GetString("CUENTA") <> "0" And c.GetString("CUENTA") <> "1" Then
+ c2=B4XPages.MainPage.skmt.ExecQuery2($"select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_PRECIO, CAT_GP_ALMACEN, IFNULL(CAT_GP_IMG,0) AS CAT_GP_IMG from ${Subs.traeTablaProds(tipo_venta)} where CAT_GP_PRECIO > 0 AND CAT_GP_ALMACEN > 0 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("PROMOS", "PROMOS"))
+ LogColor($"select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_PRECIO, CAT_GP_ALMACEN, IFNULL(CAT_GP_IMG,0) AS CAT_GP_IMG from ${Subs.traeTablaProds(tipo_venta)} where CAT_GP_PRECIO > 0 AND CAT_GP_ALMACEN > 0 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))"$,Colors.Cyan) 'Isaac
+' Log($"res:${c2.RowCount}, ${Value}, ${marca}, ${tipo}"$)
+ Private hayPromos As Boolean = False
+ If c2.RowCount > 0 Then
+ Log("Esto es un conteo --->"&c2.RowCount) 'Isaac
+ For i=0 To c2.RowCount -1
+ c2.Position = i
+ Log("Esto es i----->"& i)'Isaac
+ Private tm As Map = Subs.procesaPromocion(c2.GetString("CAT_GP_ID"), clienteId)
+ If tm.Get("status") = "ok" Then 'Solo muestrala si hay producto.
+ hayPromos = True
+ End If
+ Next
+ If hayPromos Then lv_catalogos.AddSingleLine("PROMOS")
+ Else
+ Log("NO HAY PROMOS")
End If
+ c2.Close
End If
+
Sleep(100)
- l_total.Visible = False
+ 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
+' Log(Subs.traeTotalesClienteActual)
+ Dim m As Map = Subs.traeTotalesClienteActual
+ prodsPedidoActual = m.Get("productos")
+ montoPedidoActual = m.Get("monto")
+ hayPedido = Subs.hayPedido
+' LogColor("Pedido ant? - "&hayPedido, Colors.Magenta)
+ B4XPages.MainPage.productos.clv_prods_ll.Clear
+ If reiniciarlistaProds Then
+' Log("Llamamos LlenaProdsLL")
+' LlenaProdsLL(Null)
+ clv_prods_ll.Clear
+ else If hayPedido Then
+' LogColor("HAY PEDIDO ANTERIOR", Colors.red)
+' Log("Llamamos LlenaProdsLL")
+' LlenaProdsLL(Null)
+ clv_prods_ll.Clear
+ End If
+ If clv_prods_ll.Size = 0 Then LlenaProdsLL(Null)
+ clv_prods_ll.JumpToItem(0) 'Vamos al primer artículo de la lista.
+ PCLV.lblHint.SetTextSizeAnimated(0,13)
+ PCLV.B4XSeekBar1.Color1=Colors.DarkGray
+ PCLV.B4XSeekBar1.Color2=Colors.DarkGray
+ PCLV.B4XSeekBar1.ThumbColor=Colors.red
+ PCLV.B4XSeekBar1.mBase.Left=Root.Width *0.91
+' PCLV.B4XSeekBar1.mBase.Top=-50
+ PCLV.B4XSeekBar1.mBase.Height=clv_prods_ll.AsView.Height
+ PCLV.pnlOverlay.Height = clv_prods_ll.AsView.Height
+ PCLV.B4XSeekBar1.Update
-' llenaCatalogo(False)
+
+
+End Sub
+
+Sub PCLV_AddProds
+
End Sub
Sub lv_catalogos_ItemClick (Position As Int, Value As Object)
- clv_productos.AsView.Visible = False
+ If Value = "CATALOGO" Then
+' lfila.text = "TIPO"
+ lfila.text = "PRODUCTOS"
+ lv_catalogos.Visible = False
+' lv_tipo.Visible = True
+ 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.
+ Else
+ clv_prods_ll.AsView.Visible = False
+ lv_promos.Visible = True
+ lfila.text = "PROMOCIONES"
+ lv_catalogos.Visible = False
+' lv_promos.Clear
+' Dim label1 As Label
+' label1 = lv_promos.TwoLinesLayout.Label
+' label1.TextSize = 12
+' label1.TextColor = Colors.Black
+' Dim label2 As Label
+' label2 = lv_promos.TwoLinesLayout.SecondLabel
+' label2.TextSize = 12
+' label2.TextColor = Colors.Black
+' Dim label13 As Label
+' label13 = lv_promos.TwoLinesAndBitmap.Label
+' label13.TextSize = 12
+' label13.TextColor = Colors.Black
+' Dim label14 As Label
+' label14 = lv_promos.TwoLinesAndBitmap.SecondLabel
+' label14.TextSize = 12
+' label14.TextColor = Colors.Black
+' lfila.text = "PROMOS"
+
+ lv_promos.Clear
+ lv_promos.Height = Root.Height * 0.65
+ lv_promos.Width = Root.Width *0.96
+
+ Dim label1 As Label
+ label1 = lv_promos.TwoLinesLayout.Label
+ label1.TextSize = 20
+ label1.TextColor = Colors.White
+ label1.Color = Colors.ARGB(58,255,255,255)
+ Dim label2 As Label
+ label2 = lv_promos.TwoLinesLayout.SecondLabel
+ label2.TextSize = 20
+ label2.TextColor = Colors.White
+ label2.Color = Colors.ARGB(58,255,255,255)
+ Dim label13 As Label
+ label13 = lv_promos.TwoLinesAndBitmap.Label
+ label13.TextSize = 20
+ label13.TextColor = Colors.White
+ label13.Color = Colors.ARGB(58,255,255,255)
+ Dim label14 As Label
+ label14 = lv_promos.TwoLinesAndBitmap.SecondLabel
+ label14.TextSize = 20
+ label14.TextColor = Colors.White
+ label14.Color = Colors.ARGB(58,255,255,255)
+'
+'
+'
+' label1.TextColor = Colors.White
+' label1.Typeface = Typeface.CreateNew(Typeface.DEFAULT_BOLD, Typeface.STYLE_BOLD)
+' label2.Typeface = Typeface.CreateNew(Typeface.DEFAULT_BOLD, Typeface.STYLE_BOLD)
+
+
+
+' c2=B4XPages.MainPage.skmt.ExecQuery2($"select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_PRECIO, CAT_GP_ALMACEN, CAT_GP_IMG from ${Starter.tabla} 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, Value, Value))
+ 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 ${Starter.tabla} where CAT_GP_PRECIO > 0 AND CAT_GP_ALMACEN > 0 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, Value))
+' Log($"res:${c2.RowCount}, ${Value}, ${marca}, ${tipo}"$)
+
+ 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 As Int = Subs.traeTipoCliente
+ Log(c2.RowCount)
+ If c2.RowCount > 0 Then
+' For i=0 To c2.RowCount -1
+' c2.Position=i
+' Log("AQUI ENTRAMOS CON LETRAS GRANDES")
+' Private tm As Map = Subs.procesaPromocion(c2.GetString("CAT_GP_ID"), clienteId)
+' 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"))
+'' 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
+
+
+
+
+
+
+
+' 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 #### "& c2.GetString("CAT_GP_ID"), 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
+ If Subs.traeAlmacen = 88 Then
+ Log("SI ENTRE1")
+ Log(c2.GetString("CAT_GP_ID"))
+ If c2.GetString("CAT_GP_ID") = "MYKONOS_01" And Subs.TraeMontoProd Then
+ Log("SI ENTRE")
+ 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"))
+ Else If c2.GetString("CAT_GP_ID") <> "MYKONOS_01" Then
+ Log("SI ENTRE2")
+ 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
+ Else
+ Log("SI ENTRE3")
+ 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
+ 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
+
+
+ label1.Height = 50dip
+ label2.Height = 45dip
+ label2.Top = label1.Height
+ lv_promos.TwoLinesLayout.ItemHeight = 95dip
+ Subs.SetDivider(lv_promos, Colors.White, 2)
+ Else
+ ToastMessageShow("No hay promociones disponibles.", False)
+ End If
+ c2.Close
+ entro = "4"
+ End If
+End Sub
+
+Sub lv_catalogos2_ItemClick (Position As Int, Value As Object)
+ clv_prods_ll.AsView.Visible = False
BUSCA.Text = ""
Dim cliente As C_Cliente = B4XPages.GetPage("Cliente")
Log($"value=${Value}"$)
@@ -159,122 +1259,131 @@ Sub lv_catalogos_ItemClick (Position As Int, Value As Object)
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
+ LogColor("Promos", Colors.red)
+ c2=B4XPages.MainPage.skmt.ExecQuery2($"select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_PRECIO, CAT_GP_ALMACEN, CAT_GP_IMG from ${Starter.tabla} 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) ) ORDER BY 1"$, Array As String(Value, marca, tipo))
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'"$)
+ 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 ${Starter.tabla} where CAT_GP_PRECIO > 0 AND CAT_GP_ALMACEN > 0 and CAT_GP_TIPOPROD <> 'PROMOS' "$)
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
lv_promos.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
+ clv_prods_ll.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
+ Log("ENTRAMOS A PROMOS")
+ clv_prods_ll.AsView.Visible = False
lv_promos.Visible = True
lv_catalogos.Visible = False
lv_promos.Clear
Dim label1 As Label
label1 = lv_promos.TwoLinesLayout.Label
- label1.TextSize = 13
+ label1.TextSize = 15
label1.TextColor = Colors.Black
Dim label2 As Label
label2 = lv_promos.TwoLinesLayout.SecondLabel
- label2.TextSize = 13
+ label2.TextSize = 15
label2.TextColor = Colors.Black
Dim label13 As Label
label13 = lv_promos.TwoLinesAndBitmap.Label
- label13.TextSize = 13
+ label13.TextSize = 15
label13.TextColor = Colors.Black
Dim label14 As Label
label14 = lv_promos.TwoLinesAndBitmap.SecondLabel
- label14.TextSize = 13
+ label14.TextSize = 15
label14.TextColor = Colors.Black
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}"$)
+ For i=0 To c2.RowCount -1
+ c2.Position=i
+ Private tm As Map = Subs.procesaPromocion(c2.GetString("CAT_GP_ID"), clienteId)
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
+ 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
- yaComproPRO2265 = False
+
+'' 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 As String = Subs.traeTipoCliente
+' Log(c2.RowCount)
+' 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
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
+ clv_prods_ll.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"
@@ -284,115 +1393,53 @@ Sub lv_promos_ItemClick (Position As Int, Value As Object)
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
- lv_catalogos.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"
+ 'xxxxxxxxxxxxxxxxxxxxx
Else If entro = "4" Then
- Log("Entro = 4")
+' 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.laPromo = Subs.traeProdIdDeBD.Get("id")
promos.elCliente = Subs.traeUsuarioDeBD
B4XPages.ShowPage("Promos")
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
+'Generamos la lista de productos.
+Sub llenaCatalogo(subtipo1 As String)
+' Log("LlenaCatalogo")
+' Private c2 As Cursor
+' c2=B4XPages.MainPage.skmt.ExecQuery2("select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_PRECIO, CAT_GP_ALMACEN, CAT_GP_IMG, CAT_GP_TIPOPROD, CAT_GP_INICIATIVA from cat_gunaprod where CAT_GP_PRECIO > 0 AND CAT_GP_ALMACEN > 0 and CAT_GP_TIPOPROD <> 'PROMOS' and CAT_GP_SUBTIPO = ? ", Array As String(subtipo1))
+' 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
+' clv_productos.Add(CreateListItem(c2.GetString("CAT_GP_NOMBRE"), c2.GetString("CAT_GP_PRECIO"), c2.GetString("CAT_GP_ALMACEN"), clv_productos.AsView.Width, 60dip, bmp, c2.GetString("CAT_GP_ID"), bgColor, textColor), c2.GetString("CAT_GP_NOMBRE"))
+' Next
+' End If
+' 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
+ If l_info.Visible Then
l_info.Visible = False
Return False
+ else if p_vistaPreviaTrans.Visible Then
+ p_vistaPreviaTrans.Visible = False
+ Return False
else if lv_promos.visible Then
lv_promos.Visible = False
lv_catalogos.Visible = True
@@ -400,13 +1447,25 @@ Private Sub B4XPage_CloseRequest As ResumableSub
l_total.Visible = False
l_totProds.Visible = False
Return False
- else if clv_productos.AsView.Visible Then
- clv_productos.AsView.Visible = False
- lv_catalogos.Visible = True
+ else if clv_prods_ll.AsView.Visible Then
+ lfila.text = "CATALOGO"
+ clv_prods_ll.AsView.Visible = False
+ lv_subtipo.Visible = False
p_botonesVenta.Visible = False
l_total.Visible = False
l_totProds.Visible = False
+ lv_catalogos.Visible = True
Return False
+' else if lv_subtipo.Visible Then
+' lfila.text = "TIPO"
+' lv_subtipo.Visible = False
+' lv_tipo.Visible = False
+' Return False
+' else if lv_tipo.Visible Then
+' lfila.text = "CATALOGO"
+' lv_tipo.Visible = False
+' lv_catalogos.Visible = True
+' Return False
else If entro = "4" Then
entro = "3"
B4XPage_Appear
@@ -420,80 +1479,29 @@ Private Sub B4XPage_CloseRequest As ResumableSub
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
- lv_promos.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
@@ -501,258 +1509,437 @@ 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
+' 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.TextSize = 15
+' p_prods.Height = Height
+' l_prodX.Height = Height
+' 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.Tag = precioU&"|"&inv&"|"&prodId
+' et_pCant.Tag = precioU&"|"&inv&"|"&prodId
+' et_pCant.BringToFront
+' Return p
End Sub
Sub b_prodMenos_Click
+ totalcajasmaspiezas = 0
etCantHasFocus = False
- LogColor("b_prodMenos_Click", Colors.Magenta)
- Dim index As Int = clv_productos.GetItemFromView(Sender)
- Dim pnl0 As B4XView = clv_productos.GetPanel(index)
+ Root.RequestFocus
+' LogColor("b_prodMenos_Click", Colors.Magenta)
+ Dim index As Int = clv_prods_ll.GetItemFromView(Sender)
+ Dim pnl0 As B4XView = clv_prods_ll.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)
+ Dim laCant As B4XView = pnl.GetView(2).GetView(2)
+' Dim laCant2 As B4XView = pnl.GetView(3).GetView(2)
+ Dim panelbotonesc As B4XView = pnl.GetView(3)
+ Dim lProdX As B4XView = pnl.GetView(1)
+' Dim panelcajas As B4XView = pnl.GetView(3)
+ Dim panelpiezas As B4XView = pnl.GetView(2)
' 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)
+' Log("lacant.text="&laCant.text)
+ laCant.Text = $"${NumberFormat2(laCant.Text-1,0,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)
+ Private tmpMap1 As Map = clv_prods_ll.GetValue(index).As(Map)
+ Private precio As String=clv_prods_ll.GetValue(index).As(Map).Get("precio")
+ Private id As String=clv_prods_ll.GetValue(index).As(Map).Get("id")
+ 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)
+ If laCant.Text = 0 Then prodsMap.Remove(id)
+
+' If laCant.Text = 0 Then
+' panelcajas.Visible = True
+' Else If laCant.Text > 0 Then
+' panelcajas.Visible = False
+' End If
+' If laCant2.IsInitialized Then
+' totalcajasmaspiezas = laCant.Text + laCant2.Text
+' Else
+' totalcajasmaspiezas = laCant.Text
+' End If
+ 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)
cuentaProds
+ LogColor("prodsMap="&prodsMap, Colors.blue)
+ Log($"Total Prods: ${totalProds}, Total Compra: $$1.2{totalCompra}"$)
+ If 1 = 1 Then
+ Private cs As CSBuilder
+ cs.Initialize
+ Private o As Cursor = Starter.skmt.ExecQuery($"select CAT_GP_ALMACEN from ${Subs.traeTablaProds(tipo_venta)} where CAT_GP_ID = '${id}'"$)
+ Private invActualizado As String = "0"
+ If o.RowCount > 0 Then
+ o.Position = 0
+ invActualizado = o.GetString("CAT_GP_ALMACEN")
+ End If
+' If clv_prods_ll.GetValue(index).As(Map).Get("precio_caja").As(Float) = 0 Or clv_prods_ll.GetValue(index).As(Map).Get("conversion").As(Int) = 1 Then
+' Private maxcajas As Int = 0
+' Log("cajas a 0")
+' Else
+' Private maxcajas As Int = invActualizado/clv_prods_ll.GetValue(index).As(Map).Get("conversion")
+' Log("cajas no a 0")
+' End If
+' Private maxcajas As Int = invActualizado/clv_prods_ll.GetValue(index).As(Map).Get("conversion")
+ If 2 = 2 Then lProdX.Text = cs.Color(Colors.red).append(nombreX).pop.Append(CRLF).Append("Existencias: " & invActualizado).Color(0xFF017F01).Append($" $${NumberFormat2(precio, 1, 2, 2, False)}"$).Popall '${CRLF}Max. Cajas: ${maxcajas}
+' Log(lProdX.Text)
+ End If
+
+' If laCant.Text = 0 Then
+' If maxcajas > 0 Then
+' panelcajas.Visible = True
+' Else
+' panelcajas.Visible = False
+' End If
+' Else If laCant.Text > 0 Then
+' panelcajas.Visible = False
+' End If
+
+ If Subs.totalPedido < 1 Then laCant.Text = "0"
+ invTotal = totalcajasmaspiezas + Subs.traeinventario(id)
+ 'aqui si lo comentamos aparece la parte de cajas
+' If tmpMap1.Get("conversion") = "1" Or tmpMap1.Get("precio_caja") = "0" Then
+' Log("invisible")
+' panelbotonesc.Visible = False
+' End If
+
+' If clv_prods_ll.GetValue(index).As(Map).Get("almacen") < clv_prods_ll.GetValue(index).As(Map).Get("conversion") Then
+' Log(clv_prods_ll.GetValue(index).As(Map).Get("cant"))
+' If clv_prods_ll.GetValue(index).As(Map).Get("cant").As(Int) = 0 Then
+' Log("Aqui debemos ponerlo invisible")
+' panelcajas.Visible = False
+' Else
+'
+' End If
+'' p_botMasMenc.Visible = False
+' End If
+ 'fin aparecer parte de cajas
+' LogColor("InvTotal PRODMAS: " & invTotal, Colors.Red)
End Sub
Sub b_prodMas_Click
+ totalcajasmaspiezas = 0
etCantHasFocus = False
- LogColor("b_prodMas_Click", Colors.Magenta)
- Dim index As Int = clv_productos.GetItemFromView(Sender)
- Dim pnl0 As B4XView = clv_productos.GetPanel(index)
+ Root.RequestFocus
+' LogColor("b_prodMas_Click", Colors.Magenta)
+
+ Dim index As Int = clv_prods_ll.GetItemFromView(Sender)
+ Dim pnl0 As B4XView = clv_prods_ll.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)
+ Dim laCant As B4XView = pnl.GetView(2).GetView(2)
+' Dim panelcajas As B4XView = pnl.GetView(3)
+ Dim panelpiezas As B4XView = pnl.GetView(2)
+' Dim laCant2 As B4XView = pnl.GetView(3).GetView(2)
+ Dim lProdX As B4XView = pnl.GetView(1)
+
+' Private tmpMap As Map = clv_prods_ll.GetValue(index).As(Map)
+ Private precio As String=clv_prods_ll.GetValue(index).As(Map).Get("precio")
+ Private inv As String=clv_prods_ll.GetValue(index).As(Map).Get("almacen")
+ Private existencias As String = clv_prods_ll.GetValue(index).As(Map).Get("almacen")
+ Log($"Existencias: ${existencias}"$)
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
+ Private id As String=clv_prods_ll.GetValue(index).As(Map).Get("id")
+' If laCant.Text + 1 <= inv Then
+ '' Log(NumberFormat2(laCant.Text+1,0,0,0,False))
+' laCant.Text = $"${NumberFormat2(laCant.Text+1,0,0,0,False)}"$
+ '' Private precio As String=clv_prods_ll.GetValue(index).As(Map).Get("precio")
+' Private id As String=clv_prods_ll.GetValue(index).As(Map).Get("id")
+ '' Private tmpMap As Map = CreateMap("precio":precio, "cant":laCant.Text, "almacen":Subs.traeAlmacen)
+ '' Log(tmpMap)
+ '' prodsMap.Put(id, tmpMap)
+ '' LogColor(prodsMap, Colors.blue)
+' End If
+' Log("Cantidad + exis " & (laCant.Text + existencias))
+' Log( (laCant.Text + 1 <= (laCant.Text + existencias)))
+' Log("inventario "&Subs.traeinventario(id))
+' Log((Subs.totalPedido - precio > 1))
+' Log((Subs.totalPedido))
+' Log(precio)
+ LogColor(laCant.Text,Colors.Red)
+
+ If Subs.traeinventario(id) > 0 And (laCant.Text <= (laCant.Text + Subs.traeinventario(id))) Then 'And (Subs.totalPedido - precio > 1)
+' Log(clv_prods_ll.GetValue(index).As(Map))
+ clv_prods_ll.GetValue(index).As(Map).Put("almacen", (inv - 1))
+ inv = inv - 1
+' laCant.Text = $"$1.0{laCant.Text+1}"$
+ laCant.Text = NumberFormat2((laCant.Text + 1), 1, 0, 0, False)
+' Log(clv_prods_ll.GetValue(index).As(Map))
End If
+ Private nombreX As String = Subs.traeProdNombre(id)
+' Subs.actualizaProducto(Subs.traeAlmacen, laCant.text, id, clienteId)
+
+' If laCant.Text > 0 Then
+' panelcajas.Visible = False
+' Else If laCant.Text = 0 Then
+' panelcajas.Visible = True
+' End If
+
+ LogColor(laCant.Text,Colors.Red)
+' If laCant2.IsInitialized Then
+' totalcajasmaspiezas = laCant.Text + laCant2.Text
+' 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)
+ cuentaProds
' 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"
+' If 1 = 1 Then
+ Private cs As CSBuilder
+ cs.Initialize
+ Private o As Cursor = Starter.skmt.ExecQuery($"select CAT_GP_ALMACEN from ${Subs.traeTablaProds(B4XPages.MainPage.tipo_venta)} where CAT_GP_ID = '${id}'"$)
+ Private invActualizado As String = "0"
+ If o.RowCount > 0 Then
+ o.Position = 0
+ invActualizado = o.GetString("CAT_GP_ALMACEN")
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.
+' If clv_prods_ll.GetValue(index).As(Map).Get("precio_caja").As(Float) = 0 Or clv_prods_ll.GetValue(index).As(Map).Get("conversion").As(Int) = 1 Then
+' Private maxcajas As Int = 0
+' Log("cajas a 0")
+' Else
+' Private maxcajas As Int = invActualizado/clv_prods_ll.GetValue(index).As(Map).Get("conversion")
+' Log("cajas no a 0")
+' End If
+ If 2 = 2 Then lProdX.Text = cs.Color(Colors.red).append(nombreX).pop.Append(CRLF).Append("Existencias: " & invActualizado).Color(0xFF017F01).Append($" $${NumberFormat2(precio, 1, 2, 2, False)}"$).Popall '${CRLF}Max. Cajas: ${maxcajas}
+'' Log(lProdX.Text)
+' End If
+ invTotal = totalcajasmaspiezas + Subs.traeinventario(id)
+' LogColor("InvTotal PRODMAS: " & invTotal, Colors.Red)
End Sub
Private Sub et_pCant_FocusChanged (HasFocus As Boolean)
LogColor($"focus changed=${HasFocus}"$, Colors.Magenta)
+ If et_pCant.Text = "" Then et_pCant.Text = "0"
+ Dim index As Int = clv_prods_ll.GetItemFromView(Sender)
+ Dim pnl0 As B4XView = clv_prods_ll.GetPanel(index)
+ Dim pnl As B4XView = pnl0.GetView(0)
+ Dim laCant As B4XView = pnl.GetView(2).GetView(2)
+ Dim laCant2 As B4XView = pnl.GetView(3).GetView(2)
+ Private id As String=clv_prods_ll.GetValue(index).As(Map).Get("id")
+ If laCant.Text = "" Then laCant.Text = "0"
etCantHasFocus = HasFocus
- If HasFocus Then
- Dim index As Int = clv_productos.GetItemFromView(Sender)
- Dim pnl0 As B4XView = clv_productos.GetPanel(index)
+ LogColor(laCant.Text,Colors.Red)
+ If laCant2.IsInitialized Then
+ totalcajasmaspiezas = laCant.Text + laCant2.Text
+ Else
+ totalcajasmaspiezas = laCant.Text
+ End If
+ invTotal = totalcajasmaspiezas + Subs.traeinventario(id)
+' LogColor("InvTotal PRODMAS: " & invTotal, Colors.Red)
+
+ cuentaProds
+End Sub
+
+Private Sub et_pCant_TextChanged (Old As String, New As String)
+' Log(etCantHasFocus)
+' Log("InvTotal: " & invTotal)
+ If etCantHasFocus = True Then
+ LogColor($"txt changed: ${Old}|${New}, hasfocus=${etCantHasFocus}"$,Colors.Magenta)
+ Dim index As Int = clv_prods_ll.GetItemFromView(Sender)
+ Dim pnl0 As B4XView = clv_prods_ll.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
+ Dim laCant As B4XView = pnl.GetView(2).GetView(2)
+' Dim laCant2 As B4XView = pnl.GetView(3).GetView(2)
+ Dim lProdX As B4XView = pnl.GetView(1)
+ Private id As String=clv_prods_ll.GetValue(index).As(Map).Get("id")
+ Private precio As String=clv_prods_ll.GetValue(index).As(Map).Get("precio")
+ Private inv As String=clv_prods_ll.GetValue(index).As(Map).Get("almacen")
+ Private inv As String=Subs.traeinventario(id)
+ Private nombreX As String = Subs.traeProdNombre(id)
+' Dim panelcajas As B4XView = pnl.GetView(3)
+ Dim panelpiezas As B4XView = pnl.GetView(2)
+
+
+ If(New = "" Or New = Null Or New = "-") Then New = 0
+' If New < 0 Then New = 0
+ If(New > invTotal) Then
+ Sender.As(EditText).text = invTotal
+ End If
+ ' Log($"inventario=${inv}"$)
+
+ If New = "" Then New = 0
+ If laCant.Text = "" Then laCant.Text = 0
+ LogColor(laCant.Text,Colors.Red)
+
+' If New > 0 Then
+' panelcajas.Visible = False
+' Else If New = 0 Then
+'
+' panelcajas.Visible = True
+' End If
+
+' If laCant2.IsInitialized Then
+' totalcajasmaspiezas = laCant.Text + laCant2.Text
+' Else
+' totalcajasmaspiezas = laCant.Text
+' 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)
+ cuentaProds
+ End If
+
+' If New <> "" And New.SubString2(0,0) = "0" Then
+' New.SubString(1)
+' End If
+' If New <> "" And New.SubString(1) <> "" Then
+' Log(New.SubString(1))
+' New = New.SubString(1)
+' laCant.Text = New.SubString(1)
+' Log(laCant.Text)
+' End If
+
+ If 1 = 1 Then
+ Private cs As CSBuilder
+ cs.Initialize
+ Private o As Cursor = Starter.skmt.ExecQuery($"select CAT_GP_ALMACEN from ${Starter.tabla} where CAT_GP_ID = '${id}'"$)
+ Private invActualizado As String = "0"
+' If o.RowCount > 0 Then
+ o.Position = 0
+ invActualizado = Subs.traeinventario(id)
+ Log(Subs.traeinventario(id))
+' End If
+
+' If New = "" Then New = 0
+' If clv_prods_ll.GetValue(index).As(Map).Get("precio_caja").As(Float) = 0 Or clv_prods_ll.GetValue(index).As(Map).Get("conversion").As(Int) = 1 Then
+' Private maxcajas As Int = 0
+' Log("cajas a 0")
+' Else
+' Private maxcajas As Int = invActualizado/clv_prods_ll.GetValue(index).As(Map).Get("conversion")
+' Log("cajas no a 0")
+' End If
+ lProdX.Text = cs.Color(Colors.red).append(nombreX).pop.Append(CRLF).Append("Existencias: " & (Subs.traeinventario(id))).Color(0xFF017F01).Append($" $${NumberFormat2(precio, 1, 2, 2, False)}"$).Popall '${CRLF}Max. Cajas: ${maxcajas}
+
+' If New > 0 Then
+' panelcajas.Visible = False
+' Else If New = 0 Then
+' If maxcajas = 0 Then
+' panelcajas.Visible = False
+' Else
+' panelcajas.Visible = True
+' End If
+' End If
+
+ End If
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}"$)
+' LogColor($"Productos de la orden: ${c_prods.GetString("cantProds")}, Total: ${c_prodsX.GetString("costoTotal")}"$, Colors.red)
+ Log("===========================")
+ Private c As Cursor = B4XPages.MainPage.skmt.ExecQuery($"select sum(PE_COSTO_TOT) as total, sum(PE_CANT) as cant from PEDIDO where PE_CLIENTE = '${clienteId}'"$)
+' LogColor("TIEMPO cuentaProds =" & ((DateTime.Now-inicioContador)/1000), Colors.Red)
+' LogColor(prodsMap, Colors.Magenta)
+ p_botonesVenta.Visible = True
+ p_botonesVenta.BringToFront
+ c.Position=0
+' Log($"Total Prods: ${c.GetString("cant")}, Total Compra: $$1.2{c.GetString("total")}"$)
+ c.Close
+' Log($"HAY PEDIDO: ${hayPedido}"$)
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")
+Sub b_terminar1_Click
+' Log("b_terminar1_Click")
+' ya_entro = "0" : Log("ya_entro=1")
+ B4XPages.MainPage.skmt.ExecNonQuery2("delete from PEDIDO WHERE PE_PRONOMBRE = ? ", Array As Object("N/A") )
+
lv_promos.Visible = False
- clv_productos.AsView.Visible = False
+ clv_prods_ll.AsView.Visible = False
lv_catalogos.Visible = True
- Log("Terminar")
-' clv_productos.Clear
- ponProdsEnCero
- prodsMap.Initialize
- B4XPages.ShowPage("Cliente")
-End Sub
-
-'Inserta la promo especial en pedido
-Sub terminarpromoesp
- c2 = B4XPages.MainPage.skmt.ExecQuery($"select * from ${Subs.traeTablaProds(tipo_venta)} WHERE CAT_GP_ID IN (SELECT DISTINCT CAT_PE_IDPROMO FROM CAT_PROMO_ESP)"$)
- If c2.RowCount > 0 Then
- c2.Position = 0
- Subs.guardaProducto(c2.GetString("CAT_GP_ID"), "0", 1,c2.GetString("CAT_GP_NOMBRE"), c2.GetString("CAT_GP_ID"), Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaActual, 0, B4XPages.MainPage.tipo_venta)
- c = B4XPages.MainPage.skmt.ExecQuery("select * from CAT_DETALLES_PAQ WHERE CAT_DP_ID IN (SELECT DISTINCT CAT_PE_IDPROMO FROM CAT_PROMO_ESP)")
- If c.RowCount > 0 Then
- For i = 0 To c.RowCount - 1
- c.Position = i
- Private pn As String = Subs.traeProdNombre(c.GetString("CAT_DP_IDPROD"))
- Subs.guardaProducto(c2.GetString("CAT_GP_ID"), c.GetString("CAT_DP_PRECIO"), c.GetString("CAT_DP_PZAS"), pn, c.GetString("CAT_DP_IDPROD"), Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaActual, 0, B4XPages.MainPage.tipo_venta)
- Next
- End If
+ lv_prodsPedido.Clear
+ lv_prodsPedido.TwoLinesLayout.Label.Height = 35dip
+ lv_prodsPedido.TwoLinesLayout.SecondLabel.Height = 25dip
+ Private c_prods As Cursor=B4XPages.MainPage.skmt.ExecQuery("select PE_PRONOMBRE,PE_COSTO_TOT, PE_CANT, PE_FOLIO, PE_CEDIS FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_CEDIS, PE_PRONOMBRE")
+ If c_prods.RowCount > 0 Then
+ Private cs As CSBuilder
+
+ vamoaver.Initialize
+ For i=0 To c_prods.RowCount -1
+ cs.Initialize
+ c_prods.Position=i
+ Dim label1 As Label
+ label1 = lv_prodsPedido.TwoLinesLayout.Label
+ label1.TextSize = 15
+ label1.TextColor = Colors.Black
+ label1.color = Colors.White
+ Private textColor As Int = Colors.black
+
+ If c_prods.GetString("PE_FOLIO") = "VENTA" Then
+ textColor = Colors.RGB(48,3,195)
+ Else If c_prods.GetString("PE_FOLIO") = "PREVENTA" Or c_prods.GetString("PE_FOLIO") = "ABORDO" Or c_prods.GetString("PE_FOLIO") = "RECARGA" Then
+ textColor = Colors.RGB(166,0,0)
+ End If
+ If Not(IsNumber(c_prods.GetString("PE_CEDIS"))) And c_prods.GetString("PE_FOLIO") = "VENTA" Then
+ textColor = Colors.RGB(154,131,231) 'Si es promo, cambiamos el color del texto.
+ Else If Not(IsNumber(c_prods.GetString("PE_CEDIS"))) And c_prods.GetString("PE_FOLIO") = "PREVENTA" Then
+ textColor = Colors.RGB(255,111,111) 'Si es promo, cambiamos el color del texto.
+ End If
+ Dim label2 As Label
+ label2 = lv_prodsPedido.TwoLinesLayout.SecondLabel
+ label2.TextSize = 10
+ label2.TextColor = Colors.Blue
+
+' lv_prodsPedido.AddTwoLines(cs.Color(textColor).append(c_prods.GetString("PE_PRONOMBRE")).pop,"Cantidad #"& c_prods.GetString("PE_CANT")& " SubTotal $"& c_prods.GetString("PE_COSTO_TOT")& " Folio "& c_prods.GetString("PE_FOLIO")&"_____")
+ lv_prodsPedido.AddSingleLine(cs.Color(textColor).Size(15).append(c_prods.GetString("PE_PRONOMBRE") & " ").pop.Append(CRLF).Size(10).Color(Colors.Black).Append("Cantidad #"& c_prods.GetString("PE_CANT")).Append(" SubTotal $"& c_prods.GetString("PE_COSTO_TOT")).Append(" " & c_prods.GetString("PE_FOLIO")& " " &c_prods.GetString("PE_CEDIS")).PopAll)
+ label1.Height = 120dip
+ lv_prodsPedido.SingleLineLayout.ItemHeight = 90dip
+ vamoaver.Add(c_prods.GetString("PE_FOLIO"))
+ folio = c_prods.GetString("PE_FOLIO")
+ Next
+' c=B4XPages.MainPage.skmt.ExecQuery("select pc_noart, pc_monto from pedido_cliente where pc_cliente in (Select CUENTA from cuentaa)")
+' c = B4XPages.MainPage.skmt.ExecQuery("SELECT SUM (PE_CANT) AS CANTIDAD FROM PEDIDO WHERE PE_PROID not like 'PRO%' and PE_CLIENTE IN (Select CUENTA from cuentaa)")
+' r = B4XPages.MainPage.skmt.ExecQuery("SELECT SUM (PE_COSTO_TOT) AS MONTO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
+' r.Position = 0
+ c = B4XPages.MainPage.skmt.ExecQuery("select sum(PE_CANT) as PC_NOART, sum (PE_COSTO_TOT) 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 )")
+ c.Position=0
+ l_cant.Text = c.GetString("PC_NOART")
+ l_total2.Text = c.GetString("PC_MONTO")
c.Close
+' r.Close
End If
- c2.Close
+ c_prods.Close
+' BUSCA.Text = ""
+ p_vistaPreviaTrans.Width = Root.Width
+ p_vistaPreviaTrans.Height = Root.Height
+ Subs.centraPanel(p_vistaPrevia, Root.Width)
+' If Subs.pedidoGuardado Then b_rechazar.Enabled = False Else b_rechazar.Enabled = True
+ p_vistaPrevia.Visible=True
+ p_vistaPreviaTrans.Visible=True
End Sub
Private Sub b_continuar_Click
Log("b_continuar_Click")
-' cuentaProds
+ cuentaProds
' Private p1 As Map
+ Log($"prodsMap=${prodsMap}"$)
' 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
+' Subs.guardaProductoSinGestion(Subs.traeAlmacen, p1.Get("precio"), p1.Get("cant"), pn, p, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta)
' Next
- etCantHasFocus = False
+' BUSCA.Text = ""
Log("promos-inv, prods-inv, cat-vis")
lv_promos.Visible = False
- clv_productos.AsView.Visible = False
+ clv_prods_ll.AsView.Visible = False
+ lv_subtipo.Visible = False
+ lv_tipo.Visible = False
lv_catalogos.Visible = True
-' clv_productos.Clear
- ponProdsEnCero
- prodsMap.Initialize
Log("Continuar")
-' Activity_KeyPress(KeyCodes.KEYCODE_BACK)
+ Dim m As Map = Subs.traeTotalesClienteActual
+ prodsPedidoActual = m.Get("productos")
+ 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
+' Log("longclic = "&Sender.as(Label).tag)
+' l_info.Text = Sender.as(Label).tag
+' l_info.Visible = True
End Sub
Private Sub l_info_Click
@@ -762,25 +1949,962 @@ 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}'"$)
+ Dim c As Cursor = B4XPages.MainPage.skmt.ExecQuery($"select CAT_GP_ID from ${Starter.tabla} 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("","")
+'Private Sub b_buscar_Click
+' forzarBusqueda = True
+' Busca_TextChanged("",BUSCA.Text)
+'End Sub
+
+Private Sub lv_tipo_ItemClick (Position As Int, Value As Object)
+' lfila.text = "SUB TIPO"
+' lv_tipo.Visible = False
+' lv_subtipo.Height = Root.Height * 0.7
+' lv_subtipo.Visible = True
+' Private c As Cursor = B4XPages.MainPage.skmt.ExecQuery2("select distinct CAT_GP_SUBTIPO from cat_gunaprod where CAT_GP_TIPO = ? order by CAT_GP_SUBTIPO", Array As String(Value))
+' If c.RowCount > 0 Then
+' Dim label1 As Label
+' label1 = lv_subtipo.SingleLineLayout.Label
+' label1.TextSize = 17
+' label1.TextColor = Colors.Black
+' lv_subtipo.Clear
+' For i=0 To c.RowCount-1
+' c.Position=i
+' lv_subtipo.AddSingleLine(c.GetString("CAT_GP_SUBTIPO"))
+' Next
+' End If
+' c.Close
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
+Private Sub lv_subtipo_ItemClick (Position As Int, Value As Object)
+' lfila.text = "SUB TIPO"
+' LogColor("Catalogo", Colors.red)
+' lv_catalogos.Visible = False
+' lv_subtipo.Visible = False
+' lv_promos.Visible = False
+' lfila.text = "CATALOGO"
+' ProgressDialogShow("Cargando catalogo ...")
+' Sleep(100)
+' Private inicioContador As String = DateTime.Now
+' llenaCatalogo(Value)
+' clv_prods_ll.AsView.Visible = True
+' LogColor("TIEMPO DE PROCESO DEL CATALOGO: " & ((DateTime.Now-inicioContador)/1000), Colors.Red)
+' ProgressDialogHide
+End Sub
+
+Private Sub p_vistaPreviaTrans_Click
+
+End Sub
+
+Private Sub b_rechazar_Click
+' If folio <> "" Then
+ result = Msgbox2($"Seguro que desea borrar el pedido completo?${CRLF}Haciendo clic largo sobre un producto se pueden borrar articulos independientes."$,"Rechazar Pedido", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) 'ignore
+ If result = DialogResponse.POSITIVE Then
+ Subs.borraPedidoClienteActual
+ prodsMap.Initialize
+' B4XPages.MainPage.promos.promosMap.Initialize
+' Log("Llamamos LlenaProdsLL")
+' LlenaProdsLL(Null)
+ clv_prods_ll.Clear
+ Log("Positivo")
+ B4XPages.ShowPage("Cliente")
+ Else
+ Log("NO Positivo")
+ p_vistaPreviaTrans.Visible = False
+ End If
+' Else
+' Msgbox("CLIENTE YA SE TRANSMITIO, FAVOR DE LLAMAR A SOPORTE PARA ASISTENCIA","AVISO") 'ignore
+' End If
+ p_vistaPreviaTrans.Visible=False
+ B4XPages.ShowPage("Cliente")
+End Sub
+
+Private Sub b_aceptar_Click
+ p_vistaPreviaTrans.Visible=False
+ B4XPages.ShowPage("Cliente")
+End Sub
+
+Private Sub lv_prodsPedido_ItemLongClick (Position As Int, Value As Object)
+ Log(Value)
+ Private X() As String = Regex.Split(" ", Value)
+ Log(X.Length)
+ Private nom As String = ""
+ For i = 0 To X.Length -1
+ If X(i).Contains(CRLF) Then
+ End If
+ If Not(X(i).Contains(CRLF)) Then
+ nom = nom & " " & X(i)
+ Else
+ Exit
+ End If
+ Next
+ nom = nom.Trim
+ Private cedis As String = X(X.Length-1)
+ Log(nom)
+ Log(cedis)
+ Private sDate,sTime, clie_id, usuario As String
+' If Not(Subs.pedidoGuardado) Then
+ result = Msgbox2("Seguro que desea borrar este articulo?","Borrar Articulo", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) 'ignore
+ If result = DialogResponse.POSITIVE Then
+ c=B4XPages.MainPage.skmt.ExecQuery2("select PE_PROID,PE_CANT, PE_FOLIO FROM PEDIDO where pe_pronombre = ? and pe_cliente in (Select CUENTA from cuentaa) ", Array As String(Value))
+ c.Position=0
+ Log(vamoaver.Get(Position))
+ If vamoaver.Get(Position) = "VENTA" Then
+ Log("CAT_GUNAPROD2")
+ Log(Position)
+ Log(Value)
+ Starter.tabla = "CAT_GUNAPROD2"
+ Else
+ Log("CAT_GUNAPROD")
+ Log(Position)
+ Log(Value)
+ Starter.tabla = "CAT_GUNAPROD"
+ End If
+' B4XPages.MainPage.skmt.ExecNonQuery2($"update ${Starter.tabla} set cat_gp_almacen = cat_gp_almacen + ? where cat_gp_id = ?"$, Array As Object(c.GetString("PE_CANT"),c.GetString("PE_PROID")))
+' Log(c.GetString("PE_CANT"))
+' B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO INVENT_X_ENVIAR (ALMACEN , PROID , CANTIDAD ) VALUES(?,?,?) ", Array As Object (Subs.traeAlmacen,c.GetString("PE_PROID"),c.GetString("PE_CANT")* -1))
+' c2=B4XPages.MainPage.skmt.ExecQuery2($"select count(*) AS CUANTOS from ${Starter.tabla} where CAT_GP_ID in (select pe_cedis from pedido where pe_pronombre = ? and pe_cliente in (Select CUENTA from cuentaa)) and CAT_GP_CLASIF = 'PROMOS' AND CAT_GP_TIPO = 'PROMOS' AND CAT_GP_SUBTIPO = 'PROMOS'"$, Array As String(Value))
+' c2.Position=0
+' If c2.GetString("CUANTOS") > 0 Then
+' j3 = B4XPages.MainPage.skmt.ExecQuery2("SELECT PE_CEDIS, PE_CANT,PE_PROID, PE_PRONOMBRE FROM PEDIDO WHERE PE_CEDIS IN (SELECT PE_CEDIS FROM PEDIDO WHERE PE_PRONOMBRE = ?)",Array As String(Value))
+' Log(j3.RowCount)
+' If j3.RowCount > 0 Then
+' Log("estoy aqui")
+' For i = 0 To j3.RowCount -1
+' Log("aqui tronare?")
+' j3.Position = i
+' B4XPages.MainPage.skmt.ExecNonQuery($"update ${Starter.tabla} set cat_gp_almacen = cat_gp_almacen + ${j3.GetString("PE_CANT")} where cat_gp_id = '${j3.Getstring("PE_PROID")}'"$)
+' B4XPages.MainPage.skmt.ExecNonQuery2("delete from pedido where pe_cedis in (select pe_cedis from pedido where pe_pronombre = ?) and pe_cliente in (Select CUENTA from cuentaa) AND PE_FOLIO = ?", Array As Object(j3.GetString("PE_PRONOMBRE"), c.GetString("PE_FOLIO")))
+' Next
+' End If
+' j3.Close
+' Else
+' B4XPages.MainPage.skmt.ExecNonQuery($"update ${Starter.tabla} 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_pronombre = ? and pe_cliente in (Select CUENTA from cuentaa) AND PE_FOLIO = ?", Array As Object(Value, c.GetString("PE_FOLIO")))
+' End If
+' c.Close
+' c2.Close
+' DateTime.DateFormat = "MM/dd/yyyy"
+' sDate=DateTime.Date(DateTime.Now)
+' sTime=DateTime.Time(DateTime.Now)
+' c=B4XPages.MainPage.skmt.ExecQuery("Select CUENTA from cuentaa")
+' c.Position=0
+' clie_id = c.GetString("CUENTA")
+' c=B4XPages.MainPage.skmt.ExecQuery("select USUARIO from usuarioa")
+' c.Position=0
+' usuario = c.GetString("USUARIO")
+' c=B4XPages.MainPage.skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, count(*) as CUANTOS FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
+' c.Position=0
+' If c.GetString("CUANTOS") > 0 Then
+' Log("aqui5")
+' B4XPages.MainPage.skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)")
+' B4XPages.MainPage.skmt.ExecNonQuery2("insert into pedido_cliente(PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT) VALUES (?,?,?,?,?,?,?)", Array As Object(clie_id, sDate & sTime, usuario, c.GetString("CANT_CLIE"),c.GetString("TOTAL_CLIE"), B4XPages.MainPage.lon_gps, B4XPages.MainPage.lat_gps))
+' B4XPages.MainPage.skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)")
+' B4XPages.MainPage.skmt.ExecNonQuery("UPDATE kmt_info set gestion = 0 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
+' Private h As Cursor = B4XPages.MainPage.skmt.ExecQuery("select sum(PE_CANT) as PC_NOART, sum (PE_COSTO_TOT) 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 )")
+' h.Position=0
+' l_cant.Text = h.GetString("PC_NOART")
+' l_total2.Text = h.GetString("PC_MONTO")
+' h.Close
+' Else
+' Log("aqui6")
+' B4XPages.MainPage.skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)")
+' B4XPages.MainPage.skmt.ExecNonQuery("UPDATE kmt_info set gestion = 0 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
+' Private h As Cursor = B4XPages.MainPage.skmt.ExecQuery("select sum(PE_CANT) as PC_NOART, sum (PE_COSTO_TOT) 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 )")
+' h.Position=0
+' l_cant.Text = 0
+' l_total2.Text = 0
+' h.Close
+' End If
+
+ c=B4XPages.MainPage.skmt.ExecQuery($"select PE_PROID,PE_CANT, PE_FOLIO, PE_CEDIS, PE_PRONOMBRE FROM PEDIDO where (pe_pronombre = '${nom}' or pe_pronombre = '${nom} ') AND PE_CEDIS = '${cedis}' and pe_cliente in (Select CUENTA from cuentaa)"$)
+ Log($"select PE_PROID,PE_CANT, PE_FOLIO, PE_CEDIS FROM PEDIDO where pe_pronombre = '${nom}' AND PE_CEDIS = '${cedis}' and pe_cliente in (Select CUENTA from cuentaa)"$)
+ Log(c.RowCount)
+ c.Position=0
+ ' If c.RowCount > 0 Then
+ ' B4XPages.MainPage.skmt.ExecNonQuery2("update cat_gunaprod set cat_gp_almacen = cat_gp_almacen + ? where cat_gp_id = ?", Array As Object(c.GetString("PE_CANT"),c.GetString("PE_PROID")))
+ B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO INVENT_X_ENVIAR (ALMACEN , PROID , CANTIDAD) VALUES(?,?,?) ", Array As Object (Subs.traeAlmacen,c.GetString("PE_PROID"),c.GetString("PE_CANT")* -1))
+ ' c2=B4XPages.MainPage.skmt.ExecQuery($"select count(*) AS CUANTOS from CAT_GUNAPROD where CAT_GP_ID in (select pe_cedis from pedido where pe_pronombre = '${nom}' and pe_cliente in (Select CUENTA from cuentaa)) and CAT_GP_CLASIF = 'PROMOS' AND CAT_GP_TIPO = 'PROMOS' AND CAT_GP_SUBTIPO = 'PROMOS'"$)'Con esto revisamos si el nombre es de una promo
+ ' c2=B4XPages.MainPage.skmt.ExecQuery($"select ISNUMERIC(pe_cedis) AS noEsPromo from pedido where pe_pronombre = '${nom}' and pe_cliente in (Select CUENTA from cuentaa) and pe_cedis = '${cedis}'"$)'Con esto revisamos si el nombre es de una promo
+ ' Log($"select count(*) AS CUANTOS from CAT_GUNAPROD where CAT_GP_ID in (select pe_cedis from pedido where pe_pronombre = '${nom}' and pe_cliente in (Select CUENTA from cuentaa)) and CAT_GP_CLASIF = 'PROMOS' AND CAT_GP_TIPO = 'PROMOS' AND CAT_GP_SUBTIPO = 'PROMOS'"$)
+ ' Log($"select ISNUMERIC(pe_cedis) AS noEsPromo from pedido where pe_pronombre = '${nom}' and pe_cliente in (Select CUENTA from cuentaa) and pe_cedis = '${cedis}'"$)
+ ' c2.Position=0
+ ' Log("Algo "&c2.GetString("noEsPromo"))
+ If Not(IsNumber(cedis)) Then
+ j3 = B4XPages.MainPage.skmt.ExecQuery2("SELECT PE_CEDIS, PE_CANT,PE_PROID, PE_PRONOMBRE FROM PEDIDO WHERE PE_CEDIS IN (SELECT PE_CEDIS FROM PEDIDO WHERE PE_PRONOMBRE = ? AND PE_CEDIS = ?)",Array As String(nom,cedis))
+ Log(j3.RowCount)
+ If j3.RowCount > 0 Then
+ Log("Soy promo")
+ For j = 0 To c.RowCount -1
+ Log("aqui tronare?")
+ c.Position = j
+ 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")))
+ Next
+ c = B4XPages.MainPage.skmt.ExecQuery("select sum(PE_CANT) as PC_NOART, sum (PE_COSTO_TOT) 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 )")
+ c.Position=0
+ If c.GetString("PC_NOART") = Null Then
+ l_cant.Text = 0
+ l_total2.Text = 0
+ Else
+ l_cant.Text = c.GetString("PC_NOART")
+ l_total2.Text = c.GetString("PC_MONTO")
+ End If
+ c.Close
+ End If
+ j3.Close
+ Else
+
+ 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_pronombre = ? and pe_cedis = ? and pe_cliente in (Select CUENTA from cuentaa) AND PE_FOLIO = ?", Array As Object(nom, cedis, c.GetString("PE_FOLIO")))
+ c = B4XPages.MainPage.skmt.ExecQuery("select sum(PE_CANT) as PC_NOART, sum (PE_COSTO_TOT) 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 )")
+ c.Position=0
+ If c.GetString("PC_NOART") = Null Then
+ l_cant.Text = 0
+ l_total2.Text = 0
+ Else
+ l_cant.Text = c.GetString("PC_NOART")
+ l_total2.Text = c.GetString("PC_MONTO")
+ End If
+ c.Close
+ End If
+ c.Close
+' c2.Close
+ DateTime.DateFormat = "MM/dd/yyyy"
+ sDate=DateTime.Date(DateTime.Now)
+ sTime=DateTime.Time(DateTime.Now)
+ c=B4XPages.MainPage.skmt.ExecQuery("Select CUENTA from cuentaa")
+ c.Position=0
+ clie_id = c.GetString("CUENTA")
+ c=B4XPages.MainPage.skmt.ExecQuery("select USUARIO from usuarioa")
+ c.Position=0
+ usuario = c.GetString("USUARIO")
+ c=B4XPages.MainPage.skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, count(*) as CUANTOS FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
+ c.Position=0
+ If c.GetString("CUANTOS") > 0 Then
+ B4XPages.MainPage.skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)")
+ B4XPages.MainPage.skmt.ExecNonQuery2("insert into pedido_cliente(PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT) VALUES (?,?,?,?,?,?,?)", Array As Object(clie_id, sDate & sTime, usuario, c.GetString("CANT_CLIE"),c.GetString("TOTAL_CLIE"), B4XPages.MainPage.lon_gps, B4XPages.MainPage.lat_gps))
+ B4XPages.MainPage.skmt.ExecNonQuery("UPDATE kmt_info3 set gestion = 2 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
+ Else
+ B4XPages.MainPage.skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)")
+ B4XPages.MainPage.skmt.ExecNonQuery("UPDATE kmt_info3 set gestion = 0 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
+ End If
+
+ b_terminar1_Click
+ End If
+' Else
+' ToastMessageShow("Esta venta ya esta guardada, no se puede editar ni borrar.", False)
+' End If
+End Sub
+
+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)
+ 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)
+' Log(clv_prods_ll.GetValue(index))
+ Log(cant1.Text)
+End Sub
+
+Private Sub clv_prods_ll_VisibleRangeChanged (FirstIndex As Int, LastIndex As Int)
+
+ ' 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
+'
+' 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
+
+
+
+
+
+
+
+
+' Private inicioContador As String = DateTime.Now
+' Log($"clv_prods_ll_VisibleRangeChanged : ${FirstIndex}, ${LastIndex} "$)
+ Dim ExtraSize As Int = 15 'List size
+ For i = Max(0, FirstIndex - ExtraSize) To Min(LastIndex + ExtraSize, clv_prods_ll.Size - 1)
+ Dim Pnl As B4XView = clv_prods_ll.GetPanel(i)
+ If i > FirstIndex - ExtraSize And i < LastIndex + ExtraSize Then
+' Log(listaRenglones)
+ If Pnl.NumberOfViews = 0 Then 'Add each item/layout to the list/main layout
+ Pnl.LoadLayout("proditem")
+' Pnl.Color = Colors.Cyan
+ p_prods.Width = Root.Width * 0.92
+ p_botMasMen.Left = p_prods.Width - (p_botMasMen.Width + 5)
+ p_botMasMenc.Left = p_prods.Width - (p_botMasMen.Width + 5)
+ p_prods.Height = 134dip
+' b_prodMenos.Height = 50dip
+' b_prodMas.Height = 50dip
+' et_pCant.Height = 51dip
+' l_pCant.Height = 44dip
+' l_pCant.Top = l_pCant.Top + 8
+' Pnl.Height = p_prods.Height
+' Pnl.Height = 300dip
+ Pnl.SetLayoutAnimated(0,0,0,Pnl.Width,145dip)
+ Private cs As CSBuilder
+ cs.Initialize
+ l_prodX.SetTextSizeAnimated(0, 13)
+ If clv_prods_ll.GetValue(i).As(Map).Get("cant") <> Null And clv_prods_ll.GetValue(i).As(Map).Get("cant") > 0 Then
+ p_prods.Color=0xFFE2EEFF
+
+
+
+
+ et_pCant.TextColor=Colors.Red
+ et_pCantc.TextColor=Colors.Red
+ If Subs.pedidoGuardado Then
+' Log("YA SE GUARDO")
+ et_pCant.Enabled = False
+' b_prodMas.Enabled = False
+ b_prodMenos.Enabled = False
+ End If
+ Else
+ If clv_prods_ll.GetValue(i).As(Map).Get("prioridad") = "PRIORITARIO" Then
+ p_prods.Color = Colors.RGB(255, 212, 163) 'naranja
+
+ Else If clv_prods_ll.GetValue(i).As(Map).Get("prioridad") = "COMPLEMENTARIO" Then
+ p_prods.Color = Colors.RGB(177, 200, 249)'azul
+
+ else If clv_prods_ll.GetValue(i).As(Map).Get("prioridad") = "CATALOGO REGULAR" Then
+ p_prods.Color = Colors.White
+
+ else If clv_prods_ll.GetValue(i).As(Map).Get("prioridad") = "ESTRATEGICO" Then
+ p_prods.Color = Colors.RGB(241, 255, 163) 'amarillo
+ End If
+ End If
+
+ Private precio As String=NumberFormat2(clv_prods_ll.GetValue(i).As(Map).Get("precio").As(Double),1,2,2,False)
+' Log(clv_prods_ll.GetValue(i).As(Map))
+
+' c = Starter.skmt.ExecQuery2("SELECT PE_BCAJAS FROM PEDIDO WHERE PE_PROID = ? AND PE_CLIENTE IN (SELECT CUENTA FROM CUENTAA) AND PE_FOLIO = ?",Array As String(clv_prods_ll.GetValue(i).As(Map).Get("id"), B4XPages.MainPage.tipo_venta))
+'' Log(clv_prods_ll.GetValue(i).As(Map).Get("id"))
+' If c.RowCount = 0 Then
+' p_botMasMen.Visible = True
+'' p_botMasMenc.Visible = True
+' Else If c.RowCount > 0 Then
+' c.Position = 0
+' If c.GetString("PE_BCAJAS") = "0" Then
+ If clv_prods_ll.GetValue(i).As(Map).Get("cant") <> Null Then et_pCant.Text = clv_prods_ll.GetValue(i).As(Map).Get("cant")
+' p_botMasMen.Visible = True
+'' p_botMasMenc.Visible = False
+' Else If c.GetString("PE_BCAJAS") = "1" Then
+' If clv_prods_ll.GetValue(i).As(Map).Get("cant") <> Null Then et_pCantc.Text = clv_prods_ll.GetValue(i).As(Map).Get("cant")
+' p_botMasMen.Visible = False
+'' p_botMasMenc.Visible = True
+' End If
+' End If
+
+' If clv_prods_ll.GetValue(i).As(Map).Get("b_caja").As(String) = "0" Then
+' If clv_prods_ll.GetValue(i).As(Map).Get("cant") <> Null Then et_pCant.Text = clv_prods_ll.GetValue(i).As(Map).Get("cant")
+' p_botMasMen.Visible = True
+' p_botMasMenc.Visible = False
+' Else If clv_prods_ll.GetValue(i).As(Map).Get("b_caja").As(String) = "1" Then
+' If clv_prods_ll.GetValue(i).As(Map).Get("cant") <> Null Then et_pCantc.Text = clv_prods_ll.GetValue(i).As(Map).Get("cant")
+' p_botMasMen.Visible = False
+' p_botMasMenc.Visible = True
+' Log("visible verdadero")
+' Else IF clv_prods_ll.GetValue(i).As(Map).Get("b_caja").As(String) = "null" Then
+' p_botMasMen.Visible = True
+' p_botMasMenc.Visible = True
+' Log("visible verdadero")
+' End If
+' If clv_prods_ll.GetValue(i).As(Map).Get("precio_caja").As(Float) = 0 Or clv_prods_ll.GetValue(i).As(Map).Get("conversion").As(Int) = 1 Then
+' Private maxcajas As Int = 0
+' Log("cajas a 0")
+' Else
+' Private maxcajas As Int = clv_prods_ll.GetValue(i).As(Map).Get("almacen")/clv_prods_ll.GetValue(i).As(Map).Get("conversion")
+'' Log("cajas no a 0")
+' End If
+' Private maxcajas As Int = clv_prods_ll.GetValue(i).As(Map).Get("almacen")/clv_prods_ll.GetValue(i).As(Map).Get("conversion")
+ l_prodX.Text = cs.Color(Colors.red).append(clv_prods_ll.GetValue(i).As(Map).Get("prod")).pop.append(CRLF).Append("Existencias: " & clv_prods_ll.GetValue(i).As(Map).Get("almacen")).Color(0xFF017F01).Append($" $${precio}"$).Popall '${CRLF}Max. Cajas: ${maxcajas}
+ 'aqui si lo comentamos aparece la parte de cajas
+ '' por aqui vamos a corregir
+ ''Or clv_prods_ll.GetValue(i).As(Map).Get("almacen") < clv_prods_ll.GetValue(i).As(Map).Get("conversion")
+' If clv_prods_ll.GetValue(i).As(Map).Get("conversion") = "1" Or clv_prods_ll.GetValue(i).As(Map).Get("precio_caja") = "0.0" Then
+' p_botMasMenc.Visible = False
+' End If
+' If clv_prods_ll.GetValue(i).As(Map).Get("almacen") < clv_prods_ll.GetValue(i).As(Map).Get("conversion") Then
+' Log(clv_prods_ll.GetValue(i).As(Map).Get("cant"))
+' If clv_prods_ll.GetValue(i).As(Map).Get("cant").As(Int) = 0 Then
+' Log("Aqui debemos ponerlo invisible")
+' p_botMasMenc.Visible = False
+' Else
+'
+' End If
+'' p_botMasMenc.Visible = False
+' End If
+ 'fin aparecer parte de cajas
+ End If
+' Log($"${i}, ${FirstIndex}, ${LastIndex}, ${Pnl.NumberOfViews}. ${clv_prods_ll.Size}"$)
+ Else 'Not visible
+ ' If Pnl.NumberOfViews > 0 Then
+ ' Pnl.RemoveAllViews 'Remove none visable item/layouts from the list/main layout
+ ' End If
+ End If
+ PCLV.B4XSeekBar1.Value = clv_prods_ll.Size - FirstIndex
+' Log($"Bar value: ${PCLV.B4XSeekBar1.Value}"$)
+ Next
+End Sub
+
+Sub Busca_TextChanged (Old As String, New As String)
+' Private inicioContador As String = DateTime.Now
+ If Not(clv_prods_ll.AsView.Visible) Then clv_prods_ll.AsView.Visible = True
+ If (New.Length = 1 Or New.Length = 2) And Not(forzarBusqueda) Then Return
+ forzarBusqueda = False
+ clv_prods_ll.Clear
+ listaProds.Initialize
+ listaHints.Initialize
+ Sleep(0)
+' Dim p As ResultSet = B4XPages.MainPage.skmt.ExecQuery($"select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_ALMACEN, CAT_GP_PRECIO, CAT_GP_TIPOPROD from ${Starter.tabla} where CAT_GP_NOMBRE like '%${New}%' and CAT_GP_PRECIO > 0 AND CAT_GP_ALMACEN > 0 and CAT_GP_CLASIF <> 'PROMOS' order by CAT_GP_NOMBRE"$)
+ Dim p As ResultSet = B4XPages.MainPage.skmt.ExecQuery($"select DISTINCT CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_ALMACEN, CAT_GP_PRECIO, CAT_GP_TIPOPROD from ${Starter.tabla} LEFT JOIN PEDIDO ON CAT_GP_ID = PE_PROID where CAT_GP_NOMBRE like '%${New}%' AND CAT_GP_PRECIO > 0 And CAT_GP_ALMACEN > 0 And CAT_GP_CLASIF <> 'PROMOS' AND CAT_GP_TIPO <> 'PROMOCION' union all select DISTINCT CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_ALMACEN, CAT_GP_PRECIO, CAT_GP_TIPOPROD from ${Starter.tabla} LEFT JOIN PEDIDO ON CAT_GP_ID = PE_PROID where CAT_GP_PRECIO > 0 And CAT_GP_ALMACEN = 0 And CAT_GP_CLASIF <> 'PROMOS' and cat_gp_id in (select pe_proid from pedido where pe_cliente in (select cuenta from cuentaa)) order by 2"$)
+ Log("Llamamos LlenaProdsLL")
+ LlenaProdsLL(p)
+' Do While p.NextRow
+' Dim tempMap As Map = CreateMap("prod":p.GetString("CAT_GP_NOMBRE"), "precio":p.GetString("CAT_GP_PRECIO"), "almacen":p.GetString("CAT_GP_ALMACEN"), "id":p.GetString("CAT_GP_ID"))
+' listaProds.Add(tempMap)
+' listaHints.Add(p.GetString("CAT_GP_NOMBRE"))
+' Dim Pnl As B4XView = xui.CreatePanel("")
+' Pnl.SetLayoutAnimated(0, 0, 0, clv_prods_ll.AsView.Width, 50dip) 'Panel height + 4 for drop shadow
+' clv_prods_ll.Add(Pnl, tempMap)
+' Loop
+' LogColor(clv_prods_ll.Size, Colors.red)
+ '' Log(listaProds)
+' p.Close
+' PCLV.B4XSeekBar1.MaxValue = clv_prods_ll.Size
+' PCLV.B4XSeekBar1.MinValue = 0
+' PCLV.B4XSeekBar1.Interval = clv_prods_ll.Size/10
+' PCLV.B4XSeekBar1.Value = clv_prods_ll.Size
+' PCLV.B4XSeekBar1.Update
+' Log($"Min:0, max:${clv_prods_ll.Size}, Interval:${clv_prods_ll.Size/10}"$)
+' LogColor("TIEMPO DE PROCESO DEL TEXTCHANGED: " & ((DateTime.Now-inicioContador)/1000), Colors.Red)
+End Sub
+
+Sub LlenaProdsLL(p As ResultSet)
+ Log("Iniciamos LlenaProdsLL")
+ listaProds.Initialize
+ If hayPedido Then 'Si hay pedido obtenemos las cantidades de los productos para agregarlos al CLV.
+ Dim cantsMap As Map
+ cantsMap.Initialize
+
+ Dim pe As ResultSet = B4XPages.MainPage.skmt.ExecQuery($"select PE_PROID, PE_CANT from PEDIDO where PE_CLIENTE = '${clienteId}' and PE_CEDIS = '${Subs.traeAlmacen}' and PE_FOLIO = '${B4XPages.MainPage.tipo_venta}'"$)
+' LogColor("Ponemos productos de pedido anterior: "&pe.RowCount, Colors.red)
+ Do While pe.NextRow
+ Private cant As Int = 0
+' If pe.GetString("PE_BCAJAS") = 0 Then
+ cantsMap.put(pe.GetString("PE_PROID"), pe.GetString("PE_CANT"))
+' Else If pe.GetString("PE_BCAJAS") = 1 Then
+' cantsMap.put(pe.GetString("PE_PROID"), pe.GetString("PE_CANTC"))
+' End If
+ Log(clienteId &"|||||"&pe.GetString("PE_PROID")&"|||||"& pe.GetString("PE_CANT"))
+ Loop
+ pe.Close
+ End If
+' Log(p.IsInitialized)
+ If p.IsInitialized Then
+' Log("YA HAY RESULSET")
+ Else
+
+
+
+' Log("NO HAY RESULSET")
+ LogColor(Starter.tabla,Colors.blue)
+' Dim p As ResultSet = B4XPages.MainPage.skmt.ExecQuery($"select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_ALMACEN, CAT_GP_PRECIO, CAT_GP_TIPOPROD from ${Starter.tabla} where CAT_GP_PRECIO > 0 And CAT_GP_ALMACEN > 0 And CAT_GP_CLASIF <> 'PROMOS' order by CAT_GP_NOMBRE"$)
+
+' Dim p As ResultSet = B4XPages.MainPage.skmt.ExecQuery($"select distinct CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_ALMACEN, CAT_GP_PRECIO, CAT_GP_TIPOPROD from ${Starter.tabla} LEFT JOIN PEDIDO ON CAT_GP_ID = PE_PROID where CAT_GP_PRECIO > 0 And CAT_GP_ALMACEN > 0 And CAT_GP_CLASIF <> 'PROMOS' union all select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_ALMACEN, CAT_GP_PRECIO, CAT_GP_TIPOPROD from ${Starter.tabla} LEFT JOIN PEDIDO ON CAT_GP_ID = PE_PROID where CAT_GP_PRECIO > 0 And CAT_GP_ALMACEN = 0 And CAT_GP_CLASIF <> 'PROMOS' and cat_gp_id in (select pe_proid from pedido where pe_cliente in (select cuenta from cuentaa)) order by 2"$)
+
+ If Subs.traeTipoCliente = "4" Then
+ Dim p As ResultSet = B4XPages.MainPage.skmt.ExecQuery($"select distinct CAT_GP_ID, CAT_GP_NOMBRE, CAT_LISTAPRECIO, 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_TIPO <> 'PROMOS' and CAT_GP_TIPO <> 'PROMOCION'
+ order by
+ Case CAT_GP_TIPOPROD when 'PRIORITARIO' THEN 0
+ WHEN 'ESTRATEGICO' THEN 1
+ WHEN 'COMPLEMENTARIO' then 2
+ Else 3
+ End, CAT_GP_NOMBRE"$)
+ Else
+ Dim p As ResultSet = B4XPages.MainPage.skmt.ExecQuery($"select distinct 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_TIPO <> 'PROMOS' and CAT_GP_TIPO <> 'PROMOCION'
+ order by
+ Case CAT_GP_TIPOPROD when 'PRIORITARIO' THEN 0
+ WHEN 'ESTRATEGICO' THEN 1
+ WHEN 'COMPLEMENTARIO' then 2
+ Else 3
+ End, CAT_GP_NOMBRE"$)
+ End If
+
+
+
+ End If
+
+' Do While p.NextRow
+' Private cant As Int = 0
+' If hayPedido And cantsMap.ContainsKey(p.GetString("CAT_GP_ID")) Then
+' Log(p.GetString("CAT_GP_ID"))
+' cant = cantsMap.Get(p.GetString("CAT_GP_ID"))
+' End If
+' If p.GetString("CAT_GP_ID") <> "GUN141" And p.GetString("CAT_GP_ID") <> "GUN142" Then
+' Log(p.GetString("CAT_GP_NOMBRE"))
+' Dim tempMap As Map = CreateMap("prod":p.GetString("CAT_GP_NOMBRE"), "precio":p.GetString("CAT_GP_PRECIO"), "prioridad":p.GetString("CAT_GP_TIPOPROD"), "almacen":p.GetString("CAT_GP_ALMACEN"), "id":p.GetString("CAT_GP_ID"), "cant":cant, "conversion":1, "precio_caja":0, "b_caja":0)
+' End If
+'' Log(tempMap)
+' listaProds.Add(tempMap)
+' Loop
+
+ Do While p.NextRow
+ Private cant As Int = 0
+ If hayPedido And cantsMap.ContainsKey(p.GetString("CAT_GP_ID")) Then
+ Log(p.GetString("CAT_GP_ID"))
+ cant = cantsMap.Get(p.GetString("CAT_GP_ID"))
+ End If
+ If Subs.traeTipoCliente = "4" Then
+ If p.GetString("CAT_GP_ID") <> "GUN141" And p.GetString("CAT_GP_ID") <> "GUN142" Then
+' Log(p.GetString("CAT_GP_NOMBRE"))
+ ' ¡Importante! Crear un NUEVO mapa en cada iteración.
+ Dim tempMap As Map = CreateMap( _
+ "prod": p.GetString("CAT_GP_NOMBRE"), _
+ "precio": p.GetString("CAT_LISTAPRECIO"), _
+ "prioridad": p.GetString("CAT_GP_TIPOPROD"), _
+ "almacen": p.GetString("CAT_GP_ALMACEN"), _
+ "id": p.GetString("CAT_GP_ID"), _
+ "cant": cant, _
+ "conversion": 1, _
+ "precio_caja": 0, _
+ "b_caja": 0 _
+ )
+ listaProds.Add(tempMap) ' Agregar el nuevo mapa a la lista
+ End If
+ Else
+ If p.GetString("CAT_GP_ID") <> "GUN141" And p.GetString("CAT_GP_ID") <> "GUN142" Then
+' Log(p.GetString("CAT_GP_NOMBRE"))
+ ' ¡Importante! Crear un NUEVO mapa en cada iteración.
+ Dim tempMap As Map = CreateMap( _
+ "prod": p.GetString("CAT_GP_NOMBRE"), _
+ "precio": p.GetString("CAT_GP_PRECIO"), _
+ "prioridad": p.GetString("CAT_GP_TIPOPROD"), _
+ "almacen": p.GetString("CAT_GP_ALMACEN"), _
+ "id": p.GetString("CAT_GP_ID"), _
+ "cant": cant, _
+ "conversion": 1, _
+ "precio_caja": 0, _
+ "b_caja": 0 _
+ )
+ listaProds.Add(tempMap) ' Agregar el nuevo mapa a la lista
+ End If
+ End If
+
+ Loop
+' p.Close
+' Log(listaProds)
+ PCLV.Commit
+ clv_prods_ll.Clear
+ Private listaProdsConCant, listaProdsConCantIndex As List
+ listaProdsConCant.Initialize
+ listaProdsConCantIndex.Initialize
+ listaHints.Initialize
+ For q=0 To listaProds.Size-1' quitamos los productos con cantidad previa.
+ If listaProds.Get(q).As(Map).Get("cant").As(Int) <> 0 Then
+' Log(listaProds.Get(q).As(Map).Get("cant"))
+ listaProdsConCant.Add(listaProds.Get(q))
+ listaProdsConCantIndex.Add(q)
+ End If
+ Next
+' Log(listaProdsConCantIndex)
+ Private cont As Int = 0
+ For pr0=0 To listaProdsConCant.Size - 1 'Agregamos los productos con cantidad previa.
+ Private Pnl As B4XView = xui.CreatePanel("")
+' Pnl.SetLayoutAnimated(0, 0, 0, clv_prods_ll.AsView.Width, 300dip)
+ Pnl.SetLayoutAnimated(0, 0, 0, clv_prods_ll.AsView.Width, 65dip)
+ clv_prods_ll.Add(Pnl, listaProdsConCant.Get(pr0))
+ listaHints.Add(listaProdsConCant.get(pr0).As(Map).Get("prod"))
+ cont = cont + 1
+ Next
+' LogColor(clv_prods_ll.Size, Colors.red)
+' Log(listaProds.Size)
+ For pr=0 To listaProds.Size-1
+ If listaProdsConCantIndex.IndexOf(pr) = -1 Then
+ Private Pnl As B4XView = xui.CreatePanel("")
+ Pnl.SetLayoutAnimated(0, 0, 0, clv_prods_ll.AsView.Width, 65dip)
+
+
+ listaHints.Add(listaProds.get(pr).As(Map).Get("prod"))
+ clv_prods_ll.Add(Pnl, listaProds.Get(pr))
+'
+ cont = cont + 1
+ End If
+ Next
+' LogColor(clv_prods_ll.Size, Colors.red)
+' PCLV.Commit
+' Log("CONT=" & cont)
+' Log("CLV_PRODSLL="&clv_prods_ll.Size)
+ PCLV.B4XSeekBar1.MaxValue = clv_prods_ll.Size
+ PCLV.B4XSeekBar1.MinValue = 0
+ PCLV.B4XSeekBar1.Interval = clv_prods_ll.Size/20
+ PCLV.B4XSeekBar1.Value = clv_prods_ll.Size
+ PCLV.B4XSeekBar1.Update
+' Log($"Min:0, max:${clv_prods_ll.Size}, Interval:${clv_prods_ll.Size/20}"$)
+ reiniciarlistaProds = False
+End Sub
+
+'Return the hint that will be displayed when the user fast scrolls the list. It can be a string or CSBuilder.
+Sub PCLV_HintRequested(Index As Int) As Object
+ Dim word As String = listaHints.get(Index)
+ Return word
+End Sub
+
+
+
+
+'Sub b_prodMenosc_Click
+' totalcajasmaspiezas = 0
+' etCantHasFocus = False
+' Root.RequestFocus
+'' LogColor("b_prodMenos_Click", Colors.Magenta)
+' Dim index As Int = clv_prods_ll.GetItemFromView(Sender)
+' Dim pnl0 As B4XView = clv_prods_ll.GetPanel(index)
+' Dim pnl As B4XView = pnl0.GetView(0)
+' Dim laCant As B4XView = pnl.GetView(2).GetView(2)
+' Dim laCant2 As B4XView = pnl.GetView(3).GetView(2)
+' Dim lProdX As B4XView = pnl.GetView(1)
+' Dim panelcajas As B4XView = pnl.GetView(3)
+' Dim panelpiezas As B4XView = pnl.GetView(2)
+'' Log($"precio|stock:${laCant.tag}"$)
+' If laCant2.Text = "" Then laCant2.Text = 0
+'' Log("lacant.text="&laCant.text)
+' laCant2.Text = $"${NumberFormat2(laCant2.Text-1,0,0,0,False)}"$
+' If laCant2.Text < 0 Then laCant2.Text = 0
+' Private tmpMap As Map = clv_prods_ll.GetValue(index).As(Map)
+' Private precio As String=clv_prods_ll.GetValue(index).As(Map).Get("precio")
+' Private id As String=clv_prods_ll.GetValue(index).As(Map).Get("id")
+' Private tmpMap As Map = CreateMap("precio":precio, "cant":laCant2.Text, "almacen":Subs.traeAlmacen)
+' Private nombreX As String = Subs.traeProdNombre(id)
+' Private conversion As String = clv_prods_ll.GetValue(index).As(Map).Get("conversion")
+' Private preciocaja As String = clv_prods_ll.GetValue(index).As(Map).Get("precio_caja")
+'
+' Log(tmpMap)
+'' prodsMap.Put(id, tmpMap)
+' If laCant2.Text = 0 Then prodsMap.Remove(id)
+' If laCant2.Text = 0 Then
+' panelpiezas.Visible = True
+' Else If laCant2.Text > 0 Or clv_prods_ll.GetValue(index).As(Map).Get("conversion") < clv_prods_ll.GetValue(index).As(Map).Get("almacen") Then
+' panelpiezas.Visible = False
+' End If
+'' If laCant.IsInitialized Then
+'' totalcajasmaspiezas = laCant.Text + laCant2.Text
+'' Else
+'' totalcajasmaspiezas = laCant2.Text
+'' End If
+' 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}, ${laCant2.text}, ${Subs.traeProdNombre(id)}, ${id}, ${clienteId}"$)
+'' Subs.actualizaProducto(Subs.traeAlmacen, preciocaja,(laCant2.Text * conversion), Subs.traeProdNombre(id), id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta,laCant2.Text,1)
+' Subs.actualizaProducto2(Subs.traeAlmacen, preciocaja,(laCant2.Text * conversion), Subs.traeProdNombre(id), id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta,laCant2.Text,1)
+' cuentaProds
+' LogColor("prodsMap="&prodsMap, Colors.blue)
+' Log($"Total Prods: ${totalProds}, Total Compra: $$1.2{totalCompra}"$)
+' If 1 = 1 Then
+' Private cs As CSBuilder
+' cs.Initialize
+' Private o As Cursor = Starter.skmt.ExecQuery($"select CAT_GP_ALMACEN from ${Starter.tabla} where CAT_GP_ID = '${id}'"$)
+' Private invActualizado As String = "0"
+' If o.RowCount > 0 Then
+' o.Position = 0
+' invActualizado = o.GetString("CAT_GP_ALMACEN")
+' End If
+' If clv_prods_ll.GetValue(index).As(Map).Get("precio_caja").As(Float) = 0 Or clv_prods_ll.GetValue(index).As(Map).Get("conversion").As(Int) = 1 Then
+' Private maxcajas2 As Int = 0
+' Log("cajas a 0")
+' Else
+' Private maxcajas2 As Int = invActualizado/clv_prods_ll.GetValue(index).As(Map).Get("conversion")
+' Log("cajas no a 0")
+' End If
+' If 2 = 2 Then lProdX.Text = cs.Color(Colors.red).append(nombreX).pop.Append(CRLF).Append("Existencias: " & invActualizado).Color(0xFF017F01).Append($" $${NumberFormat2(precio, 1, 2, 2, False)}${CRLF}Max. Cajas: ${maxcajas2}"$).Popall
+'' Log(lProdX.Text)
+' End If
+' If Subs.totalPedido < 1 Then laCant2.Text = "0"
+' invTotal = totalcajasmaspiezas + Subs.traeinventario(id)
+'' LogColor("InvTotal PRODMAS: " & invTotal, Colors.Red)
+'
+'End Sub
+'
+'Sub b_prodMasc_Click
+' etCantHasFocus = False
+' Root.RequestFocus
+'' LogColor("b_prodMas_Click", Colors.Magenta)
+'
+' Dim index As Int = clv_prods_ll.GetItemFromView(Sender)
+' Dim pnl0 As B4XView = clv_prods_ll.GetPanel(index)
+' Dim pnl As B4XView = pnl0.GetView(0)
+' Dim laCant As B4XView = pnl.GetView(2).GetView(2)
+' Dim laCant2 As B4XView = pnl.GetView(3).GetView(2)
+' Dim lProdX As B4XView = pnl.GetView(1)
+' Dim panelcajas As B4XView = pnl.GetView(3)
+' Dim panelpiezas As B4XView = pnl.GetView(2)
+'' Private tmpMap As Map = clv_prods_ll.GetValue(index).As(Map)
+' Private precio As String=clv_prods_ll.GetValue(index).As(Map).Get("precio")
+' Private inv As String=clv_prods_ll.GetValue(index).As(Map).Get("almacen")
+' Private existencias As String = clv_prods_ll.GetValue(index).As(Map).Get("almacen")
+' Private conversion As String = clv_prods_ll.GetValue(index).As(Map).Get("conversion")
+' Private preciocaja As String = clv_prods_ll.GetValue(index).As(Map).Get("precio_caja")
+' Log(conversion)
+' Log($"Existencias: ${existencias}"$)
+' If laCant2.Text = "" Then laCant2.Text = 0
+' Private id As String=clv_prods_ll.GetValue(index).As(Map).Get("id")
+'' If laCant.Text + 1 <= inv Then
+' '' Log(NumberFormat2(laCant.Text+1,0,0,0,False))
+'' laCant.Text = $"${NumberFormat2(laCant.Text+1,0,0,0,False)}"$
+' '' Private precio As String=clv_prods_ll.GetValue(index).As(Map).Get("precio")
+'' Private id As String=clv_prods_ll.GetValue(index).As(Map).Get("id")
+' '' Private tmpMap As Map = CreateMap("precio":precio, "cant":laCant.Text, "almacen":Subs.traeAlmacen)
+' '' Log(tmpMap)
+' '' prodsMap.Put(id, tmpMap)
+' '' LogColor(prodsMap, Colors.blue)
+'' End If
+'' Log("Cantidad + exis " & (laCant.Text + existencias))
+'' Log( (laCant.Text + 1 <= (laCant.Text + existencias)))
+'' Log("inventario "&Subs.traeinventario(id))
+'' Log((Subs.totalPedido - precio > 1))
+'' Log((Subs.totalPedido))
+'' Log(precio)
+' Log(Subs.traeinventario(id))
+' Log((laCant2.Text * conversion) + conversion)
+' Log((laCant2.Text *conversion)+ Subs.traeinventario(id))
+' If Subs.traeinventario(id) > 0 And ((laCant2.Text * conversion) + conversion <= ((laCant2.Text *conversion)+ Subs.traeinventario(id))) Then 'And (Subs.totalPedido - precio > 1)
+'' Log(clv_prods_ll.GetValue(index).As(Map))
+' clv_prods_ll.GetValue(index).As(Map).Put("almacen", (inv - conversion))
+' inv = inv - conversion
+'' laCant.Text = $"$1.0{laCant.Text+1}"$
+' laCant2.Text = NumberFormat2((laCant2.Text + 1), 1, 0, 0, False)
+'' Log(clv_prods_ll.GetValue(index).As(Map))
+' Log("cuando entro aqui?")
+' End If
+' Private nombreX As String = Subs.traeProdNombre(id)
+'' Subs.actualizaProducto(Subs.traeAlmacen, laCant.text, id, clienteId)
+' Log((laCant2.Text * conversion))
+' If laCant2.Text > 0 Then
+' panelpiezas.Visible = False
+' Else If laCant2.Text = 0 Then
+' panelpiezas.Visible = True
+' End If
+'
+'' LogColor(laCant.Text,Colors.Red)
+'' If laCant.IsInitialized Then
+'' totalcajasmaspiezas = laCant.Text + laCant2.Text
+'' Else
+'' totalcajasmaspiezas = laCant2.Text
+'' End If
+'
+'' Subs.actualizaProducto(Subs.traeAlmacen,preciocaja,(laCant2.Text * conversion), Subs.traeProdNombre(id), id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta,laCant2.Text,1)
+' Subs.actualizaProducto2(Subs.traeAlmacen,preciocaja,(laCant2.Text * conversion), Subs.traeProdNombre(id), id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta,laCant2.Text,1)
+' cuentaProds
+'' Log($"Total Prods: ${totalProds}, Total Compra: $$1.2{totalCompra}"$)
+' If 1 = 1 Then
+' Private cs As CSBuilder
+' cs.Initialize
+' Private o As Cursor = Starter.skmt.ExecQuery($"select CAT_GP_ALMACEN from ${Starter.tabla} where CAT_GP_ID = '${id}'"$)
+' Private invActualizado As String = "0"
+' If o.RowCount > 0 Then
+' o.Position = 0
+' invActualizado = o.GetString("CAT_GP_ALMACEN")
+' End If
+' If clv_prods_ll.GetValue(index).As(Map).Get("precio_caja").As(Float) = 0 Or clv_prods_ll.GetValue(index).As(Map).Get("conversion").As(Int) = 1 Then
+' Private maxcajas2 As Int = 0
+' Log("cajas a 0")
+' Else
+' Private maxcajas2 As Int = invActualizado/clv_prods_ll.GetValue(index).As(Map).Get("conversion")
+' Log("cajas no a 0")
+' End If
+' If 2 = 2 Then lProdX.Text = cs.Color(Colors.red).append(nombreX).pop.Append(CRLF).Append("Existencias: " & invActualizado).Color(0xFF017F01).Append($" $${NumberFormat2(precio, 1, 2, 2, False)}${CRLF}Max. Cajas: ${maxcajas2}"$).Popall
+'' Log(lProdX.Text)
+' End If
+' invTotal = totalcajasmaspiezas + Subs.traeinventario(id)
+'' LogColor("InvTotal PRODMAS: " & invTotal, Colors.Red)
+'
+'End Sub
+'
+'Private Sub et_pCantc_FocusChanged (HasFocus As Boolean)
+' LogColor($"focus changed=${HasFocus}"$, Colors.Magenta)
+' If et_pCantc.Text = "" Then et_pCantc.Text = "0"
+' Dim index As Int = clv_prods_ll.GetItemFromView(Sender)
+' Dim pnl0 As B4XView = clv_prods_ll.GetPanel(index)
+' Dim pnl As B4XView = pnl0.GetView(0)
+' Dim laCant As B4XView = pnl.GetView(2).GetView(2)
+' Dim laCant2 As B4XView = pnl.GetView(3).GetView(2)
+' Private id As String=clv_prods_ll.GetValue(index).As(Map).Get("id")
+' If laCant2.Text = "" Then laCant2.Text = "0"
+' etCantHasFocus = HasFocus
+'' LogColor(laCant.Text,Colors.Red)
+'' If laCant.IsInitialized Then
+'' totalcajasmaspiezas = laCant.Text + laCant2.Text
+'' Else
+'' totalcajasmaspiezas = laCant2.Text
+'' End If
+' invTotal = totalcajasmaspiezas + Subs.traeinventario(id)
+'' LogColor("InvTotal PRODMAS: " & invTotal, Colors.Red)
+'
+' cuentaProds
+'End Sub
+'
+'Private Sub et_pCantc_TextChanged (Old As String, New As String)
+'' Log(etCantHasFocus)
+'' Log("InvTotal: " & invTotal)
+' If etCantHasFocus = True Then
+'' Sleep(500)
+'' LogColor($"txt changed: ${Old}|${New}, hasfocus=${etCantHasFocus}"$,Colors.Magenta)
+' Dim index As Int = clv_prods_ll.GetItemFromView(Sender)
+' Dim pnl0 As B4XView = clv_prods_ll.GetPanel(index)
+' Dim pnl As B4XView = pnl0.GetView(0)
+' Dim laCant As B4XView = pnl.GetView(2).GetView(2)
+' Dim laCant2 As B4XView = pnl.GetView(3).GetView(2)
+' Dim lProdX As B4XView = pnl.GetView(1)
+' Private id As String=clv_prods_ll.GetValue(index).As(Map).Get("id")
+' Private precio As String=clv_prods_ll.GetValue(index).As(Map).Get("precio")
+' Private inv As String=clv_prods_ll.GetValue(index).As(Map).Get("almacen")
+' Private inv As String=Subs.traeinventario(id)
+' Private nombreX As String = Subs.traeProdNombre(id)
+' Dim panelcajas As B4XView = pnl.GetView(3)
+' Dim panelpiezas As B4XView = pnl.GetView(2)
+' Private conversion As String = clv_prods_ll.GetValue(index).As(Map).Get("conversion")
+' Private preciocaja As String = clv_prods_ll.GetValue(index).As(Map).Get("precio_caja")
+'
+' invTotal = Subs.traeinventario(id)
+' Log("inventario total "& invTotal)
+' If(New = "" Or New = Null Or New = "-") Then New = 0
+'' If New < 0 Then New = 0
+' Log(($"new*conversion ${New * conversion} > ${invTotal} = ${((New * conversion) > invTotal)}"$))
+' If((New * conversion) > invTotal) Then
+'' Dim maximocajas As Int = invTotal / conversion
+' Sender.As(EditText).text = 0
+' New = 0
+'' LogColor("cajas maximas "& maximocajas, Colors.Red)
+' pnl.GetView(2).Visible = True
+' Log("ponemos en 0")
+' End If
+'
+' ' Log($"inventario=${inv}"$)
+' Log("inventario total despues de max "& invTotal)
+'
+' If New = "" Then New = 0
+' If laCant2.Text = "" Then laCant2.Text = 0
+'' LogColor("la cant2 " &laCant2.Text,Colors.Red)
+'
+' If New > 0 Then
+' Log("lo ocultamos")
+' panelpiezas.Visible = False
+' Else If New = 0 Then
+' panelpiezas.Visible = True
+' End If
+'
+'' If laCant.IsInitialized Then
+'' totalcajasmaspiezas = laCant.Text + laCant2.Text
+'' Else
+'' totalcajasmaspiezas = laCant2.Text
+'' End If
+' Log("InvTotal: " & invTotal)
+'
+' If Not(Old = "0" And New = "") And laCant2.Text <> Null And laCant2.Text <> "" And etCantHasFocus Then
+' If invTotal - (laCant2.Text * conversion) >= 0 Then
+' LogColor("validacion inventariio " & (invTotal - (laCant2.Text * conversion)), Colors.Blue)
+' Log("actualizamos producto")
+' Subs.actualizaProducto2(Subs.traeAlmacen, preciocaja,(laCant2.Text * conversion), Subs.traeProdNombre(id), id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta,laCant2.Text,1)
+' cuentaProds
+' Else
+' Private totalcajaspermi As Int = invTotal / conversion
+' laCant2.Text = totalcajaspermi
+' Log("cajas permitidas total por guerra "& totalcajaspermi)
+' End If
+' End If
+' LogColor("la cant2 " & laCant2.Text,Colors.Green)
+'
+'
+'' If New <> "" And New.SubString2(0,0) = "0" Then
+'' New.SubString(1)
+'' End If
+'' If New <> "" And New.SubString(1) <> "" Then
+'' Log(New.SubString(1))
+'' New = New.SubString(1)
+'' laCant.Text = New.SubString(1)
+'' Log(laCant.Text)
+'' End If
+'
+' If 1 = 1 Then
+' Private cs As CSBuilder
+' cs.Initialize
+' Private o As Cursor = Starter.skmt.ExecQuery($"select CAT_GP_ALMACEN from ${Starter.tabla} where CAT_GP_ID = '${id}'"$)
+' Private invActualizado As String = "0"
+'' If o.RowCount > 0 Then
+' o.Position = 0
+' invActualizado = Subs.traeinventario(id)
+' Log(Subs.traeinventario(id))
+'' End If
+'
+' If New = "" Then New = 0
+' If clv_prods_ll.GetValue(index).As(Map).Get("precio_caja").As(Float) = 0 Or clv_prods_ll.GetValue(index).As(Map).Get("conversion").As(Int) = 1 Then
+' Private maxcajas2 As Int = 0
+' Log("cajas a 0")
+' Else
+' Private maxcajas2 As Int = invActualizado/clv_prods_ll.GetValue(index).As(Map).Get("conversion")
+' Log("cajas no a 0")
+' End If
+' lProdX.Text = cs.Color(Colors.red).append(nombreX).pop.Append(CRLF).Append("Existencias: " & (Subs.traeinventario(id))).Color(0xFF017F01).Append($" $${NumberFormat2(precio, 1, 2, 2, False)}${CRLF}Max. Cajas: ${maxcajas2}"$).Popall
+' End If
+' End If
+'End Sub
+
+
+'Inserta la promo especial en pedido
+Sub terminarpromoesp
+ c2 = B4XPages.MainPage.skmt.ExecQuery($"select * from ${Subs.traeTablaProds(tipo_venta)} WHERE CAT_GP_ID IN (SELECT DISTINCT CAT_PE_IDPROMO FROM CAT_PROMO_ESP)"$)
+ If c2.RowCount > 0 Then
+ c2.Position = 0
+ Subs.guardaProducto(c2.GetString("CAT_GP_ID"), "0", 1,c2.GetString("CAT_GP_NOMBRE"), c2.GetString("CAT_GP_ID"), Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta)
+ c = B4XPages.MainPage.skmt.ExecQuery("select * from CAT_DETALLES_PAQ WHERE CAT_DP_ID IN (SELECT DISTINCT CAT_PE_IDPROMO FROM CAT_PROMO_ESP)")
+ If c.RowCount > 0 Then
+ For i = 0 To c.RowCount - 1
+ c.Position = i
+ Private pn As String = Subs.traeProdNombre(c.GetString("CAT_DP_IDPROD"))
+ Subs.guardaProducto(c2.GetString("CAT_GP_ID"), c.GetString("CAT_DP_PRECIO"), c.GetString("CAT_DP_PZAS"), pn, c.GetString("CAT_DP_IDPROD"), Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta)
+ Next
+ End If
+ c.Close
+ End If
+ c2.Close
+End Sub
\ No newline at end of file
diff --git a/B4A/C_Promos.bas b/B4A/C_Promos.bas
index 9c80a1d..e7f5e99 100644
--- a/B4A/C_Promos.bas
+++ b/B4A/C_Promos.bas
@@ -4,23 +4,425 @@ ModulesStructureVersion=1
Type=Class
Version=11.5
@EndOfDesignText@
+'Sub Class_Globals
+' Private Root As B4XView 'ignore
+' Private xui As XUI
+' Private l_promoDesc As Label
+' Private lv_prodsFijos As ListView
+' Private clv_prodsVariabes As CustomListView
+' Private l_prodsFijos As Label
+' Private l_prodsVariables As Label
+' Private i_prod As ImageView
+' Private l_prodX As Label
+' Private b_prodMenos As Button
+' Private et_pCant As EditText
+' Private b_prodMas As Button
+' Private l_pCant As Label
+' Dim totalProds As Int = 0
+' Dim prodsVarReq As Int = 0
+' Dim prodsVarReq2 As Int = 0
+' Dim totalCompra As Float = 0
+' Dim prodsFijosTot As Float = 0
+' Dim tpf As Int = 0
+' Dim tpf2 As Int = 0
+' Dim maxCantPromos As Int = 1
+' Private l_totProds As Label
+' Private l_total As Label
+' Private b_terminar1 As Button
+' Private p_promociones As Panel
+' Dim prodsIds, prodsCants, prodsPrecios, prodsIds2, prodsCants2, prodsPrecios2 As List
+' Dim estaPromo, esteCliente As String
+' Private b_promoMas As Button
+' Private b_promoMenos As Button
+' Private et_promoCant As EditText
+' Private l_promosCant As Label
+' Private b_continuar As Button
+' Private p_prodsVariables As Panel
+' Dim laPromo = "", elCliente = "" As String
+'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("promociones")
+' p_promociones.Top=0
+' p_promociones.Left=0
+' p_promociones.Height=Root.Height
+' p_promociones.Width=Root.Width
+' b_terminar1.Left = Root.Width - (b_terminar1.Width + 10)
+' b_continuar.Left = Root.Width - b_terminar1.Width - (b_continuar.Width + 20)
+'End Sub
+'
+'Sub B4XPage_Appear
+' prodsIds.Initialize
+' prodsCants.Initialize
+' prodsPrecios.Initialize
+' prodsIds2.Initialize
+' prodsCants2.Initialize
+' prodsPrecios2.Initialize
+' Log($"laPromo=${laPromo}, el cliente=${elCliente}"$)
+' If laPromo <> "" Then muestraPromo(laPromo, elCliente)
+'End Sub
+''You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
+'
+'Sub muestraPromo(promo As String, cliente As String)
+' Private thisLog As Boolean = False
+' Log(promo)
+' estaPromo = promo
+' esteCliente = cliente
+' Private mp As Map = Subs.traePromo(promo, cliente)
+' Private prodsPromo As Map = mp.Get("productos") 'Los productos de la promoción.
+' Private invDispPromo As Map = Subs.traemosInventarioDisponibleParaPromo(promo)
+'' If thisLog Then Log($"invDispPromo=${invDispPromo}"$)
+' Log("Max promos por inv de prods FIJOS: " & Subs.revisaMaxPromosProdsFijosPorInventario(mp))
+' Log("Max promos por inv de prods VARIABLES: " & Subs.revisaMaxPromosProdsVariablesPorInventario(mp))
+' maxCantPromos = Subs.revisaMaxPromosProdsVariablesPorInventario(mp)
+' et_promoCant.Text = 1
+' l_promosCant.text = "Max promos: " & maxCantPromos
+' Private cs As CSBuilder
+' cs.Initialize
+' If thisLog Then Log(mp)
+' If thisLog Then Log(prodsPromo)
+' 'Ponemos la promo y descripción.
+'' Dim desc As String = $"Promoción: ${promo}${CRLF}${mp.Get("descripcion")}"$
+'' Dim desc As String = cs.append("Promocion: ").Color(Colors.RGB(100,149,237)).Append(promo).pop.append(CRLF).Append(mp.Get("descripcion")).Popall
+' l_promoDesc.Text = cs.Color(Colors.White).append("Promocion: ").pop.append(CRLF).Append(promo).append(CRLF).Append(mp.Get("descripcion")).Popall
+' prodsFijosTot = 0
+' 'Ponemos el texto en las etiquetas de la cantidad de productos.
+'' Dim pf As List = mp.Get("prodsFijos")
+' Dim pv As List = mp.Get("prodsVariables")
+' If thisLog Then Log(mp)
+' tpf = 0
+' For Each pfp As Int In mp.Get("prodsFijosPiezas").As(List)
+' tpf = tpf + pfp
+' Next
+' tpf2 = tpf
+'' tpf = tpf * maxCantPromos
+' l_prodsFijos.Text = $"Productos fijos (${tpf})"$
+' prodsVarReq = mp.Get("prodsVariablesRequeridos")
+' prodsVarReq2 = prodsVarReq
+' l_prodsVariables.Text = $"Productos variables requeridos: ${prodsVarReq}"$
+' If prodsVarReq = 0 Then
+' p_prodsVariables.Visible = False
+' Else
+' p_prodsVariables.Visible = True
+' End If
+' 'Llenamos el listview con los productos fijos.
+' Dim label1 As Label
+' label1 = lv_prodsFijos.SingleLineLayout.Label
+' label1.TextSize = 13
+' label1.TextColor = Colors.black
+' lv_prodsFijos.SingleLineLayout.ItemHeight = 30dip
+' lv_prodsFijos.Clear
+'' If pf.Size < 1 Then pf.Add("Sin productos fijos.")
+' lv_prodsFijos.Clear
+' agregaFijosALista(mp, True)
+' If thisLog Then Log("Total prods fijos = " & prodsFijosTot)
+'' If thisLog Then Log("======="&prodsMap)
+' l_totProds.text = $"Productos: ${tpf}"$
+' l_total.Text = $"Total: $$1.2{prodsFijosTot}"$
+'' Dim ins As InputStream
+'' Dim bmp As Bitmap
+'' Dim jpeg() As Byte
+'
+' 'Llenamos el listview con los productos variables.
+' If thisLog Then Log(pv)
+' If thisLog Then Log("invDisp=" & invDispPromo)
+' clv_prodsVariabes.Clear
+' For Each p As String In pv
+' If invDispPromo.ContainsKey(p) Then 'Si no esta en la lista de productos con inventario no lo mostramos.
+'' c2.Position=i
+'' jpeg = c2.GetBlob("CAT_GP_IMG")
+'' ins.InitializeFromBytesArray(jpeg, 0, jpeg.Length)
+'' bmp.Initialize2(ins)
+' Private thisProd As Map = prodsPromo.Get(p)
+' If thisLog Then Log(thisProd)
+' clv_prodsVariabes.Add(CreateListItem(Subs.traeProdNombre(p)&CRLF&"Hay " & invDispPromo.Get(p) & " $" & thisProd.Get("precio"), thisProd.Get("precio"), invDispPromo.Get(p), clv_prodsVariabes.AsView.Width, 50dip, Null, p), p)
+' End If
+' Next
+' b_terminar1.Visible = False
+' b_continuar.Visible = False
+' cuentaProds
+'End Sub
+'
+''Agregamos los productos fijos a una lista para despues meterlos en el pedido.
+'Sub agregaFijosALista(mp As Map, addListItem As Boolean)
+' Private thisLog As Boolean = False
+' Private cont As Int = 0
+' prodsFijosTot = 0
+' Dim pf As List = mp.Get("prodsFijos")
+' If pf.Size < 1 Then pf.Add("Sin productos fijos.")
+'' Private m As Map
+'' prodsMap.Put(estaPromo, CreateMap("cant":1, "precio":0))
+'' prodsIds.Add(estaPromo)
+' prodsIds.clear
+' prodsCants.clear
+' prodsPrecios.clear
+' prodsIds.Add(estaPromo)
+' prodsCants.Add(et_promoCant.text.As(Int))
+' prodsPrecios.Add(0)
+' For Each p As String In pf
+' Log($"cont=${cont}, mp=${mp}"$)
+' If mp.Get("prodsFijosPiezas").As(List).Size > 0 Then
+' Private tpi As String = mp.Get("prodsFijosPiezas").As(List).Get(cont)
+' Else
+' Private tpi As String = 0
+' End If
+' If mp.Get("prodsFijosPrecios").As(List).Size > 0 Then
+' Private tpr As String = mp.Get("prodsFijosPrecios").As(List).Get(cont)
+' Else
+' Private tpr As String = 0
+' End If
+' prodsFijosTot = prodsFijosTot + (tpi * tpr)
+' If thisLog Then Log("|"&tpi&"|"&p)
+' Private ntpi As Int = tpi * et_promoCant.text
+' If addListItem And tpi > 0 Then lv_prodsFijos.AddSingleLine(ntpi & " " & Subs.traeProdNombre(p) & " - $" & tpr)
+' cont = cont+1
+'' m=CreateMap("cant":tpi, "precio":tpr)
+'' prodsMap.Put(p, m)
+' prodsIds.Add(p)
+' prodsCants.Add(tpi.As(Int)*et_promoCant.text.As(Int))
+' prodsPrecios.Add(tpr) '*et_promoCant.text.As(Int)
+' Next
+'End Sub
+'
+'Sub CreateListItem(Text As String, precioU As String, inv As Int, Width As Int, Height As Int, img As Bitmap, prodId As String) As Panel 'ignore
+' Dim p As B4XView = xui.CreatePanel("")
+' p.SetLayoutAnimated(0, 0, 0, Width, Height)
+' p.LoadLayout("prodItem")
+' l_prodX.TextSize = 12
+' l_prodX.Text = Text
+'' l_pCant.Text = 0
+' l_pCant.Tag = precioU&"|"&inv&"|"&prodId
+' et_pCant.Tag = precioU&"|"&inv&"|"&prodId
+' et_pCant.BringToFront
+'' i_prod.Bitmap = img
+' Return p
+'End Sub
+'
+'Sub b_prodMenos_Click
+' Dim index As Int = clv_prodsVariabes.GetItemFromView(Sender)
+' Dim pnl0 As B4XView = clv_prodsVariabes.GetPanel(index)
+' Dim pnl As B4XView = pnl0.GetView(0)
+'' Dim laCant As B4XView = pnl.GetView(5)
+' Dim laCant As B4XView = pnl.GetView(2).GetView(3)
+'' Log($"precio|stock:${laCant.tag}"$)
+' laCant.Text = $"$1.0{laCant.Text-1}"$
+' If laCant.Text < 0 Then laCant.Text = 0
+'' Dim chk As B4XView = pnl.GetView(2)
+' cuentaProds
+'' l_total.Text = $"Total Compra: $$1.2{totalCompra}"$
+'' l_totProds.text = $"Total Productos: ${totalProds}"$
+'End Sub
+'
+'Sub b_prodMas_Click
+' If totalProds < prodsVarReq + tpf Then
+' Dim index As Int = clv_prodsVariabes.GetItemFromView(Sender)
+' Dim pnl0 As B4XView = clv_prodsVariabes.GetPanel(index)
+' Dim pnl As B4XView = pnl0.GetView(0)
+'' Dim laCant As B4XView = pnl.GetView(5)
+' Dim laCant As B4XView = pnl.GetView(2).GetView(3)
+'' Log($"precio|stock:${laCant.tag}"$)
+'' Log($"Indice: ${index}, cant:${laCant.Text+1}, precioU: ${laCant.tag}"$)
+' Dim esteTag As List = Regex.Split("\|", laCant.Tag)
+'' Log(esteTag)
+' If laCant.Text + 1 <= esteTag.get(1) Then
+' laCant.Text = $"$1.0{laCant.Text+1}"$
+' cuentaProds
+' End If
+' End If
+'' Log($"Total Prods: ${totalProds}, Total Compra: $$1.2{totalCompra}"$)
+'' l_total.Text = $"Total Compra: $$1.2{totalCompra}"$
+'' l_totProds.text = $"Total Productos: ${totalProds}"$
+'End Sub
+'
+'Private Sub et_pCant_TextChanged (Old As String, New As String)
+'' LogColor("txt changed",Colors.Magenta)
+' cuentaProds
+'End Sub
+'
+'Sub cuentaProds
+' Log("=====================================================")
+' Log("Inicia cuentaProds")
+' Private thisLog As Boolean = False
+' If thisLog Then LogColor($"ProdsFijos=${tpf}, totalProds=${totalProds}, totalCompra=${totalCompra}"$, Colors.Red)
+' prodsIds2.Clear
+' prodsCants2.Clear
+' prodsPrecios2.Clear
+' lv_prodsFijos.Clear
+' agregaFijosALista(Subs.traePromo(estaPromo, esteCliente), True)
+'' Log(prodsIds)
+' Private tcpf As Float = 0 'Total de compra de productos fijos.
+' For pf = 0 To prodsIds.Size - 1
+' If thisLog Then Log($"${tcpf} + ${prodsCants.Get(pf)} * ${prodsPrecios.Get(pf)} = ${(prodsPrecios.Get(pf) * prodsCants.Get(pf))}"$)
+' tcpf = tcpf + (prodsPrecios.Get(pf) * prodsCants.Get(pf))
+' Next
+'' Log("Total compra pordsFijos = " & tcpf)
+' totalCompra = tcpf
+' totalProds = tpf 'Cantidad total de productos fijos.
+' For i = 0 To clv_prodsVariabes.GetSize - 1
+' Private p0 As B4XView = clv_prodsVariabes.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
+' totalProds = totalProds + cant1.Text
+' Private esteTag As List = Regex.Split("\|", cant1.Tag)
+' If cant1.Text > esteTag.Get(1) Then cant1.Text = esteTag.Get(1)
+' If cant1.Text > 0 Then
+' Log(esteTag.Get(2) & "|" & cant1.Text)
+' totalCompra = totalCompra + (esteTag.get(0) * cant1.text)
+' If thisLog Then Log($"Cant: ${cant1.Text}, Suma: ${totalCompra}"$)
+' prodsIds2.Add(esteTag.Get(2))
+' prodsCants2.Add(cant1.Text)
+' prodsPrecios2.Add(esteTag.get(0))
+' End If
+'' Log(esteTag)
+'' Log($"Cant: ${cant1.Text}, Suma: ${totalCompra}"$)
+'' totalCompra = totalCompra * et_promoCant.Text
+'' totalProds = totalProds * et_promoCant.Text
+'
+' l_total.Text = $"Total: $$1.2{totalCompra}"$
+' l_totProds.text = $"Productos: ${totalProds}"$
+' Next
+' If thisLog Then Log($"Total Prods: ${totalProds}, Total: $$1.2{totalCompra}"$)
+' l_total.Text = $"Total: $$1.2{totalCompra}"$
+' l_totProds.text = $"Productos: ${totalProds}"$
+' If totalProds < prodsVarReq + tpf Or totalProds > prodsVarReq + tpf Then
+'' Log("INCOMPLETA")
+' b_terminar1.Visible = False
+' b_continuar.Visible = False
+' Else
+'' Log("COMPLETA")
+' b_terminar1.Visible = True
+' b_continuar.Visible = True
+' End If
+' If thisLog Then LogColor($"${prodsIds}${CRLF}${prodsCants}${CRLF}${prodsPrecios}"$, Colors.blue)
+' If thisLog Then LogColor($"${prodsIds2}${CRLF}${prodsCants2}${CRLF}${prodsPrecios2}"$, Colors.Magenta)
+' LogColor($"Total Prods: ${totalProds}, Total: $$1.2{totalCompra}"$, Colors.Blue)
+'End Sub
+'
+'Private Sub et_pCant_FocusChanged (HasFocus As Boolean)
+' LogColor("focus changed", Colors.Magenta)
+' cuentaProds
+'End Sub
+'
+'Private Sub b_promoMenos_Click
+' If et_promoCant.Text > 1 Then
+' et_promoCant.Text = et_promoCant.Text.As(Int) - 1
+' End If
+' l_prodsFijos.Text = $"Productos fijos (${tpf2 * et_promoCant.Text.As(Int)})"$
+' l_prodsVariables.Text = $"Productos variables requeridos: ${prodsVarReq2 * et_promoCant.Text.As(Int)}"$
+' tpf = tpf2 * et_promoCant.Text.As(Int)
+' prodsVarReq = prodsVarReq2 * et_promoCant.Text.As(Int)
+' Log($"Max promos=${et_promoCant.Text.As(Int)}, Prods fijos=${tpf}, "$)
+' cuentaProds
+'End Sub
+'
+'Private Sub b_promoMas_Click
+' If et_promoCant.Text < maxCantPromos Then
+' et_promoCant.Text = et_promoCant.Text.As(Int) + 1
+' l_prodsFijos.Text = $"Productos fijos (${tpf2 * et_promoCant.Text.As(Int)})"$
+' l_prodsVariables.Text = $"Productos variables requeridos: ${prodsVarReq2 * et_promoCant.Text.As(Int)}"$
+' tpf = tpf2 * et_promoCant.Text.As(Int)
+' prodsVarReq = prodsVarReq2 * et_promoCant.Text.As(Int)
+' Log($"Max promos=${et_promoCant.Text.As(Int)}, Prods fijos=${tpf}, "$)
+' End If
+' If et_promoCant.text > maxCantPromos Then et_promoCant.Text = maxCantPromos
+' cuentaProds
+'End Sub
+'
+'Private Sub b_terminar1_Click
+' cuentaProds
+' Log("====================================================================")
+'' Log($"${prodsIds}${CRLF}${prodsCants}${CRLF}${prodsPrecios}"$)
+' For t = 0 To prodsIds.Size - 1 'Guardamos los productos fijos de la promocion en pedido.
+' Private pn As String = Subs.traeProdNombre(prodsIds.Get(t))
+' If prodsCants.Get(t) > 0 Then Subs.guardaProducto(estaPromo, prodsPrecios.Get(t), prodsCants.Get(t), pn&" ", prodsIds.Get(t), Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, Subs.traeRuta, 0, B4XPages.MainPage.tipo_venta)
+' Next
+' For t = 0 To prodsIds2.Size - 1 'Guardamos los productos variables de la promocion en pedido.
+' Private pn As String = Subs.traeProdNombre(prodsIds2.Get(t))
+' Subs.guardaProducto(estaPromo, prodsPrecios2.Get(t), prodsCants2.Get(t), pn, prodsIds2.Get(t), Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, Subs.traeRuta, 0, B4XPages.MainPage.tipo_venta)
+' Next
+' lv_prodsFijos.Clear
+' B4XPages.MainPage.bTerminarClicked = True
+' B4XPages.ShowPage("Cliente")
+'End Sub
+'
+'Private Sub b_continuar_Click
+' cuentaProds
+' Log("====================================================================")
+' Log($"${prodsIds}${CRLF}${prodsCants}${CRLF}${prodsPrecios}"$)
+' For t = 0 To prodsIds.Size - 1 'Guardamos los productos fijos de la promocion en pedido.
+' Private pn As String = Subs.traeProdNombre(prodsIds.Get(t))
+' LogColor(pn,Colors.Red)
+' If pn <> "N/A" Then
+' Subs.guardaProducto(estaPromo, prodsPrecios.Get(t), prodsCants.Get(t), pn, prodsIds.Get(t), Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, Subs.traeRuta, 0, B4XPages.MainPage.tipo_venta)
+' End If
+' Next
+' Log(prodsIds2)
+' For t = 0 To prodsIds2.Size - 1 'Guardamos los productos variables de la promocion en pedido.
+' Private pn As String = Subs.traeProdNombre(prodsIds2.Get(t))
+' LogColor(pn,Colors.Green)
+' If pn <> "N/A" Then
+' Subs.guardaProducto(estaPromo, prodsPrecios2.Get(t), prodsCants2.Get(t), pn, prodsIds2.Get(t), Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, Subs.traeRuta, 0, B4XPages.MainPage.tipo_venta)
+' End If
+' Next
+' lv_prodsFijos.Clear
+'' Activity_KeyPress(KeyCodes.KEYCODE_BACK)
+'' CallSubDelayed2(productos, "Activity_KeyPress", KeyCodes.KEYCODE_BACK)
+' Private prodspage As C_Productos
+' If prodspage.IsInitialized Then
+' prodspage.P_CALATOLOS.Visible = True
+' prodspage.P_CALATOLOS.BringToFront
+' prodspage.lv_catalogos.Visible = True
+' prodspage.lv_promos.Visible = False
+' prodspage.Panel2.Visible = False
+' prodspage.clv_productos.AsView.Visible = False
+' End If
+' B4XPages.MainPage.bTerminarClicked = True
+' B4XPages.ShowPage("productos")
+'End Sub
+'
+''Sub Activity_KeyPress (key As Int) As Boolean 'ignore
+'' ' BACK key pressed
+'' Log("Keypress")
+'' If key=KeyCodes.KEYCODE_BACK Then
+'' Log("BACK")
+'' Return False
+'' End If
+'' Return False
+'' ' Returning False signals the system to handle the key
+''End Sub
+
+
Sub Class_Globals
Private Root As B4XView 'ignore
Private xui As XUI
Private l_promoDesc As Label
Private lv_prodsFijos As ListView
- Private clv_prodsVariabes As CustomListView
+ Private clv_prodsVariabes, clv_prodsVariabes2 As CustomListView
Private l_prodsFijos As Label
- Private l_prodsVariables As Label
+ Private l_prodsVariables, l_prodsVariables2 As Label
Private i_prod As ImageView
Private l_prodX As Label
- Private b_prodMenos As Button
+ Private p_prods As Panel
+ Private b_prodMenos, b_prodMenos2 As Button
Private et_pCant As EditText
- Private b_prodMas As Button
+ Private b_prodMas, b_prodMas2 As Button
Private l_pCant As Label
Dim totalProds As Int = 0
+ Dim prodsVar1 As Int = 0
+ Dim prodsVar2 As Int = 0
Dim prodsVarReq As Int = 0
+ Dim prodsVarReq_ As Int = 0
Dim prodsVarReq2 As Int = 0
+ Dim prodsVarReq2_ As Int = 0
Dim totalCompra As Float = 0
Dim prodsFijosTot As Float = 0
Dim tpf As Int = 0
@@ -37,8 +439,12 @@ Sub Class_Globals
Private et_promoCant As EditText
Private l_promosCant As Label
Private b_continuar As Button
- Private p_prodsVariables As Panel
+ Private p_prodsVariables, p_prodsVariables2 As Panel
Dim laPromo = "", elCliente = "" As String
+ Dim prodsPedidoActual As String
+ Dim montoPedidoActual As String
+ Dim promosMap As Map
+ Dim su As StringUtils
End Sub
'You can add more parameters here.
@@ -51,44 +457,80 @@ Private Sub B4XPage_Created (Root1 As B4XView)
Root = Root1
'load the layout to Root
Root.LoadLayout("promociones")
+
+ p_promociones.Height= Root.Height
+ p_promociones.Width= Root.Width
+ promosMap.Initialize
p_promociones.Top=0
p_promociones.Left=0
- p_promociones.Height=Root.Height
- p_promociones.Width=Root.Width
b_terminar1.Left = Root.Width - (b_terminar1.Width + 10)
b_continuar.Left = Root.Width - b_terminar1.Width - (b_continuar.Width + 20)
+ Subs.centraPanel(p_promociones,Root.Width)
End Sub
Sub B4XPage_Appear
+' LogColor(B4XPages.MainPage.productos.prodsMap, Colors.blue)
prodsIds.Initialize
prodsCants.Initialize
prodsPrecios.Initialize
prodsIds2.Initialize
prodsCants2.Initialize
prodsPrecios2.Initialize
- Log($"laPromo=${laPromo}, el cliente=${elCliente}"$)
+ Dim m As Map = Subs.traeTotalesClienteActual
+ prodsPedidoActual = m.Get("productos")
+ montoPedidoActual = m.Get("monto")
+' Log($"laPromo=${laPromo}, el cliente=${elCliente}"$)
If laPromo <> "" Then muestraPromo(laPromo, elCliente)
+ Log(laPromo)
End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
Sub muestraPromo(promo As String, cliente As String)
Private thisLog As Boolean = False
- Log(promo)
+' If thisLog Then Log(promo)
estaPromo = promo
esteCliente = cliente
Private mp As Map = Subs.traePromo(promo, cliente)
Private prodsPromo As Map = mp.Get("productos") 'Los productos de la promoción.
Private invDispPromo As Map = Subs.traemosInventarioDisponibleParaPromo(promo)
' If thisLog Then Log($"invDispPromo=${invDispPromo}"$)
- Log("Max promos por inv de prods FIJOS: " & Subs.revisaMaxPromosProdsFijosPorInventario(mp))
- Log("Max promos por inv de prods VARIABLES: " & Subs.revisaMaxPromosProdsVariablesPorInventario(mp))
+ If thisLog Then Log("Max promos por inv de prods FIJOS: " & Subs.revisaMaxPromosProdsFijosPorInventario(mp))
+ If thisLog Then Log("Max promos por inv de prods VARIABLES: " & Subs.revisaMaxPromosProdsVariablesPorInventario(mp))
maxCantPromos = Subs.revisaMaxPromosProdsVariablesPorInventario(mp)
et_promoCant.Text = 1
- l_promosCant.text = "Max promos: " & maxCantPromos
+
+ If laPromo = "MYKONOS_01" Then
+ Private c As Cursor = B4XPages.MainPage.skmt.ExecQuery("SELECT ifnull( SUM (PE_COSTO_TOT),0) As suma FROM PEDIDO JOIN CAT_PROMO_ESP ON CAT_PE_ID = PE_PROID WHERE PE_CLIENTE IN (Select CUENTA FROM CUENTAA)")
+ If c.RowCount > 0 Then
+ c.Position = 0
+ Private c2 As Cursor = B4XPages.MainPage.skmt.ExecQuery("SELECT DISTINCT CAT_PE_MONTO FROM CAT_PROMO_ESP")
+ If c2.RowCount > 0 Then
+ c2.Position = 0
+
+ If c.GetString("suma") >= 300 And c.GetString("suma") < 600 Then
+ l_promosCant.text = "Max promos: " & 1
+ Else If c.GetString("suma") >= 600 And c.GetString("suma") < 900 Then
+ l_promosCant.text = "Max promos: " & 2
+ Else If c.GetString("suma") >= 900 Then
+ l_promosCant.text = "Max promos: " & 3
+ End If
+
+ End If
+ End If
+ Else
+ l_promosCant.text = "Max promos: " & maxCantPromos
+ End If
+
+
Private cs As CSBuilder
cs.Initialize
If thisLog Then Log(mp)
If thisLog Then Log(prodsPromo)
+ Private listaPV As List = mp.Get("prodsVariables")
+ Private listaPreciosPV As List = mp.Get("prodsVariablesPrecios")
+ Private listaPV2 As List = mp.Get("prodsVariables2")
+ Private listaPreciosPV2 As List = mp.Get("prodsVariablesPrecios2")
+' Log("============ " & CRLF & listaPV)
'Ponemos la promo y descripción.
' Dim desc As String = $"Promoción: ${promo}${CRLF}${mp.Get("descripcion")}"$
' Dim desc As String = cs.append("Promocion: ").Color(Colors.RGB(100,149,237)).Append(promo).pop.append(CRLF).Append(mp.Get("descripcion")).Popall
@@ -97,6 +539,7 @@ Sub muestraPromo(promo As String, cliente As String)
'Ponemos el texto en las etiquetas de la cantidad de productos.
' Dim pf As List = mp.Get("prodsFijos")
Dim pv As List = mp.Get("prodsVariables")
+ Dim pv2 As List = mp.Get("prodsVariables2")
If thisLog Then Log(mp)
tpf = 0
For Each pfp As Int In mp.Get("prodsFijosPiezas").As(List)
@@ -106,8 +549,12 @@ Sub muestraPromo(promo As String, cliente As String)
' tpf = tpf * maxCantPromos
l_prodsFijos.Text = $"Productos fijos (${tpf})"$
prodsVarReq = mp.Get("prodsVariablesRequeridos")
- prodsVarReq2 = prodsVarReq
+ prodsVarReq_ = prodsVarReq
+ prodsVarReq2 = mp.Get("prodsVariables2Requeridos")
+ prodsVarReq2_ = prodsVarReq2
+' Log("========= " & prodsVarReq2)
l_prodsVariables.Text = $"Productos variables requeridos: ${prodsVarReq}"$
+ l_prodsVariables2.Text = $"Productos variables2 requeridos: ${prodsVarReq2}"$
If prodsVarReq = 0 Then
p_prodsVariables.Visible = False
Else
@@ -132,20 +579,61 @@ Sub muestraPromo(promo As String, cliente As String)
' Dim jpeg() As Byte
'Llenamos el listview con los productos variables.
- If thisLog Then Log(pv)
+ If thisLog Then Log($"PV1: ${pv.Size}, ${pv}"$)
+ If thisLog Then Log($"PV2: ${pv2.Size}, ${pv2}"$)
If thisLog Then Log("invDisp=" & invDispPromo)
clv_prodsVariabes.Clear
+ clv_prodsVariabes2.Clear
For Each p As String In pv
If invDispPromo.ContainsKey(p) Then 'Si no esta en la lista de productos con inventario no lo mostramos.
+ Private indicePV = listaPV.IndexOf(p)
+' Log(p & "|" & indicePV & "|" & listaPreciosPV.Get(indicePV))
+ Private estePrecio = listaPreciosPV.Get(indicePV)
+' c2.Position=i
+' jpeg = c2.GetBlob("CAT_GP_IMG")
+' ins.InitializeFromBytesArray(jpeg, 0, jpeg.Length)
+' bmp.Initialize2(ins)
+ 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
+ If invDispPromo.ContainsKey(p) Then 'Si no esta en la lista de productos con inventario no lo mostramos.
+' Log(p)
+' Log($"${invDispPromo}$"$)
+' Log($"${listaPV2}"$)
+' Log("listaPrecios:"&listaPreciosPV2)
+ Private indicePV2 = listaPV2.IndexOf(p)
+' Log($"${indicePV2}"$)
+' Log(p & "|" & indicePV & "|" & listaPreciosPV2.Get(indicePV2))
+ Private estePrecio = listaPreciosPV2.Get(indicePV2)
' c2.Position=i
' jpeg = c2.GetBlob("CAT_GP_IMG")
' ins.InitializeFromBytesArray(jpeg, 0, jpeg.Length)
' bmp.Initialize2(ins)
Private thisProd As Map = prodsPromo.Get(p)
If thisLog Then Log(thisProd)
- clv_prodsVariabes.Add(CreateListItem(Subs.traeProdNombre(p)&CRLF&"Hay " & invDispPromo.Get(p) & " $" & thisProd.Get("precio"), thisProd.Get("precio"), invDispPromo.Get(p), clv_prodsVariabes.AsView.Width, 50dip, Null, p), p)
+ clv_prodsVariabes2.Add(CreateListItem2(Subs.traeProdNombre(p)&CRLF&"Hay " & invDispPromo.Get(p) & " $" & estePrecio, estePrecio, invDispPromo.Get(p), clv_prodsVariabes2.AsView.Width, 50dip, Null, p), p)
End If
Next
+ If pv2.Size = 0 Then
+' Log("PV2 = 0")
+ l_prodsVariables2.Visible = False
+ p_prodsVariables2.Visible = False
+
+ p_prodsVariables.Height = 410dip
+ clv_prodsVariabes.GetBase.Height = p_prodsVariables.Height - 20
+' p_prodsVariables.Height = 380dip
+' clv_prodsVariabes.GetBase.Height = 380dip 'Cambiamos el tamaño y posición de la lista de productos
+ '' clv_prodsVariabes.GetBase.Width =
+ clv_prodsVariabes.Base_Resize(clv_prodsVariabes.GetBase.Width, p_prodsVariables.Height - 20) 'Cambiamos el tamaño del panel interno de la lista para que ajuste al nuevo tamaño.
+ Else
+ l_prodsVariables2.Visible = True
+ p_prodsVariables2.Visible = True
+ p_prodsVariables.Height = 210dip
+ clv_prodsVariabes.GetBase.Height = p_prodsVariables.Height - 20
+ End If
b_terminar1.Visible = False
b_continuar.Visible = False
cuentaProds
@@ -168,7 +656,7 @@ Sub agregaFijosALista(mp As Map, addListItem As Boolean)
prodsCants.Add(et_promoCant.text.As(Int))
prodsPrecios.Add(0)
For Each p As String In pf
- Log($"cont=${cont}, mp=${mp}"$)
+' Log($"cont=${cont}, mp=${mp}"$)
If mp.Get("prodsFijosPiezas").As(List).Size > 0 Then
Private tpi As String = mp.Get("prodsFijosPiezas").As(List).Get(cont)
Else
@@ -195,14 +683,41 @@ End Sub
Sub CreateListItem(Text As String, precioU As String, inv As Int, Width As Int, Height As Int, img As Bitmap, prodId As String) As Panel 'ignore
Dim p As B4XView = xui.CreatePanel("")
p.SetLayoutAnimated(0, 0, 0, Width, Height)
- p.LoadLayout("prodItem")
- l_prodX.TextSize = 12
+ p.LoadLayout("prodItem1")
+ 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 CreateListItem2(Text As String, precioU As String, inv As Int, Width As Int, Height As Int, img As Bitmap, prodId As String) As Panel 'ignore
+ Dim p As B4XView = xui.CreatePanel("")
+ p.SetLayoutAnimated(0, 0, 0, Width, Height)
+ p.LoadLayout("prodItem2")
+ l_prodX.TextSize = 15
+ l_prodX.Text = Text
+ l_prodX.TextSize = 15
+' p_prods.Height = Height
+' 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.Text = 0
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
@@ -211,23 +726,89 @@ Sub b_prodMenos_Click
Dim pnl0 As B4XView = clv_prodsVariabes.GetPanel(index)
Dim pnl As B4XView = pnl0.GetView(0)
' Dim laCant As B4XView = pnl.GetView(5)
- Dim laCant As B4XView = pnl.GetView(2).GetView(3)
+ Dim laCant As B4XView = pnl.GetView(2).GetView(4)
' Log($"precio|stock:${laCant.tag}"$)
laCant.Text = $"$1.0{laCant.Text-1}"$
If laCant.Text < 0 Then laCant.Text = 0
-' Dim chk As B4XView = pnl.GetView(2)
+
+' Log(Regex.Split("\|", laCant.tag)(0))
+ Private precio As String = Regex.Split("\|", laCant.tag)(0)
+' Private inv As String = Regex.Split("\|", laCant.tag)(1)
+ Private prodId As String = Regex.Split("\|", laCant.tag)(2)
+ Private tmpMap As Map = CreateMap("precio":precio, "cant":laCant.Text, "almacen":estaPromo)
+' Log(tmpMap)
+ promosMap.Put(prodId, tmpMap)
+ If laCant.Text = 0 Then promosMap.Remove(prodId)
+' LogColor(promosMap, Colors.Magenta)
cuentaProds
' l_total.Text = $"Total Compra: $$1.2{totalCompra}"$
' l_totProds.text = $"Total Productos: ${totalProds}"$
End Sub
Sub b_prodMas_Click
- If totalProds < prodsVarReq + tpf Then
+ If prodsVar1 < prodsVarReq Then
Dim index As Int = clv_prodsVariabes.GetItemFromView(Sender)
Dim pnl0 As B4XView = clv_prodsVariabes.GetPanel(index)
Dim pnl As B4XView = pnl0.GetView(0)
' Dim laCant As B4XView = pnl.GetView(5)
- Dim laCant As B4XView = pnl.GetView(2).GetView(3)
+ Dim laCant As B4XView = pnl.GetView(2).GetView(4)
+' Log($"precio|stock:${laCant.tag}"$)
+' Log($"Indice: ${index}, cant:${laCant.Text+1}, precioU: ${laCant.tag}"$)
+ Dim esteTag As List = Regex.Split("\|", laCant.Tag)
+' Log(esteTag)
+
+ If laCant.Text + 1 <= esteTag.get(1) Then
+ laCant.Text = $"$1.0{laCant.Text+1}"$
+ cuentaProds
+ End If
+
+' Log(Regex.Split("\|", laCant.tag)(0))
+ Private precio As String = Regex.Split("\|", laCant.tag)(0)
+' Private inv As String = Regex.Split("\|", laCant.tag)(1)
+ Private prodId As String = Regex.Split("\|", laCant.tag)(2)
+ Private tmpMap As Map = CreateMap("precio":precio, "cant":laCant.Text, "almacen":estaPromo)
+' Log(tmpMap)
+ promosMap.Put(prodId, tmpMap)
+' LogColor(promosMap, Colors.Magenta)
+ End If
+' Log($"Total Prods: ${totalProds}, Total Compra: $$1.2{totalCompra}"$)
+' l_total.Text = $"Total Compra: $$1.2{totalCompra}"$
+' l_totProds.text = $"Total Productos: ${totalProds}"$
+End Sub
+
+
+Sub b_prodMenos2_Click
+ Dim index As Int = clv_prodsVariabes2.GetItemFromView(Sender)
+ Dim pnl0 As B4XView = clv_prodsVariabes2.GetPanel(index)
+ Dim pnl As B4XView = pnl0.GetView(0)
+' Dim laCant As B4XView = pnl.GetView(5)
+ Dim laCant As B4XView = pnl.GetView(2).GetView(4)
+' Log($"precio|stock:${laCant.tag}"$)
+ laCant.Text = $"$1.0{laCant.Text-1}"$
+ If laCant.Text < 0 Then laCant.Text = 0
+
+' Log(Regex.Split("\|", laCant.tag)(0))
+ Private precio As String = Regex.Split("\|", laCant.tag)(0)
+' Private inv As String = Regex.Split("\|", laCant.tag)(1)
+ Private prodId As String = Regex.Split("\|", laCant.tag)(2)
+ Private tmpMap As Map = CreateMap("precio":precio, "cant":laCant.Text, "almacen":estaPromo)
+' Log(tmpMap)
+ promosMap.Put(prodId, tmpMap)
+ If laCant.Text = 0 Then promosMap.Remove(prodId)
+' LogColor(promosMap, Colors.Magenta)
+ cuentaProds
+' l_total.Text = $"Total Compra: $$1.2{totalCompra}"$
+' l_totProds.text = $"Total Productos: ${totalProds}"$
+End Sub
+
+Sub b_prodMas2_Click
+' Log(prodsVarReq & "|" & prodsVarReq2 & "|" & tpf & "|" & prodsVar2)
+ If prodsVar2 < prodsVarReq2 Then
+ Dim index As Int = clv_prodsVariabes2.GetItemFromView(Sender)
+ Dim pnl0 As B4XView = clv_prodsVariabes2.GetPanel(index)
+ Dim pnl As B4XView = pnl0.GetView(0)
+' Dim laCant As B4XView = pnl.GetView(5)
+ Dim laCant As B4XView = pnl.GetView(2).GetView(4)
' Log($"precio|stock:${laCant.tag}"$)
' Log($"Indice: ${index}, cant:${laCant.Text+1}, precioU: ${laCant.tag}"$)
Dim esteTag As List = Regex.Split("\|", laCant.Tag)
@@ -236,26 +817,38 @@ Sub b_prodMas_Click
laCant.Text = $"$1.0{laCant.Text+1}"$
cuentaProds
End If
+
+' Log(Regex.Split("\|", laCant.tag)(0))
+ Private precio As String = Regex.Split("\|", laCant.tag)(0)
+' Private inv As String = Regex.Split("\|", laCant.tag)(1)
+ Private prodId As String = Regex.Split("\|", laCant.tag)(2)
+ Private tmpMap As Map = CreateMap("precio":precio, "cant":laCant.Text, "almacen":estaPromo)
+' Log(tmpMap)
+ promosMap.Put(prodId, tmpMap)
+' LogColor(promosMap, Colors.Magenta)
End If
' Log($"Total Prods: ${totalProds}, Total Compra: $$1.2{totalCompra}"$)
' l_total.Text = $"Total Compra: $$1.2{totalCompra}"$
' l_totProds.text = $"Total Productos: ${totalProds}"$
End Sub
+
Private Sub et_pCant_TextChanged (Old As String, New As String)
' LogColor("txt changed",Colors.Magenta)
cuentaProds
End Sub
Sub cuentaProds
- Log("=====================================================")
- Log("Inicia cuentaProds")
+' Log("=====================================================")
+' Log("Inicia cuentaProds")
Private thisLog As Boolean = False
- If thisLog Then LogColor($"ProdsFijos=${tpf}, totalProds=${totalProds}, totalCompra=${totalCompra}"$, Colors.Red)
+' LogColor($"ProdsFijos=${tpf}, totalProds=${totalProds}, totalCompra=${totalCompra}"$, Colors.Red)
prodsIds2.Clear
prodsCants2.Clear
prodsPrecios2.Clear
lv_prodsFijos.Clear
+ prodsVar1 = 0
+ prodsVar2 = 0
agregaFijosALista(Subs.traePromo(estaPromo, esteCliente), True)
' Log(prodsIds)
Private tcpf As Float = 0 'Total de compra de productos fijos.
@@ -263,37 +856,55 @@ Sub cuentaProds
If thisLog Then Log($"${tcpf} + ${prodsCants.Get(pf)} * ${prodsPrecios.Get(pf)} = ${(prodsPrecios.Get(pf) * prodsCants.Get(pf))}"$)
tcpf = tcpf + (prodsPrecios.Get(pf) * prodsCants.Get(pf))
Next
-' Log("Total compra pordsFijos = " & tcpf)
+' Log("Total compra prodsFijos = " & tcpf)
totalCompra = tcpf
totalProds = tpf 'Cantidad total de productos fijos.
+ 'Variables1
For i = 0 To clv_prodsVariabes.GetSize - 1
Private p0 As B4XView = clv_prodsVariabes.GetPanel(i)
Private p As B4XView = p0.GetView(0)
- Private cant1 As B4XView = p.GetView(2).GetView(3)
+ Private cant1 As B4XView = p.GetView(2).GetView(4)
If cant1.Text = "" Then cant1.Text = 0
totalProds = totalProds + cant1.Text
+ prodsVar1 = prodsVar1 + cant1.Text
Private esteTag As List = Regex.Split("\|", cant1.Tag)
If cant1.Text > esteTag.Get(1) Then cant1.Text = esteTag.Get(1)
If cant1.Text > 0 Then
- Log(esteTag.Get(2) & "|" & cant1.Text)
+' Log(esteTag.Get(2) & "|" & cant1.Text)
totalCompra = totalCompra + (esteTag.get(0) * cant1.text)
If thisLog Then Log($"Cant: ${cant1.Text}, Suma: ${totalCompra}"$)
prodsIds2.Add(esteTag.Get(2))
prodsCants2.Add(cant1.Text)
prodsPrecios2.Add(esteTag.get(0))
End If
-' Log(esteTag)
-' Log($"Cant: ${cant1.Text}, Suma: ${totalCompra}"$)
-' totalCompra = totalCompra * et_promoCant.Text
-' totalProds = totalProds * et_promoCant.Text
-
l_total.Text = $"Total: $$1.2{totalCompra}"$
l_totProds.text = $"Productos: ${totalProds}"$
Next
+ 'Variables2
+ For i = 0 To clv_prodsVariabes2.GetSize - 1
+ Private p0 As B4XView = clv_prodsVariabes2.GetPanel(i)
+ Private p As B4XView = p0.GetView(0)
+ Private cant2 As B4XView = p.GetView(2).GetView(4)
+ totalProds = totalProds + cant2.Text
+ prodsVar2 = prodsVar2 + cant2.Text
+ Private esteTag As List = Regex.Split("\|", cant2.Tag)
+ If cant2.Text > esteTag.Get(1) Then cant2.Text = esteTag.Get(1)
+ If cant2.Text > 0 Then
+' Log(esteTag.Get(2) & "|" & cant2.Text)
+ totalCompra = totalCompra + (esteTag.get(0) * cant2.text)
+ If thisLog Then Log($"Cant: ${cant2.Text}, Suma: ${totalCompra}"$)
+ prodsIds2.Add(esteTag.Get(2))
+ prodsCants2.Add(cant2.Text)
+ prodsPrecios2.Add(esteTag.get(0))
+ End If
+ l_total.Text = $"Total: $$1.2{totalCompra}"$
+ l_totProds.text = $"Productos: ${totalProds}"$
+ Next
+
If thisLog Then Log($"Total Prods: ${totalProds}, Total: $$1.2{totalCompra}"$)
l_total.Text = $"Total: $$1.2{totalCompra}"$
l_totProds.text = $"Productos: ${totalProds}"$
- If totalProds < prodsVarReq + tpf Or totalProds > prodsVarReq + tpf Then
+ If totalProds < prodsVarReq + prodsVarReq2 + tpf Or totalProds > prodsVarReq + prodsVarReq2 + tpf Then
' Log("INCOMPLETA")
b_terminar1.Visible = False
b_continuar.Visible = False
@@ -304,7 +915,7 @@ Sub cuentaProds
End If
If thisLog Then LogColor($"${prodsIds}${CRLF}${prodsCants}${CRLF}${prodsPrecios}"$, Colors.blue)
If thisLog Then LogColor($"${prodsIds2}${CRLF}${prodsCants2}${CRLF}${prodsPrecios2}"$, Colors.Magenta)
- LogColor($"Total Prods: ${totalProds}, Total: $$1.2{totalCompra}"$, Colors.Blue)
+' LogColor($"Total Prods: ${totalProds}, Total: $$1.2{totalCompra}"$, Colors.Blue)
End Sub
Private Sub et_pCant_FocusChanged (HasFocus As Boolean)
@@ -317,20 +928,46 @@ Private Sub b_promoMenos_Click
et_promoCant.Text = et_promoCant.Text.As(Int) - 1
End If
l_prodsFijos.Text = $"Productos fijos (${tpf2 * et_promoCant.Text.As(Int)})"$
- l_prodsVariables.Text = $"Productos variables requeridos: ${prodsVarReq2 * et_promoCant.Text.As(Int)}"$
+ l_prodsVariables.Text = $"Productos variables requeridos: ${prodsVarReq_ * et_promoCant.Text.As(Int)}"$
+ l_prodsVariables2.Text = $"Productos variables2 requeridos: ${prodsVarReq2_ * et_promoCant.Text.As(Int)}"$
tpf = tpf2 * et_promoCant.Text.As(Int)
- prodsVarReq = prodsVarReq2 * et_promoCant.Text.As(Int)
+ prodsVarReq = prodsVarReq_ * et_promoCant.Text.As(Int)
+ prodsVarReq2 = prodsVarReq2_ * et_promoCant.Text.As(Int)
Log($"Max promos=${et_promoCant.Text.As(Int)}, Prods fijos=${tpf}, "$)
cuentaProds
End Sub
Private Sub b_promoMas_Click
+
+ If laPromo = "MYKONOS_01" Then
+ Private c As Cursor = B4XPages.MainPage.skmt.ExecQuery("SELECT ifnull( SUM (PE_COSTO_TOT),0) As suma FROM PEDIDO JOIN CAT_PROMO_ESP ON CAT_PE_ID = PE_PROID WHERE PE_CLIENTE IN (Select CUENTA FROM CUENTAA)")
+ If c.RowCount > 0 Then
+ c.Position = 0
+ Private c2 As Cursor = B4XPages.MainPage.skmt.ExecQuery("SELECT DISTINCT CAT_PE_MONTO FROM CAT_PROMO_ESP")
+ If c2.RowCount > 0 Then
+ c2.Position = 0
+
+ If c.GetString("suma") >= 300 And c.GetString("suma") < 600 Then
+ maxCantPromos = 1
+ Else If c.GetString("suma") >= 600 And c.GetString("suma") < 900 Then
+ maxCantPromos = 2
+ Else If c.GetString("suma") >= 900 Then
+ maxCantPromos = 3
+ End If
+
+ End If
+ End If
+
+ End If
+
If et_promoCant.Text < maxCantPromos Then
et_promoCant.Text = et_promoCant.Text.As(Int) + 1
l_prodsFijos.Text = $"Productos fijos (${tpf2 * et_promoCant.Text.As(Int)})"$
- l_prodsVariables.Text = $"Productos variables requeridos: ${prodsVarReq2 * et_promoCant.Text.As(Int)}"$
+ l_prodsVariables.Text = $"Productos variables requeridos: ${prodsVarReq_ * et_promoCant.Text.As(Int)}"$
+ l_prodsVariables2.Text = $"Productos variables2 requeridos: ${prodsVarReq2_ * et_promoCant.Text.As(Int)}"$
tpf = tpf2 * et_promoCant.Text.As(Int)
- prodsVarReq = prodsVarReq2 * et_promoCant.Text.As(Int)
+ prodsVarReq = prodsVarReq_ * et_promoCant.Text.As(Int)
+ prodsVarReq2 = prodsVarReq2_ * et_promoCant.Text.As(Int)
Log($"Max promos=${et_promoCant.Text.As(Int)}, Prods fijos=${tpf}, "$)
End If
If et_promoCant.text > maxCantPromos Then et_promoCant.Text = maxCantPromos
@@ -340,39 +977,55 @@ End Sub
Private Sub b_terminar1_Click
cuentaProds
Log("====================================================================")
-' Log($"${prodsIds}${CRLF}${prodsCants}${CRLF}${prodsPrecios}"$)
For t = 0 To prodsIds.Size - 1 'Guardamos los productos fijos de la promocion en pedido.
Private pn As String = Subs.traeProdNombre(prodsIds.Get(t))
- If prodsCants.Get(t) > 0 Then Subs.guardaProducto(estaPromo, prodsPrecios.Get(t), prodsCants.Get(t), pn&" ", prodsIds.Get(t), Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, Subs.traeRuta, 0, B4XPages.MainPage.tipo_venta)
+ If prodsCants.Get(t) > 0 Then Subs.guardaProductoSinGestion(estaPromo, prodsPrecios.Get(t), prodsCants.Get(t), pn, prodsIds.Get(t), Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, Subs.traeRuta, 0, B4XPages.MainPage.tipo_venta)
Next
For t = 0 To prodsIds2.Size - 1 'Guardamos los productos variables de la promocion en pedido.
Private pn As String = Subs.traeProdNombre(prodsIds2.Get(t))
- Subs.guardaProducto(estaPromo, prodsPrecios2.Get(t), prodsCants2.Get(t), pn, prodsIds2.Get(t), Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, Subs.traeRuta, 0, B4XPages.MainPage.tipo_venta)
+ Subs.guardaProductoSinGestion(estaPromo, prodsPrecios2.Get(t), prodsCants2.Get(t), pn, prodsIds2.Get(t), Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, Subs.traeRuta, 0, B4XPages.MainPage.tipo_venta)
Next
+' Log(B4XPages.MainPage.productos.prodsMap)
+' For o=0 To prodsIds.Size - 1 'Ponemos los productos fijos en el mapa de la compra.
+' Private tmpMap As Map = CreateMap("precio":prodsPrecios.Get(o), "cant":prodsCants.Get(o), "almacen":estaPromo)
+ '' Log(tmpMap)
+' If prodsCants.Get(o) > 0 Then B4XPages.MainPage.productos.prodsMap.Put(estaPromo&"|"&prodsIds.Get(o), tmpMap)
+' Next
+' For o=0 To prodsIds2.Size - 1 'Ponemos los productos variables en el mapa de la compra.
+' Private tmpMap As Map = CreateMap("precio":prodsPrecios2.Get(o), "cant":prodsCants2.Get(o), "almacen":estaPromo)
+ '' Log(tmpMap)
+' B4XPages.MainPage.productos.prodsMap.Put(estaPromo&"|"&prodsIds2.Get(o), tmpMap)
+' Next
+' LogColor(B4XPages.MainPage.productos.prodsMap, Colors.red)
lv_prodsFijos.Clear
B4XPages.MainPage.bTerminarClicked = True
- B4XPages.ShowPage("Cliente")
+ B4XPages.ShowPage("productos")
+ B4XPages.MainPage.productos.b_terminar1_Click
End Sub
Private Sub b_continuar_Click
cuentaProds
Log("====================================================================")
- Log($"${prodsIds}${CRLF}${prodsCants}${CRLF}${prodsPrecios}"$)
For t = 0 To prodsIds.Size - 1 'Guardamos los productos fijos de la promocion en pedido.
Private pn As String = Subs.traeProdNombre(prodsIds.Get(t))
- LogColor(pn,Colors.Red)
- If pn <> "N/A" Then
- Subs.guardaProducto(estaPromo, prodsPrecios.Get(t), prodsCants.Get(t), pn, prodsIds.Get(t), Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, Subs.traeRuta, 0, B4XPages.MainPage.tipo_venta)
- End If
+ Subs.guardaProductoSinGestion(estaPromo, prodsPrecios.Get(t), prodsCants.Get(t), pn, prodsIds.Get(t), Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, Subs.traeRuta, 0, B4XPages.MainPage.tipo_venta)
Next
- Log(prodsIds2)
For t = 0 To prodsIds2.Size - 1 'Guardamos los productos variables de la promocion en pedido.
Private pn As String = Subs.traeProdNombre(prodsIds2.Get(t))
- LogColor(pn,Colors.Green)
- If pn <> "N/A" Then
- Subs.guardaProducto(estaPromo, prodsPrecios2.Get(t), prodsCants2.Get(t), pn, prodsIds2.Get(t), Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, Subs.traeRuta, 0, B4XPages.MainPage.tipo_venta)
- End If
+ Subs.guardaProductoSinGestion(estaPromo, prodsPrecios2.Get(t), prodsCants2.Get(t), pn, prodsIds2.Get(t), Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, Subs.traeRuta, 0, B4XPages.MainPage.tipo_venta)
Next
+' Log(B4XPages.MainPage.productos.prodsMap)
+' For o=0 To prodsIds.Size - 1 'Ponemos los productos fijos en el mapa de la compra.
+' Private tmpMap As Map = CreateMap("precio":prodsPrecios.Get(o), "cant":prodsCants.Get(o), "almacen":estaPromo)
+ '' Log(tmpMap)
+' If prodsCants.Get(o) > 0 Then B4XPages.MainPage.productos.prodsMap.Put(estaPromo&"|"&prodsIds.Get(o), tmpMap)
+' Next
+' For o=0 To prodsIds2.Size - 1 'Ponemos los productos variables en el mapa de la compra.
+' Private tmpMap As Map = CreateMap("precio":prodsPrecios2.Get(o), "cant":prodsCants2.Get(o), "almacen":estaPromo)
+ '' Log(tmpMap)
+' B4XPages.MainPage.productos.prodsMap.Put(estaPromo&"|"&prodsIds2.Get(o), tmpMap)
+' Next
+' LogColor(B4XPages.MainPage.productos.prodsMap, Colors.red)
lv_prodsFijos.Clear
' Activity_KeyPress(KeyCodes.KEYCODE_BACK)
' CallSubDelayed2(productos, "Activity_KeyPress", KeyCodes.KEYCODE_BACK)
diff --git a/B4A/C_TicketsDia.bas b/B4A/C_TicketsDia.bas
index 5430749..d45ba43 100644
--- a/B4A/C_TicketsDia.bas
+++ b/B4A/C_TicketsDia.bas
@@ -16,6 +16,8 @@ Sub Class_Globals
Dim b_noventa As Button
Dim nombre_boton As String
Dim STIME As String
+
+ Private L_ventanoventa As Label
End Sub
'You can add more parameters here.
@@ -29,7 +31,7 @@ Private Sub B4XPage_Created (Root1 As B4XView)
'load the layout to Root
ruta = File.DirInternal
Root.LoadLayout("ticketsdia")
- ListView1.Left = Round(Root.Width/2)-(ListView1.Width/2)
+' ListView1.Left = Round(Root.Width/2)-(ListView1.Width/2)
If File.Exists(ruta, "kmt.db") = False Then
File.Copy(File.DirAssets, "kmt.db", ruta, "kmt.db")
End If
@@ -38,14 +40,20 @@ Private Sub B4XPage_Created (Root1 As B4XView)
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 = 10
- label1.TextColor = Colors.Black
+ Dim Label1 As Label
+ Label1 = ListView1.TwoLinesLayout.Label
+ Label1.TextSize = 20
+ Label1.TextColor = Colors.White
Dim label2 As Label
label2 = ListView1.TwoLinesLayout.SecondLabel
- label2.TextSize = 15
- label2.TextColor = Colors.Blue
+ label2.TextSize = 20
+ label2.TextColor = Colors.White
+ Label1.Height = 25dip
+ label2.Height = 60dip
+
+ ListView1.TwoLinesLayout.ItemHeight = 95dip
+ Label1.Typeface = Typeface.CreateNew(Typeface.DEFAULT_BOLD, Typeface.STYLE_BOLD)
+ label2.Typeface = Typeface.CreateNew(Typeface.DEFAULT_BOLD, Typeface.STYLE_BOLD)
ListView1.AddTwoLines(c.GetString("PC_CLIENTE"),"Cantidad #"& c.GetString("PC_NOART")& " SubTotal $"& c.GetString("PC_MONTO"))
Next
End If
@@ -55,39 +63,82 @@ End Sub
Sub B4XPage_Appear
nombre_boton = "NOVENTA"
- c=B4XPages.MainPage.skmt.ExecQuery("select PC_CLIENTE,PC_MONTO,PC_NOART,(select CAT_CL_NOMBRE from kmt_info3 where cat_cl_codigo = pc_cliente ) as NOMBRE FROM PEDIDO_CLIENTE ORDER BY PC_FECHA asc")
+ L_ventanoventa.Text = "Clientes con venta"
ListView1.Clear
- If c.RowCount > 0 Then
- For i = 0 To c.RowCount - 1
- c.Position = i
-
- 'AQUI CAMBIAR
+ ListView1.Height = Root.Height * 0.70
+ p_ticketsdia.Height = Root.Height * 0.80
+ p_ticketsdia.Width = Root.Width * 0.90
+
+ c=B4XPages.MainPage.skmt.ExecQuery("select PC_CLIENTE,PC_MONTO,PC_NOART,(select CAT_CL_NOMBRE from kmt_info3 where cat_cl_codigo = pc_cliente ) as NOMBRE FROM PEDIDO_CLIENTE ORDER BY PC_FECHA asc")
- Private s3 As Cursor=B4XPages.MainPage.skmt.ExecQuery2("select * FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) and PE_RECALCULO <> ? OR PE_RECALCULO <> ? OR PE_RECALCULO IS NOT NULL",Array As String("","null"))
-' LogColor(s3.RowCount,Colors.Yellow)
+
+ ListView1.Clear
+ If c.RowCount>0 Then
+ For i=0 To c.RowCount -1
+ c.Position=i
+
+
+ Private s3 As Cursor=B4XPages.MainPage.skmt.ExecQuery2("select * FROM PEDIDO WHERE PE_CLIENTE = ? and PE_RECALCULO <> ? OR PE_RECALCULO <> ? OR PE_RECALCULO IS NOT NULL",Array As String(C.GetString("PC_CLIENTE"),"","null"))
+ LogColor(s3.RowCount,Colors.Yellow)
If s3.RowCount > 0 Then
- Private s As Cursor=B4XPages.MainPage.skmt.ExecQuery2("select iFNULL(sum(pe_costo_tot),0) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) and (PE_RECALCULO = ? or PE_RECALCULO = ? or PE_RECALCULO IS NULL)",Array As String("","null"))
+
+ Private s As Cursor=B4XPages.MainPage.skmt.ExecQuery2("select iFNULL(sum(pe_costo_tot),0) as TOTAL_CLIE, IFNULL(SUM(PE_CANT),0) AS CANT_CLIE FROM PEDIDO WHERE PE_CLIENTE = ? and (PE_RECALCULO = ? or PE_RECALCULO = ? or PE_RECALCULO IS NULL ) AND PE_PROID NOT IN (SELECT CAT_PA_ID FROM PROMOS_COMP)",Array As String(C.GetString("PC_CLIENTE"),"","null"))
s.Position=0
- Private s5 As Cursor = B4XPages.MainPage.skmt.ExecQuery2("select iFNULL(sum(PE_RECALCULOTOT),0) as TOTAL_CLIE FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) and (PE_RECALCULO <> ? or PE_RECALCULO <> ? OR PE_RECALCULO IS NOT NULL)",Array As String("","null"))
+ Private s5 As Cursor = B4XPages.MainPage.skmt.ExecQuery2("select iFNULL(sum(PE_RECALCULOTOT),0) as TOTAL_CLIE, IFNULL(SUM(PE_CANT),0) AS CANT_CLIE FROM PEDIDO WHERE PE_CLIENTE = ? and (PE_RECALCULO <> ? or PE_RECALCULO <> ? OR PE_RECALCULO IS NOT NULL) AND PE_PROID NOT IN (SELECT CAT_PA_ID FROM PROMOS_COMP)",Array As String(C.GetString("PC_CLIENTE"),"","null"))
s5.Position = 0
- Private suma As Float =NumberFormat2( s.GetString("TOTAL_CLIE") + s5.GetString("TOTAL_CLIE"),0,2,2,False)
+
+
+
+
+ Dim label1 As Label
+ label1 = ListView1.TwoLinesLayout.Label
+ label1.TextSize = 20
+ label1.TextColor = Colors.White
+ Dim label2 As Label
+ label2 = ListView1.TwoLinesLayout.SecondLabel
+ label2.TextSize = 20
+ label2.TextColor = Colors.White
+ label1.Height = 25dip
+ label2.Height = 60dip
+
+ ListView1.TwoLinesLayout.ItemHeight = 95dip
+ label1.Typeface = Typeface.CreateNew(Typeface.DEFAULT_BOLD, Typeface.STYLE_BOLD)
+ label2.Typeface = Typeface.CreateNew(Typeface.DEFAULT_BOLD, Typeface.STYLE_BOLD)
+ ListView1.AddTwoLines(c.GetString("PC_CLIENTE"),c.GetString("NOMBRE") &" Cantidad #"& (s.GetString("CANT_CLIE") + s5.GetString("CANT_CLIE")) & " SubTotal $"& NumberFormat2(s.GetString("TOTAL_CLIE") + s5.GetString("TOTAL_CLIE"),0,2,2,True))
+
+
+
s.Close
+
+
Else If s3.RowCount = 0 Then
- Private s As Cursor=B4XPages.MainPage.skmt.ExecQuery2("select iFNULL(sum(pe_costo_tot),0) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE FROM PEDIDO WHERE PE_CLIENTE = ?",Array As String(c.GetString("PC_CLIENTE")))
+ Private s As Cursor=B4XPages.MainPage.skmt.ExecQuery2("select iFNULL(sum(pe_costo_tot),0) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE FROM PEDIDO WHERE PE_CLIENTE = ?", Array As String(C.GetString("PC_CLIENTE")))
s.Position=0
- Private suma As Float = NumberFormat2( s.GetString("TOTAL_CLIE"),0,2,2,False)
+
+ Dim label1 As Label
+ label1 = ListView1.TwoLinesLayout.Label
+ label1.TextSize = 20
+ label1.TextColor = Colors.White
+ Dim label2 As Label
+ label2 = ListView1.TwoLinesLayout.SecondLabel
+ label2.TextSize = 20
+ label2.TextColor = Colors.White
+ label1.Height = 25dip
+ label2.Height = 60dip
+
+ ListView1.TwoLinesLayout.ItemHeight = 95dip
+ label1.Typeface = Typeface.CreateNew(Typeface.DEFAULT_BOLD, Typeface.STYLE_BOLD)
+ label2.Typeface = Typeface.CreateNew(Typeface.DEFAULT_BOLD, Typeface.STYLE_BOLD)
+ ListView1.AddTwoLines(c.GetString("PC_CLIENTE"),c.GetString("NOMBRE") &" Cantidad #"& s.GetString("CANT_CLIE") & " SubTotal $"& NumberFormat2(s.GetString("TOTAL_CLIE"),0,2,2,True))
+
+
+
s.Close
End If
- Dim label1 As Label
- label1 = ListView1.TwoLinesLayout.Label
- label1.TextSize = 15
- label1.TextColor = Colors.Black
- Dim label2 As Label
- label2 = ListView1.TwoLinesLayout.SecondLabel
- label2.TextSize = 10
- label2.TextColor = Colors.Blue
- ListView1.AddTwoLines(c.GetString("PC_CLIENTE"),c.GetString("NOMBRE") &" Cantidad #"& c.GetString("PC_NOART")& " SubTotal $"& NumberFormat2(suma,0,2,2,False))
+
+
+
Next
End If
c.Close
@@ -127,7 +178,8 @@ Sub b_noventa_Click
If nombre_boton = "NOVENTA" Then
nombre_boton = "VENTA"
b_noventa.Text ="VENTA"
- c=B4XPages.MainPage.skmt.ExecQuery("select NV_CLIENTE,NV_MOTIVO,NV_COMM, (select CAT_CL_NOMBRE from kmt_info3 where cat_cl_codigo = NV_CLIENTE ) as NOMBRE FROM NOVENTA ORDER BY NV_CLIENTE asc")
+ L_ventanoventa.Text = "Clientes sin venta"
+ c=B4XPages.MainPage.skmt.ExecQuery("select NV_CLIENTE,NV_MOTIVO,NV_COMM, (select CAT_CL_NOMBRE from kmt_info where cat_cl_codigo = NV_CLIENTE ) as NOMBRE FROM NOVENTA ORDER BY NV_CLIENTE asc")
ListView1.Clear
If c.RowCount>0 Then
For i=0 To c.RowCount -1
@@ -146,21 +198,73 @@ Sub b_noventa_Click
Else
nombre_boton = "NOVENTA"
b_noventa.Text ="NO VENTA"
- c=B4XPages.MainPage.skmt.ExecQuery("select PC_CLIENTE,PC_MONTO,PC_NOART,(select CAT_CL_NOMBRE from kmt_info3 where cat_cl_codigo = pc_cliente ) as NOMBRE FROM PEDIDO_CLIENTE ORDER BY PC_FECHA asc")
+ L_ventanoventa.Text = "Clientes con venta"
+ ListView1.Clear
+ c=B4XPages.MainPage.skmt.ExecQuery("select PC_CLIENTE,PC_MONTO,PC_NOART,(select CAT_CL_NOMBRE from kmt_info3 where cat_cl_codigo = pc_cliente ) as NOMBRE FROM PEDIDO_CLIENTE ORDER BY PC_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.Black
- Dim label2 As Label
- label2 = ListView1.TwoLinesLayout.SecondLabel
- label2.TextSize = 10
- label2.TextColor = Colors.Blue
- ListView1.AddTwoLines(c.GetString("PC_CLIENTE"),c.GetString("NOMBRE") &" Cantidad #"& c.GetString("PC_NOART")& " SubTotal $"& c.GetString("PC_MONTO"))
+ Private s3 As Cursor=B4XPages.MainPage.skmt.ExecQuery2("select * FROM PEDIDO WHERE PE_CLIENTE = ? and PE_RECALCULO <> ? OR PE_RECALCULO <> ? OR PE_RECALCULO IS NOT NULL",Array As String(C.GetString("PC_CLIENTE"),"","null"))
+ LogColor(s3.RowCount,Colors.Yellow)
+ If s3.RowCount > 0 Then
+
+ Private s As Cursor=B4XPages.MainPage.skmt.ExecQuery2("select iFNULL(sum(pe_costo_tot),0) as TOTAL_CLIE, IFNULL(SUM(PE_CANT),0) AS CANT_CLIE FROM PEDIDO WHERE PE_CLIENTE = ? and (PE_RECALCULO = ? or PE_RECALCULO = ? or PE_RECALCULO IS NULL ) AND PE_PROID NOT IN (SELECT CAT_PA_ID FROM PROMOS_COMP)",Array As String(C.GetString("PC_CLIENTE"),"","null"))
+ s.Position=0
+ Private s5 As Cursor = B4XPages.MainPage.skmt.ExecQuery2("select iFNULL(sum(PE_RECALCULOTOT),0) as TOTAL_CLIE, IFNULL(SUM(PE_CANT),0) AS CANT_CLIE FROM PEDIDO WHERE PE_CLIENTE = ? and (PE_RECALCULO <> ? or PE_RECALCULO <> ? OR PE_RECALCULO IS NOT NULL) AND PE_PROID NOT IN (SELECT CAT_PA_ID FROM PROMOS_COMP)",Array As String(C.GetString("PC_CLIENTE"),"","null"))
+ s5.Position = 0
+
+
+
+
+ Dim label1 As Label
+ label1 = ListView1.TwoLinesLayout.Label
+ label1.TextSize = 20
+ label1.TextColor = Colors.White
+ Dim label2 As Label
+ label2 = ListView1.TwoLinesLayout.SecondLabel
+ label2.TextSize = 20
+ label2.TextColor = Colors.White
+ label1.Height = 25dip
+ label2.Height = 60dip
+
+ ListView1.TwoLinesLayout.ItemHeight = 95dip
+ label1.Typeface = Typeface.CreateNew(Typeface.DEFAULT_BOLD, Typeface.STYLE_BOLD)
+ label2.Typeface = Typeface.CreateNew(Typeface.DEFAULT_BOLD, Typeface.STYLE_BOLD)
+ ListView1.AddTwoLines(c.GetString("PC_CLIENTE"),c.GetString("NOMBRE") &" Cantidad #"& (s.GetString("CANT_CLIE") + s5.GetString("CANT_CLIE")) & " SubTotal $"& NumberFormat2(s.GetString("TOTAL_CLIE") + s5.GetString("TOTAL_CLIE"),0,2,2,True))
+
+
+
+ s.Close
+
+
+ Else If s3.RowCount = 0 Then
+ Private s As Cursor=B4XPages.MainPage.skmt.ExecQuery2("select iFNULL(sum(pe_costo_tot),0) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE FROM PEDIDO WHERE PE_CLIENTE = ?", Array As String(C.GetString("PC_CLIENTE")))
+ s.Position=0
+
+ Dim label1 As Label
+ label1 = ListView1.TwoLinesLayout.Label
+ label1.TextSize = 20
+ label1.TextColor = Colors.White
+ Dim label2 As Label
+ label2 = ListView1.TwoLinesLayout.SecondLabel
+ label2.TextSize = 20
+ label2.TextColor = Colors.White
+ label1.Height = 25dip
+ label2.Height = 60dip
+
+ ListView1.TwoLinesLayout.ItemHeight = 95dip
+ label1.Typeface = Typeface.CreateNew(Typeface.DEFAULT_BOLD, Typeface.STYLE_BOLD)
+ label2.Typeface = Typeface.CreateNew(Typeface.DEFAULT_BOLD, Typeface.STYLE_BOLD)
+ ListView1.AddTwoLines(c.GetString("PC_CLIENTE"),c.GetString("NOMBRE") &" Cantidad #"& s.GetString("CANT_CLIE") & " SubTotal $"& NumberFormat2(s.GetString("TOTAL_CLIE"),0,2,2,True))
+
+
+
+ s.Close
+ End If
+
Next
End If
c.Close
diff --git a/B4A/Files/cliente.bal b/B4A/Files/cliente.bal
index 10b7ab3..44587ee 100644
Binary files a/B4A/Files/cliente.bal and b/B4A/Files/cliente.bal differ
diff --git a/B4A/Files/clientes.bal b/B4A/Files/clientes.bal
index 389373c..75e1c6a 100644
Binary files a/B4A/Files/clientes.bal and b/B4A/Files/clientes.bal differ
diff --git a/B4A/Files/comis.bal b/B4A/Files/comis.bal
index ef941f9..d43c901 100644
Binary files a/B4A/Files/comis.bal and b/B4A/Files/comis.bal differ
diff --git a/B4A/Files/contrasena.png b/B4A/Files/contrasena.png
new file mode 100644
index 0000000..97b3da2
Binary files /dev/null and b/B4A/Files/contrasena.png differ
diff --git a/B4A/Files/fondo-rojo.jpg b/B4A/Files/fondo-rojo.jpg
new file mode 100644
index 0000000..ab87b73
Binary files /dev/null and b/B4A/Files/fondo-rojo.jpg differ
diff --git a/B4A/Files/fondo-rojo.png b/B4A/Files/fondo-rojo.png
new file mode 100644
index 0000000..ab87b73
Binary files /dev/null and b/B4A/Files/fondo-rojo.png differ
diff --git a/B4A/Files/iniciofinventa.bal b/B4A/Files/iniciofinventa.bal
index 555eaa2..9da7449 100644
Binary files a/B4A/Files/iniciofinventa.bal and b/B4A/Files/iniciofinventa.bal differ
diff --git a/B4A/Files/login.bal b/B4A/Files/login.bal
index 96d3a8a..fb7c9f2 100644
Binary files a/B4A/Files/login.bal and b/B4A/Files/login.bal differ
diff --git a/B4A/Files/logo-guna-contorno.png b/B4A/Files/logo-guna-contorno.png
new file mode 100644
index 0000000..aaee986
Binary files /dev/null and b/B4A/Files/logo-guna-contorno.png differ
diff --git a/B4A/Files/mapa_rutas.bal b/B4A/Files/mapa_rutas.bal
index da1d154..02582ad 100644
Binary files a/B4A/Files/mapa_rutas.bal and b/B4A/Files/mapa_rutas.bal differ
diff --git a/B4A/Files/nota.bal b/B4A/Files/nota.bal
index e94ebdb..415d67f 100644
Binary files a/B4A/Files/nota.bal and b/B4A/Files/nota.bal differ
diff --git a/B4A/Files/noventa.bal b/B4A/Files/noventa.bal
index 051be98..a13f8b9 100644
Binary files a/B4A/Files/noventa.bal and b/B4A/Files/noventa.bal differ
diff --git a/B4A/Files/nuevocliente.bal b/B4A/Files/nuevocliente.bal
index 62f33c0..e351d0b 100644
Binary files a/B4A/Files/nuevocliente.bal and b/B4A/Files/nuevocliente.bal differ
diff --git a/B4A/Files/principal.bal b/B4A/Files/principal.bal
index 4d0c349..4b9c512 100644
Binary files a/B4A/Files/principal.bal and b/B4A/Files/principal.bal differ
diff --git a/B4A/Files/proditem.bal b/B4A/Files/proditem.bal
index 8f43a06..c25469d 100644
Binary files a/B4A/Files/proditem.bal and b/B4A/Files/proditem.bal differ
diff --git a/B4A/Files/proditem1.bal b/B4A/Files/proditem1.bal
new file mode 100644
index 0000000..3aef6c8
Binary files /dev/null and b/B4A/Files/proditem1.bal differ
diff --git a/B4A/Files/proditem_.bal b/B4A/Files/proditem_.bal
new file mode 100644
index 0000000..8f43a06
Binary files /dev/null and b/B4A/Files/proditem_.bal differ
diff --git a/B4A/Files/productos.bal b/B4A/Files/productos.bal
index dd3aada..02c4f1c 100644
Binary files a/B4A/Files/productos.bal and b/B4A/Files/productos.bal differ
diff --git a/B4A/Files/productos_.bal b/B4A/Files/productos_.bal
new file mode 100644
index 0000000..249a1bc
Binary files /dev/null and b/B4A/Files/productos_.bal differ
diff --git a/B4A/Files/promociones.bal b/B4A/Files/promociones.bal
index 745d537..9cb1493 100644
Binary files a/B4A/Files/promociones.bal and b/B4A/Files/promociones.bal differ
diff --git a/B4A/Files/promociones_.bal b/B4A/Files/promociones_.bal
new file mode 100644
index 0000000..155af45
Binary files /dev/null and b/B4A/Files/promociones_.bal differ
diff --git a/B4A/Files/resdia.bal b/B4A/Files/resdia.bal
index db10d68..dd84a58 100644
Binary files a/B4A/Files/resdia.bal and b/B4A/Files/resdia.bal differ
diff --git a/B4A/Files/ticketsdia.bal b/B4A/Files/ticketsdia.bal
index 8f179b8..08e71c8 100644
Binary files a/B4A/Files/ticketsdia.bal and b/B4A/Files/ticketsdia.bal differ
diff --git a/B4A/Files/usuario.png b/B4A/Files/usuario.png
new file mode 100644
index 0000000..f4cea64
Binary files /dev/null and b/B4A/Files/usuario.png differ
diff --git a/B4A/Guna Vistas V3.1.b4a b/B4A/Guna Vistas V3.1.b4a
index 6bdee75..4ca0b79 100644
--- a/B4A/Guna Vistas V3.1.b4a
+++ b/B4A/Guna Vistas V3.1.b4a
@@ -1,104 +1,121 @@
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
File11=comis.bal
-File12=datoscliente.bal
-File13=detalle_promo.bal
-File14=durakelo.png
-File15=durakelo1.png
-File16=ENCUESSTA_M3.bal
-File17=ENCUESTA.bal
-File18=ENCUESTA_M4.bal
-File19=ENCUESTA_M5.bal
+File12=contrasena.png
+File13=datoscliente.bal
+File14=detalle_promo.bal
+File15=durakelo.png
+File16=durakelo1.png
+File17=ENCUESSTA_M3.bal
+File18=ENCUESTA.bal
+File19=ENCUESTA_M4.bal
File2=alerta.jpg
-File20=ENCUESTA_PED.bal
-File21=engrane.jpg
-File22=engrane.png
-File23=engrane18.png
-File24=engraneactual.png
-File25=errormanager.bal
-File26=ESNCUESTA_M2.bal
-File27=fondo_kmt.jpg
-File28=foto.bal
-File29=gps20.png
+File20=ENCUESTA_M5.bal
+File21=ENCUESTA_PED.bal
+File22=engrane.jpg
+File23=engrane.png
+File24=engrane18.png
+File25=engraneactual.png
+File26=errormanager.bal
+File27=ESNCUESTA_M2.bal
+File28=fondo_kmt.jpg
+File29=fondo-rojo.jpg
File3=alerta_amarilla.png
-File30=guardagestion.bal
-File31=guna.png
-File32=guna_192x192.jpg
-File33=guna_viejo.png
-File34=guna18.png
-File35=guna-fondo.jpg
-File36=guna-fondo.png
-File37=Hacer pedido.jpg
-File38=hacerpedido30.png
-File39=ic_cloud_download_white_24dp.png
+File30=fondo-rojo.png
+File31=foto.bal
+File32=gps20.png
+File33=guardagestion.bal
+File34=guna.png
+File35=guna_192x192.jpg
+File36=guna_viejo.png
+File37=guna18.png
+File38=guna-fondo.jpg
+File39=guna-fondo.png
File4=amarillo.png
-File40=images.png
-File41=infonavit1.jpg
-File42=inicioFinVenta.bal
-File43=itembuttonblue.png
-File44=keymon_logo.png
-File45=kmt.db
-File46=login.bal
-File47=Logo Guna_192x192.png
-File48=Logo Guna-01.png
-File49=logo sanfer.jpg
+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
File5=anterior.jpg
-File50=logo_exitus1.jpg
-File51=logo-guna-18.png
-File52=MainPage.bal
-File53=Malo.jpg
-File54=mapa.bal
-File55=mapa_rutas.bal
-File56=maparutas.bal
-File57=mas-azul.png
-File58=mas-azul-red.png
-File59=mas-azul-red1.png
+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
File6=bus-ar.png
-File60=menos.png
-File61=menosred.png
-File62=menos-red.png
-File63=nota (conflict 2022-07-08-00-16-40).bal
-File64=nota.bal
-File65=noventa.bal
-File66=nuevocliente.bal
-File67=nuevo-cliente20.png
-File68=Nvo Cliente.jpg
-File69=p&g.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
File7=carrito.png
-File70=palomita_verde.png
-File71=pedido.bal
-File72=planfia_logo.png
-File73=planfia_logo_old.png
-File74=planfia_logo_old2.png
-File75=principal.bal
-File76=proditem.bal
-File77=proditem2.bal
-File78=productos.bal
-File79=promociones.bal
+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
File8=celltitle.bal
-File80=qr.bal
-File81=qr_gallina.jpg
-File82=QRPlanLealtad.png
-File83=resdia.bal
-File84=ResDia.jpg
-File85=resdia20.png
-File86=rojo.png
-File87=salma.jpg
-File88=salma.png
-File89=seleccion.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
File9=cliente.bal
-File90=senial.jpg
-File91=sync.png
-File92=tache_rojo.png
-File93=telefonos.bal
-File94=Ticket dia.jpg
-File95=ticketdia20.png
-File96=ticketsdia.bal
-File97=Tiendita.jpg
-File98=verde.png
+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
FileGroup1=Default Group
FileGroup10=Default Group
+FileGroup100=Default Group
+FileGroup101=Default Group
+FileGroup102=Default Group
+FileGroup103=Default Group
+FileGroup104=Default Group
+FileGroup105=Default Group
+FileGroup106=Default Group
+FileGroup107=Default Group
FileGroup11=Default Group
FileGroup12=Default Group
FileGroup13=Default Group
@@ -195,41 +212,42 @@ FileGroup95=Default Group
FileGroup96=Default Group
FileGroup97=Default Group
FileGroup98=Default Group
+FileGroup99=Default Group
Group=Default Group
Library1=appupdating
-Library10=core
-Library11=fileprovider
-Library12=firebaseanalytics
-Library13=firebasenotifications
-Library14=fusedlocationprovider
-Library15=googlemaps
-Library16=googlemapsextras
-Library17=gps
-Library18=ime
-Library19=javaobject
+Library10=contentresolver
+Library11=core
+Library12=fileprovider
+Library13=firebaseanalytics
+Library14=firebasenotifications
+Library15=fusedlocationprovider
+Library16=googlemaps
+Library17=googlemapsextras
+Library18=gps
+Library19=ime
Library2=b4xpages
-Library20=jhsicezxing1
-Library21=json
-Library22=okhttputils2
-Library23=phone
-Library24=preoptimizedclv
-Library25=randomaccessfile
-Library26=rspopupmenu
-Library27=runtimepermissions
-Library28=serial
-Library29=sql
+Library20=javaobject
+Library21=jhsicezxing1
+Library22=json
+Library23=okhttputils2
+Library24=phone
+Library25=preoptimizedclv
+Library26=randomaccessfile
+Library27=rspopupmenu
+Library28=runtimepermissions
+Library29=serial
Library3=baqrcode
-Library30=togglelibrary
-Library31=xcustomlistview
-Library32=xui
-Library33=xui views
-Library34=clipboard
+Library30=sql
+Library31=togglelibrary
+Library32=xcustomlistview
+Library33=xui
+Library34=xui views
Library4=batteryprogressview
Library5=bitmapcreator
Library6=byteconverter
Library7=camera
-Library8=compressstrings
-Library9=contentresolver
+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
@@ -258,7 +276,7 @@ Module6=C_Clientes
Module7=C_Cuestionario
Module8=C_Historico
Module9=C_Mapas
-NumberOfFiles=98
+NumberOfFiles=107
NumberOfLibraries=34
NumberOfModules=27
Version=12.8
@@ -266,7 +284,7 @@ Version=12.8
#Region Project Attributes
#ApplicationLabel: Guna Preventa
#VersionCode: 1
- #VersionName: 5.03.24
+ #VersionName: 5.06.10
'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 44ee934..cfb0cca 100644
--- a/B4A/Guna Vistas V3.1.b4a.meta
+++ b/B4A/Guna Vistas V3.1.b4a.meta
@@ -79,9 +79,9 @@ ModuleClosedNodes3=
ModuleClosedNodes4=
ModuleClosedNodes5=
ModuleClosedNodes6=
-ModuleClosedNodes7=5,6,8,9,10,11
+ModuleClosedNodes7=6,8,9,10,11
ModuleClosedNodes8=
ModuleClosedNodes9=
-NavigationStack=C_Productos,cuentaProds,615,0,C_Principal,Subir_Click,648,0,C_Principal,JobDone,1378,0,C_Cliente,B4XPage_Created,516,0,C_Cliente,Cuestionario,4675,0,C_Cliente,ImageView4_Click,5743,6,C_Cliente,Label19_LongClick,5734,0,C_Cliente,b_comentarios_Click,5658,0,Diseñador Visual,cliente.bal,-100,4,C_Cliente,B4XPage_Appear,1104,6
+NavigationStack=Diseñador Visual,cliente.bal,-100,4,C_Cliente,GPS_LocationChanged,1382,6,C_Cliente,B4XPage_Appear,537,0,C_Cliente,b_mapa_Click,2577,0,C_Cliente,Printer1_Connected,3079,0,C_Cliente,StartPrinter,3123,0,C_Cliente,Printer_Connected,3077,0,C_Cliente,Impresion,2820,0,C_Principal,Subir_Click,536,0,C_Principal,JobDone,1382,0,C_Principal,cargar_Click,1121,0
SelectedBuild=0
-VisibleModules=25,2,14,26,5,10,15,11,20,19
+VisibleModules=25,2,14,26,5,10,11,20,19,16
diff --git a/B4A/Starter.bas b/B4A/Starter.bas
index 82e9d67..005009c 100644
--- a/B4A/Starter.bas
+++ b/B4A/Starter.bas
@@ -19,7 +19,7 @@ Sub Process_Globals
Public FLP As FusedLocationProvider
' Private flpStarted As Boolean
Dim reqManager As DBRequestManager
- Dim server As String = "http://187.189.244.154:1782"
+ Dim server As String = "http://keymon.net:1782"
' Dim server As String = "http://10.0.0.205:1782"
Dim Timer1 As Timer
Dim Interval As Int = 300
@@ -40,6 +40,7 @@ Sub Process_Globals
Dim idCliente As String = ""
Dim encuesta As String = 0
Public fFileProvider As FileProvider
+ Dim tabla As String
End Sub
Sub Service_Create
diff --git a/B4A/Subs.bas b/B4A/Subs.bas
index 17c7c48..82cdf03 100644
--- a/B4A/Subs.bas
+++ b/B4A/Subs.bas
@@ -45,6 +45,15 @@ Sub getPhnId As String 'ignore
Return devModel
End Sub
+Sub SetDivider(lv As ListView, Color As Int, Height As Int) 'ignore
+ Dim r As Reflector
+ r.Target = lv
+ Dim CD As ColorDrawable
+ CD.Initialize(Color, 0)
+ r.RunMethod4("setDivider", Array As Object(CD), Array As String("android.graphics.drawable.Drawable"))
+ r.RunMethod2("setDividerHeight", Height, "java.lang.int")
+End Sub
+
'Centra un listview dentro de un elemento superior
Sub centraListView(elemento As ListView, anchoElementoSuperior As Int) 'ignore
elemento.Left = Round(anchoElementoSuperior/2)-(elemento.Width/2)
@@ -700,6 +709,86 @@ Sub traeRuta As String 'ignore
Return r
End Sub
+'Regresa verdadero si la columna gestion en la tabla "kmt_info" tene valor 2.
+'si no, entonces regresa falso.
+Sub pedidoGuardado As Boolean
+ Private guardado As Boolean = False
+ Private g As Cursor = B4XPages.MainPage.skmt.ExecQuery("select gestion from kmt_info3 where CAT_CL_CODIGO in (Select CUENTA from cuentaa)")
+ If g.RowCount > 0 Then
+ g.Position=0
+ If g.GetString("gestion") = "2" Or g.GetString("gestion") = "3" Then guardado = True
+ End If
+' Log($"Guardado=${guardado}"$)
+ Return guardado
+End Sub
+
+'Borra el pedido del cliente actual.
+'Borra los registros de la tabla "pedido" y "pedido_cliente"
+'Actualiza las tablas "cat_gunaprod" y "kmt_info".
+Sub borraPedidoClienteActual As String
+' Private thisC As Cursor
+' thisC=B4XPages.MainPage.skmt.ExecQuery("select PE_PROID,PE_CANT FROM PEDIDO where pe_cliente in (Select CUENTA from cuentaa) ")
+' If thisC.RowCount>0 Then
+' For i=0 To thisC.RowCount -1
+' thisC.Position=i
+' B4XPages.MainPage.skmt.ExecNonQuery2($"update ${Starter.tabla} set cat_gp_almacen = cat_gp_almacen + ? where cat_gp_id = ?"$, Array As Object(thisC.GetString("PE_CANT"),thisC.GetString("PE_PROID")))
+' B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO INVENT_X_ENVIAR (ALMACEN , PROID , CANTIDAD ) VALUES(?,?,?) ", Array As Object (traeAlmacen, thisC.GetString("PE_PROID"),thisC.GetString("PE_CANT")* -1))
+' Next
+' End If
+' B4XPages.MainPage.skmt.ExecNonQuery("delete from pedido_cliente where pc_cliente in (Select CUENTA from cuentaa)")
+' B4XPages.MainPage.skmt.ExecNonQuery("delete from pedido where pe_cliente in (Select CUENTA from cuentaa)")
+' B4XPages.MainPage.skmt.ExecNonQuery("UPDATE kmt_info set gestion = 0 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
+' 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) ")
+ If thisC.RowCount>0 Then
+ For i=0 To thisC.RowCount -1
+ thisC.Position = i
+' Log(thisC.GetString("PE_TIPO") & "|" & traeTablaProds(thisC.GetString("PE_TIPO")))
+ Starter.skmt.ExecNonQuery($"update ${traeTablaProds(thisC.GetString("PE_FOLIO"))} set cat_gp_almacen = cat_gp_almacen + ${thisC.GetString("PE_CANT")} where cat_gp_id = '${thisC.GetString("PE_PROID")}'"$)
+ LogColor($"update ${traeTablaProds(thisC.GetString("PE_FOLIO"))} set cat_gp_almacen = cat_gp_almacen + ${thisC.GetString("PE_CANT")} where cat_gp_id = '${thisC.GetString("PE_PROID")}'"$, Colors.red)
+' Starter.skmt.ExecNonQuery2("INSERT INTO INVENT_X_ENVIAR (ALMACEN , PROID , CANTIDAD ) VALUES(?,?,?) ", Array As Object (traeAlmacen, thisC.GetString("PE_PROID"),thisC.GetString("PE_CANT")* -1))
+ Next
+ End If
+ Starter.skmt.ExecNonQuery("delete from pedido_cliente where pc_cliente in (Select CUENTA from cuentaa)")
+ Starter.skmt.ExecNonQuery("delete from pedido where pe_cliente in (Select CUENTA from cuentaa)")
+ Starter.skmt.ExecNonQuery("UPDATE kmt_info set gestion = 0 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
+ Return 1
+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 pTotal As String = "0"
+ If cT.RowCount > 0 Then
+ cT.Position = 0
+' Log("|"&cT.GetLong("total")&"|"&pTotal)
+ Private tempT As String = cT.GetLong("total")
+ If tempT <> "null" And tempT <> Null Then
+' Log("|"&cT.GetLong("total")&"|")
+ pTotal = tempT
+ End If
+' Log($"Cliente actual=${traeCliente}, hayPedido=${hay}"$)
+ End If
+ cT.Close
+ Return pTotal
+End Sub
+
+'Regresa la ruta actual de la base de datos.
+Sub traeRuta2 (cliente As String) As String 'ignore
+ Private c As Cursor
+ Private r As String
+ c=B4XPages.MainPage.skmt.ExecQuery($"select CAT_CL_RUTA from kmt_info where CAT_CL_CODIGO = '${cliente}' UNION ALL select CAT_CL_RUTA from kmt_info2 where CAT_CL_CODIGO = '${cliente}'"$)
+ r = "0"
+ If c.RowCount > 0 Then
+ c.Position=0
+ r = c.GetString("CAT_CL_RUTA")
+ End If
+ c.Close
+ Return r
+End Sub
+
Sub traeRutaBitacora As String 'ignore
Private c As Cursor
Private r As String
@@ -785,82 +874,82 @@ Sub guardaProducto(cedis As String, costoU As String, cant As String, nombre As
End Sub
-'Regresa un mapa con la información de la promo.
-'Regresa: {id, maxXcliente, maxRecurrente, maxPromos, historico,
-' productos={idProducto={idProducto, preciosimptos, precio, almacen, tipo, piezas, usuario, fecha, regalo, clasif}} 'Mapa con los productos de la promo y los datos de cada uno.
-' tipos={idProducto=tipo} 'Mapa con id y tipo del producto, 0 si es fijo y 1 si es variable.
-' prodsFijos={idProducto,idProducto} 'Lista con los ids de los productos fijos.
-' prodsVariables={idProducto,idProducto} 'Lista con los ids de los productos variables.
-' resultado="OK" 'Ok si existe la promocion.
-' prodsVariablesRequeridos=5} 'Cantidad de productos variables requeridos para la promoción.
-Sub traePromo(promo As String, cliente As String) As Map
- LogColor($"TRAE PROMO = ${promo}"$, Colors.Red)
- Private inicioContador As String = DateTime.Now
- Private c As Cursor = B4XPages.MainPage.skmt.ExecQuery("Select * from promos_comp where cat_pa_id = '"& promo&"'") 'Obtenemos las el maximo de promocioones a otorgar.
- Private siHistorico As String = 0
- Private promoMap As Map
- Private prodsFijos, prodsFijosPrecios, prodsFijosPiezas, prodsVariables As List
- promoMap.Initialize
- prodsFijos.Initialize
- prodsFijosPrecios.Initialize
- prodsFijosPiezas.Initialize
- prodsVariables.Initialize
- c.Position = 0
- If c.RowCount > 0 Then promoMap = CreateMap("id":promo, "maxXcliente":c.GetString("CAT_PA_MAXPROMCLIE"), "maxRecurrente":c.GetString("CAT_PA_MAXPROMREC"), "maxPromos":c.GetString("CAT_PA_MAXPROM"))
- c = B4XPages.MainPage.skmt.ExecQuery("Select count(*) as hist from HIST_PROMOS where HP_CLIENTE = '"& cliente & "' and HP_CODIGO_PROMOCION = '" & promo & "'") 'Revisamos si hay historico de la promoción.
- c.Position = 0
- If c.GetString("hist") > 0 Then siHistorico = 1
- promoMap.Put("historico", siHistorico)
-' c = B4XPages.MainPage.skmt.ExecQuery("Select * from CAT_DETALLES_PAQ where CAT_DP_ID = '"& promo & "'") 'Obtenemos los detalles de la promoción.
- c = B4XPages.MainPage.skmt.ExecQuery("Select * from CAT_DETALLES_PAQ where CAT_DP_ID = '"& promo & "' order by cat_dp_tipo asc")
- c.Position = 0
- If c.RowCount > 0 Then
- Private prods, tipos As Map
- prods.Initialize
- tipos.Initialize
- For i=0 To c.RowCount -1
- c.Position=i
- prods.Put(c.GetString("CAT_DP_IDPROD"), CreateMap("idProducto":c.GetString("CAT_DP_IDPROD"), "precioSimptos":c.GetString("CAT_DP_PRECIO_SIMPTOS"), "precio":c.GetString("CAT_DP_PRECIO"), "almacen":c.GetString("CAT_DP_ALMACEN"), "tipo":c.GetString("CAT_DP_TIPO"), "piezas":c.GetString("CAT_DP_PZAS"), "usuario":c.GetString("CAT_DP_USUARIO"), "regalo":c.GetString("CAT_DP_REGALO"), "clasif":c.GetString("CAT_DP_CLASIF")))
- tipos.Put(c.GetString("CAT_DP_IDPROD"), c.GetString("CAT_DP_TIPO"))
- If c.GetString("CAT_DP_TIPO") = "0" Then
- prodsFijos.Add(c.GetString("CAT_DP_IDPROD"))
- prodsFijosPrecios.Add(c.GetString("CAT_DP_PRECIO"))
- prodsFijosPiezas.Add(c.GetString("CAT_DP_PZAS"))
- End If
- If c.GetString("CAT_DP_TIPO") = "1" Then prodsVariables.Add(c.GetString("CAT_DP_IDPROD"))
-' Log($"id:${c.GetString("CAT_DP_IDPROD")}, tipo:${c.GetString("CAT_DP_TIPO")}"$)
- Next
- promoMap.Put("productos", prods) 'Mapa con los productos de la promocion (id, precio, almacen, tipo, piezas, etc.)
- promoMap.Put("tipos", tipos) 'Mapa con los productos de la promoción y su tipo (fijo o variable).
- promoMap.Put("prodsFijos", prodsFijos) 'Lista de los productos fijos de la promoción.
- promoMap.Put("prodsVariables", prodsVariables) 'Lista de los productos variables de la promoción.
- promoMap.Put("prodsFijosCant", prodsFijos.Size)
- promoMap.Put("prodsFijosPrecios", prodsFijosPrecios)
- promoMap.Put("prodsFijosPiezas", prodsFijosPiezas)
- promoMap.Put("prodsVariablesCant", prodsVariables.Size)
- promoMap.Put("resultado", "ok")
- Else
- promoMap.Put("resultado", "No hay datos de la promoción.")
- End If
-
-
- c = B4XPages.MainPage.skmt.ExecQuery($"Select CAT_GP_STS, CAT_GP_NOMBRE from ${traeTablaProds(traeTipoVentaDeBD)} where CAT_GP_ID = '${promo}' "$) 'Obtenemos las piezas requeridas de productos variables para la promoción.
-
- c.Position = 0
- Private pvr As String = 0
- If c.RowCount > 0 Then
- c.Position = 0
- pvr = c.GetString("CAT_GP_STS")
- promoMap.Put("prodsVariablesRequeridos", pvr) 'Cantidad de productos variables requeridos para la promoción.
- promoMap.put("descripcion", c.GetString("CAT_GP_NOMBRE"))
- End If
- c.Close
-' Log($"Inv variables: ${cuantosVariablesTengoBD(promo)}"$)
-' Log($"Inv dispo: ${traemosInventarioDisponibleParaPromo(promo)}"$)
-' LogColor($"Promo ${promo}: ${promoMap}"$, Colors.Green)
-' LogColor("TIEMPO para traePromo -=" & promo & "=- : " & ((DateTime.Now-inicioContador)/1000), Colors.Red)
- Return promoMap
-End Sub
+''Regresa un mapa con la información de la promo.
+''Regresa: {id, maxXcliente, maxRecurrente, maxPromos, historico,
+'' productos={idProducto={idProducto, preciosimptos, precio, almacen, tipo, piezas, usuario, fecha, regalo, clasif}} 'Mapa con los productos de la promo y los datos de cada uno.
+'' tipos={idProducto=tipo} 'Mapa con id y tipo del producto, 0 si es fijo y 1 si es variable.
+'' prodsFijos={idProducto,idProducto} 'Lista con los ids de los productos fijos.
+'' prodsVariables={idProducto,idProducto} 'Lista con los ids de los productos variables.
+'' resultado="OK" 'Ok si existe la promocion.
+'' prodsVariablesRequeridos=5} 'Cantidad de productos variables requeridos para la promoción.
+'Sub traePromo(promo As String, cliente As String) As Map
+' LogColor($"TRAE PROMO = ${promo}"$, Colors.Red)
+' Private inicioContador As String = DateTime.Now
+' Private c As Cursor = B4XPages.MainPage.skmt.ExecQuery("Select * from promos_comp where cat_pa_id = '"& promo&"'") 'Obtenemos las el maximo de promocioones a otorgar.
+' Private siHistorico As String = 0
+' Private promoMap As Map
+' Private prodsFijos, prodsFijosPrecios, prodsFijosPiezas, prodsVariables As List
+' promoMap.Initialize
+' prodsFijos.Initialize
+' prodsFijosPrecios.Initialize
+' prodsFijosPiezas.Initialize
+' prodsVariables.Initialize
+' c.Position = 0
+' If c.RowCount > 0 Then promoMap = CreateMap("id":promo, "maxXcliente":c.GetString("CAT_PA_MAXPROMCLIE"), "maxRecurrente":c.GetString("CAT_PA_MAXPROMREC"), "maxPromos":c.GetString("CAT_PA_MAXPROM"))
+' c = B4XPages.MainPage.skmt.ExecQuery("Select count(*) as hist from HIST_PROMOS where HP_CLIENTE = '"& cliente & "' and HP_CODIGO_PROMOCION = '" & promo & "'") 'Revisamos si hay historico de la promoción.
+' c.Position = 0
+' If c.GetString("hist") > 0 Then siHistorico = 1
+' promoMap.Put("historico", siHistorico)
+'' c = B4XPages.MainPage.skmt.ExecQuery("Select * from CAT_DETALLES_PAQ where CAT_DP_ID = '"& promo & "'") 'Obtenemos los detalles de la promoción.
+' c = B4XPages.MainPage.skmt.ExecQuery("Select * from CAT_DETALLES_PAQ where CAT_DP_ID = '"& promo & "' order by cat_dp_tipo asc")
+' c.Position = 0
+' If c.RowCount > 0 Then
+' Private prods, tipos As Map
+' prods.Initialize
+' tipos.Initialize
+' For i=0 To c.RowCount -1
+' c.Position=i
+' prods.Put(c.GetString("CAT_DP_IDPROD"), CreateMap("idProducto":c.GetString("CAT_DP_IDPROD"), "precioSimptos":c.GetString("CAT_DP_PRECIO_SIMPTOS"), "precio":c.GetString("CAT_DP_PRECIO"), "almacen":c.GetString("CAT_DP_ALMACEN"), "tipo":c.GetString("CAT_DP_TIPO"), "piezas":c.GetString("CAT_DP_PZAS"), "usuario":c.GetString("CAT_DP_USUARIO"), "regalo":c.GetString("CAT_DP_REGALO"), "clasif":c.GetString("CAT_DP_CLASIF")))
+' tipos.Put(c.GetString("CAT_DP_IDPROD"), c.GetString("CAT_DP_TIPO"))
+' If c.GetString("CAT_DP_TIPO") = "0" Then
+' prodsFijos.Add(c.GetString("CAT_DP_IDPROD"))
+' prodsFijosPrecios.Add(c.GetString("CAT_DP_PRECIO"))
+' prodsFijosPiezas.Add(c.GetString("CAT_DP_PZAS"))
+' End If
+' If c.GetString("CAT_DP_TIPO") = "1" Then prodsVariables.Add(c.GetString("CAT_DP_IDPROD"))
+'' Log($"id:${c.GetString("CAT_DP_IDPROD")}, tipo:${c.GetString("CAT_DP_TIPO")}"$)
+' Next
+' promoMap.Put("productos", prods) 'Mapa con los productos de la promocion (id, precio, almacen, tipo, piezas, etc.)
+' promoMap.Put("tipos", tipos) 'Mapa con los productos de la promoción y su tipo (fijo o variable).
+' promoMap.Put("prodsFijos", prodsFijos) 'Lista de los productos fijos de la promoción.
+' promoMap.Put("prodsVariables", prodsVariables) 'Lista de los productos variables de la promoción.
+' promoMap.Put("prodsFijosCant", prodsFijos.Size)
+' promoMap.Put("prodsFijosPrecios", prodsFijosPrecios)
+' promoMap.Put("prodsFijosPiezas", prodsFijosPiezas)
+' promoMap.Put("prodsVariablesCant", prodsVariables.Size)
+' promoMap.Put("resultado", "ok")
+' Else
+' promoMap.Put("resultado", "No hay datos de la promoción.")
+' End If
+'
+'
+' c = B4XPages.MainPage.skmt.ExecQuery($"Select CAT_GP_STS, CAT_GP_NOMBRE from ${traeTablaProds(traeTipoVentaDeBD)} where CAT_GP_ID = '${promo}' "$) 'Obtenemos las piezas requeridas de productos variables para la promoción.
+'
+' c.Position = 0
+' Private pvr As String = 0
+' If c.RowCount > 0 Then
+' c.Position = 0
+' pvr = c.GetString("CAT_GP_STS")
+' promoMap.Put("prodsVariablesRequeridos", pvr) 'Cantidad de productos variables requeridos para la promoción.
+' promoMap.put("descripcion", c.GetString("CAT_GP_NOMBRE"))
+' End If
+' c.Close
+'' Log($"Inv variables: ${cuantosVariablesTengoBD(promo)}"$)
+'' Log($"Inv dispo: ${traemosInventarioDisponibleParaPromo(promo)}"$)
+'' LogColor($"Promo ${promo}: ${promoMap}"$, Colors.Green)
+'' LogColor("TIEMPO para traePromo -=" & promo & "=- : " & ((DateTime.Now-inicioContador)/1000), Colors.Red)
+' Return promoMap
+'End Sub
'Regresa un mapa con el inventario disponible por producto para la promoción (desde la base de datos).
Sub traemosInventarioDisponibleParaPromo(promo As String) As Map 'ignore
@@ -917,27 +1006,27 @@ Sub restaFijosPromo(promoMap As Map) As Map 'ignore
Return inventariosDisponiblesParaEstaPromo
End Sub
-'Revisa si tenemos los productos variables requeridos para la promoción (mapa).
-'Hay que darle como parametro un mapa (traePromo(promo)) con toda la informacion de la promocion.
-Sub alcanzanLosVariablesParaPromo(promoMap As Map, inventarioSinFijos As Map) As Boolean 'ignore
- Private thisLog As Boolean = False 'Si es verdadero, muestra los logs de este sub.
- If thisLog Then LogColor("Inventario inicial: "&inventarioSinFijos, Colors.Gray) 'Inventario inicial.
- Private totalProdsVariables As Int = 0
-' Private prodsmap As Map = promoMap.Get("productos") 'Obtenemos un mapa con todos los productos de la promoción.
- Private prodsVariables As List = promoMap.get("prodsVariables") 'Obtenemos un a lista con los productos variables de la promoción.
- For p = 0 To prodsVariables.Size - 1
- Private t As String = prodsVariables.Get(p) 'Obtenemos el Id de este producto desde la lista de productos fijos.
- If inventarioSinFijos.ContainsKey(t) Then 'Si existe el producto en la lista del inventario, entonces ...
- Private p2 As String = inventarioSinFijos.Get(t) 'Obtenemos el inventario disponible este producto.
- totalProdsVariables = totalProdsVariables + p2
- If thisLog Then Log($"prod ${t}, hay: ${p2}"$) 'Producto y piezas requeridas
- End If
- Next
- If thisLog Then Log("Total prods variables=" & totalProdsVariables & ", requeridos=" & promoMap.Get("prodsVariablesRequeridos"))
- Private res As Boolean = False
- If totalProdsVariables >= promoMap.Get("prodsVariablesRequeridos") Then res = True 'Si el total de inventario de productos variables (totalProdsVariables) es mayor o igual a los productos requeridos entonces regresamos TRUE
- Return res
-End Sub
+''Revisa si tenemos los productos variables requeridos para la promoción (mapa).
+''Hay que darle como parametro un mapa (traePromo(promo)) con toda la informacion de la promocion.
+'Sub alcanzanLosVariablesParaPromo(promoMap As Map, inventarioSinFijos As Map) As Boolean 'ignore
+' Private thisLog As Boolean = False 'Si es verdadero, muestra los logs de este sub.
+' If thisLog Then LogColor("Inventario inicial: "&inventarioSinFijos, Colors.Gray) 'Inventario inicial.
+' Private totalProdsVariables As Int = 0
+'' Private prodsmap As Map = promoMap.Get("productos") 'Obtenemos un mapa con todos los productos de la promoción.
+' Private prodsVariables As List = promoMap.get("prodsVariables") 'Obtenemos un a lista con los productos variables de la promoción.
+' For p = 0 To prodsVariables.Size - 1
+' Private t As String = prodsVariables.Get(p) 'Obtenemos el Id de este producto desde la lista de productos fijos.
+' If inventarioSinFijos.ContainsKey(t) Then 'Si existe el producto en la lista del inventario, entonces ...
+' Private p2 As String = inventarioSinFijos.Get(t) 'Obtenemos el inventario disponible este producto.
+' totalProdsVariables = totalProdsVariables + p2
+' If thisLog Then Log($"prod ${t}, hay: ${p2}"$) 'Producto y piezas requeridas
+' End If
+' Next
+' If thisLog Then Log("Total prods variables=" & totalProdsVariables & ", requeridos=" & promoMap.Get("prodsVariablesRequeridos"))
+' Private res As Boolean = False
+' If totalProdsVariables >= promoMap.Get("prodsVariablesRequeridos") Then res = True 'Si el total de inventario de productos variables (totalProdsVariables) es mayor o igual a los productos requeridos entonces regresamos TRUE
+' Return res
+'End Sub
'Regresa el numero máximo de promociones permitidas, tomando en cuenta recurrentes, clientes y maxPromos.
Sub traeMaxPromos(pm As Map) As Int
@@ -1083,68 +1172,68 @@ Sub revisaMaxPromosProdsFijosPorInventario(pm As Map) As Int
Return t.Get(0) 'Regresamos el resultado mas pequeño.
End Sub
-'Regresa cuantas promos alcanzan con los productos VARIABLES que hay en inventario.
-'La cantidad de promos disponibles se calcula DESPUES de descontar los productos fijos, y si las
-'promos por productos fijos llega al maximo, aunque se puedan mas de producos variables, solo se
-'regresa el maximo por productos fijos. Ej. si las promos por variables es 10, pero el maximo por
-'fijos es 5, entonces regresamos 5.
-Sub revisaMaxPromosProdsVariablesPorInventario(pm As Map) As Int 'ignore
- Private thisLog As Boolean = False
- If thisLog Then Log("======================================================")
- If thisLog Then Log("======================================================")
- Private invFijoXpromo As Map
- invFijoXpromo.Initialize
- Private totalProdsVariablesDisponibles As Int = 0
- If thisLog Then LogColor($"pm=${pm}"$, Colors.Blue)
- Private invDispParaPromo As Map = traemosInventarioDisponibleParaPromo(pm.Get("id"))
- If thisLog Then Log($"invDispParaPromo=${invDispParaPromo}"$)
- Private maxPromos As String = traeMaxPromos(pm)
- Private maxPromosXFijos As Int = revisaMaxPromosProdsFijosPorInventario(pm)
- Private idProdsVariables As List = pm.Get("prodsVariables")
- Private prodsVariablesRequeridos As Int = pm.Get("prodsVariablesRequeridos")
- Private prodsFijosPiezas As List = pm.Get("prodsFijosPiezas")
- Private idProdsFijos As List = pm.Get("prodsFijos")
- For p = 0 To idProdsFijos.Size -1 'Generamos mapa con los productos fijos y piezas requeridas por promo.
- invFijoXpromo.Put(idProdsFijos.Get(p), prodsFijosPiezas.Get(p))
- Private idEsteProd As String = idProdsFijos.Get(p)
- Private invEsteProd As Int = invDispParaPromo.Get(idEsteProd)
- Private pzasReqEsteProd As Int = prodsFijosPiezas.Get(p)
- If thisLog Then Log($"id=${idEsteProd}, inv=${invEsteProd}, pzas=${pzasReqEsteProd}"$)
-' invDispParaPromo.Put( idEsteProd, (invEsteProd - (1)) )
- Next
- If thisLog Then LogColor($"MaxPromos=${maxPromos}, promosXFijos=${maxPromosXFijos}"$, Colors.Blue)
- If thisLog Then LogColor($"prodsFijos=${idProdsFijos}"$, Colors.Blue)
- If thisLog Then LogColor($"prodsFijosPiezasReq=${prodsFijosPiezas}"$, Colors.Blue)
- If thisLog Then LogColor($"prodsVariables=${idProdsVariables}${CRLF}Variables Req=${prodsVariablesRequeridos} "$, Colors.Blue)
- If thisLog Then LogColor($"invFijoXpromo=${invFijoXpromo}"$, Colors.Blue)
- If thisLog Then Log($"Prods variables disponibles = ${totalProdsVariablesDisponibles}"$)
- Private maxPromosXVariables As Int = 0
- For x = 1 To maxPromosXFijos
- If thisLog Then Log("=====================================================")
- If thisLog Then Log("=====================================================")
- For i = 0 To idProdsFijos.Size - 1
- If thisLog Then Log($"FIJO - ${idProdsFijos.Get(i)}, ${invDispParaPromo.Get(idProdsFijos.Get(i))} - ${prodsFijosPiezas.Get(i).As(Int)*(i+1)}"$)
- invDispParaPromo.Put(idProdsFijos.Get(i), invDispParaPromo.Get(idProdsFijos.Get(i)).As(Int) - prodsFijosPiezas.Get(i).As(Int)*(i+1)) 'Restamos las piezas de los productos fijos del inventario disponible.
- Next
- If thisLog Then LogColor("Inv disponible despues de restar fijos = " & invDispParaPromo, Colors.Blue)
-
- totalProdsVariablesDisponibles = 0
- For i = 0 To idProdsVariables.Size - 1 'Obtenemos total de productos variables disponibes.
- If invDispParaPromo.ContainsKey(idProdsVariables.Get(i)) Then
- totalProdsVariablesDisponibles = totalProdsVariablesDisponibles + invDispParaPromo.Get(idProdsVariables.Get(i))
- End If
- Next
- 'Revisamos variables.
- If thisLog Then Log($"Var disponibles - var requeridos : ${totalProdsVariablesDisponibles} - ${prodsVariablesRequeridos*x}"$)
- totalProdsVariablesDisponibles = totalProdsVariablesDisponibles - (prodsVariablesRequeridos*x)
- If thisLog Then Log("prodsVariables disponibles despues de promo = " & totalProdsVariablesDisponibles)
- If totalProdsVariablesDisponibles < 0 Then Exit 'Ya no hay inventario disponible.
- maxPromosXVariables = x
- Next
- 'Restamos fijos.
- LogColor("Max promos de prodsVariables POR inventario = " & maxPromosXVariables, Colors.red)
- Return maxPromosXVariables
-End Sub
+''Regresa cuantas promos alcanzan con los productos VARIABLES que hay en inventario.
+''La cantidad de promos disponibles se calcula DESPUES de descontar los productos fijos, y si las
+''promos por productos fijos llega al maximo, aunque se puedan mas de producos variables, solo se
+''regresa el maximo por productos fijos. Ej. si las promos por variables es 10, pero el maximo por
+''fijos es 5, entonces regresamos 5.
+'Sub revisaMaxPromosProdsVariablesPorInventario(pm As Map) As Int 'ignore
+' Private thisLog As Boolean = False
+' If thisLog Then Log("======================================================")
+' If thisLog Then Log("======================================================")
+' Private invFijoXpromo As Map
+' invFijoXpromo.Initialize
+' Private totalProdsVariablesDisponibles As Int = 0
+' If thisLog Then LogColor($"pm=${pm}"$, Colors.Blue)
+' Private invDispParaPromo As Map = traemosInventarioDisponibleParaPromo(pm.Get("id"))
+' If thisLog Then Log($"invDispParaPromo=${invDispParaPromo}"$)
+' Private maxPromos As String = traeMaxPromos(pm)
+' Private maxPromosXFijos As Int = revisaMaxPromosProdsFijosPorInventario(pm)
+' Private idProdsVariables As List = pm.Get("prodsVariables")
+' Private prodsVariablesRequeridos As Int = pm.Get("prodsVariablesRequeridos")
+' Private prodsFijosPiezas As List = pm.Get("prodsFijosPiezas")
+' Private idProdsFijos As List = pm.Get("prodsFijos")
+' For p = 0 To idProdsFijos.Size -1 'Generamos mapa con los productos fijos y piezas requeridas por promo.
+' invFijoXpromo.Put(idProdsFijos.Get(p), prodsFijosPiezas.Get(p))
+' Private idEsteProd As String = idProdsFijos.Get(p)
+' Private invEsteProd As Int = invDispParaPromo.Get(idEsteProd)
+' Private pzasReqEsteProd As Int = prodsFijosPiezas.Get(p)
+' If thisLog Then Log($"id=${idEsteProd}, inv=${invEsteProd}, pzas=${pzasReqEsteProd}"$)
+'' invDispParaPromo.Put( idEsteProd, (invEsteProd - (1)) )
+' Next
+' If thisLog Then LogColor($"MaxPromos=${maxPromos}, promosXFijos=${maxPromosXFijos}"$, Colors.Blue)
+' If thisLog Then LogColor($"prodsFijos=${idProdsFijos}"$, Colors.Blue)
+' If thisLog Then LogColor($"prodsFijosPiezasReq=${prodsFijosPiezas}"$, Colors.Blue)
+' If thisLog Then LogColor($"prodsVariables=${idProdsVariables}${CRLF}Variables Req=${prodsVariablesRequeridos} "$, Colors.Blue)
+' If thisLog Then LogColor($"invFijoXpromo=${invFijoXpromo}"$, Colors.Blue)
+' If thisLog Then Log($"Prods variables disponibles = ${totalProdsVariablesDisponibles}"$)
+' Private maxPromosXVariables As Int = 0
+' For x = 1 To maxPromosXFijos
+' If thisLog Then Log("=====================================================")
+' If thisLog Then Log("=====================================================")
+' For i = 0 To idProdsFijos.Size - 1
+' If thisLog Then Log($"FIJO - ${idProdsFijos.Get(i)}, ${invDispParaPromo.Get(idProdsFijos.Get(i))} - ${prodsFijosPiezas.Get(i).As(Int)*(i+1)}"$)
+' invDispParaPromo.Put(idProdsFijos.Get(i), invDispParaPromo.Get(idProdsFijos.Get(i)).As(Int) - prodsFijosPiezas.Get(i).As(Int)*(i+1)) 'Restamos las piezas de los productos fijos del inventario disponible.
+' Next
+' If thisLog Then LogColor("Inv disponible despues de restar fijos = " & invDispParaPromo, Colors.Blue)
+'
+' totalProdsVariablesDisponibles = 0
+' For i = 0 To idProdsVariables.Size - 1 'Obtenemos total de productos variables disponibes.
+' If invDispParaPromo.ContainsKey(idProdsVariables.Get(i)) Then
+' totalProdsVariablesDisponibles = totalProdsVariablesDisponibles + invDispParaPromo.Get(idProdsVariables.Get(i))
+' End If
+' Next
+' 'Revisamos variables.
+' If thisLog Then Log($"Var disponibles - var requeridos : ${totalProdsVariablesDisponibles} - ${prodsVariablesRequeridos*x}"$)
+' totalProdsVariablesDisponibles = totalProdsVariablesDisponibles - (prodsVariablesRequeridos*x)
+' If thisLog Then Log("prodsVariables disponibles despues de promo = " & totalProdsVariablesDisponibles)
+' If totalProdsVariablesDisponibles < 0 Then Exit 'Ya no hay inventario disponible.
+' maxPromosXVariables = x
+' Next
+' 'Restamos fijos.
+' LogColor("Max promos de prodsVariables POR inventario = " & maxPromosXVariables, Colors.red)
+' Return maxPromosXVariables
+'End Sub
'Regresa la suma del inventario de los productos variables de la promoción dada desde la base de datos.
Sub cuantosVariablesTengoBD(promo As String) As String 'ignore
@@ -1725,6 +1814,7 @@ End Sub
'Regresa la tabla de productos (cat_gunaprod o cat_gunaprod2) dependiendo del tipo de venta.
Sub traeTablaProds(tipoventa As String) As String
+ Log(tipoventa)
Private tablaProds As String = "cat_gunaprod2"
If tipoventa = "ABORDO" Or tipoventa = "PREVENTA" Then tablaProds = "cat_gunaprod"
' LogColor($"Tipo= ${tipoventa}, tabla=${tablaProds}"$, Colors.RGB(200,136,0))
@@ -1839,11 +1929,264 @@ End Sub
' - 3 = bronze
Sub traeTipoCliente As Int
Private x As Cursor
- Private tc As Int = 0
- x = Starter.skmt.ExecQuery($"select cat_cl_tipocliente from kmt_info3 where cat_cl_codigo in (select cuenta from cuentaa)"$)
+ Private tc As Int = 3
+ x = Starter.skmt.ExecQuery($"select IFNULL(cat_cl_tipocliente,3) AS CAT_CL_TIPOCLIENTE from kmt_info3 where cat_cl_codigo in (select cuenta from cuentaa)"$)
If x.RowCount > 0 Then
x.Position = 0
+' Log("ESTO LO HIZO GUERRA ------> "&x.GetInt("CAT_CL_TIPOCLIENTE"))
tc = x.GetInt("CAT_CL_TIPOCLIENTE")
End If
+' Log("ESTO LO HIZO GUERRA X2------> "&tc)
Return tc
+End Sub
+
+Sub traeinventario(id As String) As String
+ Dim c As Cursor
+ Dim inventario As String = "0"
+ c=B4XPages.MainPage.skmt.ExecQuery($"select CAT_GP_ALMACEN from ${traeTablaProds(B4XPages.MainPage.tipo_venta)} where CAT_GP_ID = '${id}'"$)
+' Log($"select CAT_GP_ALMACEN from ${Starter.tabla} where CAT_GP_NOMBRE = '${id}'"$)
+ If c.RowCount > 0 Then
+ c.Position = 0
+ inventario = c.GetString("CAT_GP_ALMACEN")
+ End If
+ c.Close
+ Return inventario
+End Sub
+
+'Regresa el total de productos y monto del pedido del cliente actual.
+Sub traeTotalesClienteActual As Map
+ Private m As Map
+ m.Initialize
+ Private c_prodsX As Cursor=B4XPages.MainPage.skmt.ExecQuery("select ifnull(sum(PE_CANT), 0) as cantProds, ifnull(sum(PE_COSTO_TOT), 0) as costoTotal FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_PRONOMBRE asc")
+ c_prodsX.Position=0
+' LogColor($"Productos de la orden: ${c_prodsX.GetString("cantProds")}, Total: ${c_prodsX.GetString("costoTotal")}"$, Colors.red)
+ m = CreateMap("productos": c_prodsX.GetString("cantProds"), "monto" : c_prodsX.GetString("costoTotal"))
+ Return m
+End Sub
+
+
+'Regresa un mapa con la información de la promo.
+'Regresa: {id, maxXcliente, maxRecurrente, maxPromos, historico,
+' productos={idProducto={idProducto, preciosimptos, precio, almacen, tipo, piezas, usuario, fecha, regalo, clasif}} 'Mapa con los productos de la promo y los datos de cada uno.
+' tipos={idProducto=tipo} 'Mapa con id y tipo del producto, 0 si es fijo y 1 si es variable.
+' prodsFijos={idProducto,idProducto} 'Lista con los ids de los productos fijos.
+' prodsVariables={idProducto,idProducto} 'Lista con los ids de los productos variables.
+' resultado="OK" 'Ok si existe la promocion.
+' prodsVariablesRequeridos=5} 'Cantidad de productos variables requeridos para la promoción.
+Sub traePromo(promo As String, cliente As String) As Map
+ Private inicioContador As String = DateTime.Now
+ Private c As Cursor = B4XPages.MainPage.skmt.ExecQuery("Select * from promos_comp where cat_pa_id = '"& promo&"'") 'Obtenemos las el maximo de promocioones a otorgar.
+ Private siHistorico As String = 0
+ Private promoMap As Map
+ Private prodsFijos, prodsFijosPrecios, prodsFijosPiezas, prodsVariables, prodsVariables2, prodsVariablesPrecios, prodsVariablesPrecios2 As List
+ promoMap.Initialize
+ prodsFijos.Initialize
+ prodsFijosPrecios.Initialize
+ prodsFijosPiezas.Initialize
+ prodsVariables.Initialize
+ prodsVariables2.Initialize
+ prodsVariablesPrecios.Initialize
+ prodsVariablesPrecios2.Initialize
+ c.Position = 0
+ If c.RowCount > 0 Then promoMap = CreateMap("id":promo, "maxXcliente":c.GetString("CAT_PA_MAXPROMCLIE"), "maxRecurrente":c.GetString("CAT_PA_MAXPROMREC"), "maxPromos":c.GetString("CAT_PA_MAXPROM"))
+ c = B4XPages.MainPage.skmt.ExecQuery("Select count(*) as hist from HIST_PROMOS where HP_CLIENTE = '"& cliente & "' and HP_CODIGO_PROMOCION = '" & promo & "'") 'Revisamos si hay historico de la promoción.
+ c.Position = 0
+ If c.GetString("hist") > 0 Then siHistorico = 1
+ promoMap.Put("historico", siHistorico)
+ c = B4XPages.MainPage.skmt.ExecQuery("Select * from CAT_DETALLES_PAQ where CAT_DP_ID = '"& promo & "'") 'Obtenemos los detalles de la promoción.
+ c.Position = 0
+ If c.RowCount > 0 Then
+ Private prods, tipos As Map
+ prods.Initialize
+ tipos.Initialize
+ For i=0 To c.RowCount -1
+ c.Position=i
+ prods.Put(c.GetString("CAT_DP_IDPROD"), CreateMap("idProducto":c.GetString("CAT_DP_IDPROD"), "precioSimptos":c.GetString("CAT_DP_PRECIO_SIMPTOS"), "precio":c.GetString("CAT_DP_PRECIO"), "almacen":c.GetString("CAT_DP_ALMACEN"), "tipo":c.GetString("CAT_DP_TIPO"), "piezas":c.GetString("CAT_DP_PZAS"), "usuario":c.GetString("CAT_DP_USUARIO"), "regalo":c.GetString("CAT_DP_REGALO"), "clasif":c.GetString("CAT_DP_CLASIF")))
+ tipos.Put(c.GetString("CAT_DP_IDPROD"), c.GetString("CAT_DP_TIPO"))
+ If c.GetString("CAT_DP_TIPO") = "0" Then
+ prodsFijos.Add(c.GetString("CAT_DP_IDPROD"))
+ prodsFijosPrecios.Add(c.GetString("CAT_DP_PRECIO"))
+ prodsFijosPiezas.Add(c.GetString("CAT_DP_PZAS"))
+ End If
+ If c.GetString("CAT_DP_TIPO") = "1" Then
+ prodsVariables.Add(c.GetString("CAT_DP_IDPROD"))
+ prodsVariablesPrecios.Add(c.GetString("CAT_DP_PRECIO"))
+ End If
+ If c.GetString("CAT_DP_TIPO") = "2" Then
+' LogColor(c.GetString("CAT_DP_IDPROD") & "|" & c.GetString("CAT_DP_TIPO"), Colors.Blue)
+ prodsVariables2.Add(c.GetString("CAT_DP_IDPROD"))
+ prodsVariablesPrecios2.Add(c.GetString("CAT_DP_PRECIO"))
+ End If
+' Log($"id:${c.GetString("CAT_DP_IDPROD")}, tipo:${c.GetString("CAT_DP_TIPO")}"$)
+' If prodsVariables2.Size > 0 Then LogColor(c.GetString("CAT_DP_ID") & "|" & prodsVariables2, Colors.red)
+ Next
+ promoMap.Put("productos", prods) 'Mapa con los productos de la promocion (id, precio, almacen, tipo, piezas, etc.)
+ promoMap.Put("tipos", tipos) 'Mapa con los productos de la promoción y su tipo (fijo o variable).
+ promoMap.Put("prodsFijos", prodsFijos) 'Lista de los productos fijos de la promoción.
+ promoMap.Put("prodsVariables", prodsVariables) 'Lista de los productos variables de la promoción.
+ promoMap.Put("prodsVariables2", prodsVariables2)
+ promoMap.Put("prodsFijosCant", prodsFijos.Size)
+ promoMap.Put("prodsFijosPrecios", prodsFijosPrecios)
+ promoMap.Put("prodsFijosPiezas", prodsFijosPiezas)
+ promoMap.Put("prodsVariablesCant", prodsVariables.Size)
+ promoMap.Put("prodsVariables2Cant", prodsVariables2.Size)
+ promoMap.Put("prodsVariablesPrecios", prodsVariablesPrecios)
+ promoMap.Put("prodsVariablesPrecios2", prodsVariablesPrecios2)
+ promoMap.Put("resultado", "ok")
+ Else
+ promoMap.Put("resultado", "No hay datos de la promoción.")
+ End If
+ c = B4XPages.MainPage.skmt.ExecQuery2($"Select CAT_GP_STS, CAT_GP_IMP1, CAT_GP_NOMBRE from ${Starter.tabla} where CAT_GP_ID = ?"$,Array As String(promo)) 'Obtenemos las piezas requeridas de productos variables para la promoción.
+ c.Position = 0
+ Private pvr As String = 0
+ Private pvr2 As String = 0
+ If c.RowCount > 0 Then
+ c.Position = 0
+ pvr = c.GetString("CAT_GP_STS")
+ pvr2 = c.GetString("CAT_GP_IMP1")
+ If pvr = Null Or pvr = "null" Then pvr = 0
+ If pvr2 = Null Or pvr2 = "null" Then pvr2 = 0
+ promoMap.Put("prodsVariablesRequeridos", pvr) 'Cantidad de productos variables requeridos para la promoción.
+ promoMap.Put("prodsVariables2Requeridos", pvr2)
+ promoMap.put("descripcion", c.GetString("CAT_GP_NOMBRE"))
+ End If
+ c.Close
+' Log($"Inv variables: ${cuantosVariablesTengoBD(promo)}"$)
+' Log($"Inv dispo: ${traemosInventarioDisponibleParaPromo(promo)}"$)
+' LogColor($"Promo ${promo}: ${promoMap}"$, Colors.Green)
+' LogColor("TIEMPO para traePromo -=" & promo & "=- : " & ((DateTime.Now-inicioContador)/1000), Colors.Red)
+ Return promoMap
+End Sub
+
+'Regresa cuantas promos alcanzan con los productos VARIABLES que hay en inventario.
+'La cantidad de promos disponibles se calcula DESPUES de descontar los productos fijos, y si las
+'promos por productos fijos llega al maximo, aunque se puedan mas de producos variables, solo se
+'regresa el maximo por productos fijos. Ej. si las promos por variables es 10, pero el maximo por
+'fijos es 5, entonces regresamos 5.
+Sub revisaMaxPromosProdsVariablesPorInventario(pm As Map) As Int 'ignore
+ Private thisLog As Boolean = False
+ If thisLog Then Log("======================================================")
+ If thisLog Then Log("======================================================")
+ Private invFijoXpromo As Map
+ invFijoXpromo.Initialize
+ Private totalProdsVariablesDisponibles As Int = 0
+ Private totalProdsVariables2Disponibles As Int = 0
+ If thisLog Then LogColor($"pm=${pm}"$, Colors.Blue)
+ Private invDispParaPromo As Map = traemosInventarioDisponibleParaPromo(pm.Get("id"))
+ If thisLog Then Log($"invDispParaPromo=${invDispParaPromo}"$)
+ Private maxPromos As String = traeMaxPromos(pm)
+ Private maxPromosXFijos As Int = revisaMaxPromosProdsFijosPorInventario(pm)
+ Private idProdsVariables As List = pm.Get("prodsVariables")
+ Private idProdsVariables2 As List = pm.Get("prodsVariables2")
+ Private prodsVariablesRequeridos As Int = pm.Get("prodsVariablesRequeridos")
+ Private prodsVariables2Requeridos As Int = pm.Get("prodsVariables2Requeridos")
+ Private prodsFijosPiezas As List = pm.Get("prodsFijosPiezas")
+ Private idProdsFijos As List = pm.Get("prodsFijos")
+ For p = 0 To idProdsFijos.Size -1 'Generamos mapa con los productos fijos y piezas requeridas por promo.
+ invFijoXpromo.Put(idProdsFijos.Get(p), prodsFijosPiezas.Get(p))
+ Private idEsteProd As String = idProdsFijos.Get(p)
+ Private invEsteProd As Int = invDispParaPromo.Get(idEsteProd)
+ Private pzasReqEsteProd As Int = prodsFijosPiezas.Get(p)
+ If thisLog Then Log($"id=${idEsteProd}, inv=${invEsteProd}, pzas=${pzasReqEsteProd}"$)
+' invDispParaPromo.Put( idEsteProd, (invEsteProd - (1)) )
+ Next
+ If thisLog Then LogColor($"MaxPromos=${maxPromos}, promosXFijos=${maxPromosXFijos}"$, Colors.Blue)
+ If thisLog Then LogColor($"prodsFijos=${idProdsFijos}"$, Colors.Blue)
+ If thisLog Then LogColor($"prodsFijosPiezasReq=${prodsFijosPiezas}"$, Colors.Blue)
+ If thisLog Then LogColor($"prodsVariables=${idProdsVariables}${CRLF}Variables Req=${prodsVariablesRequeridos} "$, Colors.Blue)
+ If thisLog Then LogColor($"prodsVariables2=${idProdsVariables2}${CRLF}Variables2 Req=${prodsVariables2Requeridos} "$, Colors.Blue)
+ If thisLog Then LogColor($"invFijoXpromo=${invFijoXpromo}"$, Colors.Blue)
+ If thisLog Then Log($"Prods variables disponibles = ${totalProdsVariablesDisponibles}"$)
+ If thisLog Then Log($"Prods variables2 disponibles = ${totalProdsVariables2Disponibles}"$)
+ Private maxPromosXVariables As Int = 0
+ Private maxPromosXVariables2 As Int = 0
+ For x = 1 To maxPromosXFijos
+ If thisLog Then Log("=====================================================")
+ If thisLog Then Log("=====================================================")
+ For i = 0 To idProdsFijos.Size - 1
+ If thisLog Then Log($"FIJO - ${idProdsFijos.Get(i)}, ${invDispParaPromo.Get(idProdsFijos.Get(i))} - ${prodsFijosPiezas.Get(i).As(Int)*(i+1)}"$)
+ invDispParaPromo.Put(idProdsFijos.Get(i), invDispParaPromo.Get(idProdsFijos.Get(i)).As(Int) - prodsFijosPiezas.Get(i).As(Int)*(i+1)) 'Restamos las piezas de los productos fijos del inventario disponible.
+ Next
+ If thisLog Then LogColor("Inv disponible despues de restar fijos = " & invDispParaPromo, Colors.Blue)
+
+ totalProdsVariablesDisponibles = 0
+ totalProdsVariables2Disponibles = 0
+ For i = 0 To idProdsVariables.Size - 1 'Obtenemos total de productos variables disponibes.
+ If invDispParaPromo.ContainsKey(idProdsVariables.Get(i)) Then
+ totalProdsVariablesDisponibles = totalProdsVariablesDisponibles + invDispParaPromo.Get(idProdsVariables.Get(i))
+ End If
+ Next
+ For i = 0 To idProdsVariables2.Size - 1 'Obtenemos total de productos variables disponibes.
+ If invDispParaPromo.ContainsKey(idProdsVariables2.Get(i)) Then
+ totalProdsVariables2Disponibles = totalProdsVariables2Disponibles + invDispParaPromo.Get(idProdsVariables2.Get(i))
+ End If
+ Next
+ 'Revisamos variables.
+ If thisLog Then Log($"Var disponibles - var requeridos : ${totalProdsVariablesDisponibles} - ${prodsVariablesRequeridos*x}"$)
+ totalProdsVariablesDisponibles = totalProdsVariablesDisponibles - (prodsVariablesRequeridos*x)
+ totalProdsVariables2Disponibles = totalProdsVariables2Disponibles - (prodsVariables2Requeridos*x)
+ If thisLog Then Log("prodsVariables disponibles despues de promo = " & totalProdsVariablesDisponibles)
+ If thisLog Then Log("prodsVariables2 disponibles despues de promo = " & totalProdsVariables2Disponibles)
+ If totalProdsVariablesDisponibles < 0 Then Exit 'Ya no hay inventario disponible.
+ If totalProdsVariables2Disponibles < 0 Then Exit 'Ya no hay inventario disponible.
+ maxPromosXVariables = x
+ Next
+ 'Restamos fijos.
+ If thisLog Then LogColor("Max promos de prodsVariables POR inventario = " & maxPromosXVariables, Colors.red)
+ Return maxPromosXVariables
+End Sub
+
+'Revisa si tenemos los productos variables requeridos para la promoción (mapa).
+'Hay que darle como parametro un mapa (traePromo(promo)) con toda la informacion de la promocion.
+Sub alcanzanLosVariablesParaPromo(promoMap As Map, inventarioSinFijos As Map) As Boolean 'ignore
+ Private thisLog As Boolean = False 'Si es verdadero, muestra los logs de este sub.
+ If thisLog Then LogColor("Inventario inicial: "&inventarioSinFijos, Colors.Gray) 'Inventario inicial.
+ Private totalProdsVariables As Int = 0
+ Private totalProdsVariables2 As Int = 0
+' Private prodsmap As Map = promoMap.Get("productos") 'Obtenemos un mapa con todos los productos de la promoción.
+ Private prodsVariables As List = promoMap.get("prodsVariables") 'Obtenemos una lista con los productos variables de la promoción.
+ Private prodsVariables2 As List = promoMap.get("prodsVariables2")
+ For p = 0 To prodsVariables.Size - 1
+ Private t As String = prodsVariables.Get(p) 'Obtenemos el Id de este producto desde la lista de productos fijos.
+' Log("inventarioSinFijos: " & inventarioSinFijos)
+ If inventarioSinFijos.ContainsKey(t) Then 'Si existe el producto en la lista del inventario, entonces ...
+ Private p2 As String = inventarioSinFijos.Get(t) 'Obtenemos el inventario disponible este producto.
+' Log(p2)
+ totalProdsVariables = totalProdsVariables + p2
+' Log(totalProdsVariables)
+ If thisLog Then Log($"prod ${t}, hay: ${p2}"$) 'Producto y piezas requeridas
+ End If
+ Next
+ For p = 0 To prodsVariables2.Size - 1
+ Private t As String = prodsVariables2.Get(p) 'Obtenemos el Id de este producto desde la lista de productos fijos.
+ If inventarioSinFijos.ContainsKey(t) Then 'Si existe el producto en la lista del inventario, entonces ...
+ Private p2 As String = inventarioSinFijos.Get(t) 'Obtenemos el inventario disponible este producto.
+ totalProdsVariables2 = totalProdsVariables2 + p2
+ If thisLog Then Log($"prod ${t}, hay: ${p2}"$) 'Producto y piezas requeridas
+ End If
+ Next
+ If thisLog Then Log("Total prods variables=" & totalProdsVariables & ", requeridos=" & promoMap.Get("prodsVariablesRequeridos"))
+ If thisLog Then Log("Total prods variables2=" & totalProdsVariables2 & ", requeridos2=" & promoMap.Get("prodsVariables2Requeridos"))
+ Private res As Boolean = False
+ Private res1 As Boolean = False
+ Private res2 As Boolean = False
+
+' Log($"${totalProdsVariables} >= ${promoMap.Get("prodsVariablesRequeridos")}"$)
+' Log($"${totalProdsVariables2} >= ${promoMap.Get("prodsVariables2Requeridos")}"$)
+
+ If totalProdsVariables > 0 And totalProdsVariables >= promoMap.Get("prodsVariablesRequeridos") Then
+ res1 = True 'Si el total de inventario de productos variables (totalProdsVariables) es mayor o igual a los productos requeridos entonces regresamos TRUE
+ End If
+ If promoMap.Get("prodsVariablesRequeridos").As (Int) = 0 Then res1 = True
+ If totalProdsVariables2 > 0 And totalProdsVariables2 >= promoMap.Get("prodsVariables2Requeridos") Then
+ res2 = True 'Si el total de inventario de productos variables (totalProdsVariables) es mayor o igual a los productos requeridos entonces regresamos TRUE
+ End If
+ If promoMap.Get("prodsVariables2Requeridos").As(Int) = 0 Then res2 = True
+ If res1 And res2 Then 'Solo si son verdadero los dos el resultado es verdadero.
+ res = True
+ Else
+ res = False
+ End If
+' Log(res)
+ Return res
End Sub
\ No newline at end of file
diff --git a/B4A/Tracker.bas b/B4A/Tracker.bas
index d84255d..31a58cb 100644
--- a/B4A/Tracker.bas
+++ b/B4A/Tracker.bas
@@ -199,7 +199,7 @@ Sub flp_LocationChanged (Location1 As Location)
End If
If B4XPages.MainPage.cliente.LA_GPS.IsInitialized Then
B4XPages.MainPage.cliente.LA_GPS.Text = "CON UBICACION GPS"
- B4XPages.MainPage.cliente.LA_GPS.TextColor = Colors.blue
+ B4XPages.MainPage.cliente.LA_GPS.TextColor = Colors.Black
End If
' LogColor(Location1.Latitude, Colors.red)
CallSub2(Starter, "GPS_LocationChanged", Location1)