This commit is contained in:
cvaldes1201
2025-07-01 11:33:47 -06:00
parent 8e5d084e2d
commit 1a3a6d5ed9
40 changed files with 4753 additions and 1002 deletions

View File

@@ -148,8 +148,13 @@ Private Sub B4XPage_Created (Root1 As B4XView)
skmt.Initialize(File.DirInternal,"kmt.db", True) skmt.Initialize(File.DirInternal,"kmt.db", True)
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS IMPRESORA (HABILITADA)") 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 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)") skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS COMENTARIOS (COMENTARTIO TEXT, CLIENTE TEXT, DESCARGADO TEXT)")
Subs.agregaColumna("PLAN_LEALTAD", "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 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 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)") 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("HIST_ENCUESTA", "HE_LON", "TEXT")
Subs.agregaColumna("kmt_info3", "encuesta", "TEXT") Subs.agregaColumna("kmt_info3", "encuesta", "TEXT")
Subs.agregaColumna("kmt_info3", "CAT_CL_TIPOCLIENTE", "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("kmt_info3", "CAT_CL_BCREDITO", "TEXT") '########################## CODIGO PARA CREDITOS ####################
Subs.agregaColumna("CAT_GUNAPROD", "CAT_PA_BSEGMENTA", "TEXT") 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_GUNAPROD", "CAT_PA_SEGMENTAV", "TEXT")
Subs.agregaColumna("CAT_GUNAPROD2", "CAT_PA_BSEGMENTA", "TEXT") Subs.agregaColumna("CAT_GUNAPROD2", "CAT_PA_BSEGMENTA", "TEXT")
Subs.agregaColumna("CAT_GUNAPROD2", "CAT_PA_SEGMENTAV", "TEXT") Subs.agregaColumna("CAT_GUNAPROD2", "CAT_PA_SEGMENTAV", "TEXT")
@@ -817,12 +824,13 @@ End Sub
Sub i_engrane_Click Sub i_engrane_Click
p_appUpdate.Left = (Root.Width/2) - (p_appUpdate.Width/2) p_appUpdate.Left = (Root.Width/2) - (p_appUpdate.Width/2)
lv_server.Clear 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") If user.Text = "KMTS1" Then lv_server.AddSingleLine("http://10.0.0.205:1782")
l_server.Text = Starter.server l_server.Text = Starter.server
et_server.Text = Starter.server et_server.Text = Starter.server
Subs.panelVisible(p_appUpdate,0,0) Subs.panelVisible(p_appUpdate,0,0)
p_appUpdate.Height = Root.Height p_appUpdate.Height = Root.Height
p_appUpdate.Width = Root.Width
c = skmt.ExecQuery("SELECT HABILITADA FROM IMPRESORA") c = skmt.ExecQuery("SELECT HABILITADA FROM IMPRESORA")
If c.RowCount = 0 Then If c.RowCount = 0 Then
skmt.ExecNonQuery2("INSERT INTO IMPRESORA VALUES (?)", Array As Object(0)) skmt.ExecNonQuery2("INSERT INTO IMPRESORA VALUES (?)", Array As Object(0))
@@ -839,7 +847,8 @@ Sub i_engrane_Click
End Sub End Sub
Sub b_regesar_Click 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("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)) 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 Starter.server = et_server.Text
@@ -898,6 +907,8 @@ Private Sub B4XSwitch2_ValueChanged (Value2 As Boolean)
p_validacion.Visible = True p_validacion.Visible = True
p_validacion.Left = (Root.Width/2) - (p_appUpdate.Width/2) p_validacion.Left = (Root.Width/2) - (p_appUpdate.Width/2)
Subs.panelVisible(p_validacion,0,0) Subs.panelVisible(p_validacion,0,0)
p_validacion.Height = Root.Height
p_validacion.Width = Root.Width
Else Else
skmt.ExecNonQuery2("UPDATE GPS SET HABILITADO = (?)",Array As Object(0)) skmt.ExecNonQuery2("UPDATE GPS SET HABILITADO = (?)",Array As Object(0))
End If End If

View File

@@ -460,6 +460,9 @@ Sub Class_Globals
Private et_comentario As EditText Private et_comentario As EditText
Private lv_comentarios As ListView Private lv_comentarios As ListView
Private ImageView4 As ImageView Private ImageView4 As ImageView
Private p_cliente_ As Panel
Private l_limite As Label
Private l_credito As Label
End Sub End Sub
'You can add more parameters here. 'You can add more parameters here.
@@ -537,11 +540,15 @@ Sub B4XPage_Appear
que_modulo = 1 que_modulo = 1
dentroDeGeocerca = False dentroDeGeocerca = False
indicePregunta = 0 indicePregunta = 0
l_credito.Visible = False
l_limite.Visible = False
pnlPlanLealtad.Top = 0 pnlPlanLealtad.Top = 0
pnlPlanLealtad.Left = 0 pnlPlanLealtad.Left = 0
pnlPlanLealtad.Width = Root.Width pnlPlanLealtad.Width = Root.Width
pnlPlanLealtad.Height = Root.Height 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 If TOMAR_FOTO <> 0 Then Cuestionario
Starter.idCliente = Subs.traeCliente Starter.idCliente = Subs.traeCliente
@@ -936,12 +943,15 @@ Sub B4XPage_Appear
End If End If
End If End If
'AQUI CAMBIAR '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")) 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) ' LogColor(s3.RowCount,Colors.Yellow)
If s3.RowCount > 0 Then If s3.RowCount > 0 Then
'########################## CODIGO PARA CREDITOS #################### '########################## 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=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 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 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 s.Close
Else If s3.RowCount = 0 Then Else If s3.RowCount = 0 Then
'########################## CODIGO PARA CREDITOS #################### '########################## 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=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 s.Position=0
If c.RowCount > 0 Then If c.RowCount > 0 Then
@@ -1062,8 +1072,9 @@ Sub B4XPage_Appear
b_Inicio_Fin_venta.Visible = False b_Inicio_Fin_venta.Visible = False
' ToastMessageShow("aaa", False) ' ToastMessageShow("aaa", False)
End If End If
gest.Text = "PreVenta" gest.Typeface =Typeface.CreateNew(Typeface.FONTAWESOME, Typeface.STYLE_BOLD)
If Subs.traeTipoVentaDeBD = "VENTA" Then gest.Text = "Venta" gest.Text = " Preventa"
If Subs.traeTipoVentaDeBD = "VENTA" Then gest.Text = " Venta"
' Log($">>>>>>>>>> |${la_cuenta.Text.trim}|"$) ' Log($">>>>>>>>>> |${la_cuenta.Text.trim}|"$)
If la_cuenta.Text.trim = "0" Then gest.Text = "Carga Abordo" If la_cuenta.Text.trim = "0" Then gest.Text = "Carga Abordo"
' Log($"ALMACEN: ${ALMACEN}${CRLF}RUTA:${LA_RUTA}"$) ' Log($"ALMACEN: ${ALMACEN}${CRLF}RUTA:${LA_RUTA}"$)
@@ -1100,7 +1111,43 @@ Sub B4XPage_Appear
'' ImageView4 = fotomostrar.GetBlob("foto") '' ImageView4 = fotomostrar.GetBlob("foto")
' Log("LO LOGRAMOS") ' Log("LO LOGRAMOS")
' End If ' 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)") 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 If fotomostrar.RowCount > 0 Then
@@ -1122,7 +1169,36 @@ Sub B4XPage_Appear
End If End If
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 End Sub
@@ -1173,7 +1249,7 @@ Sub GPS_LocationChanged (Location1 As Location)
End If End If
End If End If
If geo = "1" Then If geo = "1" Then
If distance < 100 Then If distance < 10000000000000000000000000000000 Then
LA_GEO.TextColor = Colors.Blue LA_GEO.TextColor = Colors.Blue
Tels.Visible = True Tels.Visible = True
gest.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) ' If distance > 100 Then ToastMessageShow("Fuera de rango GPS", False)
B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM HIST_GPS") 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)) B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO HIST_GPS (HGDATE, HGLAT, HGLON) VALUES(?,?,?) ", Array As Object (sDate & sTime, B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps))
CallSubDelayed(Tracker, "CreateLocationRequest") CallSubDelayed(Tracker, "CreateLocationRequest")
@@ -1489,6 +1566,45 @@ Sub ListView1_ItemLongClick (Position As Int, Value As Object)
End Sub End Sub
Sub gest_Click 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 B_IMP.Visible = True Then
If Not(Subs.revisaImpreso) 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)") 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 '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)) 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) ' LogColor(s3.RowCount,Colors.Yellow)
Private suma As Float = 0
If s3.RowCount > 0 Then 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)) 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 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)) 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 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 s.Close
Else If s3.RowCount = 0 Then 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)") 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 s.Position=0
Private suma As Float = s.GetString("TOTAL_CLIE") suma = s.GetString("TOTAL_CLIE")
s.Close s.Close
End If End If
'AQUI TERMINA 'AQUI TERMINA
If c.GetString("CUANTOS") > 0 Then 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 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.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("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("delete from TICKET_IMPRESO where idCliente In (select cuenta from cuentaa)")
' B4XPages.MainPage.skmt.ExecNonQuery($"insert into TICKET_IMPRESO (idCliente) values ('${Subs.traeCliente}')"$) ' B4XPages.MainPage.skmt.ExecNonQuery($"insert into TICKET_IMPRESO (idCliente) values ('${Subs.traeCliente}')"$)
@@ -2370,17 +2489,17 @@ Sub Guardar_Click
DateTime.TimeFormat = "HH:mm:ss" DateTime.TimeFormat = "HH:mm:ss"
'########################## INICIA CODIGO PARA CREDITOS #################### '########################## INICIA CODIGO PARA CREDITOS ####################
Log(BCREDITO) Log(BCREDITO)
If BCREDITO = 1 And suma > 0 Then ' 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) ' 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) ' Wait For Msgbox_Result (resultado As Int)
If resultado = DialogResponse.POSITIVE Then ' If resultado = DialogResponse.POSITIVE Then
' ToastMessageShow("Positivo", False) '' ToastMessageShow("Positivo", False)
mandaWAMsgCredito(telefono.Trim, suma) ' mandaWAMsgCredito(telefono.Trim, suma)
Else ' Else
' ToastMessageShow("Efectivo", False) '' ToastMessageShow("Efectivo", False)
End If ' End If
' ToastMessageShow("ENVIAR MSG WA POR MONTO $XXX", False) '' ToastMessageShow("ENVIAR MSG WA POR MONTO $XXX", False)
End If ' End If
'########################## TERMINA CODIGO PARA CREDITOS #################### '########################## TERMINA CODIGO PARA CREDITOS ####################
' B4XPages.ShowPage("Principal") ' B4XPages.ShowPage("Principal")
End Sub End Sub
@@ -2464,27 +2583,6 @@ Sub b_mapa_Click
B4XPages.ShowPage("mapas") B4XPages.ShowPage("mapas")
End Sub 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 Sub B_IMP_Click
' Printer1.Connect2 ' Printer1.Connect2
' c=Starter.skmt.ExecQuery2("select count(*) AS CUANTOS from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("PERFIL")) ' 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 ...") ProgressDialogShow("Imprimiendo, un momento ...")
Printer1.DisConnect Printer1.DisConnect
If Not(Printer1.IsConnected) Then If Not(Printer1.IsConnected) Then
Log("Conectando a impresora ...") ' If logger Then Log("conectando 1")
Printer1.Connect Printer1.Connect
Private cont As Int = 0 Private cont As Int = 0
Do While Not(impresoraConectada) Do While Not(impresoraConectada)
Sleep(1000) Sleep(1000)
Log("++++++ " & cont)
cont = cont + 1 cont = cont + 1
If cont = 2 Then Printer1.Connect 'Tratamos de reconectar If cont = 7 Then Printer1.Connect 'Tratamos de reconectar
If cont > 3 Then impresoraConectada = True If cont > 15 Then impresoraConectada = True
Loop Loop
Sleep(500) Sleep(500)
impresoraConectada = False impresoraConectada = False
Else Else
Log("conectando 2") ' If logger Then Log("conectando 2")
Printer1.Connect Printer1.Connect
Private cont As Int = 0 Private cont As Int = 0
Do While Not(impresoraConectada) Or Not(Printer1.IsConnected) Do While Not(impresoraConectada) Or Not(Printer1.IsConnected)
Sleep(1000) Sleep(1000)
Log("****** " & cont)
cont = cont + 1 cont = cont + 1
If cont = 2 Then Printer1.Connect If cont = 2 Then Printer1.Connect
If cont > 3 Then impresoraConectada = True If cont > 4 Then impresoraConectada = True
Loop Loop
Sleep(500) Sleep(500)
impresoraConectada = False impresoraConectada = False
@@ -2733,28 +2829,26 @@ Sub Impresion
ProgressDialogShow("Imprimiendo, un momento ...") ProgressDialogShow("Imprimiendo, un momento ...")
Printer1.DisConnect Printer1.DisConnect
If Not(Printer1.IsConnected) Then If Not(Printer1.IsConnected) Then
Log("Conectando a impresora ...") ' If logger Then Log("conectando 1")
Printer1.Connect Printer1.Connect
Private cont As Int = 0 Private cont As Int = 0
Do While Not(impresoraConectada) Do While Not(impresoraConectada)
Sleep(1000) Sleep(1000)
Log("++++++ " & cont)
cont = cont + 1 cont = cont + 1
If cont = 2 Then Printer1.Connect 'Tratamos de reconectar If cont = 7 Then Printer1.Connect 'Tratamos de reconectar
If cont > 3 Then impresoraConectada = True If cont > 15 Then impresoraConectada = True
Loop Loop
Sleep(500) Sleep(500)
impresoraConectada = False impresoraConectada = False
Else Else
Log("conectando 2") ' If logger Then Log("conectando 2")
Printer1.Connect Printer1.Connect
Private cont As Int = 0 Private cont As Int = 0
Do While Not(impresoraConectada) Or Not(Printer1.IsConnected) Do While Not(impresoraConectada) Or Not(Printer1.IsConnected)
Sleep(1000) Sleep(1000)
Log("****** " & cont)
cont = cont + 1 cont = cont + 1
If cont = 2 Then Printer1.Connect If cont = 2 Then Printer1.Connect
If cont > 3 Then impresoraConectada = True If cont > 4 Then impresoraConectada = True
Loop Loop
Sleep(500) Sleep(500)
impresoraConectada = False impresoraConectada = False
@@ -2794,16 +2888,17 @@ Sub Impresion
Printer1.WriteString("-----------PREVENTA-----------" & CRLF) 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. ' 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 If S.RowCount>0 Then
For i=0 To S.RowCount -1 For i=0 To S.RowCount -1
S.Position=i 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) 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_CANT") + TAMANO
TAMANO = s.GetLong("L_COSTOU") + TAMANO TAMANO = s.GetLong("L_COSTOU") + TAMANO
TAMANO = s.GetLong("L_COSTO_TOT") + TAMANO TAMANO = s.GetLong("L_COSTO_TOT") + TAMANO
@@ -2817,22 +2912,24 @@ Sub Impresion
TAMANO = 0 TAMANO = 0
ESPACIO = 21 ESPACIO = 21
BLANCO = " " BLANCO = " "
End If ' End If
Next Next
End If End If
s.Close s.Close
Printer1.WriteString(" " & CRLF) 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 If S.RowCount>0 Then
Printer1.WriteString("------------PROMOS------------" & CRLF) Printer1.WriteString("--------BONIFICACIONES--------" & CRLF)
For i=0 To S.RowCount -1 For i=0 To S.RowCount -1
S.Position=i 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) 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_CANT") + TAMANO
TAMANO = s.GetLong("L_COSTOU") + TAMANO TAMANO = s.GetLong("L_COSTOU") + TAMANO
TAMANO = s.GetLong("L_COSTO_TOT") + TAMANO TAMANO = s.GetLong("L_COSTO_TOT") + TAMANO
@@ -2846,7 +2943,7 @@ Sub Impresion
TAMANO = 0 TAMANO = 0
ESPACIO = 21 ESPACIO = 21
BLANCO = " " BLANCO = " "
End If ' End If
Next Next
Printer1.WriteString(" " & CRLF) Printer1.WriteString(" " & CRLF)
End If End If
@@ -2956,12 +3053,38 @@ End Sub
'' printer.Close '' printer.Close
'End Sub '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) Sub Printer_Connected (Success As Boolean)
If Success Then If Success Then
B_IMP.Enabled = True ' B_IMP.Enabled = True
' PASA_IMP = "1"
Else Else
B_IMP.Enabled = False ' B_IMP.Enabled = False
If Msgbox2("", "Printer Error","Reprint","Cancel","",Null) = DialogResponse.POSITIVE Then 'Ignore If Msgbox2("", "Printer Error","Reprint","Cancel","",Null) = DialogResponse.POSITIVE Then 'ignore
StartPrinter StartPrinter
End If End If
End If End If
@@ -2969,37 +3092,39 @@ End Sub
Sub StartPrinter Sub StartPrinter
Dim PairedDevices As Map Dim PairedDevices As Map
Dim L As List Dim L1 As List
Dim resimp As Int Dim resimp As Int
ToastMessageShow("Printing.....",True) ToastMessageShow("Printing.....",True)
PairedDevices.Initialize PairedDevices.Initialize
Try Try
PairedDevices = cmp20.GetPairedDevices PairedDevices = cmp20.GetPairedDevices
Catch Catch
Msgbox("Getting Paired Devices","Printer Error") 'Ignore Msgbox("Getting Paired Devices","Printer Error") 'ignore
printer.Close printer.Close
cmp20.Disconnect cmp20.Disconnect
End Try End Try
If PairedDevices.Size = 0 Then If PairedDevices.Size = 0 Then
Msgbox("Error Connecting to Printer - Printer Not Found","") 'Ignore Msgbox("Error Connecting to Printer - Printer Not Found","") 'ignore
Return Return
End If End If
If PairedDevices.Size = 1 Then If PairedDevices.Size = 1 Then
Try Try
cmp20.ConnectInsecure(btAdmin,PairedDevices.Get(PairedDevices.GetKeyAt(0)),1) cmp20.Connect(PairedDevices.Get(PairedDevices.GetKeyAt(0)))
Catch Catch
Msgbox("Connecting","Printer Error") 'Ignore Msgbox("Connecting","Printer Error") 'ignore
printer.Close printer.Close
cmp20.Disconnect cmp20.Disconnect
End Try End Try
Else Else
L.Initialize L1.Initialize
For i = 0 To PairedDevices.Size - 1 For i = 0 To PairedDevices.Size - 1
L.Add(PairedDevices.GetKeyAt(i)) L1.Add(PairedDevices.GetKeyAt(i))
Next Next
resimp = InputList(L, "Choose device", -1) 'Ignore resimp = InputList(L1, "Choose device", -1) 'ignore
If resimp <> DialogResponse.CANCEL Then If resimp <> DialogResponse.CANCEL Then
cmp20.Connect(PairedDevices.Get(L.Get(resimp))) cmp20.Connect(PairedDevices.Get(L1.Get(resimp)))
End If End If
End If End If
End Sub End Sub
@@ -4809,6 +4934,7 @@ Sub Cuestionario
' Starter.tipov = "VENTA" ' Starter.tipov = "VENTA"
B4XPages.ShowPage("productos") B4XPages.ShowPage("productos")
End If End If
End Sub End Sub
'Muestra el panel de la encuesta, le da el alto y ancho de la pantalla y la pone en 0,0 '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 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 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 pagina As Double = ((18 + s56.RowCount + s57.RowCount +2) * (6)) + 18
Dim multiplicador As Int = 0 Dim multiplicador As Int = 0
PDF.pageAdd(-300,pagina) PDF.pageAdd(-300,pagina)
@@ -5221,14 +5347,14 @@ Private Sub PDFGENERAR
PDF.outtext(1,pagina-multiplicador*6," ") PDF.outtext(1,pagina-multiplicador*6," ")
c = skmt.ExecQuery2("SELECT * FROM PEDIDO WHERE PE_FOLIO = ?",Array As String("PREVENTA")) c = skmt.ExecQuery2("SELECT * FROM PEDIDO WHERE PE_FOLIO = ?",Array As String("PREVENTA"))
If c.RowCount > 0 Then 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 multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6,"------------------------------------PREVENTA-----------------------------------------") PDF.outtext(1,pagina-multiplicador*6,"------------------------------------PREVENTA-----------------------------------------")
multiplicador = multiplicador +1 multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6,"Cant. Precio Importe") PDF.outtext(1,pagina-multiplicador*6,"Cant. Precio Importe")
multiplicador = multiplicador +1 multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6,"-----------------------------------------------------------------------------------------") 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
For i=0 To S.RowCount -1 For i=0 To S.RowCount -1
S.Position=i S.Position=i
If s.GetString("PE_CEDIS") = s.GetString("PE_PROID") Then 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") ) ' pdf.outtext(1,108-9*6,s.GETSTRING("PE_COSTO_TOT") )
End If End If
Next Next
PDF.outtext(1,108-9*6," " )
End If End If
s.Close 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")) 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 If S.RowCount>0 Then
multiplicador = multiplicador +1 multiplicador = multiplicador +1
@@ -5328,9 +5454,193 @@ Private Sub PDFGENERAR
PDF.outtext(1,pagina-multiplicador*6," " ) PDF.outtext(1,pagina-multiplicador*6," " )
multiplicador = multiplicador +1 multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6," " ) 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 multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6," ") PDF.outtext(1,pagina-multiplicador*6," ")
multiplicador = multiplicador +1 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,"-----------------------------------------------------------------------------------------" ) PDF.outtext(1,pagina-multiplicador*6,"-----------------------------------------------------------------------------------------" )
' 'all combinations of font normal, bold,italic,underline and strikethrough ' 'all combinations of font normal, bold,italic,underline and strikethrough
' For i=0 To 15 ' For i=0 To 15
@@ -5525,7 +5835,15 @@ Sub EnviarPDFWhatsAppNumero2(NumeroTelefono As String)
End Sub End Sub
Private Sub b_envioPDF_Click Private Sub b_envioPDF_Click
If ALMACEN = 87 Or ALMACEN = 6 Then
If Subs.traemontoprod Then
PDFGENERAR2
Else
PDFGENERAR PDFGENERAR
End If
Else
PDFGENERAR
End If
EnviarPDFWhatsAppNumero(et_numeroPDF.Text) EnviarPDFWhatsAppNumero(et_numeroPDF.Text)
B4XPages.MainPage.skmt.ExecNonQuery("delete from TICKET_IMPRESO where idCliente In (select cuenta from cuentaa)") B4XPages.MainPage.skmt.ExecNonQuery("delete from TICKET_IMPRESO where idCliente In (select cuenta from cuentaa)")
@@ -5869,3 +6187,15 @@ Private Sub StopCamera2
camEx.Release camEx.Release
End If End If
End Sub 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

View File

@@ -45,6 +45,8 @@ Private Sub B4XPage_Created (Root1 As B4XView)
p_clientes.Height = Root.Height p_clientes.Height = Root.Height
p_clientes.Width = Root.Width p_clientes.Width = Root.Width
Panel4.Left = Round(Root.Width/2)-(Panel4.Width/2) 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 ' valido donde escribo el archivo de la base de datos de kmt
' If File.ExternalWritable Then ' 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") 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 ListView1.Clear
lfila.Text = "NOMBRE" lfila.Text = "NOMBRE"
Subs.SetDivider(ListView1, Colors.White, 2)
If c.RowCount>0 Then If c.RowCount>0 Then
For i = 0 To c.RowCount - 1 For i = 0 To c.RowCount - 1
c.Position=i c.Position=i
Dim label1 As Label Dim label1 As Label
label1 = ListView1.TwoLinesLayout.Label label1 = ListView1.TwoLinesLayout.Label
label1.TextSize = 13 label1.TextSize = 20
label1.TextColor = Colors.Black label1.TextColor = Colors.White
Dim label2 As Label Dim label2 As Label
label2 = ListView1.TwoLinesLayout.SecondLabel label2 = ListView1.TwoLinesLayout.SecondLabel
label2.TextSize = 13 label2.TextSize = 20
label2.TextColor = Colors.Black 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")) ListView1.AddTwoLines(c.GetString("CAT_CL_CODIGO"), c.GetString("CAT_CL_NOMBRE"))
Next Next
End If End If
@@ -159,19 +168,26 @@ Sub BUSCA_TextChanged (Old As String, New As String)
q_buscar = "%" & busca.Text & "%" 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)) 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 ListView1.Clear
Subs.SetDivider(ListView1, Colors.White, 2)
lfila.text = "Nombre y Calle" lfila.text = "Nombre y Calle"
If c2.RowCount>0 Then If c2.RowCount>0 Then
For i=0 To c2.RowCount -1 For i=0 To c2.RowCount -1
c2.Position=i c2.Position=i
Dim label1 As Label Dim label1 As Label
label1 = ListView1.TwoLinesLayout.Label label1 = ListView1.TwoLinesLayout.Label
label1.TextSize = 9 label1.TextSize = 20
label1.TextColor = Colors.Gray label1.TextColor = Colors.White
Dim label2 As Label Dim label2 As Label
label2 = ListView1.TwoLinesLayout.SecondLabel label2 = ListView1.TwoLinesLayout.SecondLabel
label2.TextSize = 17 label2.TextSize = 20
label2.TextColor = Colors.Gray label2.TextColor = Colors.White
ListView1.AddTwoLines(c2.GetString("CAT_CL_CODIGO"), c2.GetString("CAT_CL_NOMBRE") &" CALLE: "& c2.GetString("CAT_CL_CALLE")) 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 Next
End If End If
entro = "4" entro = "4"

View File

@@ -30,6 +30,8 @@ Sub Class_Globals
Private b_desc As Button Private b_desc As Button
Private ListView2 As ListView Private ListView2 As ListView
Dim tgl As Toggle Dim tgl As Toggle
Private p_nota As Panel
Private Panel1 As Panel
End Sub End Sub
'You can add more parameters here. '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. 'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
Sub B4XPage_Appear 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 If Not(Starter.gps.GPSEnabled) Then
ToastMessageShow("Es necesario tener el GPS encendido", True) ToastMessageShow("Es necesario tener el GPS encendido", True)
StartActivity(Starter.gps.LocationSettingsIntent) StartActivity(Starter.gps.LocationSettingsIntent)

View File

@@ -33,6 +33,7 @@ Sub Class_Globals
Private p_NoVenta As Panel Private p_NoVenta As Panel
Dim tipo_venta = Subs.traeTipoVentaDeBD Dim tipo_venta = Subs.traeTipoVentaDeBD
Dim bitacora As C_Bitacora Dim bitacora As C_Bitacora
Private Panel1 As Panel
End Sub End Sub
'You can add more parameters here. '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. 'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
Sub B4XPage_Appear Sub B4XPage_Appear
Panel1.Height = Root.Height
Panel1.Width = Root.Width
Subs.centraPanel(Panel1, Root.Width)
Subs.centraPanelV(Panel1, Root.Height)
e_comm.Text="" e_comm.Text=""
tgl.Initialize tgl.Initialize
If Not(Starter.gps.GPSEnabled) Then If Not(Starter.gps.GPSEnabled) Then
ToastMessageShow("Es necesario tener el GPS encendido", True) ToastMessageShow("Es necesario tener el GPS encendido", True)
StartActivity(Starter.gps.LocationSettingsIntent) StartActivity(Starter.gps.LocationSettingsIntent)
End If End If
r_1.Checked = True r_1.Checked = False
r_2.Checked = False
r_3.Checked = False
r_4.Checked = False
End Sub End Sub
Sub GPS_LocationChanged (Location1 As Location) Sub GPS_LocationChanged (Location1 As Location)

View File

@@ -35,6 +35,7 @@ Sub Class_Globals
Private almacen As String Private almacen As String
Private p_nota As Panel Private p_nota As Panel
Dim tipo_venta As String = Subs.traeTipoVentaDeBD Dim tipo_venta As String = Subs.traeTipoVentaDeBD
Private Panel1 As Panel
End Sub End Sub
'You can add more parameters here. 'You can add more parameters here.
@@ -64,6 +65,9 @@ Sub B4XPage_Appear
ToastMessageShow("Es necesario tener el GPS encendido", True) ToastMessageShow("Es necesario tener el GPS encendido", True)
StartActivity(Starter.gps.LocationSettingsIntent) StartActivity(Starter.gps.LocationSettingsIntent)
End If 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=B4XPages.MainPage.skmt.ExecQuery("select ID_ALMACEN from CAT_ALMACEN")
C.Position =0 C.Position =0
almacen = C.GetString("ID_ALMACEN") almacen = C.GetString("ID_ALMACEN")
@@ -76,6 +80,7 @@ Sub B4XPage_Appear
C.Close 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") 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.Clear
ListView1.Height = Root.Height * 0.65
Private cs As CSBuilder Private cs As CSBuilder
If c.RowCount>0 Then If c.RowCount>0 Then
For i=0 To c.RowCount -1 For i=0 To c.RowCount -1
@@ -83,25 +88,33 @@ Sub B4XPage_Appear
c.Position=i c.Position=i
Dim label1 As Label Dim label1 As Label
label1 = ListView1.TwoLinesLayout.Label label1 = ListView1.TwoLinesLayout.Label
label1.TextSize = 15 label1.TextSize = 20
label1.TextColor = Colors.Black label1.TextColor = Colors.Black
label1.color = Colors.White label1.color = Colors.White
Private textColor As Int = Colors.black Private textColor As Int = Colors.White
If c.GetString("PE_CEDIS").Contains("PRO") Then textColor = Colors.RGB(210,105,30) 'Si es promo, cambiamos el color del texto. 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.RGB(210,105,30) '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 Dim label2 As Label
label2 = ListView1.TwoLinesLayout.SecondLabel label2 = ListView1.TwoLinesLayout.SecondLabel
label2.TextSize = 10 label2.TextSize = 16
label2.TextColor = Colors.Blue label2.TextColor = Colors.White
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)
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") folio = c.GetString("PE_FOLIO")
Next Next
End If End If
If Existe <> 0 Then 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 C.Position=0
L_CANT.Text = c.GetString("PC_NOART") L_CANT.Text = c.GetString("PE_CANT")
L_TOTAL.Text = NumberFormat2(c.GetString("PC_MONTO"), 1, 2, 2, True) ' L_TOTAL.Text = NumberFormat2(c.GetString("PC_MONTO"), 1, 2, 2, True)
c.Close 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=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 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) L_TOTAL.Text =NumberFormat2(s.GetString("TOTAL_CLIE") + s5.GetString("TOTAL_CLIE"),0,2,2,True)
s.Close s.Close
@@ -234,6 +245,8 @@ Sub borra_Click
End Sub End Sub
Sub ListView1_ItemLongClick (Position As Int, Value As Object) Sub ListView1_ItemLongClick (Position As Int, Value As Object)
Log(Subs.traeTablaProds(tipo_venta))
Log(Value)
Private X() As String = Regex.Split(" ", Value) Private X() As String = Regex.Split(" ", Value)
Log(X.Length) Log(X.Length)
Private nom As String = "" Private nom As String = ""
@@ -349,7 +362,13 @@ Sub ListView1_ItemLongClick (Position As Int, Value As Object)
Next Next
' Log(nom) ' Log(nom)
nom = nom.Trim nom = nom.Trim
If X(X.Length-1) <> ".01" Then
Private cedis As String = X(X.Length-1) 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. 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($"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) Log(c.RowCount)

View File

@@ -55,12 +55,13 @@ Sub B4XPage_Appear
StartActivity(Starter.gps.LocationSettingsIntent) StartActivity(Starter.gps.LocationSettingsIntent)
End If End If
GUARDA.Visible = False GUARDA.Visible = False
Subs.panelVisible(p_nuevoCliente, 0, 0) ' Subs.panelVisible(p_nuevoCliente,, 0)
p_nuevoCliente.Height = Root.Height ' p_nuevoCliente.Height = Root.Height
p_nuevoCliente.Width = Root.Width ' p_nuevoCliente.Width = Root.Width
Subs.centraEtiqueta(Label1, Root.Width) ' Subs.centraEtiqueta(Label1, Root.Width)
Subs.centraEtiqueta(l_sinUbicacion, Root.Width) ' Subs.centraEtiqueta(l_sinUbicacion, Root.Width)
Subs.centraPanel(p_botones, 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) ' E_NOMBRE.Left = Round(Root.Width/2)-(E_NOMBRE.Width/2)
If B4XPages.MainPage.lat_gps <> "0.0" Then If B4XPages.MainPage.lat_gps <> "0.0" Then
GUARDA.Visible = True 'Si hay ubicaccion, mostramos el boton de guardar. GUARDA.Visible = True 'Si hay ubicaccion, mostramos el boton de guardar.

View File

@@ -241,6 +241,12 @@ Sub Class_Globals
Dim bitacora As C_Bitacora Dim bitacora As C_Bitacora
Private l_version As Label Private l_version As Label
Dim contadorSubir As Int = 0 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 End Sub
'You can add more parameters here. '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 Subs.traeTipoVentaDeBD = "VENTA" Or Subs.traeTipoVentaDeBD = "ABORDO" Then
If l_ruta.Text <> "0" Then If l_ruta.Text <> "0" Then
Log(999 & "|" & l_ruta.Text & "|") Log(999 & "|" & l_ruta.Text & "|")
b_abordo.Visible = True b_abordo.Visible = False
End If End If
Else Else
b_abordo.Visible = False b_abordo.Visible = False
@@ -329,7 +335,7 @@ Private Sub B4XPage_Created (Root1 As B4XView)
'where pc_fecha = ?", Array As String(fecha) 'where pc_fecha = ?", Array As String(fecha)
c.Position=0 c.Position=0
b.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_cuantosc.Text = c.GetString("CLIENTES_DIA")
l_cuantosn.Text = b.GetString("CUANTOS") l_cuantosn.Text = b.GetString("CUANTOS")
drop = c.GetString("MONTO_DIA") / c.GetString("CLIENTES_DIA") drop = c.GetString("MONTO_DIA") / c.GetString("CLIENTES_DIA")
@@ -368,6 +374,8 @@ Sub B4XPage_Appear
p_principal.Visible = True p_principal.Visible = True
E_RUTA2.Text = "" E_RUTA2.Text = ""
p_ruta2.Visible = False p_ruta2.Visible = False
E_RUTA2.Visible = False
p_somvra_2.Visible = False
Subs.validaPromoProcterPRO3009 Subs.validaPromoProcterPRO3009
HORAINGRESO ="000000" HORAINGRESO ="000000"
Btn_Ubicar.Left = (Panel4.Width/2) - (Btn_Ubicar.Width/2) 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") b=B4XPages.MainPage.skmt.ExecQuery("select count( distinct NV_CLIENTE) as CUANTOS from noventa")
c.Position=0 c.Position=0
b.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_cuantosc.Text = c.GetString("CLIENTES_DIA")
D2=B4XPages.MainPage.skmt.ExecQuery("select COUNT(*) AS CUANTOS from PEDIDO ") D2=B4XPages.MainPage.skmt.ExecQuery("select COUNT(*) AS CUANTOS from PEDIDO ")
D2.Position = 0 D2.Position = 0
@@ -477,14 +485,14 @@ Sub B4XPage_Appear
End If End If
Log("|" & c.GetString("MONTO_DIA") & "|") Log("|" & c.GetString("MONTO_DIA") & "|")
Log("|" & c.GetString("CLIENTES_DIA") & "|") Log("|" & c.GetString("CLIENTES_DIA") & "|")
L_TICKPROM.Text = Round2((c.GetString("MONTO_DIA") / c.GetString("CLIENTES_DIA")), 2) ' L_TICKPROM.Text = Round2((c.GetString("MONTO_DIA") / c.GetString("CLIENTES_DIA")), 2)
If c.GetString("MONTO_DIA") < 4000 Then ' If c.GetString("MONTO_DIA") < 4000 Then
ImageView5.Bitmap = LoadBitmap(File.DirAssets, "tache_rojo.png") ' ImageView5.Bitmap = LoadBitmap(File.DirAssets, "tache_rojo.png")
Else if c.GetString("MONTO_DIA") > = 4000 And c.GetString("MONTO_DIA") < 6250 Then ' Else if c.GetString("MONTO_DIA") > = 4000 And c.GetString("MONTO_DIA") < 6250 Then
ImageView5.bitmap = LoadBitmap(File.DirAssets, "alerta_amarilla.png") ' ImageView5.bitmap = LoadBitmap(File.DirAssets, "alerta_amarilla.png")
Else ' Else
ImageView5.Bitmap = LoadBitmap(File.DirAssets, "palomita_verde.png") ' ImageView5.Bitmap = LoadBitmap(File.DirAssets, "palomita_verde.png")
End If ' End If
b.Close b.Close
c.Close c.Close
End If End If
@@ -533,6 +541,7 @@ Sub B4XPage_Appear
End Sub End Sub
Sub Subir_Click Sub Subir_Click
checaPedido
CARGA = "SUBIR" CARGA = "SUBIR"
P1.Visible = True P1.Visible = True
P1.BringToFront P1.BringToFront
@@ -549,6 +558,10 @@ Sub Subir_Click
PB1.Visible = False PB1.Visible = False
Resumen.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 B4XPages.MainPage.reqManager.trackInit
L_P_2.Text = "Envio de Pedidos" L_P_2.Text = "Envio de Pedidos"
@@ -585,15 +598,15 @@ Sub Subir_Click
c.Close c.Close
' PEDIO_CLIENTE ' 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 ") d=B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDOSC FROM PEDIDO_CLIENTE ")
If c.RowCount>0 Then If c.RowCount>0 Then
For i=0 To c.RowCount -1 For i=0 To c.RowCount -1
c.Position=i c.Position=i
Dim cmd As DBCommand Dim cmd As DBCommand
cmd.Initialize cmd.Initialize
cmd.Name = "insert_pedidos_GV2" 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") ) 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") B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "ins_pedidos")
Next Next
End If End If
@@ -645,6 +658,21 @@ Sub Subir_Click
End If End If
c.Close 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'") 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 If c.RowCount>0 Then
For i=0 To c.RowCount -1 For i=0 To c.RowCount -1
@@ -825,7 +853,7 @@ Sub Subir_Click
cmd.Name ="insert_drop_GV2_3" 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) 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") B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "inst_drop")
img2.Visible =True img2.Visible =False
PORCENTAJE = Round(100/ (cuantos_noventa + cuantos_pedido + cuantos_pedidosc + 1)) 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) If Starter.marcaCel <> "Sony" Then ToastMessageShow("Se Actualizaran los datos, Este proceso podria tardar hasta un minuto, gracias "& l_ruta.text , True)
End If 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("DELETE FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("LONGITUD"))
B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE GPS SET HABILITADO = (?)",Array As Object(0)) B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE GPS SET HABILITADO = (?)",Array As Object(0))
CARGA = "CARGAR" CARGA = "CARGAR"
img2.Visible =True ' img2.Visible =True
L_P_1.Visible = True L_P_1.Visible = True
S_CC.Visible = True S_CC.Visible = True
Btn_Ubicar.Visible=False Btn_Ubicar.Visible=False
@@ -930,6 +958,11 @@ Sub cargar_Click
Subs.panelVisible(P1, 0, 0) Subs.panelVisible(P1, 0, 0)
Subs.centraPanel(P1, Root.Width) Subs.centraPanel(P1, Root.Width)
Subs.centraPanelV(P1, Root.Height) Subs.centraPanelV(P1, Root.Height)
Label4.Visible = False
l_ruta.Visible = False
Label22.Visible = False
l_rutasuplencia.Visible = False
' trabajar.Visible = False ' trabajar.Visible = False
NUEVO.Visible =False NUEVO.Visible =False
BUSCA.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 kmt_info3")
B4XPages.MainPage.skmt.ExecNonQuery("delete from PROMO_ESP") B4XPages.MainPage.skmt.ExecNonQuery("delete from PROMO_ESP")
B4XPages.MainPage.skmt.ExecNonQuery("delete from cod_result") 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 hist_gest")
B4XPages.MainPage.skmt.ExecNonQuery("delete from cat_gunaprod") B4XPages.MainPage.skmt.ExecNonQuery("delete from cat_gunaprod")
B4XPages.MainPage.skmt.ExecNonQuery("delete from cat_gunaprod2") B4XPages.MainPage.skmt.ExecNonQuery("delete from cat_gunaprod2")
@@ -1027,6 +1061,11 @@ Sub cargar_Click
cmd.Parameters = Array As Object(ALMACEN, e_ruta.text) cmd.Parameters = Array As Object(ALMACEN, e_ruta.text)
B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "gunaprod2") 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.Initialize
cmd.Name = "select_HIST_ESPECIAL_GUNA" cmd.Name = "select_HIST_ESPECIAL_GUNA"
' cmd.Parameters = Array As Object(ALMACEN) ' cmd.Parameters = Array As Object(ALMACEN)
@@ -1060,6 +1099,15 @@ Sub cargar_Click
End If 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.Initialize
cmd.Name = "select_cat_paquetess_GV2" cmd.Name = "select_cat_paquetess_GV2"
cmd.Parameters = Array As Object(ALMACEN) cmd.Parameters = Array As Object(ALMACEN)
@@ -1075,6 +1123,7 @@ Sub cargar_Click
cmd.Parameters = Array As Object(e_ruta.text, ALMACEN) cmd.Parameters = Array As Object(e_ruta.text, ALMACEN)
B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "kmt_datos") B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "kmt_datos")
cmd.Initialize cmd.Initialize
cmd.Name = "select_hist_datos_GV2_2" cmd.Name = "select_hist_datos_GV2_2"
cmd.Parameters = Array As Object(e_ruta.text, ALMACEN,e_ruta.text, ALMACEN,e_ruta.text, ALMACEN) cmd.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)) B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO RUTA_SUPLENCIA(RS_RUTA) VALUES(?)",Array As String(E_RUTA2.Text))
E_RUTA2.Visible = False E_RUTA2.Visible = False
p_ruta2.Visible = False p_ruta2.Visible = False
p_somvra_2.Visible = False
cmd.Initialize cmd.Initialize
cmd.Name = "select_cat_clientes2_guna_GV2" '########################## CODIGO PARA CREDITOS #################### 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) If Starter.marcaCel <> "Sony" Then ToastMessageShow("Se Actualizaran los datos, Este proceso podria tardar hasta un minuto, gracias" , True)
End Sub End Sub
Sub JobDone(Job As HttpJob) Sub JobDone(Job As HttpJob)
B4XPages.MainPage.reqManager.trackNext(Job) B4XPages.MainPage.reqManager.trackNext(Job)
Log("JOBDONE PRINCIPAL") Log("JOBDONE PRINCIPAL")
@@ -1276,6 +1328,21 @@ Sub JobDone(Job As HttpJob)
End If End If
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 If Job.JobName = "DBRequest" Then
Dim result1 As DBResult = B4XPages.MainPage.reqManager.HandleJob(Job) Dim result1 As DBResult = B4XPages.MainPage.reqManager.HandleJob(Job)
If result1.Tag = "CHECAENCUESTA" Then 'query tag 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_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_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_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_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_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_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 #################### '########################## INICIA CODIGO PARA CREDITOS ####################
Dim CAT_CL_BCREDITO As String = records(RESULT.Columns.Get("CAT_CL_BCREDITO")) 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 #################### '########################## 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)) 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 Next
@@ -1333,7 +1403,7 @@ Sub JobDone(Job As HttpJob)
S_CC.Text = "LISTO" S_CC.Text = "LISTO"
' If Starter.marcaCel <> "Sony" Then ToastMessageShow("Catalogo Clientes Actualizados." , True) ' If Starter.marcaCel <> "Sony" Then ToastMessageShow("Catalogo Clientes Actualizados." , True)
If Listo1 =1 And Listo2 =1 And Listo3 = 1 And Listo4 = 1 Then If Listo1 =1 And Listo2 =1 And Listo3 = 1 And Listo4 = 1 Then
B4XPage_Appear ' B4XPage_Appear
img2.Visible=False img2.Visible=False
EJECUTANDO=0 EJECUTANDO=0
End If 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_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_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_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 #################### '########################## INICIA CODIGO PARA CREDITOS ####################
Dim CAT_CL_BCREDITO As String = records(RESULT.Columns.Get("CAT_CL_BCREDITO")) 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 #################### '########################## 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","","") ' 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)) 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" S_CC.Text = "LISTO"
' If Starter.marcaCel <> "Sony" Then ToastMessageShow("Catalogo Clientes Actualizados." , True) ' If Starter.marcaCel <> "Sony" Then ToastMessageShow("Catalogo Clientes Actualizados." , True)
If Listo1 =1 And Listo2 =1 And Listo3 = 1 And Listo4 = 1 Then If Listo1 =1 And Listo2 =1 And Listo3 = 1 And Listo4 = 1 Then
B4XPage_Appear ' B4XPage_Appear
img2.Visible=False img2.Visible=False
EJECUTANDO=0 EJECUTANDO=0
End If 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_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_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_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 ' 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)) ' 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 Next
Listo2=1 Listo2=1
If PB2.Progress = 0 Then If PB2.Progress = 0 Then
@@ -1704,7 +1777,7 @@ Sub JobDone(Job As HttpJob)
End If End If
' If Starter.marcaCel <> "Sony" Then ToastMessageShow("Productos Actualizados." , True) ' If Starter.marcaCel <> "Sony" Then ToastMessageShow("Productos Actualizados." , True)
If Listo1 =1 And Listo2 =1 And Listo3 = 1 And Listo4 = 1 Then If Listo1 =1 And Listo2 =1 And Listo3 = 1 And Listo4 = 1 Then
B4XPage_Appear ' B4XPage_Appear
img2.Visible=False img2.Visible=False
EJECUTANDO=0 EJECUTANDO=0
End If End If
@@ -1747,7 +1820,7 @@ Sub JobDone(Job As HttpJob)
End If End If
' If Starter.marcaCel <> "Sony" Then ToastMessageShow("Productos Actualizados." , True) ' If Starter.marcaCel <> "Sony" Then ToastMessageShow("Productos Actualizados." , True)
If Listo1 =1 And Listo2 =1 And Listo3 = 1 And Listo4 = 1 Then If Listo1 =1 And Listo2 =1 And Listo3 = 1 And Listo4 = 1 Then
B4XPage_Appear ' B4XPage_Appear
img2.Visible=False img2.Visible=False
EJECUTANDO=0 EJECUTANDO=0
End If End If
@@ -1795,11 +1868,11 @@ Sub JobDone(Job As HttpJob)
' If Starter.marcaCel <> "Sony" Then ToastMessageShow("Promociones Actualizados." , True) ' If Starter.marcaCel <> "Sony" Then ToastMessageShow("Promociones Actualizados." , True)
Listo4=1 Listo4=1
If Listo1 =1 And Listo2 =1 And Listo3 = 1 And Listo4 = 1 Then If Listo1 =1 And Listo2 =1 And Listo3 = 1 And Listo4 = 1 Then
B4XPage_Appear ' B4XPage_Appear
img2.Visible=False img2.Visible=False
EJECUTANDO=0 EJECUTANDO=0
Else If Listo4 = 1 And Listo3 = 1 And inve = 1 Then Else If Listo4 = 1 And Listo3 = 1 And inve = 1 Then
B4XPage_Appear ' B4XPage_Appear
img2.Visible=False img2.Visible=False
EJECUTANDO=0 EJECUTANDO=0
End If End If
@@ -1838,11 +1911,11 @@ Sub JobDone(Job As HttpJob)
' If Starter.marcaCel <> "Sony" Then ToastMessageShow("Promociones especiales Actualizados." , True) ' If Starter.marcaCel <> "Sony" Then ToastMessageShow("Promociones especiales Actualizados." , True)
Listo4=1 Listo4=1
If Listo1 =1 And Listo2 =1 And Listo3 = 1 And Listo4 = 1 Then If Listo1 =1 And Listo2 =1 And Listo3 = 1 And Listo4 = 1 Then
B4XPage_Appear ' B4XPage_Appear
img2.Visible=False img2.Visible=False
EJECUTANDO=0 EJECUTANDO=0
Else If Listo4 = 1 And Listo3 = 1 And inve = 1 Then Else If Listo4 = 1 And Listo3 = 1 And inve = 1 Then
B4XPage_Appear ' B4XPage_Appear
img2.Visible=False img2.Visible=False
EJECUTANDO=0 EJECUTANDO=0
End If End If
@@ -1877,11 +1950,11 @@ Sub JobDone(Job As HttpJob)
End If End If
Listo3 =1 Listo3 =1
If Listo1 =1 And Listo2 =1 And Listo3 = 1 And Listo4 = 1 Then If Listo1 =1 And Listo2 =1 And Listo3 = 1 And Listo4 = 1 Then
B4XPage_Appear ' B4XPage_Appear
img2.Visible=False img2.Visible=False
EJECUTANDO=0 EJECUTANDO=0
Else If Listo4 = 1 And Listo3 = 1 And inve = 1 Then Else If Listo4 = 1 And Listo3 = 1 And inve = 1 Then
B4XPage_Appear ' B4XPage_Appear
img2.Visible=False img2.Visible=False
EJECUTANDO=0 EJECUTANDO=0
End If End If
@@ -1913,7 +1986,7 @@ Sub JobDone(Job As HttpJob)
End If End If
' If Starter.marcaCel <> "Sony" Then ToastMessageShow("Venta historico Actualizado." , True) ' If Starter.marcaCel <> "Sony" Then ToastMessageShow("Venta historico Actualizado." , True)
If Listo1 =1 And Listo2 =1 And Listo3 = 1 And Listo4 = 1 Then If Listo1 =1 And Listo2 =1 And Listo3 = 1 And Listo4 = 1 Then
B4XPage_Appear ' B4XPage_Appear
img2.Visible=False img2.Visible=False
EJECUTANDO=0 EJECUTANDO=0
End If End If
@@ -2295,6 +2368,7 @@ Log("--------> BORRAMOS")
B4XPages.MainPage.skmt.ExecNonQuery("delete from pedido_cliente") B4XPages.MainPage.skmt.ExecNonQuery("delete from pedido_cliente")
B4XPages.MainPage.skmt.ExecNonQuery("delete from pedido") B4XPages.MainPage.skmt.ExecNonQuery("delete from pedido")
B4XPages.MainPage.skmt.ExecNonQuery("delete from noventa") 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 PLAN_LEALTAD")
B4XPages.MainPage.skmt.ExecNonQuery("delete from clie_act") B4XPages.MainPage.skmt.ExecNonQuery("delete from clie_act")
B4XPages.MainPage.skmt.ExecNonQuery("delete from kmt_info3") B4XPages.MainPage.skmt.ExecNonQuery("delete from kmt_info3")
@@ -2371,6 +2445,7 @@ Sub e_ruta_EnterPressed
e_ruta.Text = "" e_ruta.Text = ""
E_RUTA2.Visible = True E_RUTA2.Visible = True
p_ruta2.Visible = True p_ruta2.Visible = True
p_somvra_2.Visible = False
End If End If
End Sub End Sub
@@ -2448,9 +2523,12 @@ Sub B_OK_PAS_Click
Resumen.Visible= True Resumen.Visible= True
img2.Visible=False img2.Visible=False
CARGA = "" CARGA = ""
Subs.panelVisible(p_principal, 0, 0) ' Subs.panelVisible(p_principal, 0, 0)
E_RUTA2.Text = "" E_RUTA2.Text = ""
e_ruta.Text = "" e_ruta.Text = ""
Label4.Visible = True
l_ruta.Visible = True
B4XPage_Appear
Else If CARGA = "SUBIR" And S_CP.Text = "ERROR" Then Else If CARGA = "SUBIR" And S_CP.Text = "ERROR" Then
Msgbox("Tiene que subir de nuevo la información","Atención") 'ignore Msgbox("Tiene que subir de nuevo la información","Atención") 'ignore
P1.Visible = False P1.Visible = False
@@ -2460,7 +2538,7 @@ Sub B_OK_PAS_Click
connecta.Visible=True connecta.Visible=True
Resumen.Visible= True Resumen.Visible= True
img2.Visible=False 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 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 RES = Msgbox2("Seguro que desa abortar el proceso","Cierre", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) 'ignore
If RES = DialogResponse.POSITIVE Then If RES = DialogResponse.POSITIVE Then
@@ -2471,7 +2549,7 @@ Sub B_OK_PAS_Click
connecta.Visible=True connecta.Visible=True
Resumen.Visible= True Resumen.Visible= True
img2.Visible=False img2.Visible=False
Subs.panelVisible(p_principal, 0, 0) ' Subs.panelVisible(p_principal, 0, 0)
ExitApplication ExitApplication
End If End If
End If End If
@@ -2484,7 +2562,11 @@ Sub B_OK_PAS_Click
connecta.Visible=True connecta.Visible=True
Resumen.Visible= True Resumen.Visible= True
img2.Visible=False 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("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)) 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 If E_RUTA2.Visible = True Then
@@ -2518,6 +2600,7 @@ Sub B_OK_PAS_Click
Next Next
End If End If
c13.Close c13.Close
checaPedido
Else if CARGA = "CARGAR" And (S_CP.Text <> "LISTO" Or S_CC.Text <> "LISTO" Or S_CH.Text <> "LISTO") Then 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 RES = Msgbox2("Seguro que desa abortar el proceso","Cierre", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) 'ignore
If RES = DialogResponse.POSITIVE Then If RES = DialogResponse.POSITIVE Then
@@ -2528,7 +2611,8 @@ Sub B_OK_PAS_Click
connecta.Visible=True connecta.Visible=True
Resumen.Visible= True Resumen.Visible= True
img2.Visible=False 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 kmt_info3")
B4XPages.MainPage.skmt.ExecNonQuery("delete from cod_result") B4XPages.MainPage.skmt.ExecNonQuery("delete from cod_result")
B4XPages.MainPage.skmt.ExecNonQuery("delete from hist_gest") 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 Subs.traeTipoVentaDeBD = "VENTA" Or Subs.traeTipoVentaDeBD = "ABORDO" Then
If l_ruta.Text <> "0" Then If l_ruta.Text <> "0" Then
Log(888 & "|" & l_ruta.Text & "|") Log(888 & "|" & l_ruta.Text & "|")
b_abordo.Visible = True b_abordo.Visible = False
End If End If
Else Else
b_abordo.Visible = False b_abordo.Visible = False
@@ -2590,7 +2674,7 @@ Sub CARGA_Click
End Sub End Sub
Sub resdia_Click Sub resdia_Click
p_principal.Visible = False ' p_principal.Visible = False
Btn_Ubicar.Visible=False Btn_Ubicar.Visible=False
SCROLL_RESDIA.Visible = True SCROLL_RESDIA.Visible = True
SCROLL_RESDIA.Panel.LoadLayout("RESDIA") SCROLL_RESDIA.Panel.LoadLayout("RESDIA")
@@ -2697,7 +2781,7 @@ Sub resdia_Click
Else if ru_o.RowCount >=1 Then Else if ru_o.RowCount >=1 Then
Private rutOr As String = ru_o.GetString("PE_RUTA") Private rutOr As String = ru_o.GetString("PE_RUTA")
Label2.Text = "Ruta " & rutOr 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 End If
ru_o.Close ru_o.Close
@@ -2710,7 +2794,7 @@ Sub resdia_Click
Private RuSu As String = ru_s.GetString("PE_RUTA") Private RuSu As String = ru_s.GetString("PE_RUTA")
Label4.Text = "Ruta " & RuSu Label4.Text = "Ruta " & RuSu
ru_s.Position = 0 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 End If
ru_s.Close ru_s.Close
@@ -2862,6 +2946,8 @@ Sub B_COMM_Click
SCROLL_RESDIA.Panel.Height = Panel_C.Height SCROLL_RESDIA.Panel.Height = Panel_C.Height
Panel4.Visible = False Panel4.Visible = False
Panel_C.Visible = True Panel_C.Visible = True
Panel_C.Width = Root.Width * 0.90
' trabajar.Visible = False ' trabajar.Visible = False
NUEVO.Visible =False NUEVO.Visible =False
@@ -2870,7 +2956,7 @@ Sub B_COMM_Click
Subir.Visible=False Subir.Visible=False
cargar.Visible=False cargar.Visible=False
Resumen.Visible= False Resumen.Visible= False
'
If l_ruta.Text <> 0 Then 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") 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 If c.RowCount > 0 Then
@@ -2889,6 +2975,7 @@ Sub B_COMM_Click
L_TOTAL_VIVE.Text = 0 L_TOTAL_VIVE.Text = 0
L_TOTAL_COMIS.Text = 0 L_TOTAL_COMIS.Text = 0
End If End If
End Sub End Sub
Sub B_OK_COMISS_Click Sub B_OK_COMISS_Click
@@ -3030,3 +3117,34 @@ End Sub
Private Sub P1_Click Private Sub P1_Click
End Sub 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

File diff suppressed because it is too large Load Diff

View File

@@ -4,23 +4,425 @@ ModulesStructureVersion=1
Type=Class Type=Class
Version=11.5 Version=11.5
@EndOfDesignText@ @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 Sub Class_Globals
Private Root As B4XView 'ignore Private Root As B4XView 'ignore
Private xui As XUI Private xui As XUI
Private l_promoDesc As Label Private l_promoDesc As Label
Private lv_prodsFijos As ListView Private lv_prodsFijos As ListView
Private clv_prodsVariabes As CustomListView Private clv_prodsVariabes, clv_prodsVariabes2 As CustomListView
Private l_prodsFijos As Label Private l_prodsFijos As Label
Private l_prodsVariables As Label Private l_prodsVariables, l_prodsVariables2 As Label
Private i_prod As ImageView Private i_prod As ImageView
Private l_prodX As Label 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 et_pCant As EditText
Private b_prodMas As Button Private b_prodMas, b_prodMas2 As Button
Private l_pCant As Label Private l_pCant As Label
Dim totalProds As Int = 0 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 prodsVarReq_ As Int = 0
Dim prodsVarReq2 As Int = 0 Dim prodsVarReq2 As Int = 0
Dim prodsVarReq2_ As Int = 0
Dim totalCompra As Float = 0 Dim totalCompra As Float = 0
Dim prodsFijosTot As Float = 0 Dim prodsFijosTot As Float = 0
Dim tpf As Int = 0 Dim tpf As Int = 0
@@ -37,8 +439,12 @@ Sub Class_Globals
Private et_promoCant As EditText Private et_promoCant As EditText
Private l_promosCant As Label Private l_promosCant As Label
Private b_continuar As Button Private b_continuar As Button
Private p_prodsVariables As Panel Private p_prodsVariables, p_prodsVariables2 As Panel
Dim laPromo = "", elCliente = "" As String Dim laPromo = "", elCliente = "" As String
Dim prodsPedidoActual As String
Dim montoPedidoActual As String
Dim promosMap As Map
Dim su As StringUtils
End Sub End Sub
'You can add more parameters here. 'You can add more parameters here.
@@ -51,44 +457,80 @@ Private Sub B4XPage_Created (Root1 As B4XView)
Root = Root1 Root = Root1
'load the layout to Root 'load the layout to Root
Root.LoadLayout("promociones") Root.LoadLayout("promociones")
p_promociones.Top=0
p_promociones.Left=0
p_promociones.Height= Root.Height p_promociones.Height= Root.Height
p_promociones.Width= Root.Width p_promociones.Width= Root.Width
promosMap.Initialize
p_promociones.Top=0
p_promociones.Left=0
b_terminar1.Left = Root.Width - (b_terminar1.Width + 10) b_terminar1.Left = Root.Width - (b_terminar1.Width + 10)
b_continuar.Left = Root.Width - b_terminar1.Width - (b_continuar.Width + 20) b_continuar.Left = Root.Width - b_terminar1.Width - (b_continuar.Width + 20)
Subs.centraPanel(p_promociones,Root.Width)
End Sub End Sub
Sub B4XPage_Appear Sub B4XPage_Appear
' LogColor(B4XPages.MainPage.productos.prodsMap, Colors.blue)
prodsIds.Initialize prodsIds.Initialize
prodsCants.Initialize prodsCants.Initialize
prodsPrecios.Initialize prodsPrecios.Initialize
prodsIds2.Initialize prodsIds2.Initialize
prodsCants2.Initialize prodsCants2.Initialize
prodsPrecios2.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) If laPromo <> "" Then muestraPromo(laPromo, elCliente)
Log(laPromo)
End Sub End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage. '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) Sub muestraPromo(promo As String, cliente As String)
Private thisLog As Boolean = False Private thisLog As Boolean = False
Log(promo) ' If thisLog Then Log(promo)
estaPromo = promo estaPromo = promo
esteCliente = cliente esteCliente = cliente
Private mp As Map = Subs.traePromo(promo, cliente) Private mp As Map = Subs.traePromo(promo, cliente)
Private prodsPromo As Map = mp.Get("productos") 'Los productos de la promoción. Private prodsPromo As Map = mp.Get("productos") 'Los productos de la promoción.
Private invDispPromo As Map = Subs.traemosInventarioDisponibleParaPromo(promo) Private invDispPromo As Map = Subs.traemosInventarioDisponibleParaPromo(promo)
' If thisLog Then Log($"invDispPromo=${invDispPromo}"$) ' If thisLog Then Log($"invDispPromo=${invDispPromo}"$)
Log("Max promos por inv de prods FIJOS: " & Subs.revisaMaxPromosProdsFijosPorInventario(mp)) If thisLog Then 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 VARIABLES: " & Subs.revisaMaxPromosProdsVariablesPorInventario(mp))
maxCantPromos = Subs.revisaMaxPromosProdsVariablesPorInventario(mp) maxCantPromos = Subs.revisaMaxPromosProdsVariablesPorInventario(mp)
et_promoCant.Text = 1 et_promoCant.Text = 1
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 l_promosCant.text = "Max promos: " & maxCantPromos
End If
Private cs As CSBuilder Private cs As CSBuilder
cs.Initialize cs.Initialize
If thisLog Then Log(mp) If thisLog Then Log(mp)
If thisLog Then Log(prodsPromo) 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. 'Ponemos la promo y descripción.
' Dim desc As String = $"Promoción: ${promo}${CRLF}${mp.Get("descripcion")}"$ ' 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 ' 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. 'Ponemos el texto en las etiquetas de la cantidad de productos.
' Dim pf As List = mp.Get("prodsFijos") ' Dim pf As List = mp.Get("prodsFijos")
Dim pv As List = mp.Get("prodsVariables") Dim pv As List = mp.Get("prodsVariables")
Dim pv2 As List = mp.Get("prodsVariables2")
If thisLog Then Log(mp) If thisLog Then Log(mp)
tpf = 0 tpf = 0
For Each pfp As Int In mp.Get("prodsFijosPiezas").As(List) 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 ' tpf = tpf * maxCantPromos
l_prodsFijos.Text = $"Productos fijos (${tpf})"$ l_prodsFijos.Text = $"Productos fijos (${tpf})"$
prodsVarReq = mp.Get("prodsVariablesRequeridos") prodsVarReq = mp.Get("prodsVariablesRequeridos")
prodsVarReq2 = prodsVarReq prodsVarReq_ = prodsVarReq
prodsVarReq2 = mp.Get("prodsVariables2Requeridos")
prodsVarReq2_ = prodsVarReq2
' Log("========= " & prodsVarReq2)
l_prodsVariables.Text = $"Productos variables requeridos: ${prodsVarReq}"$ l_prodsVariables.Text = $"Productos variables requeridos: ${prodsVarReq}"$
l_prodsVariables2.Text = $"Productos variables2 requeridos: ${prodsVarReq2}"$
If prodsVarReq = 0 Then If prodsVarReq = 0 Then
p_prodsVariables.Visible = False p_prodsVariables.Visible = False
Else Else
@@ -132,20 +579,61 @@ Sub muestraPromo(promo As String, cliente As String)
' Dim jpeg() As Byte ' Dim jpeg() As Byte
'Llenamos el listview con los productos variables. '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) If thisLog Then Log("invDisp=" & invDispPromo)
clv_prodsVariabes.Clear clv_prodsVariabes.Clear
clv_prodsVariabes2.Clear
For Each p As String In pv 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. 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 ' c2.Position=i
' jpeg = c2.GetBlob("CAT_GP_IMG") ' jpeg = c2.GetBlob("CAT_GP_IMG")
' ins.InitializeFromBytesArray(jpeg, 0, jpeg.Length) ' ins.InitializeFromBytesArray(jpeg, 0, jpeg.Length)
' bmp.Initialize2(ins) ' bmp.Initialize2(ins)
Private thisProd As Map = prodsPromo.Get(p) Private thisProd As Map = prodsPromo.Get(p)
If thisLog Then Log(thisProd) 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_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 End If
Next 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_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_terminar1.Visible = False
b_continuar.Visible = False b_continuar.Visible = False
cuentaProds cuentaProds
@@ -168,7 +656,7 @@ Sub agregaFijosALista(mp As Map, addListItem As Boolean)
prodsCants.Add(et_promoCant.text.As(Int)) prodsCants.Add(et_promoCant.text.As(Int))
prodsPrecios.Add(0) prodsPrecios.Add(0)
For Each p As String In pf 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 If mp.Get("prodsFijosPiezas").As(List).Size > 0 Then
Private tpi As String = mp.Get("prodsFijosPiezas").As(List).Get(cont) Private tpi As String = mp.Get("prodsFijosPiezas").As(List).Get(cont)
Else 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 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("") Dim p As B4XView = xui.CreatePanel("")
p.SetLayoutAnimated(0, 0, 0, Width, Height) p.SetLayoutAnimated(0, 0, 0, Width, Height)
p.LoadLayout("prodItem") p.LoadLayout("prodItem1")
l_prodX.TextSize = 12 l_prodX.TextSize = 15
l_prodX.Text = Text 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.Text = 0
l_pCant.Tag = precioU&"|"&inv&"|"&prodId l_pCant.Tag = precioU&"|"&inv&"|"&prodId
et_pCant.Tag = precioU&"|"&inv&"|"&prodId et_pCant.Tag = precioU&"|"&inv&"|"&prodId
et_pCant.BringToFront et_pCant.BringToFront
' i_prod.Bitmap = img ' i_prod.Bitmap = img
p.Height = p_prods.Height
Return p Return p
End Sub End Sub
@@ -211,23 +726,89 @@ Sub b_prodMenos_Click
Dim pnl0 As B4XView = clv_prodsVariabes.GetPanel(index) Dim pnl0 As B4XView = clv_prodsVariabes.GetPanel(index)
Dim pnl As B4XView = pnl0.GetView(0) Dim pnl As B4XView = pnl0.GetView(0)
' Dim laCant As B4XView = pnl.GetView(5) ' 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($"precio|stock:${laCant.tag}"$)
laCant.Text = $"$1.0{laCant.Text-1}"$ laCant.Text = $"$1.0{laCant.Text-1}"$
If laCant.Text < 0 Then laCant.Text = 0 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 cuentaProds
' l_total.Text = $"Total Compra: $$1.2{totalCompra}"$ ' l_total.Text = $"Total Compra: $$1.2{totalCompra}"$
' l_totProds.text = $"Total Productos: ${totalProds}"$ ' l_totProds.text = $"Total Productos: ${totalProds}"$
End Sub End Sub
Sub b_prodMas_Click Sub b_prodMas_Click
If totalProds < prodsVarReq + tpf Then If prodsVar1 < prodsVarReq Then
Dim index As Int = clv_prodsVariabes.GetItemFromView(Sender) Dim index As Int = clv_prodsVariabes.GetItemFromView(Sender)
Dim pnl0 As B4XView = clv_prodsVariabes.GetPanel(index) Dim pnl0 As B4XView = clv_prodsVariabes.GetPanel(index)
Dim pnl As B4XView = pnl0.GetView(0) Dim pnl As B4XView = pnl0.GetView(0)
' Dim laCant As B4XView = pnl.GetView(5) ' 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($"precio|stock:${laCant.tag}"$)
' Log($"Indice: ${index}, cant:${laCant.Text+1}, precioU: ${laCant.tag}"$) ' Log($"Indice: ${index}, cant:${laCant.Text+1}, precioU: ${laCant.tag}"$)
Dim esteTag As List = Regex.Split("\|", 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}"$ laCant.Text = $"$1.0{laCant.Text+1}"$
cuentaProds cuentaProds
End If 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 End If
' Log($"Total Prods: ${totalProds}, Total Compra: $$1.2{totalCompra}"$) ' Log($"Total Prods: ${totalProds}, Total Compra: $$1.2{totalCompra}"$)
' l_total.Text = $"Total Compra: $$1.2{totalCompra}"$ ' l_total.Text = $"Total Compra: $$1.2{totalCompra}"$
' l_totProds.text = $"Total Productos: ${totalProds}"$ ' l_totProds.text = $"Total Productos: ${totalProds}"$
End Sub End Sub
Private Sub et_pCant_TextChanged (Old As String, New As String) Private Sub et_pCant_TextChanged (Old As String, New As String)
' LogColor("txt changed",Colors.Magenta) ' LogColor("txt changed",Colors.Magenta)
cuentaProds cuentaProds
End Sub End Sub
Sub cuentaProds Sub cuentaProds
Log("=====================================================") ' Log("=====================================================")
Log("Inicia cuentaProds") ' Log("Inicia cuentaProds")
Private thisLog As Boolean = False 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 prodsIds2.Clear
prodsCants2.Clear prodsCants2.Clear
prodsPrecios2.Clear prodsPrecios2.Clear
lv_prodsFijos.Clear lv_prodsFijos.Clear
prodsVar1 = 0
prodsVar2 = 0
agregaFijosALista(Subs.traePromo(estaPromo, esteCliente), True) agregaFijosALista(Subs.traePromo(estaPromo, esteCliente), True)
' Log(prodsIds) ' Log(prodsIds)
Private tcpf As Float = 0 'Total de compra de productos fijos. 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))}"$) 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)) tcpf = tcpf + (prodsPrecios.Get(pf) * prodsCants.Get(pf))
Next Next
' Log("Total compra pordsFijos = " & tcpf) ' Log("Total compra prodsFijos = " & tcpf)
totalCompra = tcpf totalCompra = tcpf
totalProds = tpf 'Cantidad total de productos fijos. totalProds = tpf 'Cantidad total de productos fijos.
'Variables1
For i = 0 To clv_prodsVariabes.GetSize - 1 For i = 0 To clv_prodsVariabes.GetSize - 1
Private p0 As B4XView = clv_prodsVariabes.GetPanel(i) Private p0 As B4XView = clv_prodsVariabes.GetPanel(i)
Private p As B4XView = p0.GetView(0) 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 If cant1.Text = "" Then cant1.Text = 0
totalProds = totalProds + cant1.Text totalProds = totalProds + cant1.Text
prodsVar1 = prodsVar1 + cant1.Text
Private esteTag As List = Regex.Split("\|", cant1.Tag) Private esteTag As List = Regex.Split("\|", cant1.Tag)
If cant1.Text > esteTag.Get(1) Then cant1.Text = esteTag.Get(1) If cant1.Text > esteTag.Get(1) Then cant1.Text = esteTag.Get(1)
If cant1.Text > 0 Then If cant1.Text > 0 Then
Log(esteTag.Get(2) & "|" & cant1.Text) ' Log(esteTag.Get(2) & "|" & cant1.Text)
totalCompra = totalCompra + (esteTag.get(0) * cant1.text) totalCompra = totalCompra + (esteTag.get(0) * cant1.text)
If thisLog Then Log($"Cant: ${cant1.Text}, Suma: ${totalCompra}"$) If thisLog Then Log($"Cant: ${cant1.Text}, Suma: ${totalCompra}"$)
prodsIds2.Add(esteTag.Get(2)) prodsIds2.Add(esteTag.Get(2))
prodsCants2.Add(cant1.Text) prodsCants2.Add(cant1.Text)
prodsPrecios2.Add(esteTag.get(0)) prodsPrecios2.Add(esteTag.get(0))
End If 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_total.Text = $"Total: $$1.2{totalCompra}"$
l_totProds.text = $"Productos: ${totalProds}"$ l_totProds.text = $"Productos: ${totalProds}"$
Next 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}"$) If thisLog Then Log($"Total Prods: ${totalProds}, Total: $$1.2{totalCompra}"$)
l_total.Text = $"Total: $$1.2{totalCompra}"$ l_total.Text = $"Total: $$1.2{totalCompra}"$
l_totProds.text = $"Productos: ${totalProds}"$ 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") ' Log("INCOMPLETA")
b_terminar1.Visible = False b_terminar1.Visible = False
b_continuar.Visible = False b_continuar.Visible = False
@@ -304,7 +915,7 @@ Sub cuentaProds
End If End If
If thisLog Then LogColor($"${prodsIds}${CRLF}${prodsCants}${CRLF}${prodsPrecios}"$, Colors.blue) If thisLog Then LogColor($"${prodsIds}${CRLF}${prodsCants}${CRLF}${prodsPrecios}"$, Colors.blue)
If thisLog Then LogColor($"${prodsIds2}${CRLF}${prodsCants2}${CRLF}${prodsPrecios2}"$, Colors.Magenta) 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 End Sub
Private Sub et_pCant_FocusChanged (HasFocus As Boolean) 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 et_promoCant.Text = et_promoCant.Text.As(Int) - 1
End If End If
l_prodsFijos.Text = $"Productos fijos (${tpf2 * et_promoCant.Text.As(Int)})"$ 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) 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}, "$) Log($"Max promos=${et_promoCant.Text.As(Int)}, Prods fijos=${tpf}, "$)
cuentaProds cuentaProds
End Sub End Sub
Private Sub b_promoMas_Click 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 If et_promoCant.Text < maxCantPromos Then
et_promoCant.Text = et_promoCant.Text.As(Int) + 1 et_promoCant.Text = et_promoCant.Text.As(Int) + 1
l_prodsFijos.Text = $"Productos fijos (${tpf2 * et_promoCant.Text.As(Int)})"$ 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) 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}, "$) Log($"Max promos=${et_promoCant.Text.As(Int)}, Prods fijos=${tpf}, "$)
End If End If
If et_promoCant.text > maxCantPromos Then et_promoCant.Text = maxCantPromos If et_promoCant.text > maxCantPromos Then et_promoCant.Text = maxCantPromos
@@ -340,39 +977,55 @@ End Sub
Private Sub b_terminar1_Click Private Sub b_terminar1_Click
cuentaProds cuentaProds
Log("====================================================================") Log("====================================================================")
' Log($"${prodsIds}${CRLF}${prodsCants}${CRLF}${prodsPrecios}"$)
For t = 0 To prodsIds.Size - 1 'Guardamos los productos fijos de la promocion en pedido. 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)) 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 Next
For t = 0 To prodsIds2.Size - 1 'Guardamos los productos variables de la promocion en pedido. 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)) 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 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 lv_prodsFijos.Clear
B4XPages.MainPage.bTerminarClicked = True B4XPages.MainPage.bTerminarClicked = True
B4XPages.ShowPage("Cliente") B4XPages.ShowPage("productos")
B4XPages.MainPage.productos.b_terminar1_Click
End Sub End Sub
Private Sub b_continuar_Click Private Sub b_continuar_Click
cuentaProds cuentaProds
Log("====================================================================") Log("====================================================================")
Log($"${prodsIds}${CRLF}${prodsCants}${CRLF}${prodsPrecios}"$)
For t = 0 To prodsIds.Size - 1 'Guardamos los productos fijos de la promocion en pedido. 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)) Private pn As String = Subs.traeProdNombre(prodsIds.Get(t))
LogColor(pn,Colors.Red) 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)
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 Next
Log(prodsIds2)
For t = 0 To prodsIds2.Size - 1 'Guardamos los productos variables de la promocion en pedido. 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)) Private pn As String = Subs.traeProdNombre(prodsIds2.Get(t))
LogColor(pn,Colors.Green) 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)
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 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 lv_prodsFijos.Clear
' Activity_KeyPress(KeyCodes.KEYCODE_BACK) ' Activity_KeyPress(KeyCodes.KEYCODE_BACK)
' CallSubDelayed2(productos, "Activity_KeyPress", KeyCodes.KEYCODE_BACK) ' CallSubDelayed2(productos, "Activity_KeyPress", KeyCodes.KEYCODE_BACK)

View File

@@ -16,6 +16,8 @@ Sub Class_Globals
Dim b_noventa As Button Dim b_noventa As Button
Dim nombre_boton As String Dim nombre_boton As String
Dim STIME As String Dim STIME As String
Private L_ventanoventa As Label
End Sub End Sub
'You can add more parameters here. 'You can add more parameters here.
@@ -29,7 +31,7 @@ Private Sub B4XPage_Created (Root1 As B4XView)
'load the layout to Root 'load the layout to Root
ruta = File.DirInternal ruta = File.DirInternal
Root.LoadLayout("ticketsdia") 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 If File.Exists(ruta, "kmt.db") = False Then
File.Copy(File.DirAssets, "kmt.db", ruta, "kmt.db") File.Copy(File.DirAssets, "kmt.db", ruta, "kmt.db")
End If End If
@@ -38,14 +40,20 @@ Private Sub B4XPage_Created (Root1 As B4XView)
If c.RowCount>0 Then If c.RowCount>0 Then
For i=0 To c.RowCount -1 For i=0 To c.RowCount -1
c.Position=i c.Position=i
Dim label1 As Label Dim Label1 As Label
label1 = ListView1.TwoLinesLayout.Label Label1 = ListView1.TwoLinesLayout.Label
label1.TextSize = 10 Label1.TextSize = 20
label1.TextColor = Colors.Black Label1.TextColor = Colors.White
Dim label2 As Label Dim label2 As Label
label2 = ListView1.TwoLinesLayout.SecondLabel label2 = ListView1.TwoLinesLayout.SecondLabel
label2.TextSize = 15 label2.TextSize = 20
label2.TextColor = Colors.Blue 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")) ListView1.AddTwoLines(c.GetString("PC_CLIENTE"),"Cantidad #"& c.GetString("PC_NOART")& " SubTotal $"& c.GetString("PC_MONTO"))
Next Next
End If End If
@@ -55,39 +63,82 @@ End Sub
Sub B4XPage_Appear Sub B4XPage_Appear
nombre_boton = "NOVENTA" nombre_boton = "NOVENTA"
L_ventanoventa.Text = "Clientes con venta"
ListView1.Clear
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") 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 ListView1.Clear
If c.RowCount>0 Then If c.RowCount>0 Then
For i=0 To c.RowCount -1 For i=0 To c.RowCount -1
c.Position=i c.Position=i
'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")) 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) LogColor(s3.RowCount,Colors.Yellow)
If s3.RowCount > 0 Then 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 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 s5.Position = 0
Private suma As Float =NumberFormat2( s.GetString("TOTAL_CLIE") + s5.GetString("TOTAL_CLIE"),0,2,2,False)
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
Private suma As Float = NumberFormat2( s.GetString("TOTAL_CLIE"),0,2,2,False)
s.Close
End If
Dim label1 As Label Dim label1 As Label
label1 = ListView1.TwoLinesLayout.Label label1 = ListView1.TwoLinesLayout.Label
label1.TextSize = 15 label1.TextSize = 20
label1.TextColor = Colors.Black label1.TextColor = Colors.White
Dim label2 As Label Dim label2 As Label
label2 = ListView1.TwoLinesLayout.SecondLabel label2 = ListView1.TwoLinesLayout.SecondLabel
label2.TextSize = 10 label2.TextSize = 20
label2.TextColor = Colors.Blue label2.TextColor = Colors.White
ListView1.AddTwoLines(c.GetString("PC_CLIENTE"),c.GetString("NOMBRE") &" Cantidad #"& c.GetString("PC_NOART")& " SubTotal $"& NumberFormat2(suma,0,2,2,False)) 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 Next
End If End If
c.Close c.Close
@@ -127,7 +178,8 @@ Sub b_noventa_Click
If nombre_boton = "NOVENTA" Then If nombre_boton = "NOVENTA" Then
nombre_boton = "VENTA" nombre_boton = "VENTA"
b_noventa.Text ="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 ListView1.Clear
If c.RowCount>0 Then If c.RowCount>0 Then
For i=0 To c.RowCount -1 For i=0 To c.RowCount -1
@@ -146,21 +198,73 @@ Sub b_noventa_Click
Else Else
nombre_boton = "NOVENTA" nombre_boton = "NOVENTA"
b_noventa.Text ="NO VENTA" 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 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 If c.RowCount>0 Then
For i=0 To c.RowCount -1 For i=0 To c.RowCount -1
c.Position=i 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, 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 Dim label1 As Label
label1 = ListView1.TwoLinesLayout.Label label1 = ListView1.TwoLinesLayout.Label
label1.TextSize = 15 label1.TextSize = 20
label1.TextColor = Colors.Black label1.TextColor = Colors.White
Dim label2 As Label Dim label2 As Label
label2 = ListView1.TwoLinesLayout.SecondLabel label2 = ListView1.TwoLinesLayout.SecondLabel
label2.TextSize = 10 label2.TextSize = 20
label2.TextColor = Colors.Blue label2.TextColor = Colors.White
ListView1.AddTwoLines(c.GetString("PC_CLIENTE"),c.GetString("NOMBRE") &" Cantidad #"& c.GetString("PC_NOART")& " SubTotal $"& c.GetString("PC_MONTO")) 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 Next
End If End If
c.Close c.Close

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
B4A/Files/contrasena.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 293 B

BIN
B4A/Files/fondo-rojo.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 192 KiB

BIN
B4A/Files/fondo-rojo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 192 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
B4A/Files/proditem1.bal Normal file

Binary file not shown.

BIN
B4A/Files/proditem_.bal Normal file

Binary file not shown.

Binary file not shown.

BIN
B4A/Files/productos_.bal Normal file

Binary file not shown.

Binary file not shown.

BIN
B4A/Files/promociones_.bal Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
B4A/Files/usuario.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 295 B

File diff suppressed because one or more lines are too long

View File

@@ -79,9 +79,9 @@ ModuleClosedNodes3=
ModuleClosedNodes4= ModuleClosedNodes4=
ModuleClosedNodes5= ModuleClosedNodes5=
ModuleClosedNodes6= ModuleClosedNodes6=
ModuleClosedNodes7=5,6,8,9,10,11 ModuleClosedNodes7=6,8,9,10,11
ModuleClosedNodes8= ModuleClosedNodes8=
ModuleClosedNodes9= 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 SelectedBuild=0
VisibleModules=25,2,14,26,5,10,15,11,20,19 VisibleModules=25,2,14,26,5,10,11,20,19,16

View File

@@ -19,7 +19,7 @@ Sub Process_Globals
Public FLP As FusedLocationProvider Public FLP As FusedLocationProvider
' Private flpStarted As Boolean ' Private flpStarted As Boolean
Dim reqManager As DBRequestManager 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 server As String = "http://10.0.0.205:1782"
Dim Timer1 As Timer Dim Timer1 As Timer
Dim Interval As Int = 300 Dim Interval As Int = 300
@@ -40,6 +40,7 @@ Sub Process_Globals
Dim idCliente As String = "" Dim idCliente As String = ""
Dim encuesta As String = 0 Dim encuesta As String = 0
Public fFileProvider As FileProvider Public fFileProvider As FileProvider
Dim tabla As String
End Sub End Sub
Sub Service_Create Sub Service_Create

View File

@@ -45,6 +45,15 @@ Sub getPhnId As String 'ignore
Return devModel Return devModel
End Sub 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 'Centra un listview dentro de un elemento superior
Sub centraListView(elemento As ListView, anchoElementoSuperior As Int) 'ignore Sub centraListView(elemento As ListView, anchoElementoSuperior As Int) 'ignore
elemento.Left = Round(anchoElementoSuperior/2)-(elemento.Width/2) elemento.Left = Round(anchoElementoSuperior/2)-(elemento.Width/2)
@@ -700,6 +709,86 @@ Sub traeRuta As String 'ignore
Return r Return r
End Sub 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 Sub traeRutaBitacora As String 'ignore
Private c As Cursor Private c As Cursor
Private r As String Private r As String
@@ -785,82 +874,82 @@ Sub guardaProducto(cedis As String, costoU As String, cant As String, nombre As
End Sub End Sub
'Regresa un mapa con la información de la promo. ''Regresa un mapa con la información de la promo.
'Regresa: {id, maxXcliente, maxRecurrente, maxPromos, historico, ''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. '' 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. '' 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. '' prodsFijos={idProducto,idProducto} 'Lista con los ids de los productos fijos.
' prodsVariables={idProducto,idProducto} 'Lista con los ids de los productos variables. '' prodsVariables={idProducto,idProducto} 'Lista con los ids de los productos variables.
' resultado="OK" 'Ok si existe la promocion. '' resultado="OK" 'Ok si existe la promocion.
' prodsVariablesRequeridos=5} 'Cantidad de productos variables requeridos para la promoción. '' prodsVariablesRequeridos=5} 'Cantidad de productos variables requeridos para la promoción.
Sub traePromo(promo As String, cliente As String) As Map 'Sub traePromo(promo As String, cliente As String) As Map
LogColor($"TRAE PROMO = ${promo}"$, Colors.Red) ' LogColor($"TRAE PROMO = ${promo}"$, Colors.Red)
Private inicioContador As String = DateTime.Now ' 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 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 siHistorico As String = 0
Private promoMap As Map ' Private promoMap As Map
Private prodsFijos, prodsFijosPrecios, prodsFijosPiezas, prodsVariables As List ' Private prodsFijos, prodsFijosPrecios, prodsFijosPiezas, prodsVariables As List
promoMap.Initialize ' promoMap.Initialize
prodsFijos.Initialize ' prodsFijos.Initialize
prodsFijosPrecios.Initialize ' prodsFijosPrecios.Initialize
prodsFijosPiezas.Initialize ' prodsFijosPiezas.Initialize
prodsVariables.Initialize ' prodsVariables.Initialize
c.Position = 0 ' 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")) ' 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 = 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 ' c.Position = 0
If c.GetString("hist") > 0 Then siHistorico = 1 ' If c.GetString("hist") > 0 Then siHistorico = 1
promoMap.Put("historico", siHistorico) ' 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 & "'") '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 = B4XPages.MainPage.skmt.ExecQuery("Select * from CAT_DETALLES_PAQ where CAT_DP_ID = '"& promo & "' order by cat_dp_tipo asc")
c.Position = 0 ' c.Position = 0
If c.RowCount > 0 Then ' If c.RowCount > 0 Then
Private prods, tipos As Map ' Private prods, tipos As Map
prods.Initialize ' prods.Initialize
tipos.Initialize ' tipos.Initialize
For i=0 To c.RowCount -1 ' For i=0 To c.RowCount -1
c.Position=i ' 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"))) ' 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")) ' tipos.Put(c.GetString("CAT_DP_IDPROD"), c.GetString("CAT_DP_TIPO"))
If c.GetString("CAT_DP_TIPO") = "0" Then ' If c.GetString("CAT_DP_TIPO") = "0" Then
prodsFijos.Add(c.GetString("CAT_DP_IDPROD")) ' prodsFijos.Add(c.GetString("CAT_DP_IDPROD"))
prodsFijosPrecios.Add(c.GetString("CAT_DP_PRECIO")) ' prodsFijosPrecios.Add(c.GetString("CAT_DP_PRECIO"))
prodsFijosPiezas.Add(c.GetString("CAT_DP_PZAS")) ' prodsFijosPiezas.Add(c.GetString("CAT_DP_PZAS"))
End If ' End If
If c.GetString("CAT_DP_TIPO") = "1" Then prodsVariables.Add(c.GetString("CAT_DP_IDPROD")) ' 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")}"$) '' Log($"id:${c.GetString("CAT_DP_IDPROD")}, tipo:${c.GetString("CAT_DP_TIPO")}"$)
Next ' Next
promoMap.Put("productos", prods) 'Mapa con los productos de la promocion (id, precio, almacen, tipo, piezas, etc.) ' 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("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("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("prodsVariables", prodsVariables) 'Lista de los productos variables de la promoción.
promoMap.Put("prodsFijosCant", prodsFijos.Size) ' promoMap.Put("prodsFijosCant", prodsFijos.Size)
promoMap.Put("prodsFijosPrecios", prodsFijosPrecios) ' promoMap.Put("prodsFijosPrecios", prodsFijosPrecios)
promoMap.Put("prodsFijosPiezas", prodsFijosPiezas) ' promoMap.Put("prodsFijosPiezas", prodsFijosPiezas)
promoMap.Put("prodsVariablesCant", prodsVariables.Size) ' promoMap.Put("prodsVariablesCant", prodsVariables.Size)
promoMap.Put("resultado", "ok") ' promoMap.Put("resultado", "ok")
Else ' Else
promoMap.Put("resultado", "No hay datos de la promoción.") ' promoMap.Put("resultado", "No hay datos de la promoción.")
End If ' 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 = 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 ' c.Position = 0
Private pvr As String = 0 ' Private pvr As String = 0
If c.RowCount > 0 Then ' If c.RowCount > 0 Then
c.Position = 0 ' c.Position = 0
pvr = c.GetString("CAT_GP_STS") ' pvr = c.GetString("CAT_GP_STS")
promoMap.Put("prodsVariablesRequeridos", pvr) 'Cantidad de productos variables requeridos para la promoción. ' promoMap.Put("prodsVariablesRequeridos", pvr) 'Cantidad de productos variables requeridos para la promoción.
promoMap.put("descripcion", c.GetString("CAT_GP_NOMBRE")) ' promoMap.put("descripcion", c.GetString("CAT_GP_NOMBRE"))
End If ' End If
c.Close ' c.Close
' Log($"Inv variables: ${cuantosVariablesTengoBD(promo)}"$) '' Log($"Inv variables: ${cuantosVariablesTengoBD(promo)}"$)
' Log($"Inv dispo: ${traemosInventarioDisponibleParaPromo(promo)}"$) '' Log($"Inv dispo: ${traemosInventarioDisponibleParaPromo(promo)}"$)
' LogColor($"Promo ${promo}: ${promoMap}"$, Colors.Green) '' LogColor($"Promo ${promo}: ${promoMap}"$, Colors.Green)
' LogColor("TIEMPO para traePromo -=" & promo & "=- : " & ((DateTime.Now-inicioContador)/1000), Colors.Red) '' LogColor("TIEMPO para traePromo -=" & promo & "=- : " & ((DateTime.Now-inicioContador)/1000), Colors.Red)
Return promoMap ' Return promoMap
End Sub 'End Sub
'Regresa un mapa con el inventario disponible por producto para la promoción (desde la base de datos). '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 Sub traemosInventarioDisponibleParaPromo(promo As String) As Map 'ignore
@@ -917,27 +1006,27 @@ Sub restaFijosPromo(promoMap As Map) As Map 'ignore
Return inventariosDisponiblesParaEstaPromo Return inventariosDisponiblesParaEstaPromo
End Sub End Sub
'Revisa si tenemos los productos variables requeridos para la promoción (mapa). ''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. ''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 '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. ' 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. ' If thisLog Then LogColor("Inventario inicial: "&inventarioSinFijos, Colors.Gray) 'Inventario inicial.
Private totalProdsVariables As Int = 0 ' Private totalProdsVariables As Int = 0
' Private prodsmap As Map = promoMap.Get("productos") 'Obtenemos un mapa con todos los productos de la promoción. '' 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. ' 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 ' 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. ' 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 ... ' 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. ' Private p2 As String = inventarioSinFijos.Get(t) 'Obtenemos el inventario disponible este producto.
totalProdsVariables = totalProdsVariables + p2 ' totalProdsVariables = totalProdsVariables + p2
If thisLog Then Log($"prod ${t}, hay: ${p2}"$) 'Producto y piezas requeridas ' If thisLog Then Log($"prod ${t}, hay: ${p2}"$) 'Producto y piezas requeridas
End If ' End If
Next ' Next
If thisLog Then Log("Total prods variables=" & totalProdsVariables & ", requeridos=" & promoMap.Get("prodsVariablesRequeridos")) ' If thisLog Then Log("Total prods variables=" & totalProdsVariables & ", requeridos=" & promoMap.Get("prodsVariablesRequeridos"))
Private res As Boolean = False ' 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 ' 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 ' Return res
End Sub 'End Sub
'Regresa el numero máximo de promociones permitidas, tomando en cuenta recurrentes, clientes y maxPromos. 'Regresa el numero máximo de promociones permitidas, tomando en cuenta recurrentes, clientes y maxPromos.
Sub traeMaxPromos(pm As Map) As Int 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. Return t.Get(0) 'Regresamos el resultado mas pequeño.
End Sub End Sub
'Regresa cuantas promos alcanzan con los productos VARIABLES que hay en inventario. ''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 ''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 ''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 ''regresa el maximo por productos fijos. Ej. si las promos por variables es 10, pero el maximo por
'fijos es 5, entonces regresamos 5. ''fijos es 5, entonces regresamos 5.
Sub revisaMaxPromosProdsVariablesPorInventario(pm As Map) As Int 'ignore 'Sub revisaMaxPromosProdsVariablesPorInventario(pm As Map) As Int 'ignore
Private thisLog As Boolean = False ' Private thisLog As Boolean = False
If thisLog Then Log("======================================================") ' If thisLog Then Log("======================================================")
If thisLog Then Log("======================================================") ' If thisLog Then Log("======================================================")
Private invFijoXpromo As Map ' Private invFijoXpromo As Map
invFijoXpromo.Initialize ' invFijoXpromo.Initialize
Private totalProdsVariablesDisponibles As Int = 0 ' Private totalProdsVariablesDisponibles As Int = 0
If thisLog Then LogColor($"pm=${pm}"$, Colors.Blue) ' If thisLog Then LogColor($"pm=${pm}"$, Colors.Blue)
Private invDispParaPromo As Map = traemosInventarioDisponibleParaPromo(pm.Get("id")) ' Private invDispParaPromo As Map = traemosInventarioDisponibleParaPromo(pm.Get("id"))
If thisLog Then Log($"invDispParaPromo=${invDispParaPromo}"$) ' If thisLog Then Log($"invDispParaPromo=${invDispParaPromo}"$)
Private maxPromos As String = traeMaxPromos(pm) ' Private maxPromos As String = traeMaxPromos(pm)
Private maxPromosXFijos As Int = revisaMaxPromosProdsFijosPorInventario(pm) ' Private maxPromosXFijos As Int = revisaMaxPromosProdsFijosPorInventario(pm)
Private idProdsVariables As List = pm.Get("prodsVariables") ' Private idProdsVariables As List = pm.Get("prodsVariables")
Private prodsVariablesRequeridos As Int = pm.Get("prodsVariablesRequeridos") ' Private prodsVariablesRequeridos As Int = pm.Get("prodsVariablesRequeridos")
Private prodsFijosPiezas As List = pm.Get("prodsFijosPiezas") ' Private prodsFijosPiezas As List = pm.Get("prodsFijosPiezas")
Private idProdsFijos As List = pm.Get("prodsFijos") ' 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. ' 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)) ' invFijoXpromo.Put(idProdsFijos.Get(p), prodsFijosPiezas.Get(p))
Private idEsteProd As String = idProdsFijos.Get(p) ' Private idEsteProd As String = idProdsFijos.Get(p)
Private invEsteProd As Int = invDispParaPromo.Get(idEsteProd) ' Private invEsteProd As Int = invDispParaPromo.Get(idEsteProd)
Private pzasReqEsteProd As Int = prodsFijosPiezas.Get(p) ' Private pzasReqEsteProd As Int = prodsFijosPiezas.Get(p)
If thisLog Then Log($"id=${idEsteProd}, inv=${invEsteProd}, pzas=${pzasReqEsteProd}"$) ' If thisLog Then Log($"id=${idEsteProd}, inv=${invEsteProd}, pzas=${pzasReqEsteProd}"$)
' invDispParaPromo.Put( idEsteProd, (invEsteProd - (1)) ) '' invDispParaPromo.Put( idEsteProd, (invEsteProd - (1)) )
Next ' Next
If thisLog Then LogColor($"MaxPromos=${maxPromos}, promosXFijos=${maxPromosXFijos}"$, Colors.Blue) ' If thisLog Then LogColor($"MaxPromos=${maxPromos}, promosXFijos=${maxPromosXFijos}"$, Colors.Blue)
If thisLog Then LogColor($"prodsFijos=${idProdsFijos}"$, Colors.Blue) ' If thisLog Then LogColor($"prodsFijos=${idProdsFijos}"$, Colors.Blue)
If thisLog Then LogColor($"prodsFijosPiezasReq=${prodsFijosPiezas}"$, 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($"prodsVariables=${idProdsVariables}${CRLF}Variables Req=${prodsVariablesRequeridos} "$, Colors.Blue)
If thisLog Then LogColor($"invFijoXpromo=${invFijoXpromo}"$, Colors.Blue) ' If thisLog Then LogColor($"invFijoXpromo=${invFijoXpromo}"$, Colors.Blue)
If thisLog Then Log($"Prods variables disponibles = ${totalProdsVariablesDisponibles}"$) ' If thisLog Then Log($"Prods variables disponibles = ${totalProdsVariablesDisponibles}"$)
Private maxPromosXVariables As Int = 0 ' Private maxPromosXVariables As Int = 0
For x = 1 To maxPromosXFijos ' For x = 1 To maxPromosXFijos
If thisLog Then Log("=====================================================") ' If thisLog Then Log("=====================================================")
If thisLog Then Log("=====================================================") ' If thisLog Then Log("=====================================================")
For i = 0 To idProdsFijos.Size - 1 ' 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)}"$) ' 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. ' 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 ' Next
If thisLog Then LogColor("Inv disponible despues de restar fijos = " & invDispParaPromo, Colors.Blue) ' If thisLog Then LogColor("Inv disponible despues de restar fijos = " & invDispParaPromo, Colors.Blue)
'
totalProdsVariablesDisponibles = 0 ' totalProdsVariablesDisponibles = 0
For i = 0 To idProdsVariables.Size - 1 'Obtenemos total de productos variables disponibes. ' For i = 0 To idProdsVariables.Size - 1 'Obtenemos total de productos variables disponibes.
If invDispParaPromo.ContainsKey(idProdsVariables.Get(i)) Then ' If invDispParaPromo.ContainsKey(idProdsVariables.Get(i)) Then
totalProdsVariablesDisponibles = totalProdsVariablesDisponibles + invDispParaPromo.Get(idProdsVariables.Get(i)) ' totalProdsVariablesDisponibles = totalProdsVariablesDisponibles + invDispParaPromo.Get(idProdsVariables.Get(i))
End If ' End If
Next ' Next
'Revisamos variables. ' 'Revisamos variables.
If thisLog Then Log($"Var disponibles - var requeridos : ${totalProdsVariablesDisponibles} - ${prodsVariablesRequeridos*x}"$) ' If thisLog Then Log($"Var disponibles - var requeridos : ${totalProdsVariablesDisponibles} - ${prodsVariablesRequeridos*x}"$)
totalProdsVariablesDisponibles = totalProdsVariablesDisponibles - (prodsVariablesRequeridos*x) ' totalProdsVariablesDisponibles = totalProdsVariablesDisponibles - (prodsVariablesRequeridos*x)
If thisLog Then Log("prodsVariables disponibles despues de promo = " & totalProdsVariablesDisponibles) ' If thisLog Then Log("prodsVariables disponibles despues de promo = " & totalProdsVariablesDisponibles)
If totalProdsVariablesDisponibles < 0 Then Exit 'Ya no hay inventario disponible. ' If totalProdsVariablesDisponibles < 0 Then Exit 'Ya no hay inventario disponible.
maxPromosXVariables = x ' maxPromosXVariables = x
Next ' Next
'Restamos fijos. ' 'Restamos fijos.
LogColor("Max promos de prodsVariables POR inventario = " & maxPromosXVariables, Colors.red) ' LogColor("Max promos de prodsVariables POR inventario = " & maxPromosXVariables, Colors.red)
Return maxPromosXVariables ' Return maxPromosXVariables
End Sub 'End Sub
'Regresa la suma del inventario de los productos variables de la promoción dada desde la base de datos. '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 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. 'Regresa la tabla de productos (cat_gunaprod o cat_gunaprod2) dependiendo del tipo de venta.
Sub traeTablaProds(tipoventa As String) As String Sub traeTablaProds(tipoventa As String) As String
Log(tipoventa)
Private tablaProds As String = "cat_gunaprod2" Private tablaProds As String = "cat_gunaprod2"
If tipoventa = "ABORDO" Or tipoventa = "PREVENTA" Then tablaProds = "cat_gunaprod" If tipoventa = "ABORDO" Or tipoventa = "PREVENTA" Then tablaProds = "cat_gunaprod"
' LogColor($"Tipo= ${tipoventa}, tabla=${tablaProds}"$, Colors.RGB(200,136,0)) ' LogColor($"Tipo= ${tipoventa}, tabla=${tablaProds}"$, Colors.RGB(200,136,0))
@@ -1839,11 +1929,264 @@ End Sub
' - 3 = bronze ' - 3 = bronze
Sub traeTipoCliente As Int Sub traeTipoCliente As Int
Private x As Cursor Private x As Cursor
Private tc As Int = 0 Private tc As Int = 3
x = Starter.skmt.ExecQuery($"select cat_cl_tipocliente from kmt_info3 where cat_cl_codigo in (select cuenta from cuentaa)"$) 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 If x.RowCount > 0 Then
x.Position = 0 x.Position = 0
' Log("ESTO LO HIZO GUERRA ------> "&x.GetInt("CAT_CL_TIPOCLIENTE"))
tc = x.GetInt("CAT_CL_TIPOCLIENTE") tc = x.GetInt("CAT_CL_TIPOCLIENTE")
End If End If
' Log("ESTO LO HIZO GUERRA X2------> "&tc)
Return tc Return tc
End Sub 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

View File

@@ -199,7 +199,7 @@ Sub flp_LocationChanged (Location1 As Location)
End If End If
If B4XPages.MainPage.cliente.LA_GPS.IsInitialized Then If B4XPages.MainPage.cliente.LA_GPS.IsInitialized Then
B4XPages.MainPage.cliente.LA_GPS.Text = "CON UBICACION GPS" 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 End If
' LogColor(Location1.Latitude, Colors.red) ' LogColor(Location1.Latitude, Colors.red)
CallSub2(Starter, "GPS_LocationChanged", Location1) CallSub2(Starter, "GPS_LocationChanged", Location1)