mirror of
https://github.com/KeymonSoft/Kelloggs_v4.git
synced 2026-04-19 19:19:14 +00:00
Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 72ce7c8806 | |||
| 7a88acaf4c | |||
| 749cf6e7fe | |||
| bca0d31469 | |||
| 6fc81fcf0d | |||
| ceaa5246e5 | |||
| 7a547503b9 | |||
| 6446187478 | |||
| 48a1221ef9 |
@@ -165,9 +165,19 @@ Private Sub B4XPage_Created (Root1 As B4XView)
|
|||||||
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_TREND_SPENDING_SEMANAL (HIST_TSS_RUTA TEXT, HIST_TSS_IDALMACEN TEXT, HIST_TSS_TIPO TEXT, HIST_TSS_SEMANA1 TEXT, HIST_TSS_SEMANA1_ACUM TEXT, HIST_TSS_SEMANA2 TEXT, HIST_TSS_SEMANA2_ACUM TEXT, HIST_TSS_SEMANA3 TEXT, HIST_TSS_SEMANA3_ACUM TEXT, HIST_TSS_SEMANA4 TEXT, HIST_TSS_SEMANA4_ACUM TEXT, HIST_TSS_SEMANA5 TEXT, HIST_TSS_SEMANA5_ACUM TEXT, HIST_TSS_SEMANA6 TEXT, HIST_TSS_SEMANA6_ACUM TEXT, HIST_TSS_GRUPO TEXT)")
|
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_TREND_SPENDING_SEMANAL (HIST_TSS_RUTA TEXT, HIST_TSS_IDALMACEN TEXT, HIST_TSS_TIPO TEXT, HIST_TSS_SEMANA1 TEXT, HIST_TSS_SEMANA1_ACUM TEXT, HIST_TSS_SEMANA2 TEXT, HIST_TSS_SEMANA2_ACUM TEXT, HIST_TSS_SEMANA3 TEXT, HIST_TSS_SEMANA3_ACUM TEXT, HIST_TSS_SEMANA4 TEXT, HIST_TSS_SEMANA4_ACUM TEXT, HIST_TSS_SEMANA5 TEXT, HIST_TSS_SEMANA5_ACUM TEXT, HIST_TSS_SEMANA6 TEXT, HIST_TSS_SEMANA6_ACUM TEXT, HIST_TSS_GRUPO TEXT)")
|
||||||
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS TREND_SPENDING (TIPO TEXT, MONTO_SEMANA TEXT, ACUMULADO TEXT)")
|
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS TREND_SPENDING (TIPO TEXT, MONTO_SEMANA TEXT, ACUMULADO TEXT)")
|
||||||
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS VERSIONES (VERSION TEXT, FECHA TEXT)")
|
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS VERSIONES (VERSION TEXT, FECHA TEXT)")
|
||||||
|
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_INVENTARIO(CI_IDPROD TEXT, CI_INVENTARIO TEXT)")
|
||||||
''' FIN DOE
|
''' FIN DOE
|
||||||
|
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_NOTIFICACIONES(CN_CODIGO TEXT, CN_ID TEXT,CN_CLIENTE TEXT, CN_NOTIFICACION TEXT)")
|
||||||
|
Starter.skmt.ExecNonQuery("CREATE TABLE If Not EXISTS HIST_NOTIFICACIONES (HN_CODIGO TEXT, HN_ID TEXT, HN_FECHA TEXT)")
|
||||||
|
Starter.skmt.ExecNonQuery("CREATE TABLE If Not EXISTS CAT_GUNAPROD5 (CAT_GP_ID TEXT, CAT_GP_ALMACEN TEXT)")
|
||||||
|
Starter.skmt.ExecNonQuery("CREATE INDEX IF NOT EXISTS idx_pedido_proid ON PEDIDO(PE_PROID)")
|
||||||
|
Starter.skmt.ExecNonQuery("CREATE INDEX IF NOT EXISTS idx_pedido_cliente ON PEDIDO(PE_CLIENTE)")
|
||||||
|
Starter.skmt.ExecNonQuery("CREATE INDEX IF NOT EXISTS idx_cat5_id ON CAT_GUNAPROD5(CAT_GP_ID)")
|
||||||
kh.agregaColumna(Starter.skmt, "kmt_info", "IMPRESION", "INTEGER")
|
kh.agregaColumna(Starter.skmt, "kmt_info", "IMPRESION", "INTEGER")
|
||||||
kh.agregaColumna(Starter.skmt, "kmt_info", "CREDITO", "INTEGER")
|
kh.agregaColumna(Starter.skmt, "kmt_info", "CREDITO", "INTEGER")
|
||||||
|
kh.agregaColumna(Starter.skmt, "PEDIDO", "PE_ENVIADO", "INTEGER DEFAULT 0")
|
||||||
|
kh.agregaColumna(Starter.skmt, "PEDIDO3", "PE_ENVIADO", "INTEGER DEFAULT 0")
|
||||||
|
kh.agregaColumna(Starter.skmt, "PEDIDO_CLIENTE", "PC_ENVIADO", "INTEGER DEFAULT 0")
|
||||||
kh.agregaColumna(Starter.skmt, "USUARIOA", "FECHA", "TEXT")
|
kh.agregaColumna(Starter.skmt, "USUARIOA", "FECHA", "TEXT")
|
||||||
kh.agregaColumna(Starter.skmt, "PROMOS_COMP", "CAT_PA_PORCENTAJE_PAQUETE", "TEXT")
|
kh.agregaColumna(Starter.skmt, "PROMOS_COMP", "CAT_PA_PORCENTAJE_PAQUETE", "TEXT")
|
||||||
kh.agregaColumna(Starter.skmt, "PROMOS_COMP", "CAT_PA_PRECIO1", "TEXT")
|
kh.agregaColumna(Starter.skmt, "PROMOS_COMP", "CAT_PA_PRECIO1", "TEXT")
|
||||||
@@ -258,7 +268,7 @@ Log(111)
|
|||||||
End If
|
End If
|
||||||
' reqManager.Initialize(Me, Starter.server)
|
' reqManager.Initialize(Me, Starter.server)
|
||||||
' Activity.LoadLayout("login")
|
' Activity.LoadLayout("login")
|
||||||
Label1.Text = Application.VersionName
|
Label1.Text = Application.VersionName & " "
|
||||||
|
|
||||||
' Log("Pedimos permisos de almacenamiento externo")
|
' Log("Pedimos permisos de almacenamiento externo")
|
||||||
' Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_WRITE_EXTERNAL_STORAGE)
|
' Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_WRITE_EXTERNAL_STORAGE)
|
||||||
@@ -508,10 +518,11 @@ Sub Entrar_Click
|
|||||||
cmd.Name = "select_usuario_guna_KELL"
|
cmd.Name = "select_usuario_guna_KELL"
|
||||||
cmd.Parameters = Array As Object(user.Text, pass.Text)
|
cmd.Parameters = Array As Object(user.Text, pass.Text)
|
||||||
reqManager.ExecuteQuery(cmd , 0, "usuario")
|
reqManager.ExecuteQuery(cmd , 0, "usuario")
|
||||||
Dim cmd As DBCommand
|
|
||||||
cmd.Initialize
|
' Dim cmd As DBCommand
|
||||||
cmd.Name = "select_version_KELL"
|
' cmd.Initialize
|
||||||
reqManager.ExecuteQuery(cmd , 0, "version")
|
' cmd.Name = "select_version_KELL"
|
||||||
|
' reqManager.ExecuteQuery(cmd , 0, "version")
|
||||||
Else
|
Else
|
||||||
Subs.iniciaActividad("Principal")
|
Subs.iniciaActividad("Principal")
|
||||||
' B4XPages.ShowPage("Principal")
|
' B4XPages.ShowPage("Principal")
|
||||||
@@ -555,6 +566,7 @@ Sub JobDone(Job As HttpJob)
|
|||||||
|
|
||||||
Dim result As DBResult = reqManager.HandleJob(Job)
|
Dim result As DBResult = reqManager.HandleJob(Job)
|
||||||
If result.Tag = "usuario" Then 'query tag
|
If result.Tag = "usuario" Then 'query tag
|
||||||
|
Subs.logJobDoneResultados(result)
|
||||||
For Each records() As Object In result.Rows
|
For Each records() As Object In result.Rows
|
||||||
Dim name As String = records(result.Columns.Get("USUARIO"))
|
Dim name As String = records(result.Columns.Get("USUARIO"))
|
||||||
Dim ID_ALMACEN As String = records(result.Columns.Get("CAT_LO_AGENCIA"))
|
Dim ID_ALMACEN As String = records(result.Columns.Get("CAT_LO_AGENCIA"))
|
||||||
@@ -592,6 +604,11 @@ Sub JobDone(Job As HttpJob)
|
|||||||
p_importarBDWA.Visible = False
|
p_importarBDWA.Visible = False
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
If result.Tag = "prueba" Then
|
||||||
|
Subs.logJobDoneResultados(result)
|
||||||
|
End If
|
||||||
|
|
||||||
If result.tag = "traeConexion" Then
|
If result.tag = "traeConexion" Then
|
||||||
Subs.logJobDoneResultados(result)
|
Subs.logJobDoneResultados(result)
|
||||||
End If
|
End If
|
||||||
@@ -856,6 +873,13 @@ Private Sub b_cargaLocalOk_Click
|
|||||||
p_cargaLocal.Visible = False
|
p_cargaLocal.Visible = False
|
||||||
' Log(et_cargaLocal.Text.Length > pass1.Length)
|
' Log(et_cargaLocal.Text.Length > pass1.Length)
|
||||||
|
|
||||||
|
Log("Deshabilitamos VERIFY_DEVICE")
|
||||||
|
Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("VERIFY_DEVICE"))
|
||||||
|
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("VERIFY_DEVICE", 0))
|
||||||
|
Log("Deshabilitamos VALIDA_VERSION")
|
||||||
|
Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("VALIDA_VERSION"))
|
||||||
|
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("VALIDA_VERSION", 0))
|
||||||
|
|
||||||
Log(et_cargaLocal.text)
|
Log(et_cargaLocal.text)
|
||||||
If et_cargaLocal.Text.Length = pass1.Length Then ' Si no se especifica nada, la fecha es hoy MENOS un día.
|
If et_cargaLocal.Text.Length = pass1.Length Then ' Si no se especifica nada, la fecha es hoy MENOS un día.
|
||||||
et_cargaLocal.text = et_cargaLocal.text & "-1"
|
et_cargaLocal.text = et_cargaLocal.text & "-1"
|
||||||
@@ -938,12 +962,7 @@ Private Sub cb_cartaPorte_CheckedChange(Checked As Boolean)
|
|||||||
Starter.skmt.ExecNonQuery($"insert into CAT_VARIABLES (CAT_VA_DESCRIPCION, CAT_VA_VALOR) values ('CARTAPORTE', '${Checked}')"$)
|
Starter.skmt.ExecNonQuery($"insert into CAT_VARIABLES (CAT_VA_DESCRIPCION, CAT_VA_VALOR) values ('CARTAPORTE', '${Checked}')"$)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub et_maxClientesNuevos_TextChanged (Old As String, New As String)
|
|
||||||
If IsNumber(New) Then
|
|
||||||
Starter.skmt.ExecNonQuery("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'MAXCTESNUEVOS'")
|
|
||||||
Starter.skmt.ExecNonQuery($"insert into CAT_VARIABLES (CAT_VA_DESCRIPCION, CAT_VA_VALOR) values ('MAXCTESNUEVOS', '${New}')"$)
|
|
||||||
End If
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
private Sub l_geocerca_Click
|
private Sub l_geocerca_Click
|
||||||
If cb_geocerca.Enabled = False Then ToastMessageShow("Ingrese la contraseña para modificar", True)
|
If cb_geocerca.Enabled = False Then ToastMessageShow("Ingrese la contraseña para modificar", True)
|
||||||
@@ -954,6 +973,8 @@ Private Sub et_geocerca_TextChanged (Old As String, New As String)
|
|||||||
Log(New & "|" & Starter.passSupervisor)
|
Log(New & "|" & Starter.passSupervisor)
|
||||||
If x.RowCount > 0 Then
|
If x.RowCount > 0 Then
|
||||||
x.Position = 0
|
x.Position = 0
|
||||||
|
Log("Pass FinDia: |" & x.GetString("CAT_VA_VALOR")&"|"&New&"|")
|
||||||
|
Log(New.Trim = x.GetString("CAT_VA_VALOR").Trim)
|
||||||
If New = x.GetString("CAT_VA_VALOR") Or New = Starter.passSupervisor Then
|
If New = x.GetString("CAT_VA_VALOR") Or New = Starter.passSupervisor Then
|
||||||
cb_geocerca.Enabled = True
|
cb_geocerca.Enabled = True
|
||||||
cb_cartaPorte.Enabled = True
|
cb_cartaPorte.Enabled = True
|
||||||
@@ -1044,10 +1065,19 @@ Private Sub ImageView1_LongClick
|
|||||||
' cmdX.Name = "update_usuario_guna_nobajas"
|
' cmdX.Name = "update_usuario_guna_nobajas"
|
||||||
' cmdX.Parameters = Array As Object("CDAZA")
|
' cmdX.Parameters = Array As Object("CDAZA")
|
||||||
' reqManagerX.Executequery(cmdX, 0, "traeConexion")
|
' reqManagerX.Executequery(cmdX, 0, "traeConexion")
|
||||||
|
|
||||||
If Subs.traeAlmacen <> "" Then
|
Log("traeConexion")
|
||||||
linker.VerifyAndLinkDevice(Subs.traeAlmacen, Subs.traeRuta)
|
Private reqManagerX As DBRequestManager
|
||||||
End If
|
reqManagerX.Initialize(Me, "http://keymon.net:9010/SALMA")
|
||||||
|
Private cmdX As DBCommand
|
||||||
|
cmdX.Initialize
|
||||||
|
cmdX.Name = "update_usuario_guna_nobajas"
|
||||||
|
cmdX.Parameters = Array As Object("CDAZA", 2, 3, 4)
|
||||||
|
reqManagerX.ExecuteQuery(cmdX, 0, "prueba")
|
||||||
|
|
||||||
|
' If Subs.traeAlmacen <> "" Then
|
||||||
|
' linker.VerifyDevice(Subs.traeAlmacen, Subs.traeRuta)
|
||||||
|
' End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub ponUsuario
|
Sub ponUsuario
|
||||||
@@ -1080,8 +1110,8 @@ Sub Linker_Response(Status As String) ' << AÑADE ESTE SUB [New Query]
|
|||||||
Log("El servidor no proporcionó un estado de verificación válido. Contacte a soporte.")
|
Log("El servidor no proporcionó un estado de verificación válido. Contacte a soporte.")
|
||||||
ToastMessageShow("El servidor no proporcionó un estado de verificación válido. Contacte a soporte.", True)
|
ToastMessageShow("El servidor no proporcionó un estado de verificación válido. Contacte a soporte.", True)
|
||||||
Case "OK"
|
Case "OK"
|
||||||
Log("Dispositivo ligado y verificado exitosamente.")
|
Log("Dispositivo vinculado y verificado exitosamente.")
|
||||||
ToastMessageShow("Dispositivo verificado y ligado correctamente.", False)
|
ToastMessageShow("Dispositivo verificado y vinculado correctamente.", False)
|
||||||
' Aquí puedes añadir lógica adicional si la verificación es exitosa, por ejemplo, habilitar ciertos botones o continuar con el flujo normal.
|
' Aquí puedes añadir lógica adicional si la verificación es exitosa, por ejemplo, habilitar ciertos botones o continuar con el flujo normal.
|
||||||
Case "NO_REGISTRADO"
|
Case "NO_REGISTRADO"
|
||||||
Log("Dispositivo NO registrado.")
|
Log("Dispositivo NO registrado.")
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ Sub Class_Globals
|
|||||||
Dim g As GPS
|
Dim g As GPS
|
||||||
Dim kh As kms_helperSubs
|
Dim kh As kms_helperSubs
|
||||||
Dim reqManager As DBRequestManager
|
Dim reqManager As DBRequestManager
|
||||||
|
Dim cmd As DBCommand
|
||||||
Dim ruta As String
|
Dim ruta As String
|
||||||
Dim clie_id As String
|
Dim clie_id As String
|
||||||
Dim sDate,sTime As String
|
Dim sDate,sTime As String
|
||||||
@@ -48,6 +49,8 @@ Sub Class_Globals
|
|||||||
Dim C1 As Cursor
|
Dim C1 As Cursor
|
||||||
Dim C3 As Cursor
|
Dim C3 As Cursor
|
||||||
Dim C4, C5, C6, C8 As Cursor
|
Dim C4, C5, C6, C8 As Cursor
|
||||||
|
Dim c2 As Cursor
|
||||||
|
Dim S2 As Cursor
|
||||||
Dim RMI As String
|
Dim RMI As String
|
||||||
Dim ListView1 As ListView
|
Dim ListView1 As ListView
|
||||||
Dim la_cuenta As Label
|
Dim la_cuenta As Label
|
||||||
@@ -79,9 +82,6 @@ Sub Class_Globals
|
|||||||
Dim Guardar As Button
|
Dim Guardar As Button
|
||||||
' Dim NUEVO As Button
|
' Dim NUEVO As Button
|
||||||
Dim l_total As Label
|
Dim l_total As Label
|
||||||
Dim c2 As Cursor
|
|
||||||
Dim S2 As Cursor
|
|
||||||
Private s As Cursor
|
|
||||||
Dim res As String
|
Dim res As String
|
||||||
Private HIST As Button
|
Private HIST As Button
|
||||||
Private MONTO_COMPRA As String
|
Private MONTO_COMPRA As String
|
||||||
@@ -295,6 +295,11 @@ Sub Class_Globals
|
|||||||
Private e_comm As EditText
|
Private e_comm As EditText
|
||||||
Private p_infoGral2 As Panel
|
Private p_infoGral2 As Panel
|
||||||
Dim indicePregunta As Int
|
Dim indicePregunta As Int
|
||||||
|
Private p_transparenciaNoti As Panel
|
||||||
|
Private p_Notificacion As Panel
|
||||||
|
Private l_notificacionTexto As Label
|
||||||
|
Private l_notificacionTitulo As Label
|
||||||
|
Private b_notificacion As Button
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
'You can add more parameters here.
|
'You can add more parameters here.
|
||||||
@@ -375,6 +380,7 @@ Private Sub B4XPage_Created (Root1 As B4XView)
|
|||||||
Else
|
Else
|
||||||
RutaBoleta=Starter.rutaV
|
RutaBoleta=Starter.rutaV
|
||||||
End If
|
End If
|
||||||
|
If s.IsInitialized Then s.Close
|
||||||
End If
|
End If
|
||||||
c=Starter.skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("MACIMP"))
|
c=Starter.skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("MACIMP"))
|
||||||
c.Position = 0
|
c.Position = 0
|
||||||
@@ -390,7 +396,6 @@ Private Sub B4XPage_Created (Root1 As B4XView)
|
|||||||
c.Close
|
c.Close
|
||||||
Panel_INV_A.Left = 0 : Panel_INV_A.top = 0
|
Panel_INV_A.Left = 0 : Panel_INV_A.top = 0
|
||||||
Panel10.Left = 0 : Panel10.top = 0
|
Panel10.Left = 0 : Panel10.top = 0
|
||||||
If s.IsInitialized Then s.Close
|
|
||||||
' Log("################# PERMISOS BT: " & Starter.rp.Check("android.permission.BLUETOOTH_CONNECT"))
|
' Log("################# PERMISOS BT: " & Starter.rp.Check("android.permission.BLUETOOTH_CONNECT"))
|
||||||
' Log("Permisos BT: " & Starter.rp.Check("android.permission.BLUETOOTH_CONNECT"))
|
' Log("Permisos BT: " & Starter.rp.Check("android.permission.BLUETOOTH_CONNECT"))
|
||||||
' Log("REVISAMOS PERMISOS DE BT")
|
' Log("REVISAMOS PERMISOS DE BT")
|
||||||
@@ -772,8 +777,9 @@ Sub B4XPage_Appear
|
|||||||
|
|
||||||
'PROMOS POR MONTO
|
'PROMOS POR MONTO
|
||||||
Private mPromoXMonto As Map = Subs.revisaPromoPorMonto
|
Private mPromoXMonto As Map = Subs.revisaPromoPorMonto
|
||||||
|
Private elMontoTSDeLaVenta As String = 0
|
||||||
' LogColor("PROMOXMONTO:" & mPromoXMonto, Colors.Blue)
|
' LogColor("PROMOXMONTO:" & mPromoXMonto, Colors.Blue)
|
||||||
If mPromoXMonto.Size > 0 And clienteId <> 0 Then ' El "clienteId <> 0" es para que no la promo cuando se pida ABORDO
|
If mPromoXMonto.Size > 0 And clienteId <> 0 Then ' El "clienteId <> 0" es para que no de la promo cuando sea ABORDO
|
||||||
If l_total.Text > mPromoXMonto.Get("rangoMin") And l_total.Text < mPromoXMonto.Get("precio1") Then
|
If l_total.Text > mPromoXMonto.Get("rangoMin") And l_total.Text < mPromoXMonto.Get("precio1") Then
|
||||||
Log("Eres candidato a una promocion")
|
Log("Eres candidato a una promocion")
|
||||||
MsgboxAsync($"Si agregas venta para que supere los $${mPromoXMonto.Get("precio1")}, la promoción "${Subs.traeProdNombre(mPromoXMonto.Get("id"))}" se agregará automáticamente."$, "AGREGA VENTA")
|
MsgboxAsync($"Si agregas venta para que supere los $${mPromoXMonto.Get("precio1")}, la promoción "${Subs.traeProdNombre(mPromoXMonto.Get("id"))}" se agregará automáticamente."$, "AGREGA VENTA")
|
||||||
@@ -781,16 +787,24 @@ Sub B4XPage_Appear
|
|||||||
'Agregamos la promocion y sus productos FIJOS.
|
'Agregamos la promocion y sus productos FIJOS.
|
||||||
Private dp As Cursor = Starter.skmt.ExecQuery($"select * from cat_detalles_paq where cat_dp_id = '${mPromoXMonto.Get("id")}'"$)
|
Private dp As Cursor = Starter.skmt.ExecQuery($"select * from cat_detalles_paq where cat_dp_id = '${mPromoXMonto.Get("id")}'"$)
|
||||||
If dp.RowCount > 0 Then
|
If dp.RowCount > 0 Then
|
||||||
|
Log(">>>> GUARDAMOS PROMOXMONTO HEADER")
|
||||||
Subs.guardaProductoSinGestion(mPromoXMonto.Get("id"), 0, 1, Subs.traeProdNombre(mPromoXMonto.Get("id")), mPromoXMonto.Get("id"), Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, Subs.traeRuta, 0, Starter.tipov)
|
Subs.guardaProductoSinGestion(mPromoXMonto.Get("id"), 0, 1, Subs.traeProdNombre(mPromoXMonto.Get("id")), mPromoXMonto.Get("id"), Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, Subs.traeRuta, 0, Starter.tipov)
|
||||||
For i = 0 To dp.RowCount - 1
|
For i = 0 To dp.RowCount - 1
|
||||||
dp.Position = i
|
dp.Position = i
|
||||||
If dp.GetString("CAT_DP_TIPO") = "0" Then
|
If dp.GetString("CAT_DP_TIPO") = "0" Then
|
||||||
|
Log(">>>> GUARDAMOS PROMOXMONTO PRODS")
|
||||||
Subs.guardaProductoSinGestion(mPromoXMonto.Get("id"), dp.GetString("CAT_DP_PRECIO"), dp.GetString("CAT_DP_PZAS"), Subs.traeProdNombre(dp.GetString("CAT_DP_IDPROD")), dp.GetString("CAT_DP_IDPROD"), Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, Subs.traeRuta, 0, Starter.tipov)
|
Subs.guardaProductoSinGestion(mPromoXMonto.Get("id"), dp.GetString("CAT_DP_PRECIO"), dp.GetString("CAT_DP_PZAS"), Subs.traeProdNombre(dp.GetString("CAT_DP_IDPROD")), dp.GetString("CAT_DP_IDPROD"), Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, Subs.traeRuta, 0, Starter.tipov)
|
||||||
|
' Traemos el monto de las bonificacionos a guardar. -- Trade Spending
|
||||||
|
Log("Monto Bonificacion -->> " & B4XPages.MainPage.promos.ts.traeMontoBonificacion(dp.GetString("CAT_DP_IDPROD"), dp.GetString("CAT_DP_PRECIO"), mPromoXMonto.Get("id")))
|
||||||
|
elMontoTSDeLaVenta = elMontoTSDeLaVenta + (B4XPages.MainPage.promos.ts.traeMontoBonificacion(dp.GetString("CAT_DP_IDPROD"), dp.GetString("CAT_DP_PRECIO"), mPromoXMonto.Get("id")) * dp.GetString("CAT_DP_PZAS"))
|
||||||
End If
|
End If
|
||||||
Next
|
Next
|
||||||
|
B4XPages.MainPage.promos.ts.modTrendSpending("RESTA", "BONIFICACIONES", elMontoTSDeLaVenta)
|
||||||
|
Log($"### modTrendSpending("RESTA", "BONIFICACIONES", ${elMontoTSDeLaVenta})"$)
|
||||||
MsgboxAsync($"Promo por monto "${Subs.traeProdNombre(mPromoXMonto.Get("id"))}" agregada."$,"AVISO")
|
MsgboxAsync($"Promo por monto "${Subs.traeProdNombre(mPromoXMonto.Get("id"))}" agregada."$,"AVISO")
|
||||||
B4XPage_Appear
|
B4XPage_Appear
|
||||||
End If
|
End If
|
||||||
|
dp.Close
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
Private ppm As Cursor = Starter.skmt.ExecQuery($"select (select ifnull(sum(PE_COSTO_TOT),0) from pedido where CAT_PA_ID <> pe_cedis) as CT, ifnull((select pe_cedis from pedido where pe_cedis = CAT_PA_ID), 0) as existe, * from PROMOS_COMP where CAT_PA_TIPO_PROMONTO = '1' and CT < cast(cat_pa_precio1 as integer)"$) 'Traemos las promos por monto donde la venta es menor al precio1 para borrarlas.
|
Private ppm As Cursor = Starter.skmt.ExecQuery($"select (select ifnull(sum(PE_COSTO_TOT),0) from pedido where CAT_PA_ID <> pe_cedis) as CT, ifnull((select pe_cedis from pedido where pe_cedis = CAT_PA_ID), 0) as existe, * from PROMOS_COMP where CAT_PA_TIPO_PROMONTO = '1' and CT < cast(cat_pa_precio1 as integer)"$) 'Traemos las promos por monto donde la venta es menor al precio1 para borrarlas.
|
||||||
@@ -809,10 +823,28 @@ Sub B4XPage_Appear
|
|||||||
B4XPage_Appear
|
B4XPage_Appear
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
ppm.Close
|
||||||
If Not(Subs.revisaHora) Then
|
If Not(Subs.revisaHora) Then
|
||||||
Log("***************** HORA INCORRECTA")
|
Log("***************** HORA INCORRECTA")
|
||||||
MsgboxAsync("La hora del equipo NO coincide con la hora del servidor, es necesario corregirla", "AVISO IMPORTANTE")
|
MsgboxAsync("La hora del equipo NO coincide con la hora del servidor, es necesario corregirla", "AVISO IMPORTANTE")
|
||||||
End If
|
End If
|
||||||
|
c = Starter.skmt.ExecQuery($"select * from cat_notificaciones where CN_CLIENTE = '${Subs.traeCliente}'"$)
|
||||||
|
Log("###############################################################")
|
||||||
|
Log(c.RowCount)
|
||||||
|
Log("###############################################################")
|
||||||
|
If c.RowCount > 0 Then
|
||||||
|
c.Position = 0
|
||||||
|
l_notificacionTexto.Text = c.GetString("CN_NOTIFICACION")
|
||||||
|
p_transparenciaNoti.Top = 0 : p_transparenciaNoti.Left = 0
|
||||||
|
p_transparenciaNoti.Height = Root.Height
|
||||||
|
p_transparenciaNoti.Width = Root.Width
|
||||||
|
Subs.centraPanel(p_Notificacion, Root.Width)
|
||||||
|
p_transparenciaNoti.Visible = True
|
||||||
|
Log(c.GetString("CN_ID") & "|" & c.GetString("CN_CODIGO"))
|
||||||
|
b_notificacion.Tag = c.GetString("CN_ID") & "|" & c.GetString("CN_CODIGO")
|
||||||
|
p_transparenciaNoti.BringToFront
|
||||||
|
End If
|
||||||
|
c.Close
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub Printer1_Connected (Success As Boolean)
|
Sub Printer1_Connected (Success As Boolean)
|
||||||
@@ -888,7 +920,7 @@ Sub GPS_LocationChanged (Location1 As Location)
|
|||||||
If c.RowCount > 0 Then
|
If c.RowCount > 0 Then
|
||||||
gps_boton_doe = c.GetString("CAT_CL_EMAIL")
|
gps_boton_doe = c.GetString("CAT_CL_EMAIL")
|
||||||
End If
|
End If
|
||||||
|
c.Close
|
||||||
' gest.Visible = True
|
' gest.Visible = True
|
||||||
' gps_boton_doe ="1"
|
' gps_boton_doe ="1"
|
||||||
' LogColor($"Distancia actual: ${distance}"$, Colors.Blue)
|
' LogColor($"Distancia actual: ${distance}"$, Colors.Blue)
|
||||||
@@ -901,6 +933,7 @@ Sub GPS_LocationChanged (Location1 As Location)
|
|||||||
clienteConPromo = x.GetString("clienteConPromo")
|
clienteConPromo = x.GetString("clienteConPromo")
|
||||||
' Log($"${x.GetString("clienteConPromo")}"$)
|
' Log($"${x.GetString("clienteConPromo")}"$)
|
||||||
End If
|
End If
|
||||||
|
x.Close
|
||||||
' If pgs_boton_noventa = "1" Then b_noVenta.Visible = True
|
' If pgs_boton_noventa = "1" Then b_noVenta.Visible = True
|
||||||
' If gps_boton_doe ="1" Then b_whats.Visible = True
|
' If gps_boton_doe ="1" Then b_whats.Visible = True
|
||||||
|
|
||||||
@@ -915,7 +948,7 @@ Sub GPS_LocationChanged (Location1 As Location)
|
|||||||
If Not(p_rechazoDOE.Visible) Then pedido_doe_muestra
|
If Not(p_rechazoDOE.Visible) Then pedido_doe_muestra
|
||||||
Else
|
Else
|
||||||
b_noVenta.Visible = False
|
b_noVenta.Visible = False
|
||||||
Log("NoVenta False")
|
' Log("NoVenta False")
|
||||||
B_VENTA.Visible = False
|
B_VENTA.Visible = False
|
||||||
b_whats.Visible = False
|
b_whats.Visible = False
|
||||||
End If
|
End If
|
||||||
@@ -1006,8 +1039,8 @@ Sub Guardar_Click
|
|||||||
End If
|
End If
|
||||||
s.Close
|
s.Close
|
||||||
Starter.skmt.ExecNonQuery("delete from pedido3")
|
Starter.skmt.ExecNonQuery("delete from pedido3")
|
||||||
Starter.skmt.ExecNonQuery("INSERT INTO PEDIDO3 (PE_PRECIO2, PE_TIPO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_USUARIO ) SELECT PE_PRECIO2, PE_TIPO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, SUM(PE_COSTO_TOT) AS PE_COSTO_TOT, PE_COSTOU, SUM(PE_CANT) As PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_USUARIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) GROUP BY PE_PRECIO2, PE_TIPO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, PE_COSTOU, PE_PRONOMBRE, PE_PROID, PE_CLIENTE ")
|
Starter.skmt.ExecNonQuery("INSERT INTO PEDIDO3 (PE_PRECIO2, PE_TIPO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_USUARIO, PE_ENVIADO) SELECT PE_PRECIO2, PE_TIPO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, SUM(PE_COSTO_TOT) AS PE_COSTO_TOT, PE_COSTOU, SUM(PE_CANT) As PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_USUARIO, PE_ENVIADO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) GROUP BY PE_PRECIO2, PE_TIPO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, PE_COSTOU, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_ENVIADO")
|
||||||
c=Starter.skmt.ExecQuery("select PE_PRECIO2,PE_TIPO,PE_DESC,PE_COSTO_SIN,PE_RUTA,PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE, PE_FECHA,PE_USUARIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
|
c=Starter.skmt.ExecQuery("select PE_PRECIO2,PE_TIPO,PE_DESC,PE_COSTO_SIN,PE_RUTA,PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO,PE_ENVIADO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
|
||||||
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
|
||||||
@@ -1036,6 +1069,9 @@ Sub Guardar_Click
|
|||||||
b_inicioFinVenta.Text = "TERMINAR VENTA"
|
b_inicioFinVenta.Text = "TERMINAR VENTA"
|
||||||
Log("RESPALDO")
|
Log("RESPALDO")
|
||||||
kh.RD_respaldoBatch
|
kh.RD_respaldoBatch
|
||||||
|
|
||||||
|
mandaPendientes
|
||||||
|
|
||||||
If la_cuenta.Text <> "0" Then 'Si es ABORDO, no mostramos el boton b_inicioFinVenta y regresamos a Principal.
|
If la_cuenta.Text <> "0" Then 'Si es ABORDO, no mostramos el boton b_inicioFinVenta y regresamos a Principal.
|
||||||
b_inicioFinVenta.Visible = True
|
b_inicioFinVenta.Visible = True
|
||||||
Else
|
Else
|
||||||
@@ -1048,6 +1084,11 @@ Sub Guardar_Click
|
|||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Sub mandaPendientes
|
||||||
|
B4XPages.MainPage.principal.enviaPedido(Null)
|
||||||
|
B4XPages.MainPage.principal.enviaPedidoCliente(Null)
|
||||||
|
End Sub
|
||||||
|
|
||||||
Sub NUEVO_Click
|
Sub NUEVO_Click
|
||||||
' Subs.iniciaActividad("nuevocliente")
|
' Subs.iniciaActividad("nuevocliente")
|
||||||
End Sub
|
End Sub
|
||||||
@@ -1096,24 +1137,26 @@ End Sub
|
|||||||
|
|
||||||
Sub B_IMP_Click
|
Sub B_IMP_Click
|
||||||
' Buscamos los clientes que tienen pedido y NO estan impresos.
|
' Buscamos los clientes que tienen pedido y NO estan impresos.
|
||||||
Private t As Cursor = Starter.skmt.ExecQuery("Select cat_cl_codigo from kmt_info where impresion = 0 and cat_cl_codigo not in (select ci_cuenta from cliente_impreso) and cat_cl_codigo in (select distinct pe_cliente from pedido)")
|
' Private t As Cursor = Starter.skmt.ExecQuery("Select cat_cl_codigo from kmt_info where impresion = 0 and cat_cl_codigo not in (select ci_cuenta from cliente_impreso) and cat_cl_codigo in (select distinct pe_cliente from pedido)")
|
||||||
If t.RowCount > 0 Then
|
' If t.RowCount > 0 Then
|
||||||
For i = 0 To t.RowCount - 1
|
' For i = 0 To t.RowCount - 1
|
||||||
t.Position = i ' Y los BORRAMOS.
|
' t.Position = i ' Y los BORRAMOS.
|
||||||
Log(t.GetString("CAT_CL_CODIGO"))
|
' Log(t.GetString("CAT_CL_CODIGO"))
|
||||||
Starter.skmt.ExecNonQuery($"update CUENTAA set CUENTA = '${t.GetString("CAT_CL_CODIGO")}'"$)
|
' Starter.skmt.ExecNonQuery($"update CUENTAA set CUENTA = '${t.GetString("CAT_CL_CODIGO")}'"$)
|
||||||
Subs.borraPedidoClienteActual
|
' Subs.borraPedidoClienteActual
|
||||||
' Msgbox2Async($"El pedido del cliente ${t.GetString("CAT_CL_CODIGO")} no está impreso, se va a borrar"$, "PEDIDO NO IMPRESO", "Aceptar", "", "", Null, True)
|
'' Msgbox2Async($"El pedido del cliente ${t.GetString("CAT_CL_CODIGO")} no está impreso, se va a borrar"$, "PEDIDO NO IMPRESO", "Aceptar", "", "", Null, True)
|
||||||
Next
|
' Next
|
||||||
End If
|
' End If
|
||||||
|
|
||||||
Sleep(1000)
|
Sleep(1000)
|
||||||
|
|
||||||
Starter.skmt.Close : Log("Cerramos BD") : Starter.revisaBD
|
Starter.skmt.Close : Log("Cerramos BD") : Starter.revisaBD
|
||||||
Subs.panelAnchoAlto(Panel_INV_A, Root.Width, Root.Height)
|
Subs.panelAnchoAlto(Panel_INV_A, Root.Width, Root.Height)
|
||||||
Panel_INV_A.Visible = True
|
Panel_INV_A.Visible = True
|
||||||
P_INF_GENERAL.Visible = False
|
P_INF_GENERAL.Visible = False
|
||||||
If logger Then Log("Panel general="&P_INF_GENERAL.Visible)
|
If logger Then Log("Panel general="&P_INF_GENERAL.Visible)
|
||||||
|
L_INVA.Left = 5dip
|
||||||
|
L_INVA.Width = Root.Width * 0.98
|
||||||
L_INVA.Clear
|
L_INVA.Clear
|
||||||
Dim label1 As Label
|
Dim label1 As Label
|
||||||
label1 = L_INVA.TwoLinesLayout.Label
|
label1 = L_INVA.TwoLinesLayout.Label
|
||||||
@@ -1125,10 +1168,10 @@ Sub B_IMP_Click
|
|||||||
label2.TextColor = Colors.Black
|
label2.TextColor = Colors.Black
|
||||||
' 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=Starter.skmt.ExecQuery2 ("select CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_ALMACEN from cat_gunaprod2 where CAT_GP_CLASIF <> ? ORDER BY CAT_GP_NOMBRE ", Array As String("PROMOS"))
|
s=Starter.skmt.ExecQuery2 ("select CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_ALMACEN from cat_gunaprod2 where CAT_GP_CLASIF <> ? ORDER BY CAT_GP_NOMBRE ", Array As String("PROMOS"))
|
||||||
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
|
||||||
S1=Starter.skmt.ExecQuery2("select CAT_GP_ALMACEN from cat_gunaprod5 where CAT_GP_ID = ?", Array As String(s.GetString("CAT_GP_ID")))
|
S1=Starter.skmt.ExecQuery2("select CAT_GP_ALMACEN from cat_gunaprod2 where CAT_GP_ID = ?", Array As String(s.GetString("CAT_GP_ID")))
|
||||||
S1.Position=0
|
S1.Position=0
|
||||||
S3=Starter.skmt.ExecQuery2("select count(*) as CUANTOS from HIST_ABORDO where HIST_PROID = ?", Array As String(s.GetString("CAT_GP_ID")))
|
S3=Starter.skmt.ExecQuery2("select count(*) as CUANTOS from HIST_ABORDO where HIST_PROID = ?", Array As String(s.GetString("CAT_GP_ID")))
|
||||||
S3.Position=0
|
S3.Position=0
|
||||||
@@ -1153,6 +1196,7 @@ Sub B_IMP_Click
|
|||||||
C3.Position=0
|
C3.Position=0
|
||||||
a_venta = C3.GetString("CANTIDAD")
|
a_venta = C3.GetString("CANTIDAD")
|
||||||
a_VENTA_F = C3.GetString("TOTAL")
|
a_VENTA_F = C3.GetString("TOTAL")
|
||||||
|
C3.Close
|
||||||
Else
|
Else
|
||||||
a_venta = 0
|
a_venta = 0
|
||||||
a_VENTA_F = 0
|
a_VENTA_F = 0
|
||||||
@@ -1175,6 +1219,10 @@ Sub B_IMP_Click
|
|||||||
Next
|
Next
|
||||||
End If
|
End If
|
||||||
s.Close
|
s.Close
|
||||||
|
If S1.IsInitialized Then S1.Close
|
||||||
|
If S3.IsInitialized Then S3.Close
|
||||||
|
If S2.IsInitialized Then S2.Close
|
||||||
|
If C4.IsInitialized Then C4.Close
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub B_IMP2_Click
|
Sub B_IMP2_Click
|
||||||
@@ -1299,6 +1347,7 @@ Sub Imprime_ticket
|
|||||||
cr.Position = 0
|
cr.Position = 0
|
||||||
If cr.GetInt("CREDITO") = 1 Then formaPago = "Crédito"
|
If cr.GetInt("CREDITO") = 1 Then formaPago = "Crédito"
|
||||||
End If
|
End If
|
||||||
|
cr.Close
|
||||||
If la_cuenta.Text = "0" Then
|
If la_cuenta.Text = "0" Then
|
||||||
LogColor(123, Colors.red)
|
LogColor(123, Colors.red)
|
||||||
Try
|
Try
|
||||||
@@ -3927,6 +3976,7 @@ Sub revisaPromoEspecial As Map
|
|||||||
y.Position = 0
|
y.Position = 0
|
||||||
nombreProd = y.GetString("nombreProd")
|
nombreProd = y.GetString("nombreProd")
|
||||||
End If
|
End If
|
||||||
|
y.Close
|
||||||
Log("El cliente tiene asignada la promo especial.")
|
Log("El cliente tiene asignada la promo especial.")
|
||||||
Private p As Cursor
|
Private p As Cursor
|
||||||
p=Starter.skmt.ExecQuery("select count(*) as hayInventario from CAT_GUNAPROD where CAT_GP_ALMACEN > 0 and CAT_GP_ID = " & x.GetString("CPM_PROID"))
|
p=Starter.skmt.ExecQuery("select count(*) as hayInventario from CAT_GUNAPROD where CAT_GP_ALMACEN > 0 and CAT_GP_ID = " & x.GetString("CPM_PROID"))
|
||||||
@@ -4401,4 +4451,25 @@ Sub revisaExistenciasDOE As Boolean 'ignore
|
|||||||
' 1, "LECHE ALL BRAN NUEZ 236ML", "1008027228"
|
' 1, "LECHE ALL BRAN NUEZ 236ML", "1008027228"
|
||||||
' 1, "LECHE CHOCO MELVIN 236ML", "1008013799"
|
' 1, "LECHE CHOCO MELVIN 236ML", "1008013799"
|
||||||
Return suficiente
|
Return suficiente
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub p_transparenciaNoti_Click
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub b_notificacion_Click
|
||||||
|
Private tag As String = Sender.As(Button).Tag
|
||||||
|
Log("-" & tag & "-")
|
||||||
|
Private tag1() As String = Regex.Split("\|", tag)
|
||||||
|
Log(tag1.Length & "-" & tag1(0) & "-" & tag1(1))
|
||||||
|
Private CODIGO As String = tag1(0)
|
||||||
|
Private ID As String = tag1(1)
|
||||||
|
p_transparenciaNoti.Visible = False
|
||||||
|
DateTime.DateFormat = "yyyy-MM-dd HH:mm:ss"
|
||||||
|
Starter.skmt.ExecNonQuery($"insert into HIST_NOTIFICACIONES (HN_CODIGO, HN_ID, HN_FECHA) values ('${CODIGO}', '${ID}', '${DateTime.Date(DateTime.Now)}')"$)
|
||||||
|
Log(123)
|
||||||
|
cmd.Initialize
|
||||||
|
cmd.Name = "updateHistNotificacionesMotivo"
|
||||||
|
cmd.Parameters = Array As Object("", DateTime.Date(DateTime.Now), Subs.traeRuta, usuario, Subs.traeAlmacen, clienteId)
|
||||||
|
reqManager.ExecuteCommand(cmd , "updateHistNotificacionesMotivo")
|
||||||
End Sub
|
End Sub
|
||||||
@@ -101,6 +101,7 @@ Private Sub B4XPage_CloseRequest As ResumableSub
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub ListView1_ItemClick (Position As Int, Value As Object)
|
Sub ListView1_ItemClick (Position As Int, Value As Object)
|
||||||
|
Log(Value)
|
||||||
' If Logger Then Log(Regex.Split("\.",Me)(Regex.Split("\.",Me).Length-1))
|
' If Logger Then Log(Regex.Split("\.",Me)(Regex.Split("\.",Me).Length-1))
|
||||||
Private Subrutina As Map =CreateMap("nombre":"ListView1_ItemClick", "param1":Position, "param2":Value)
|
Private Subrutina As Map =CreateMap("nombre":"ListView1_ItemClick", "param1":Position, "param2":Value)
|
||||||
Starter.sesion = CreateMap("actividad":Me, "sub":Subrutina)
|
Starter.sesion = CreateMap("actividad":Me, "sub":Subrutina)
|
||||||
|
|||||||
@@ -445,11 +445,11 @@ End Sub
|
|||||||
|
|
||||||
Private Sub clv_pedidos_ItemLongClick (position As Int, Value As Object)
|
Private Sub clv_pedidos_ItemLongClick (position As Int, Value As Object)
|
||||||
Private thisLog As Boolean = False
|
Private thisLog As Boolean = False
|
||||||
c = Starter.skmt.ExecQuery("select count(*) as hayImpresos from CLIENTE_IMPRESO where CI_CUENTA in (Select CUENTA from cuentaa)")
|
' c = Starter.skmt.ExecQuery("select count(*) as hayImpresos from CLIENTE_IMPRESO where CI_CUENTA in (Select CUENTA from cuentaa)")
|
||||||
c.Position = 0
|
' c.Position = 0
|
||||||
If thisLog Then Log("lista prods="&list_prodsPedido.Get(position))
|
If thisLog Then Log("lista prods="&list_prodsPedido.Get(position))
|
||||||
Private m As Map = list_prodsPedido.Get(position)
|
Private m As Map = list_prodsPedido.Get(position)
|
||||||
If c.GetString("hayImpresos") = 0 Then 'Si la venta no está impresa o es abordo entonces continuamos ... 'Para que el abordo borre siempre " Or Subs.clienteActual = "0""
|
If kh.revisaImpresa = False Then 'Si la venta no está impresa o es abordo entonces continuamos ... 'Para que el abordo borre siempre " Or Subs.clienteActual = "0""
|
||||||
c=Starter.skmt.ExecQuery2("select count(*) as CUANTOS FROM PEDIDO WHERE PE_CEDIS = ? AND PE_CLIENTE IN (Select CUENTA from cuentaa)", Array As String("DUR"))
|
c=Starter.skmt.ExecQuery2("select count(*) as CUANTOS FROM PEDIDO WHERE PE_CEDIS = ? AND PE_CLIENTE IN (Select CUENTA from cuentaa)", Array As String("DUR"))
|
||||||
c.Position = 0
|
c.Position = 0
|
||||||
CAMBIOS = c.GetString("CUANTOS")
|
CAMBIOS = c.GetString("CUANTOS")
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ Sub Class_Globals
|
|||||||
Private PORCENTAJE As Int
|
Private PORCENTAJE As Int
|
||||||
Private P_RESUMEN As Panel
|
Private P_RESUMEN As Panel
|
||||||
Private B_OK_RES As Button
|
Private B_OK_RES As Button
|
||||||
Private Resumen As Button
|
Dim Resumen As Button
|
||||||
Private L_CUANTOST As Label
|
Private L_CUANTOST As Label
|
||||||
Private img3 As ImageView
|
Private img3 As ImageView
|
||||||
Private ImageView3 As ImageView
|
Private ImageView3 As ImageView
|
||||||
@@ -150,7 +150,7 @@ Sub Class_Globals
|
|||||||
Private Panel2 As Panel
|
Private Panel2 As Panel
|
||||||
Dim ENVIADA As String
|
Dim ENVIADA As String
|
||||||
Dim PORENVIAR As String
|
Dim PORENVIAR As String
|
||||||
Private Btn_CheckList As Button
|
Dim Btn_CheckList As Button
|
||||||
Dim Cedis_Check As String = "0"
|
Dim Cedis_Check As String = "0"
|
||||||
Private TIEMPO As String
|
Private TIEMPO As String
|
||||||
Private RUTA1 As Label
|
Private RUTA1 As Label
|
||||||
@@ -219,6 +219,8 @@ Sub Class_Globals
|
|||||||
Dim validaCuantos As TCuantos
|
Dim validaCuantos As TCuantos
|
||||||
Dim ts As C_TrendSpending
|
Dim ts As C_TrendSpending
|
||||||
Dim linker As C_deviceLinker
|
Dim linker As C_deviceLinker
|
||||||
|
Dim kb As IME
|
||||||
|
Dim reqTotales As Int
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
'You can add more parameters here.
|
'You can add more parameters here.
|
||||||
@@ -273,6 +275,7 @@ Private Sub B4XPage_Created (Root1 As B4XView)
|
|||||||
L_MONTOD.Text = 0
|
L_MONTOD.Text = 0
|
||||||
l_cuantosc.Text = 0
|
l_cuantosc.Text = 0
|
||||||
l_cuantosn.Text = 0
|
l_cuantosn.Text = 0
|
||||||
|
Log(">>>> Ponemos en CERO!!")
|
||||||
drop = 0
|
drop = 0
|
||||||
l_drop.Text = 0
|
l_drop.Text = 0
|
||||||
efectiva = 0
|
efectiva = 0
|
||||||
@@ -287,7 +290,7 @@ Private Sub B4XPage_Created (Root1 As B4XView)
|
|||||||
b.Position = 0
|
b.Position = 0
|
||||||
L_MONTOD.Text = c.GetString("MONTO_DIA")
|
L_MONTOD.Text = c.GetString("MONTO_DIA")
|
||||||
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")
|
||||||
Try
|
Try
|
||||||
drop = c.GetString("MONTO_DIA") / c.GetString("CLIENTES_DIA")
|
drop = c.GetString("MONTO_DIA") / c.GetString("CLIENTES_DIA")
|
||||||
Catch
|
Catch
|
||||||
@@ -342,10 +345,20 @@ Sub B4XPage_Appear
|
|||||||
reqManagerW.Initialize
|
reqManagerW.Initialize
|
||||||
Log($"DBREQSERVER = ${Starter.DBReqServer}"$)
|
Log($"DBREQSERVER = ${Starter.DBReqServer}"$)
|
||||||
|
|
||||||
|
' c = Starter.skmt.ExecQuery($"select * from CAT_ALMACEN"$)
|
||||||
|
' If c.RowCount > 0 Then
|
||||||
|
' c.Position = 0
|
||||||
|
' Dim cmd As DBCommand
|
||||||
|
' cmd.Initialize
|
||||||
|
' cmd.Name = "select_version_KELL"
|
||||||
|
' cmd.Parameters = Array As Object(c.GetString("ID_ALMACEN"), Subs.traeRuta)
|
||||||
|
' reqManager.ExecuteQuery(cmd , 0, "version")
|
||||||
|
' End If
|
||||||
|
|
||||||
Dim cmd As DBCommand
|
Dim cmd As DBCommand
|
||||||
cmd.Initialize
|
cmd.Initialize
|
||||||
cmd.Name = "select_version_KELL"
|
cmd.Name = "select_conexion"
|
||||||
reqManager.ExecuteQuery(cmd , 0, "version")
|
reqManager.ExecuteQuery(cmd , 0, "conexion")
|
||||||
|
|
||||||
' If Not(btAdmin.IsEnabled) Then btAdmin.Enable 'Si no esta prendido el BT, lo prendemos.
|
' If Not(btAdmin.IsEnabled) Then btAdmin.Enable 'Si no esta prendido el BT, lo prendemos.
|
||||||
|
|
||||||
@@ -541,6 +554,7 @@ Sub B4XPage_Appear
|
|||||||
trabajar.Enabled = False
|
trabajar.Enabled = False
|
||||||
NUEVO.Enabled = False
|
NUEVO.Enabled = False
|
||||||
B_PROXIMA.Enabled = False
|
B_PROXIMA.Enabled = False
|
||||||
|
' LogColor("deshabilitamos", Colors.magenta)
|
||||||
Else
|
Else
|
||||||
Private cd1 As ColorDrawable
|
Private cd1 As ColorDrawable
|
||||||
cd1.Initialize(Colors.RGB(213, 0, 0), 5dip)
|
cd1.Initialize(Colors.RGB(213, 0, 0), 5dip)
|
||||||
@@ -550,13 +564,40 @@ Sub B4XPage_Appear
|
|||||||
NUEVO.Enabled = True
|
NUEVO.Enabled = True
|
||||||
B_PROXIMA.Enabled = True
|
B_PROXIMA.Enabled = True
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
'############# Deshabilitamos botones para validacion de ruta y vinculo #########
|
||||||
|
c = Starter.skmt.ExecQuery("select count(*) as cuantos from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = 'LIGADO' and CAT_VA_VALOR = 1")
|
||||||
|
c.Position = 0
|
||||||
|
If c.GetInt("cuantos") = 0 Then
|
||||||
|
trabajar.Enabled = False
|
||||||
|
Resumen.Enabled = False
|
||||||
|
BUSCA.Enabled = False
|
||||||
|
Btn_CheckList.Enabled = False
|
||||||
|
NUEVO.Enabled = False
|
||||||
|
B_PROXIMA.Enabled = False
|
||||||
|
' LogColor("deshabilitamos", Colors.magenta)
|
||||||
|
Else
|
||||||
|
trabajar.Enabled = True
|
||||||
|
Resumen.Enabled = True
|
||||||
|
BUSCA.Enabled = True
|
||||||
|
Btn_CheckList.Enabled = True
|
||||||
|
NUEVO.Enabled = True
|
||||||
|
B_PROXIMA.Enabled = True
|
||||||
|
' LogColor("deshabilitamos", Colors.magenta)
|
||||||
|
End If
|
||||||
|
|
||||||
|
'################################################################################
|
||||||
|
|
||||||
kh.traeMaxClientesNuevos
|
kh.traeMaxClientesNuevos
|
||||||
Private n As Cursor = Starter.skmt.ExecQuery("select count(*) as cuantos from kmt_info where cat_cl_codigo like 'N%'")
|
Private n As Cursor = Starter.skmt.ExecQuery("select count(*) as cuantos from kmt_info where cat_cl_codigo like 'N%'")
|
||||||
n.Position = 0
|
n.Position = 0
|
||||||
Log(n.GetString("cuantos"))
|
Log(n.GetString("cuantos"))
|
||||||
If n.GetString("cuantos") >= kh.traeMaxClientesNuevos Then NUEVO.Enabled = False
|
If n.GetString("cuantos") >= kh.traeMaxClientesNuevos Then NUEVO.Enabled = False
|
||||||
LogColor(">>>>>>>> REVISAMOS GUID <<<<<<<<<", Colors.red)
|
' LogColor(">>>>>>>> REVISAMOS GUID <<<<<<<<<", Colors.red)
|
||||||
Subs.generaGUID_EnExterno
|
' Subs.generaGUID_EnExterno
|
||||||
|
|
||||||
|
|
||||||
|
Subs.RecalcularInventario
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub trabajar_Click
|
Sub trabajar_Click
|
||||||
@@ -585,7 +626,6 @@ Sub trabajar_Click
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub Subir_Click
|
Sub Subir_Click
|
||||||
|
|
||||||
' Buscamos los clientes que tienen pedido y NO estan impresos.
|
' Buscamos los clientes que tienen pedido y NO estan impresos.
|
||||||
Private t As Cursor = Starter.skmt.ExecQuery("Select cat_cl_codigo from kmt_info where impresion = 0 and cat_cl_codigo not in (select ci_cuenta from cliente_impreso) and cat_cl_codigo in (select distinct pe_cliente from pedido)")
|
Private t As Cursor = Starter.skmt.ExecQuery("Select cat_cl_codigo from kmt_info where impresion = 0 and cat_cl_codigo not in (select ci_cuenta from cliente_impreso) and cat_cl_codigo in (select distinct pe_cliente from pedido)")
|
||||||
If t.RowCount > 0 Then
|
If t.RowCount > 0 Then
|
||||||
@@ -597,9 +637,8 @@ Sub Subir_Click
|
|||||||
' Msgbox2Async($"El pedido del cliente ${t.GetString("CAT_CL_CODIGO")} no está impreso, se va a borrar"$, "PEDIDO NO IMPRESO", "Aceptar", "", "", Null, True)
|
' Msgbox2Async($"El pedido del cliente ${t.GetString("CAT_CL_CODIGO")} no está impreso, se va a borrar"$, "PEDIDO NO IMPRESO", "Aceptar", "", "", Null, True)
|
||||||
Next
|
Next
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Sleep(1000)
|
Sleep(1000)
|
||||||
|
|
||||||
CARGA = "SUBIR"
|
CARGA = "SUBIR"
|
||||||
' P1.Visible = True
|
' P1.Visible = True
|
||||||
trabajar.Visible = False
|
trabajar.Visible = False
|
||||||
@@ -615,12 +654,15 @@ Sub Subir_Click
|
|||||||
S_CH.Visible = False
|
S_CH.Visible = False
|
||||||
PB1.Visible = False
|
PB1.Visible = False
|
||||||
Resumen.Visible= False
|
Resumen.Visible= False
|
||||||
L_P_2.Text = "Envio de Pedidos"
|
L_P_2.Text = "Envio de información"
|
||||||
'L_P_3.Text = "Envio de Pedidos"
|
'L_P_3.Text = "Envio de Pedidos"
|
||||||
'S_CH.Text = "EN PROCESO"
|
'S_CH.Text = "EN PROCESO"
|
||||||
S_CP.Text = "EN PROCESO"
|
S_CP.Text = "EN PROCESO"
|
||||||
PB1.Progress = 0
|
PB1.Progress = 0
|
||||||
PB2.Progress = 0
|
PB2.Progress = 0
|
||||||
|
PB2.Color = Colors.RGB(180,203,36)
|
||||||
|
PB2.Height = 15dip
|
||||||
|
PB2.Padding = Array As Int (10dip, 10dip, 10dip, 10dip)
|
||||||
contador_env = 0
|
contador_env = 0
|
||||||
contador_strem = 0
|
contador_strem = 0
|
||||||
e_ruta.Text = ruta_valida
|
e_ruta.Text = ruta_valida
|
||||||
@@ -641,7 +683,7 @@ Sub Subir_Click
|
|||||||
SUBIR_INFO_PEDIDO
|
SUBIR_INFO_PEDIDO
|
||||||
Else
|
Else
|
||||||
Dim result As Int
|
Dim result As Int
|
||||||
result = Msgbox2("QUE VA A ENVIAR?", "ENVIO DE INFO.", "BOLETA", "VALIDAR", "VTA/PED", LoadBitmap(File.DirAssets, "alert2.png")) 'ignore
|
result = Msgbox2("QUE VA A ENVIAR?", "ENVIO DE INFO.", "BOLETA", "VALIDAR", "VENTA/PEDIDO", LoadBitmap(File.DirAssets, "alert2.png")) 'ignore
|
||||||
If result = DialogResponse.Positive Then
|
If result = DialogResponse.Positive Then
|
||||||
SUBIR_INFO_BOLETA
|
SUBIR_INFO_BOLETA
|
||||||
ELSE IF result = DialogResponse.NEGATIVE Then
|
ELSE IF result = DialogResponse.NEGATIVE Then
|
||||||
@@ -651,6 +693,18 @@ Sub Subir_Click
|
|||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
Private hn As Cursor = Starter.skmt.ExecQuery($"select distinct HN_CODIGO, HN_ID from hist_notificaciones"$)
|
||||||
|
If hn.RowCount > 0 Then
|
||||||
|
For i = 0 To hn.RowCount - 1
|
||||||
|
hn.Position = i
|
||||||
|
cmd.Initialize
|
||||||
|
cmd.Name = "borraHistNotificaciones"
|
||||||
|
cmd.Parameters = Array As Object( hn.GetString("HN_CODIGO"), hn.GetString("HN_ID"))
|
||||||
|
reqManager.ExecuteCommand(cmd , "borraHistNotificaciones_"&hn.GetString("HN_CODIGO")&"_"&hn.GetString("HN_ID"))
|
||||||
|
Next
|
||||||
|
End If
|
||||||
|
hn.Close
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub cargar_Click
|
Sub cargar_Click
|
||||||
@@ -742,7 +796,7 @@ Sub cargar_Click
|
|||||||
bcarga3 = 0
|
bcarga3 = 0
|
||||||
e_ruta.Text = ruta_valida
|
e_ruta.Text = ruta_valida
|
||||||
' NUEVOS CLIENTE
|
' NUEVOS CLIENTE
|
||||||
|
|
||||||
Starter.skmt.ExecNonQuery2("delete from kmt_info where substr(CAT_CL_CODIGO,1,1) <> ?", Array As Object ("N"))
|
Starter.skmt.ExecNonQuery2("delete from kmt_info where substr(CAT_CL_CODIGO,1,1) <> ?", Array As Object ("N"))
|
||||||
Starter.skmt.ExecNonQuery("delete from cod_result")
|
Starter.skmt.ExecNonQuery("delete from cod_result")
|
||||||
Starter.skmt.ExecNonQuery("delete from hist_gest")
|
Starter.skmt.ExecNonQuery("delete from hist_gest")
|
||||||
@@ -750,6 +804,7 @@ Sub cargar_Click
|
|||||||
Starter.skmt.ExecNonQuery("delete from cat_gunaprod")
|
Starter.skmt.ExecNonQuery("delete from cat_gunaprod")
|
||||||
Starter.skmt.ExecNonQuery("delete from cat_gunaprod2")
|
Starter.skmt.ExecNonQuery("delete from cat_gunaprod2")
|
||||||
Starter.skmt.ExecNonQuery("DELETE FROM CAT_GUNAPROD5")
|
Starter.skmt.ExecNonQuery("DELETE FROM CAT_GUNAPROD5")
|
||||||
|
Starter.skmt.ExecNonQuery("DELETE FROM CAT_INVENTARIO")
|
||||||
Starter.skmt.ExecNonQuery("DELETE FROM HIST_ENCUESTA2")
|
Starter.skmt.ExecNonQuery("DELETE FROM HIST_ENCUESTA2")
|
||||||
Starter.skmt.ExecNonQuery("delete from CAT_DETALLES_PAQ")
|
Starter.skmt.ExecNonQuery("delete from CAT_DETALLES_PAQ")
|
||||||
Starter.skmt.ExecNonQuery("delete from telefonos")
|
Starter.skmt.ExecNonQuery("delete from telefonos")
|
||||||
@@ -768,6 +823,7 @@ Sub cargar_Click
|
|||||||
Starter.skmt.ExecNonQuery("delete from DESC_CLIENTES")
|
Starter.skmt.ExecNonQuery("delete from DESC_CLIENTES")
|
||||||
Starter.skmt.ExecNonQuery("delete from CAT_ENCUESTA_PREGUNTA")
|
Starter.skmt.ExecNonQuery("delete from CAT_ENCUESTA_PREGUNTA")
|
||||||
Starter.skmt.ExecNonQuery("delete from CAT_PROMO_MONTO")
|
Starter.skmt.ExecNonQuery("delete from CAT_PROMO_MONTO")
|
||||||
|
Starter.skmt.ExecNonQuery("delete from CAT_NOTIFICACIONES")
|
||||||
''' PEDIDO DOE
|
''' PEDIDO DOE
|
||||||
Starter.skmt.ExecNonQuery("delete from CAT_GUNAPROD_DOE")
|
Starter.skmt.ExecNonQuery("delete from CAT_GUNAPROD_DOE")
|
||||||
Starter.skmt.ExecNonQuery("delete from PEDIDO_DOE")
|
Starter.skmt.ExecNonQuery("delete from PEDIDO_DOE")
|
||||||
@@ -987,17 +1043,17 @@ Sub cargar_Click
|
|||||||
cmd.Name = "select_cat_clientes_guna_KELL2"
|
cmd.Name = "select_cat_clientes_guna_KELL2"
|
||||||
cmd.Parameters = Array As Object(E_RUTA2.text, ALMACEN)
|
cmd.Parameters = Array As Object(E_RUTA2.text, ALMACEN)
|
||||||
' reqManager.ExecuteQuery(cmd , 0, "kmt_datos")
|
' reqManager.ExecuteQuery(cmd , 0, "kmt_datos")
|
||||||
|
|
||||||
cmd.Initialize
|
cmd.Initialize
|
||||||
cmd.Name = "select_hist_datos_KELL"
|
cmd.Name = "select_hist_datos_KELL"
|
||||||
cmd.Parameters = Array As Object(E_RUTA2.text, ALMACEN,e_ruta.text, ALMACEN)
|
cmd.Parameters = Array As Object(E_RUTA2.text, ALMACEN,e_ruta.text, ALMACEN)
|
||||||
reqManager.ExecuteQuery(cmd , 0, "hist_datos")
|
reqManager.ExecuteQuery(cmd , 0, "hist_datos")
|
||||||
|
|
||||||
cmd.Initialize
|
cmd.Initialize
|
||||||
cmd.Name = "select_hist_promos_KELL"
|
cmd.Name = "select_hist_promos_KELL"
|
||||||
cmd.Parameters = Array As Object(E_RUTA2.text, ALMACEN)
|
cmd.Parameters = Array As Object(E_RUTA2.text, ALMACEN)
|
||||||
reqManager.ExecuteQuery(cmd , 0, "hist_promos")
|
reqManager.ExecuteQuery(cmd , 0, "hist_promos")
|
||||||
|
|
||||||
cmd.Initialize
|
cmd.Initialize
|
||||||
cmd.Name = "select_hist_cliente_promos_KELL"
|
cmd.Name = "select_hist_cliente_promos_KELL"
|
||||||
cmd.Parameters = Array As Object(E_RUTA2.text, ALMACEN)
|
cmd.Parameters = Array As Object(E_RUTA2.text, ALMACEN)
|
||||||
@@ -1114,18 +1170,23 @@ Sub cargar_Click
|
|||||||
cmd.Name = "select_pedido_doe"
|
cmd.Name = "select_pedido_doe"
|
||||||
cmd.Parameters = Array As Object( ALMACEN,e_ruta.text )
|
cmd.Parameters = Array As Object( ALMACEN,e_ruta.text )
|
||||||
reqManager.ExecuteQuery(cmd , 0, "pedido_doe")
|
reqManager.ExecuteQuery(cmd , 0, "pedido_doe")
|
||||||
|
|
||||||
cmd.Initialize
|
cmd.Initialize
|
||||||
cmd.Name = "select_cat_gunaprod_doe"
|
cmd.Name = "select_cat_gunaprod_doe"
|
||||||
cmd.Parameters = Array As Object( ALMACEN,e_ruta.text )
|
cmd.Parameters = Array As Object( ALMACEN,e_ruta.text )
|
||||||
reqManager.ExecuteQuery(cmd , 0, "cat_gunaprod_doe")
|
reqManager.ExecuteQuery(cmd , 0, "cat_gunaprod_doe")
|
||||||
''' FIN DOE
|
''' FIN DOE
|
||||||
|
|
||||||
cmd.Initialize
|
cmd.Initialize
|
||||||
cmd.Name = "select_cat_devoluciones_KELL"
|
cmd.Name = "select_cat_devoluciones_KELL"
|
||||||
cmd.Parameters = Array As Object(ALMACEN)
|
cmd.Parameters = Array As Object(ALMACEN)
|
||||||
reqManager.ExecuteQuery(cmd , 0, "prods_rmi")
|
reqManager.ExecuteQuery(cmd , 0, "prods_rmi")
|
||||||
|
|
||||||
|
cmd.Initialize
|
||||||
|
cmd.Name = "selectNotificaciones"
|
||||||
|
cmd.Parameters = Array As Object(ALMACEN, e_ruta.Text)
|
||||||
|
reqManager.ExecuteQuery(cmd , 0, "selectNotificaciones")
|
||||||
|
|
||||||
cargar.Visible = False
|
cargar.Visible = False
|
||||||
Subir.Visible = False
|
Subir.Visible = False
|
||||||
trabajar.Visible=False
|
trabajar.Visible=False
|
||||||
@@ -1139,7 +1200,7 @@ Sub JobDone(Job As HttpJob)
|
|||||||
reqManager.trackNext(Job)
|
reqManager.trackNext(Job)
|
||||||
If Not(Job.Success) Then
|
If Not(Job.Success) Then
|
||||||
LogColor("Error: " & Job.tag & " : " & Subs.parseHTTPError(Job.ErrorMessage), Colors.red)
|
LogColor("Error: " & Job.tag & " : " & Subs.parseHTTPError(Job.ErrorMessage), Colors.red)
|
||||||
If Job.Tag = "version" Then
|
If Job.Tag = "conexion" Then
|
||||||
Starter.errorConnDBReq = True
|
Starter.errorConnDBReq = True
|
||||||
connecta.TextColor = Colors.red
|
connecta.TextColor = Colors.red
|
||||||
ToastMessageShow("Error al conectarse con Keymon, revise su conexión y reintente!", True)
|
ToastMessageShow("Error al conectarse con Keymon, revise su conexión y reintente!", True)
|
||||||
@@ -1383,6 +1444,7 @@ Sub JobDone(Job As HttpJob)
|
|||||||
'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))
|
||||||
Starter.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_GP_DEV,CAT_GP_CODPROMO,CAT_GP_TIPOPROD2,CAT_GP_PROMOCION) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,?,?)", 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_GP_DEV, CAT_GP_TIPOPROD2,CAT_GP_PROMOCION))
|
Starter.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_GP_DEV,CAT_GP_CODPROMO,CAT_GP_TIPOPROD2,CAT_GP_PROMOCION) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,?,?)", 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_GP_DEV, CAT_GP_TIPOPROD2,CAT_GP_PROMOCION))
|
||||||
|
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_INVENTARIO(CI_IDPROD,CI_INVENTARIO) VALUES (?,?)", Array As Object (CAT_GP_ID,CAT_GP_ALMACEN))
|
||||||
Next
|
Next
|
||||||
Starter.skmt.TransactionSuccessful
|
Starter.skmt.TransactionSuccessful
|
||||||
Starter.skmt.EndTransaction
|
Starter.skmt.EndTransaction
|
||||||
@@ -1482,6 +1544,7 @@ Sub JobDone(Job As HttpJob)
|
|||||||
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_DEV As String = records(RESULT.Columns.Get("CAT_GP_DEV"))
|
' Dim CAT_GP_DEV As String = records(RESULT.Columns.Get("CAT_GP_DEV"))
|
||||||
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_GUNAPROD2(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_DEV,CAT_GP_CODPROMO) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,0)", 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,"0"))
|
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_GUNAPROD2(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_DEV,CAT_GP_CODPROMO) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,0)", 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,"0"))
|
||||||
|
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_GUNAPROD5(CAT_GP_ID,CAT_GP_ALMACEN) VALUES (?,?)", Array As Object (CAT_GP_ID,CAT_GP_ALMACEN))
|
||||||
' skmt.ExecNonQuery2("INSERT INTO CAT_GUNAPROD2(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_DEV,CAT_GP_CODPROMO) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,0)", 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,"0"))
|
' skmt.ExecNonQuery2("INSERT INTO CAT_GUNAPROD2(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_DEV,CAT_GP_CODPROMO) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,0)", 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,"0"))
|
||||||
Next
|
Next
|
||||||
Starter.skmt.TransactionSuccessful
|
Starter.skmt.TransactionSuccessful
|
||||||
@@ -1526,6 +1589,7 @@ Sub JobDone(Job As HttpJob)
|
|||||||
Dim CAT_GP_ALMACEN As Int = records(RESULT.Columns.Get("CAT_GP_ALMACEN"))
|
Dim CAT_GP_ALMACEN As Int = records(RESULT.Columns.Get("CAT_GP_ALMACEN"))
|
||||||
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"))
|
||||||
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_GUNAPROD2(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) 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))
|
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_GUNAPROD2(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) 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))
|
||||||
|
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_GUNAPROD5(CAT_GP_ID,CAT_GP_ALMACEN) VALUES (?,?)", Array As Object (CAT_GP_ID,CAT_GP_ALMACEN))
|
||||||
' skmt.ExecNonQuery2("INSERT INTO CAT_GUNAPROD2(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) 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))
|
' skmt.ExecNonQuery2("INSERT INTO CAT_GUNAPROD2(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) 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))
|
||||||
Next
|
Next
|
||||||
Starter.skmt.TransactionSuccessful
|
Starter.skmt.TransactionSuccessful
|
||||||
@@ -1761,11 +1825,48 @@ Sub JobDone(Job As HttpJob)
|
|||||||
Next
|
Next
|
||||||
End If
|
End If
|
||||||
|
|
||||||
If RESULT.Tag = "ins_pedido" Then 'query tag
|
If RESULT.Tag.As(String).StartsWith("ins_pedido_") Then 'query tag
|
||||||
|
|
||||||
|
' If L_P_2.Text = "Envio de Pedidos" Then
|
||||||
|
' L_P_2.Text = "Envio de Pedidos --"
|
||||||
|
' Log(1)
|
||||||
|
' else if L_P_2.Text = "Envio de Pedidos --" Then
|
||||||
|
' Log(2)
|
||||||
|
' L_P_2.Text = "Envio de Pedidos \"
|
||||||
|
' else if L_P_2.Text = "Envio de Pedidos \" Then
|
||||||
|
' Log(3)
|
||||||
|
' L_P_2.Text = "Envio de Pedidos |"
|
||||||
|
' else if L_P_2.Text = "Envio de Pedidos |" Then
|
||||||
|
' Log(4)
|
||||||
|
' L_P_2.Text = "Envio de Pedidos /"
|
||||||
|
' else if L_P_2.Text = "Envio de Pedidos /" Then
|
||||||
|
' Log(5)
|
||||||
|
' L_P_2.Text = "Envio de Pedidos --"
|
||||||
|
' End If
|
||||||
|
|
||||||
For Each records() As Object In RESULT.Rows
|
For Each records() As Object In RESULT.Rows
|
||||||
|
Private temp() As String = Regex.Split("_", RESULT.Tag)
|
||||||
|
' Log(temp(2))
|
||||||
|
If temp.Length > 1 Then
|
||||||
|
Starter.skmt.ExecNonQuery($"update pedido set pe_enviado = 1 where pe_cliente = '${temp(2)}'"$)
|
||||||
|
Log($"update pedido set pe_enviado = 1 where pe_cliente = '${temp(2)}'"$)
|
||||||
|
End If
|
||||||
PB2.Progress = PB2.Progress + 5
|
PB2.Progress = PB2.Progress + 5
|
||||||
S_CP.Text = "SUBIENDO"
|
S_CP.Text = "SUBIENDO"
|
||||||
Next
|
Next
|
||||||
|
' PB2.Progress = 100
|
||||||
|
S_CP.Text = "VALIDANDO"
|
||||||
|
End If
|
||||||
|
|
||||||
|
If RESULT.Tag.As(String).StartsWith("ins_pedidos_") Then 'query tag
|
||||||
|
For Each records() As Object In RESULT.Rows
|
||||||
|
Private temp() As String = Regex.Split("_", RESULT.Tag)
|
||||||
|
' Log(temp(2))
|
||||||
|
If temp.Length > 1 Then
|
||||||
|
Starter.skmt.ExecNonQuery($"update pedido_cliente set pc_enviado = 1 where pc_cliente = '${temp(2)}'"$)
|
||||||
|
Log($"update pedido_cliente set pc_enviado = 1 where pc_cliente = '${temp(2)}'"$)
|
||||||
|
End If
|
||||||
|
Next
|
||||||
PB2.Progress = 100
|
PB2.Progress = 100
|
||||||
S_CP.Text = "VALIDANDO"
|
S_CP.Text = "VALIDANDO"
|
||||||
End If
|
End If
|
||||||
@@ -1773,6 +1874,7 @@ Sub JobDone(Job As HttpJob)
|
|||||||
If RESULT.Tag = "version" Then 'query tag
|
If RESULT.Tag = "version" Then 'query tag
|
||||||
connecta.TextColor = Colors.White
|
connecta.TextColor = Colors.White
|
||||||
' Subs.logJobDoneResultados(RESULT)
|
' Subs.logJobDoneResultados(RESULT)
|
||||||
|
Subs.logJobDoneResultados(RESULT)
|
||||||
For Each records() As Object In RESULT.Rows
|
For Each records() As Object In RESULT.Rows
|
||||||
Starter.skmt.ExecNonQuery("delete from VERSION")
|
Starter.skmt.ExecNonQuery("delete from VERSION")
|
||||||
Dim CAT_RU_VERSION_REQUERIDA As String = records(RESULT.Columns.Get("CAT_RU_VERSION_REQUERIDA"))
|
Dim CAT_RU_VERSION_REQUERIDA As String = records(RESULT.Columns.Get("CAT_RU_VERSION_REQUERIDA"))
|
||||||
@@ -1782,9 +1884,18 @@ Sub JobDone(Job As HttpJob)
|
|||||||
Next
|
Next
|
||||||
If CAT_RU_VERSION_REQUERIDA = 0 Or Subs.comparaVersiones(CAT_RU_VERSION_REQUERIDA, Application.VersionName) = 0 Then
|
If CAT_RU_VERSION_REQUERIDA = 0 Or Subs.comparaVersiones(CAT_RU_VERSION_REQUERIDA, Application.VersionName) = 0 Then
|
||||||
connecta3
|
connecta3
|
||||||
|
trabajar.Enabled = True
|
||||||
|
Resumen.Enabled = True
|
||||||
|
BUSCA.Enabled = True
|
||||||
|
Btn_CheckList.Enabled = True
|
||||||
Else
|
Else
|
||||||
Msgbox2("Es necesario actualizar la versión de la aplicación.", "VERSION INCORRECTA","Aceptar", "", "",Null) 'ignore
|
Msgbox2("Es necesario actualizar la versión de la aplicación.", "VERSION INCORRECTA","Aceptar", "", "",Null) 'ignore
|
||||||
|
trabajar.Enabled = False
|
||||||
|
Resumen.Enabled = False
|
||||||
|
BUSCA.Enabled = False
|
||||||
|
Btn_CheckList.Enabled = False
|
||||||
' ExitApplication
|
' ExitApplication
|
||||||
|
' LogColor("deshabilitamos", Colors.magenta)
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
|
||||||
@@ -1795,9 +1906,12 @@ Sub JobDone(Job As HttpJob)
|
|||||||
End If
|
End If
|
||||||
|
|
||||||
If RESULT.Tag = "ruta" Then 'query tag
|
If RESULT.Tag = "ruta" Then 'query tag
|
||||||
|
Log(654)
|
||||||
|
Subs.logJobDoneResultados(RESULT)
|
||||||
e_ruta.Enabled = True
|
e_ruta.Enabled = True
|
||||||
' Log(RESULT)
|
Log(RESULT)
|
||||||
' Log(RESULT.Columns.Get("VALIDO"))
|
Log(RESULT.Columns.Get("VALIDO"))
|
||||||
|
' Log(RESULT.Rows.Size)
|
||||||
If RESULT.Columns.Get("VALIDO") = "0" Then ToastMessageShow("Ruta incorrecta", True)
|
If RESULT.Columns.Get("VALIDO") = "0" Then ToastMessageShow("Ruta incorrecta", True)
|
||||||
If RESULT.Rows.Size = 0 Then ToastMessageShow("No hay ruta para ese usuario", True)
|
If RESULT.Rows.Size = 0 Then ToastMessageShow("No hay ruta para ese usuario", True)
|
||||||
For Each records() As Object In RESULT.Rows
|
For Each records() As Object In RESULT.Rows
|
||||||
@@ -2094,7 +2208,7 @@ Sub JobDone(Job As HttpJob)
|
|||||||
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_RMI (CAT_ID, CAT_DESCRIPCION, CAT_MONTO) VALUES (?,?,?)", Array As Object (CAT_ID, CAT_DESCRIPCION, CAT_MONTO))
|
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_RMI (CAT_ID, CAT_DESCRIPCION, CAT_MONTO) VALUES (?,?,?)", Array As Object (CAT_ID, CAT_DESCRIPCION, CAT_MONTO))
|
||||||
Next
|
Next
|
||||||
End If
|
End If
|
||||||
|
|
||||||
If RESULT.Tag = "semanaCalLaboral" Then 'query tag
|
If RESULT.Tag = "semanaCalLaboral" Then 'query tag
|
||||||
' Subs.logJobDoneResultados(RESULT)
|
' Subs.logJobDoneResultados(RESULT)
|
||||||
For Each records() As Object In RESULT.Rows
|
For Each records() As Object In RESULT.Rows
|
||||||
@@ -2104,6 +2218,17 @@ Sub JobDone(Job As HttpJob)
|
|||||||
Next
|
Next
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
If RESULT.Tag = "selectNotificaciones" Then 'query tag
|
||||||
|
Subs.logJobDoneResultados(RESULT)
|
||||||
|
For Each records() As Object In RESULT.Rows
|
||||||
|
Dim CN_CLIENTE As String = records(RESULT.COLUMNS.GET("HIST_NTC_IDCLIENTE"))
|
||||||
|
Dim CN_NOTIFICACION As String = records(RESULT.COLUMNS.GET("HIST_NTC_NOTIFICACION"))
|
||||||
|
Dim CN_CODIGO As String = records(RESULT.COLUMNS.GET("HIST_NTC_CODIGO"))
|
||||||
|
Dim CN_ID As String = records(RESULT.COLUMNS.GET("HIST_NTC_ID"))
|
||||||
|
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_NOTIFICACIONES (CN_CODIGO, CN_ID, CN_CLIENTE, CN_NOTIFICACION) VALUES (?,?,?,?)", Array As Object (CN_CODIGO, CN_ID, CN_CLIENTE, CN_NOTIFICACION))
|
||||||
|
Next
|
||||||
|
End If
|
||||||
|
|
||||||
If RESULT.Tag = "trendSpending" Then 'query tag
|
If RESULT.Tag = "trendSpending" Then 'query tag
|
||||||
' Subs.logJobDoneResultados(RESULT)
|
' Subs.logJobDoneResultados(RESULT)
|
||||||
Starter.skmt.ExecNonQuery("delete from HIST_TREND_SPENDING_SEMANAL")
|
Starter.skmt.ExecNonQuery("delete from HIST_TREND_SPENDING_SEMANAL")
|
||||||
@@ -2130,6 +2255,10 @@ Sub JobDone(Job As HttpJob)
|
|||||||
' Subs.logJobDoneResultados(RESULT)
|
' Subs.logJobDoneResultados(RESULT)
|
||||||
ts.Initialize(Me, "ts", Starter.skmt)
|
ts.Initialize(Me, "ts", Starter.skmt)
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
' If RESULT.Tag = "borraHistNotificaciones" Then enviaHistNotificaciones
|
||||||
|
' If RESULT.Tag = "insertHistNotificaciones" Then revisaHistNotificaciones
|
||||||
|
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
|
||||||
@@ -2138,22 +2267,85 @@ Sub JobDone(Job As HttpJob)
|
|||||||
End If
|
End If
|
||||||
Job.Release
|
Job.Release
|
||||||
|
|
||||||
' if carga = "SUBIR" then logcolor(reqManager.reqsList, Colors.blue)
|
If reqManager.reqsList.IsInitialized Then
|
||||||
|
LogColor(reqManager.reqsList, Colors.blue)
|
||||||
|
LogColor(reqManager.reqsList.Size, Colors.blue)
|
||||||
|
If CARGA = "SUBIR" Then actualizaProgressBar
|
||||||
|
|
||||||
|
'Si ya se procesaron TODAS las peticiones, entonces realizamos validaciones.
|
||||||
|
If reqManager.reqsList.Size = 0 Then
|
||||||
|
If CARGA = "SUBIR" Then revisaHistNotificaciones
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
' LogColor(reqTotales, Colors.blue)
|
||||||
|
|
||||||
|
|
||||||
' If Starter.Logger Then Log($"tiempo Request "${Job.Tag}": ${((reqManager.inicioJobDone - reqManager.inicioRequest)/1000)}"$)
|
' If Starter.Logger Then Log($"tiempo Request "${Job.Tag}": ${((reqManager.inicioJobDone - reqManager.inicioRequest)/1000)}"$)
|
||||||
' If Starter.Logger Then Log($"tiempo JobDone "${Job.Tag}": ${((DateTime.Now - reqManager.inicioJobDone)/1000)}"$)
|
' If Starter.Logger Then Log($"tiempo JobDone "${Job.Tag}": ${((DateTime.Now - reqManager.inicioJobDone)/1000)}"$)
|
||||||
' If Starter.Logger Then Log($"tiempo Total "${Job.Tag}": ${((DateTime.Now - inicioContador)/1000)}"$)
|
' If Starter.Logger Then Log($"tiempo Total "${Job.Tag}": ${((DateTime.Now - inicioContador)/1000)}"$)
|
||||||
|
|
||||||
If CARGA = "CARGAR" And S_CP.Text = "LISTO" And S_CC.Text = "LISTO" And S_CH.Text = "LISTO" Then
|
If CARGA = "CARGAR" And S_CP.Text = "LISTO" And S_CC.Text = "LISTO" And S_CH.Text = "LISTO" Then
|
||||||
' LogColor("TERMINAMOS", Colors.red)
|
' LogColor("TERMINAMOS", Colors.red)
|
||||||
B_OK_PAS.Text = "OK"
|
B_OK_PAS.Text = "OK"
|
||||||
copiaCatGPPromocion
|
copiaCatGPPromocion
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Log(reqManager.requestTimes(Job.Tag))
|
' Log(reqManager.requestTimes(Job.Tag))
|
||||||
' Log($"tiempo Total "${Job.Tag}": ${((DateTime.Now - inicioContador)/1000)}"$)
|
' Log($"tiempo Total "${Job.Tag}": ${((DateTime.Now - inicioContador)/1000)}"$)
|
||||||
' reqManager.PrintTable(RESULT)2
|
' reqManager.PrintTable(RESULT)2
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
'Envia el historial de notificaciones despues de haberlas borrado para que no se dupliquen.
|
||||||
|
Sub enviaHistNotificaciones
|
||||||
|
Private hn As Cursor = Starter.skmt.ExecQuery($"select * from hist_notificaciones"$)
|
||||||
|
If hn.RowCount > 0 Then
|
||||||
|
For i = 0 To hn.RowCount - 1
|
||||||
|
hn.Position = i
|
||||||
|
cmd.Initialize
|
||||||
|
cmd.Name = "insertHistNotificaciones"
|
||||||
|
cmd.Parameters = Array As Object( hn.GetString("HN_CODIGO"), hn.GetString("HN_ID"), hn.GetString("HN_FECHA"))
|
||||||
|
reqManager.ExecuteCommand(cmd , "insertHistNotificaciones")
|
||||||
|
Next
|
||||||
|
hn.Close
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
' Revisa que en web haya el numero correcto de notificaciones en el historial
|
||||||
|
Sub revisaHistNotificaciones
|
||||||
|
LogColor("####################### REVISA NOTIS ########", Colors.red)
|
||||||
|
Private cn As Cursor = Starter.skmt.ExecQuery("select count(HN_CODIGO) as cuantos, HN_CODIGO, HN_ID from HIST_NOTIFICACIONES")
|
||||||
|
If cn.RowCount > 0 Then
|
||||||
|
cn.Position = 0
|
||||||
|
Private CuantasN As Int = cn.GetInt("cuantos")
|
||||||
|
cmd.Name = "selectCuantasNotificaciones"
|
||||||
|
cmd.Parameters = Array As Object(cn.GetString("HN_ID"), cn.GetString("HN_CODIGO"))
|
||||||
|
reqManagerW.ExecuteQuery(Starter.DBReqServer, cmd, Me, "selectCuantasNotificaciones")
|
||||||
|
Wait For selectCuantasNotificaciones_Completed (r As TResultado)
|
||||||
|
If r.Success Then
|
||||||
|
LogColor("####################### selectCuantasNotificaciones ########", Colors.red)
|
||||||
|
Subs.logJobDoneResultados(r.resultado)
|
||||||
|
For Each records() As Object In r.resultado.Rows
|
||||||
|
Dim CuantasN As Int = records(r.resultado.Columns.Get("CUANTOS"))
|
||||||
|
If cn.GetInt("cuantos") > CuantasN Then
|
||||||
|
enviaHistNotificaciones
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
Else
|
||||||
|
Log(r.ErrorMessage)
|
||||||
|
End If
|
||||||
|
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Sub actualizaProgressBar
|
||||||
|
Log($"Porcentaje = ${(((reqTotales-reqManager.reqsList.Size)/reqTotales)*100).As(Int)}"$)
|
||||||
|
Private porcentajePB2 As Int = (((reqTotales-reqManager.reqsList.Size)/reqTotales)*100).As(Int)
|
||||||
|
If PB2.IsInitialized And PB2.Visible Then
|
||||||
|
Sleep(0)
|
||||||
|
PB2.Progress = porcentajePB2
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
|
||||||
Sub copiaCatGPPromocion
|
Sub copiaCatGPPromocion
|
||||||
Log(">>>>>>>>> COPIAMOS CAT_GP_PROMOCION a CAT_GUNAPROD2")
|
Log(">>>>>>>>> COPIAMOS CAT_GP_PROMOCION a CAT_GUNAPROD2")
|
||||||
Starter.skmt.ExecNonQuery("UPDATE CAT_GUNAPROD2 SET CAT_GP_PROMOCION = '0'")
|
Starter.skmt.ExecNonQuery("UPDATE CAT_GUNAPROD2 SET CAT_GP_PROMOCION = '0'")
|
||||||
@@ -2217,6 +2409,8 @@ Sub connecta_Click
|
|||||||
Else
|
Else
|
||||||
connecta.TextColor = Colors.White
|
connecta.TextColor = Colors.White
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
kb.HideKeyboard
|
||||||
' Log("################# PERMISOS BT: " & Starter.rp.Check("android.permission.BLUETOOTH_CONNECT"))
|
' Log("################# PERMISOS BT: " & Starter.rp.Check("android.permission.BLUETOOTH_CONNECT"))
|
||||||
' Log("Permisos BT: " & Starter.rp.Check("android.permission.BLUETOOTH_CONNECT"))
|
' Log("Permisos BT: " & Starter.rp.Check("android.permission.BLUETOOTH_CONNECT"))
|
||||||
' Log("REVISAMOS PERMISOS DE BT")
|
' Log("REVISAMOS PERMISOS DE BT")
|
||||||
@@ -2256,28 +2450,43 @@ Sub connecta_Click
|
|||||||
|
|
||||||
reqManager.trackInit
|
reqManager.trackInit
|
||||||
|
|
||||||
linker.VerifyAndLinkDevice(Subs.traeAlmacen, Subs.traeRuta)
|
' EL EVENTO DE CONECTAR AHORA SE DISPARA DESPUES DE REVISAR SI LA RUTA ESTA LIGADA O NO AL DISPOSITIVO (verifyDevice).
|
||||||
|
' REVISAR EL SUB "Linker_Response"
|
||||||
|
linker.verifyDevice(Subs.traeAlmacen, e_ruta.text)
|
||||||
|
|
||||||
' Else
|
' Else
|
||||||
' Msgbox("LA RUTA NO ES CORRECTA","") 'ignore
|
' Msgbox("LA RUTA NO ES CORRECTA","") 'ignore
|
||||||
' End If
|
' End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
'Revisamos que la version actual sea la correcta.
|
||||||
Sub connecta2
|
Sub connecta2
|
||||||
Dim cmd As DBCommand
|
Private revisaVersion As Boolean = True ' La verificacion se realiza por default
|
||||||
cmd.Initialize
|
Private vv As Cursor = Starter.skmt.ExecQuery("select * from cat_variables where CAT_VA_DESCRIPCION = 'VALIDA_VERSION'")
|
||||||
cmd.Name = "select_version_KELL"
|
If vv.RowCount > 0 Then
|
||||||
cmd.Parameters = Array As Object(ALMACEN, e_ruta.text)
|
vv.Position = 0
|
||||||
reqManager.ExecuteQuery(cmd , 0, "version")
|
If vv.GetString("CAT_VA_VALOR") = 0 Then revisaVersion = False
|
||||||
|
End If
|
||||||
|
If revisaVersion Then ' Si VALIDA_VERSION no está en CERO ... revisamos.
|
||||||
|
Log(123)
|
||||||
|
Dim cmd As DBCommand
|
||||||
|
cmd.Initialize
|
||||||
|
cmd.Name = "select_version_KELL"
|
||||||
|
cmd.Parameters = Array As Object(ALMACEN, e_ruta.text)
|
||||||
|
reqManager.ExecuteQuery(cmd , 0, "version")
|
||||||
|
Else ' Si está en CERO (Validacion deshabilitada), continuamos a connecta3.
|
||||||
|
' Log(456)
|
||||||
|
connecta3
|
||||||
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
Sub connecta3
|
Sub connecta3
|
||||||
|
' Log(789)
|
||||||
Dim cmd As DBCommand
|
Dim cmd As DBCommand
|
||||||
cmd.Initialize
|
cmd.Initialize
|
||||||
cmd.Name = "select_ruta4_KELL"
|
cmd.Name = "select_ruta5_KELL"
|
||||||
cmd.Parameters = Array As Object(ALMACEN, e_ruta.text, usuario)
|
cmd.Parameters = Array As Object(ALMACEN, e_ruta.text, usuario)
|
||||||
' Log($"******* Almacen: ${ALMACEN}, ${e_ruta.text}, ${usuario}"$)
|
Log($"******* Almacen: ${ALMACEN}, ${e_ruta.text}, ${usuario}"$)
|
||||||
reqManager.ExecuteQuery(cmd , 0, "ruta")
|
reqManager.ExecuteQuery(cmd , 0, "ruta")
|
||||||
e_ruta.Enabled = False
|
e_ruta.Enabled = False
|
||||||
If e_ruta.Text = "KMTSKLL1" Then e_ruta.Enabled = True
|
If e_ruta.Text = "KMTSKLL1" Then e_ruta.Enabled = True
|
||||||
@@ -2298,6 +2507,7 @@ Private Sub connecta_LongClick
|
|||||||
' Loop
|
' Loop
|
||||||
'' End If
|
'' End If
|
||||||
' Log("MANDAMOS BITACORA")
|
' Log("MANDAMOS BITACORA")
|
||||||
|
If e_ruta.Text = "KMTKLL1" Then Subs.deshabilitaValidaciones
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub BUSCA_Click
|
Sub BUSCA_Click
|
||||||
@@ -2323,16 +2533,17 @@ Sub e_ruta_EnterPressed
|
|||||||
res = Msgbox2("Seguro que desea hacer el cierre? ... todos los datos se borraran","Cierre", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) 'ignore
|
res = Msgbox2("Seguro que desea hacer el cierre? ... todos los datos se borraran","Cierre", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) 'ignore
|
||||||
If res = DialogResponse.POSITIVE Then
|
If res = DialogResponse.POSITIVE Then
|
||||||
e_ruta.Text = ""
|
e_ruta.Text = ""
|
||||||
|
Starter.skmt.ExecNonQuery("delete from pedido")
|
||||||
Starter.skmt.ExecNonQuery("delete from pedido_cliente")
|
Starter.skmt.ExecNonQuery("delete from pedido_cliente")
|
||||||
Starter.skmt.ExecNonQuery("delete from pedido_sugerido")
|
Starter.skmt.ExecNonQuery("delete from pedido_sugerido")
|
||||||
Starter.skmt.ExecNonQuery("delete from pedido")
|
|
||||||
Starter.skmt.ExecNonQuery("delete from BITACORAGPS")
|
Starter.skmt.ExecNonQuery("delete from BITACORAGPS")
|
||||||
Starter.skmt.ExecNonQuery("delete from noventa")
|
Starter.skmt.ExecNonQuery("delete from noventa")
|
||||||
Starter.skmt.ExecNonQuery("delete from clie_act")
|
Starter.skmt.ExecNonQuery("delete from clie_act")
|
||||||
Starter.skmt.ExecNonQuery("delete from kmt_info")
|
Starter.skmt.ExecNonQuery("delete from kmt_info")
|
||||||
Starter.skmt.ExecNonQuery("delete from cat_gunaprod")
|
Starter.skmt.ExecNonQuery("delete from cat_gunaprod")
|
||||||
Starter.skmt.ExecNonQuery("delete from cat_rmi")
|
|
||||||
Starter.skmt.ExecNonQuery("delete from cat_gunaprod2")
|
Starter.skmt.ExecNonQuery("delete from cat_gunaprod2")
|
||||||
|
Starter.skmt.ExecNonQuery("delete from cat_inventario")
|
||||||
|
Starter.skmt.ExecNonQuery("delete from cat_rmi")
|
||||||
Starter.skmt.ExecNonQuery("delete from CAT_DETALLES_PAQ")
|
Starter.skmt.ExecNonQuery("delete from CAT_DETALLES_PAQ")
|
||||||
Starter.skmt.ExecNonQuery("delete from HIST_VENTAS")
|
Starter.skmt.ExecNonQuery("delete from HIST_VENTAS")
|
||||||
Starter.skmt.ExecNonQuery("delete from HIST_VERIFICACION")
|
Starter.skmt.ExecNonQuery("delete from HIST_VERIFICACION")
|
||||||
@@ -2348,7 +2559,7 @@ Sub e_ruta_EnterPressed
|
|||||||
Starter.skmt.ExecNonQuery("delete from TREND_SPENDING")
|
Starter.skmt.ExecNonQuery("delete from TREND_SPENDING")
|
||||||
Starter.skmt.ExecNonQuery("delete from HIST_TREND_SPENDING_SEMANAL")
|
Starter.skmt.ExecNonQuery("delete from HIST_TREND_SPENDING_SEMANAL")
|
||||||
Starter.skmt.ExecNonQuery("delete from VERSIONES")
|
Starter.skmt.ExecNonQuery("delete from VERSIONES")
|
||||||
|
|
||||||
Starter.skmt.ExecNonQuery2("INSERT INTO HIST_ENVIOS VALUES (?,0,?)", Array As Object(sTime, "PEDIDO"))
|
Starter.skmt.ExecNonQuery2("INSERT INTO HIST_ENVIOS VALUES (?,0,?)", Array As Object(sTime, "PEDIDO"))
|
||||||
Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("NUMERO_PEDIDO"))
|
Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("NUMERO_PEDIDO"))
|
||||||
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("NUMERO_PEDIDO",0))
|
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("NUMERO_PEDIDO",0))
|
||||||
@@ -2356,6 +2567,8 @@ Sub e_ruta_EnterPressed
|
|||||||
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES (CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object("FINDIA_FECHA", Starter.FECHA_HOY))
|
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES (CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object("FINDIA_FECHA", Starter.FECHA_HOY))
|
||||||
Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("NOVISITA_ACTIVA"))
|
Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("NOVISITA_ACTIVA"))
|
||||||
Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("NOVISITA_RAZON"))
|
Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("NOVISITA_RAZON"))
|
||||||
|
Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("VERIFY_DEVICE"))
|
||||||
|
Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("VALIDA_VERSION"))
|
||||||
If File.Exists(File.DirInternal,"FOTO1.jpg") Then File.Delete(File.DirInternal,"FOTO1.jpg")
|
If File.Exists(File.DirInternal,"FOTO1.jpg") Then File.Delete(File.DirInternal,"FOTO1.jpg")
|
||||||
If File.Exists(File.DirInternal,"FOTO2.jpg") Then File.Delete(File.DirInternal,"FOTO2.jpg")
|
If File.Exists(File.DirInternal,"FOTO2.jpg") Then File.Delete(File.DirInternal,"FOTO2.jpg")
|
||||||
If File.Exists(File.DirInternal,"FOTO3.jpg") Then File.Delete(File.DirInternal,"FOTO3.jpg")
|
If File.Exists(File.DirInternal,"FOTO3.jpg") Then File.Delete(File.DirInternal,"FOTO3.jpg")
|
||||||
@@ -2598,6 +2811,7 @@ Sub B_OK_RES_Click
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub Resumen_Click
|
Sub Resumen_Click
|
||||||
|
Log("###############")
|
||||||
L_ABORDO.Text = "0"
|
L_ABORDO.Text = "0"
|
||||||
P_RESUMEN.Visible = True
|
P_RESUMEN.Visible = True
|
||||||
P_RESUMEN.BringToFront
|
P_RESUMEN.BringToFront
|
||||||
@@ -2633,10 +2847,14 @@ Sub Resumen_Click
|
|||||||
l_ruta.Text = f.GetString("CAT_CL_RUTA")
|
l_ruta.Text = f.GetString("CAT_CL_RUTA")
|
||||||
f.Close
|
f.Close
|
||||||
End If
|
End If
|
||||||
|
b = Starter.skmt.ExecQuery("select count(*) as CUANTOS from noventa")
|
||||||
|
b.Position = 0
|
||||||
|
l_cuantosn.Text = b.GetString("CUANTOS")
|
||||||
If Cuantos = 0 Then
|
If Cuantos = 0 Then
|
||||||
L_MONTOD.Text = 0
|
L_MONTOD.Text = 0
|
||||||
l_cuantosc.Text = 0
|
l_cuantosc.Text = 0
|
||||||
l_cuantosn.Text = 0
|
' l_cuantosn.Text = 0
|
||||||
|
' Log(">>>> Ponemos en CERO!!")
|
||||||
drop = 0
|
drop = 0
|
||||||
l_drop.Text = 0
|
l_drop.Text = 0
|
||||||
efectiva = 0
|
efectiva = 0
|
||||||
@@ -2707,10 +2925,8 @@ Sub Resumen_Click
|
|||||||
End If
|
End If
|
||||||
DDD.Close
|
DDD.Close
|
||||||
c = Starter.skmt.ExecQuery("select sum(pc_monto) as MONTO_DIA, count(pc_cliente) AS CLIENTES_DIA from pedido_cliente where pc_cliente <> 0")
|
c = Starter.skmt.ExecQuery("select sum(pc_monto) as MONTO_DIA, count(pc_cliente) AS CLIENTES_DIA from pedido_cliente where pc_cliente <> 0")
|
||||||
b = Starter.skmt.ExecQuery("select count(*) as CUANTOS from noventa")
|
|
||||||
'where pc_fecha = ?", Array As String(fecha)
|
'where pc_fecha = ?", Array As String(fecha)
|
||||||
c.Position = 0
|
c.Position = 0
|
||||||
b.Position = 0
|
|
||||||
' L_MONTOD.Text = c.GetString("MONTO_DIA")
|
' L_MONTOD.Text = c.GetString("MONTO_DIA")
|
||||||
L_MONTOD.Text = Subs.sumaPedido(Subs.traeCliente) 'Trae el monto sin el redondeo que a veces hace el SUM().
|
L_MONTOD.Text = Subs.sumaPedido(Subs.traeCliente) 'Trae el monto sin el redondeo que a veces hace el SUM().
|
||||||
|
|
||||||
@@ -2723,7 +2939,8 @@ Sub Resumen_Click
|
|||||||
' Log(Subs.sumaPedido(Subs.traeCliente) & " - " & L_MONTOD.Text)
|
' Log(Subs.sumaPedido(Subs.traeCliente) & " - " & L_MONTOD.Text)
|
||||||
' Subs.sumaPedido(Subs.traeCliente)
|
' Subs.sumaPedido(Subs.traeCliente)
|
||||||
l_cuantosc.Text = c.GetString("CLIENTES_DIA")
|
l_cuantosc.Text = c.GetString("CLIENTES_DIA")
|
||||||
l_cuantosn.Text = b.GetString("CUANTOS")
|
|
||||||
|
Log(">>>> Ponemos en " & b.GetString("CUANTOS"))
|
||||||
l_porvisitar.Text = NumberFormat2((l_cuantosc.Text + l_cuantosn.Text), 1, 0, 0, False)
|
l_porvisitar.Text = NumberFormat2((l_cuantosc.Text + l_cuantosn.Text), 1, 0, 0, False)
|
||||||
' efectiva = L_CUANTOST.Text / e.GetString("POR_VISITAR")
|
' efectiva = L_CUANTOST.Text / e.GetString("POR_VISITAR")
|
||||||
efectiva = l_porvisitar.Text / L_CUANTOST.text ' Efectividad = Visitados de hoy / Totales de hoy
|
efectiva = l_porvisitar.Text / L_CUANTOST.text ' Efectividad = Visitados de hoy / Totales de hoy
|
||||||
@@ -3055,14 +3272,16 @@ Sub SUBIR_INFO_PEDIDO
|
|||||||
If abordo1 = "" Then abordo1 = "0"
|
If abordo1 = "" Then abordo1 = "0"
|
||||||
Log($"${monto1}, ${abordo1}"$)
|
Log($"${monto1}, ${abordo1}"$)
|
||||||
monto1 = monto1 - abordo1
|
monto1 = monto1 - abordo1
|
||||||
|
|
||||||
reqManager.trackInit
|
reqManager.trackInit
|
||||||
|
|
||||||
Dim cmd As DBCommand
|
Dim cmd As DBCommand
|
||||||
cmd.Initialize
|
cmd.Initialize
|
||||||
cmd.Name ="insert_drop2_KELL"
|
cmd.Name ="insert_drop2_KELL"
|
||||||
cmd.Parameters = Array As Object(usuario, l_ruta.Text, fecha, l_porvisitar.Text, l_drop.Text, l_efectiva.Text, l_cuantosc.Text, l_cuantosn.Text, monto1, "ENVIO", ALMACEN, abordo1)
|
cmd.Parameters = Array As Object(usuario, l_ruta.Text, fecha, l_porvisitar.Text, l_drop.Text, l_efectiva.Text, l_cuantosc.Text, l_cuantosn.Text, monto1, "ENVIO", ALMACEN, abordo1)
|
||||||
reqManager.ExecuteCommand(cmd , "inst_noventa_ins_drop_kell")
|
reqManager.ExecuteCommand(cmd , "inst_noventa_ins_drop_kell")
|
||||||
|
Log($"${usuario}, ${l_ruta.Text}, ${fecha}, ${l_porvisitar.Text}, ${l_drop.Text}, ${l_efectiva.Text}, ${l_cuantosc.Text}, ${l_cuantosn.Text}, ${monto1}, "ENVIO", ${ALMACEN}, ${abordo1}"$)
|
||||||
|
Log("################## inst_noventa_ins_drop_kell")
|
||||||
img2.Visible =True
|
img2.Visible =True
|
||||||
contador_env = contador_env + 1
|
contador_env = contador_env + 1
|
||||||
S_CP.Text = "Envio Cabecera"
|
S_CP.Text = "Envio Cabecera"
|
||||||
@@ -3083,7 +3302,7 @@ Sub SUBIR_INFO_PEDIDO
|
|||||||
cmd.Initialize
|
cmd.Initialize
|
||||||
Private eventob As String = h.GetString("eventob")
|
Private eventob As String = h.GetString("eventob")
|
||||||
cmd.Name = "mandaBitacora3"
|
cmd.Name = "mandaBitacora3"
|
||||||
Log("BITACORA3")
|
' Log("BITACORA3")
|
||||||
Private clienteb As String = h.GetString("clienteb")
|
Private clienteb As String = h.GetString("clienteb")
|
||||||
Private finb As String = h.GetString("finb")
|
Private finb As String = h.GetString("finb")
|
||||||
Private nombreCliente As String =Subs. traeNombreCliente(h.GetString("clienteb"))
|
Private nombreCliente As String =Subs. traeNombreCliente(h.GetString("clienteb"))
|
||||||
@@ -3135,9 +3354,11 @@ Sub SUBIR_INFO_PEDIDO
|
|||||||
Next
|
Next
|
||||||
End If
|
End If
|
||||||
c.Close
|
c.Close
|
||||||
|
|
||||||
t3.Initialize("T3", 500) ' 1000 = 1 second
|
t3.Initialize("T3", 500) ' 1000 = 1 second
|
||||||
t3.Enabled = True
|
t3.Enabled = True
|
||||||
Wait For t3_tick
|
Wait For t3_tick
|
||||||
|
|
||||||
'clientes nuevos
|
'clientes nuevos
|
||||||
c = Starter.skmt.ExecQuery2("SELECT CAT_CL_CODIGO, CAT_CL_NOMBRE FROM kmt_info where CAT_CL_ATIENDE1 = ?", Array As String("new"))
|
c = Starter.skmt.ExecQuery2("SELECT CAT_CL_CODIGO, CAT_CL_NOMBRE FROM kmt_info where CAT_CL_ATIENDE1 = ?", Array As String("new"))
|
||||||
S_CP.Text = "Envio C/Nuevos"
|
S_CP.Text = "Envio C/Nuevos"
|
||||||
@@ -3162,97 +3383,24 @@ Sub SUBIR_INFO_PEDIDO
|
|||||||
PB2.Progress = 1
|
PB2.Progress = 1
|
||||||
|
|
||||||
' PEDIO_CLIENTE
|
' PEDIO_CLIENTE
|
||||||
c = Starter.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 ")
|
enviaPedidoCliente("Todos")
|
||||||
|
|
||||||
d = Starter.skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDOSC FROM PEDIDO_CLIENTE ")
|
d = Starter.skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDOSC FROM PEDIDO_CLIENTE ")
|
||||||
If c.RowCount > 0 Then
|
|
||||||
For i = 0 To c.RowCount - 1
|
|
||||||
c.Position = i
|
|
||||||
Dim cmd As DBCommand
|
|
||||||
cmd.Initialize
|
|
||||||
cmd.Name = "insert_pedidos_KELL"
|
|
||||||
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") )
|
|
||||||
reqManager.ExecuteCommand(cmd , "ins_pedidos")
|
|
||||||
PB2.Progress = PB2.Progress + 1
|
|
||||||
contador_env = contador_env + 1
|
|
||||||
Next
|
|
||||||
c.Close
|
|
||||||
End If
|
|
||||||
d.Position=0
|
d.Position=0
|
||||||
cuantos_pedidosc = D.GetString("CUANTOS_PEDIDOSC")
|
cuantos_pedidosc = D.GetString("CUANTOS_PEDIDOSC")
|
||||||
PB2.Progress = 100
|
PB2.Progress = 100
|
||||||
d.Close
|
d.Close
|
||||||
|
|
||||||
ENVIADA = 0
|
ENVIADA = 0
|
||||||
PORENVIAR = 0
|
PORENVIAR = 0
|
||||||
|
|
||||||
' Msgbox(ENVIADA & " " & PORENVIAR, "A") 'ignore
|
' PEDIDO
|
||||||
c = Starter.skmt.ExecQuery2("SELECT COUNT(*) as CANTIDAD FROM HIST_ENVIOS WHERE HE_TIPO = ?",Array As String("ABORDO") )
|
t3.Initialize("T3", 500) ' 1000 = 1 second
|
||||||
c.Position = 0
|
t3.Enabled = True
|
||||||
If c.GetString("CANTIDAD") > 0 Then
|
Wait For t3_tick
|
||||||
Log($"pe_cedis_0"$)
|
enviaPedido("Todos")
|
||||||
Starter.skmt.ExecNonQuery2("update PEDIDO set PE_CEDIS = ? where PE_CLIENTE =? AND PE_FOLIO IS NULL ", Array As Object("RECARGA", "0"))
|
|
||||||
End If
|
d = Starter.skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDO FROM PEDIDO")
|
||||||
Starter.skmt.ExecNonQuery("UPDATE PEDIDO SET PE_FOLIO = rowid where PE_FOLIO = 0 or PE_FOLIO = 1")
|
|
||||||
If PERFIL = "V-ESPECIAL" Then
|
|
||||||
Log($"pe_cedis_1"$)
|
|
||||||
c = Starter.skmt.ExecQuery("SELECT PE_CEDIS, PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_FECHA, PE_USUARIO, PE_COSTO_SIN, PE_RUTA, PE_DESC, PE_FOLIO, PE_TIPO FROM PEDIDO ORDER BY PE_CLIENTE")
|
|
||||||
d = Starter.skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDO FROM PEDIDO")
|
|
||||||
If c.RowCount > 0 Then
|
|
||||||
For i = 0 To c.RowCount - 1
|
|
||||||
c.Position = i
|
|
||||||
Dim cmd As DBCommand
|
|
||||||
cmd.Initialize
|
|
||||||
cmd.Name = "insert_pedido_esp_KELL"
|
|
||||||
Log($"pe_cedis_2"$)
|
|
||||||
cmd.Parameters = Array As Object(c.GetString("PE_CEDIS"),ALMACEN,C.GetString("PE_COSTO_TOT"),C.GetString("PE_COSTOU"),C.GetString("PE_CANT"),C.GetString("PE_PRONOMBRE"),C.GetString("PE_PROID"),C.GetString("PE_CLIENTE"),C.GetString("PE_FECHA"),C.GetString("PE_USUARIO"),C.GetString("PE_RUTA"), C.GetString("PE_COSTO_SIN"),C.GetString("PE_DESC"),c.GetString("PE_FOLIO"), c.GetString("PE_TIPO"),NUMERO_PEDIDO )
|
|
||||||
reqManager.ExecuteCommand(cmd , "ins_pedido")
|
|
||||||
contador_env = contador_env + 1
|
|
||||||
Next
|
|
||||||
c.Close
|
|
||||||
End If
|
|
||||||
Else
|
|
||||||
Log($"pe_cedis_3"$)
|
|
||||||
c = Starter.skmt.ExecQuery("SELECT PE_CEDIS, PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_FECHA, PE_USUARIO, PE_COSTO_SIN, PE_RUTA, PE_DESC, PE_FOLIO, PE_TIPO FROM PEDIDO")
|
|
||||||
d = Starter.skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDO FROM PEDIDO")
|
|
||||||
TIEMPO = 0
|
|
||||||
t3.Initialize("T3", 500) ' 1000 = 1 second
|
|
||||||
t3.Enabled = True
|
|
||||||
Wait For t3_tick
|
|
||||||
S_CP.Text = "Envio de Pedidos"
|
|
||||||
PB2.Progress = 1
|
|
||||||
If c.RowCount>0 Then
|
|
||||||
For i = 0 To c.RowCount - 1
|
|
||||||
c.Position = i
|
|
||||||
Dim cmd As DBCommand
|
|
||||||
cmd.Initialize
|
|
||||||
cmd.Name = "insert_pedido_KELL"
|
|
||||||
If logger Then Log($"pe_cedis_4"$)
|
|
||||||
cmd.Parameters = Array As Object(c.GetString("PE_CEDIS"),ALMACEN,C.GetString("PE_COSTO_TOT"),C.GetString("PE_COSTOU"),C.GetString("PE_CANT"),C.GetString("PE_PRONOMBRE"),C.GetString("PE_PROID"),C.GetString("PE_CLIENTE"),C.GetString("PE_FECHA"),C.GetString("PE_USUARIO"),C.GetString("PE_RUTA"), C.GetString("PE_COSTO_SIN"),C.GetString("PE_DESC"),c.GetString("PE_FOLIO"), c.GetString("PE_TIPO"))
|
|
||||||
reqManager.ExecuteCommand(cmd , "ins_pedido")
|
|
||||||
contador_env = contador_env + 1
|
|
||||||
TIEMPO = TIEMPO + 1
|
|
||||||
PB2.Progress = PB2.Progress + 1
|
|
||||||
If TIEMPO > 20 Then
|
|
||||||
' Msgbox("M","A") 'ignore
|
|
||||||
If L_P_2.Text = "Envio de Pedidos" Then
|
|
||||||
L_P_2.Text = "Envio de Pedidos --"
|
|
||||||
else if L_P_2.Text = "Envio de Pedidos --" Then
|
|
||||||
L_P_2.Text = "Envio de Pedidos \"
|
|
||||||
else if L_P_2.Text = "Envio de Pedidos \" Then
|
|
||||||
L_P_2.Text = "Envio de Pedidos |"
|
|
||||||
else if L_P_2.Text = "Envio de Pedidos |" Then
|
|
||||||
L_P_2.Text = "Envio de Pedidos /"
|
|
||||||
else if L_P_2.Text = "Envio de Pedidos /" Then
|
|
||||||
L_P_2.Text = "Envio de Pedidos --"
|
|
||||||
End If
|
|
||||||
t3.Initialize("T3", 2000) ' 1000 = 1 second
|
|
||||||
t3.Enabled = True
|
|
||||||
Wait For t3_tick
|
|
||||||
TIEMPO = 0
|
|
||||||
End If
|
|
||||||
Next
|
|
||||||
c.Close
|
|
||||||
End If
|
|
||||||
End If
|
|
||||||
d.Position=0
|
d.Position=0
|
||||||
cuantos_pedido = D.GetString("CUANTOS_PEDIDO")
|
cuantos_pedido = D.GetString("CUANTOS_PEDIDO")
|
||||||
PB2.Progress = 100
|
PB2.Progress = 100
|
||||||
@@ -3345,9 +3493,121 @@ Sub SUBIR_INFO_PEDIDO
|
|||||||
End If
|
End If
|
||||||
' ToastMessageShow("Se Actualizaran los datos. Este proceso podria tardar hasta un minuto, gracias "& l_ruta.text , True)
|
' ToastMessageShow("Se Actualizaran los datos. Este proceso podria tardar hasta un minuto, gracias "& l_ruta.text , True)
|
||||||
S_CP.Text = "SUBIENDO"
|
S_CP.Text = "SUBIENDO"
|
||||||
|
Log(reqManager.reqsList.Size)
|
||||||
|
reqTotales = reqManager.reqsList.Size
|
||||||
DateTime.TimeFormat = "HH:mm:ss"
|
DateTime.TimeFormat = "HH:mm:ss"
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
'Envio de la tabla pedido
|
||||||
|
Sub enviaPedido(filtro As String)
|
||||||
|
Log($"enviaPedido(${filtro})"$)
|
||||||
|
Private condicion As String = ""
|
||||||
|
If filtro <> "Todos" Then condicion = "where PE_ENVIADO = 0"
|
||||||
|
c = Starter.skmt.ExecQuery2("SELECT COUNT(*) as CANTIDAD FROM HIST_ENVIOS WHERE HE_TIPO = ?",Array As String("ABORDO") )
|
||||||
|
c.Position = 0
|
||||||
|
If c.GetString("CANTIDAD") > 0 Then
|
||||||
|
Log($"pe_cedis_0"$)
|
||||||
|
Starter.skmt.ExecNonQuery2("update PEDIDO set PE_CEDIS = ? where PE_CLIENTE =? AND PE_FOLIO IS NULL ", Array As Object("RECARGA", "0"))
|
||||||
|
End If
|
||||||
|
Starter.skmt.ExecNonQuery("UPDATE PEDIDO SET PE_FOLIO = rowid where PE_FOLIO = 0 or PE_FOLIO = 1")
|
||||||
|
|
||||||
|
Log("####################################################")
|
||||||
|
Log(PERFIL)
|
||||||
|
Log("####################################################")
|
||||||
|
|
||||||
|
If PERFIL = "V-ESPECIAL" Then
|
||||||
|
Log($"pe_cedis_1"$)
|
||||||
|
c = Starter.skmt.ExecQuery($"SELECT PE_CEDIS, PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_FECHA, PE_USUARIO, PE_COSTO_SIN, PE_RUTA, PE_DESC, PE_FOLIO, PE_TIPO FROM PEDIDO ${condicion} ORDER BY PE_CLIENTE"$)
|
||||||
|
Log($"SELECT PE_CEDIS, PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_FECHA, PE_USUARIO, PE_COSTO_SIN, PE_RUTA, PE_DESC, PE_FOLIO, PE_TIPO FROM PEDIDO ${condicion} ORDER BY PE_CLIENTE"$)
|
||||||
|
If c.RowCount > 0 Then
|
||||||
|
For i = 0 To c.RowCount - 1
|
||||||
|
c.Position = i
|
||||||
|
Dim cmd As DBCommand
|
||||||
|
cmd.Initialize
|
||||||
|
cmd.Name = "insert_pedido_esp_KELL"
|
||||||
|
Log($"pe_cedis_2"$)
|
||||||
|
cmd.Parameters = Array As Object(c.GetString("PE_CEDIS"),ALMACEN,C.GetString("PE_COSTO_TOT"),C.GetString("PE_COSTOU"),C.GetString("PE_CANT"),C.GetString("PE_PRONOMBRE"),C.GetString("PE_PROID"),C.GetString("PE_CLIENTE"),C.GetString("PE_FECHA"),C.GetString("PE_USUARIO"),C.GetString("PE_RUTA"), C.GetString("PE_COSTO_SIN"),C.GetString("PE_DESC"),c.GetString("PE_FOLIO"), c.GetString("PE_TIPO"),NUMERO_PEDIDO )
|
||||||
|
reqManager.ExecuteCommand(cmd , $"ins_pedido_${C.GetString("PE_CLIENTE")}"$)
|
||||||
|
contador_env = contador_env + 1
|
||||||
|
Next
|
||||||
|
c.Close
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
' Log($"pe_cedis_3"$)
|
||||||
|
Private cPed As Cursor = Starter.skmt.ExecQuery($"SELECT PE_CEDIS, PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_FECHA, PE_USUARIO, PE_COSTO_SIN, PE_RUTA, PE_DESC, PE_FOLIO, PE_TIPO FROM PEDIDO ${condicion}"$)
|
||||||
|
Log($"SELECT PE_CEDIS, PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_FECHA, PE_USUARIO, PE_COSTO_SIN, PE_RUTA, PE_DESC, PE_FOLIO, PE_TIPO FROM PEDIDO ${condicion}"$)
|
||||||
|
' TIEMPO = 0
|
||||||
|
S_CP.Text = "Envio de Pedidos"
|
||||||
|
PB2.Progress = 1
|
||||||
|
Log("pedido:" & cPed.RowCount)
|
||||||
|
If cPed.RowCount > 0 Then
|
||||||
|
For i = 0 To cPed.RowCount - 1
|
||||||
|
cPed.Position = i
|
||||||
|
' LogColor($"##### ${i} #### "$, Colors.magenta)
|
||||||
|
Dim cmd As DBCommand
|
||||||
|
cmd.Initialize
|
||||||
|
cmd.Name = "insert_pedido_KELL"
|
||||||
|
If logger Then Log($"pe_cedis_4"$)
|
||||||
|
cmd.Parameters = Array As Object(cPed.GetString("PE_CEDIS"),ALMACEN,cPed.GetString("PE_COSTO_TOT"),cPed.GetString("PE_COSTOU"),cPed.GetString("PE_CANT"),cPed.GetString("PE_PRONOMBRE"),cPed.GetString("PE_PROID"),cPed.GetString("PE_CLIENTE"),cPed.GetString("PE_FECHA"),cPed.GetString("PE_USUARIO"),cPed.GetString("PE_RUTA"), cPed.GetString("PE_COSTO_SIN"),cPed.GetString("PE_DESC"),cPed.GetString("PE_FOLIO"), cPed.GetString("PE_TIPO"))
|
||||||
|
reqManager.ExecuteCommand(cmd , $"ins_pedido_${cPed.GetString("PE_CLIENTE")}"$)
|
||||||
|
contador_env = contador_env + 1
|
||||||
|
' TIEMPO = TIEMPO + 1
|
||||||
|
' PB2.Progress = PB2.Progress + 1
|
||||||
|
' If i Mod 10 = 1 Then
|
||||||
|
' ' Msgbox("M","A") 'ignore
|
||||||
|
' If L_P_2.Text = "Envio de Pedidos" Then
|
||||||
|
' L_P_2.Text = "Envio de Pedidos --"
|
||||||
|
' Log(1)
|
||||||
|
' else if L_P_2.Text = "Envio de Pedidos --" Then
|
||||||
|
' Log(2)
|
||||||
|
' L_P_2.Text = "Envio de Pedidos \"
|
||||||
|
' else if L_P_2.Text = "Envio de Pedidos \" Then
|
||||||
|
' Log(3)
|
||||||
|
' L_P_2.Text = "Envio de Pedidos |"
|
||||||
|
' else if L_P_2.Text = "Envio de Pedidos |" Then
|
||||||
|
' Log(4)
|
||||||
|
' L_P_2.Text = "Envio de Pedidos /"
|
||||||
|
' else if L_P_2.Text = "Envio de Pedidos /" Then
|
||||||
|
' Log(5)
|
||||||
|
' L_P_2.Text = "Envio de Pedidos --"
|
||||||
|
' End If
|
||||||
|
'' t3.Initialize("T3", 2000) ' 1000 = 1 second
|
||||||
|
'' t3.Enabled = True
|
||||||
|
'' Wait For t3_tick
|
||||||
|
' TIEMPO = 0
|
||||||
|
' End If
|
||||||
|
Next
|
||||||
|
cPed.Close
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
'Envio de la tabla pedido_cliente
|
||||||
|
Sub enviaPedidoCliente(filtro As String)
|
||||||
|
' PEDIO_CLIENTE
|
||||||
|
Log($"enviaPedidoCliente(${filtro})"$)
|
||||||
|
Private condicion As String = ""
|
||||||
|
If filtro <> "Todos" Then condicion = "where PC_ENVIADO = 0"
|
||||||
|
Private cx As Cursor = Starter.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_ENVIADO FROM PEDIDO_CLIENTE ${condicion}"$)
|
||||||
|
Log($"SELECT PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT, PC_COSTO_SIN, PC_RUTA, PC_ALMACEN, PC_ENVIADO FROM PEDIDO_CLIENTE ${condicion}"$)
|
||||||
|
Log("pedido_cliente: " & cx.RowCount)
|
||||||
|
If cx.RowCount > 0 Then
|
||||||
|
For i = 0 To cx.RowCount - 1
|
||||||
|
cx.Position = i
|
||||||
|
' Log(cx.GetInt("PC_ENVIADO"))
|
||||||
|
' Log(cx.GetString("PC_ENVIADO"))
|
||||||
|
Dim cmd As DBCommand
|
||||||
|
cmd.Initialize
|
||||||
|
cmd.Name = "insert_pedidos_KELL"
|
||||||
|
cmd.Parameters = Array As Object(cx.GetString("PC_CLIENTE"),cx.GetString("PC_FECHA"),cx.GetString("PC_USER"),cx.GetString("PC_NOART"),cx.GetString("PC_MONTO"),cx.GetString("PC_LON"),cx.GetString("PC_LAT"),ALMACEN,l_ruta.text,cx.GetString("PC_COSTO_SIN") )
|
||||||
|
reqManager.ExecuteCommand(cmd , $"ins_pedidos_${cx.GetString("PC_CLIENTE")}"$)
|
||||||
|
PB2.Progress = PB2.Progress + 1
|
||||||
|
contador_env = contador_env + 1
|
||||||
|
Next
|
||||||
|
cx.Close
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
|
||||||
Sub SUBIR_INFO_BOLETA
|
Sub SUBIR_INFO_BOLETA
|
||||||
P1.Width = GetDeviceLayoutValues.Width
|
P1.Width = GetDeviceLayoutValues.Width
|
||||||
P1.Height = GetDeviceLayoutValues.Height
|
P1.Height = GetDeviceLayoutValues.Height
|
||||||
@@ -3692,9 +3952,11 @@ End Sub
|
|||||||
Sub borraClientesNuevosSinVenta 'ignore
|
Sub borraClientesNuevosSinVenta 'ignore
|
||||||
Private x As Cursor = Starter.skmt.ExecQuery("Select CAT_CL_CODIGO from kmt_info where CAT_CL_CODIGO like 'N%' and CAT_CL_CODIGO not in (Select pe_cliente from pedido)")
|
Private x As Cursor = Starter.skmt.ExecQuery("Select CAT_CL_CODIGO from kmt_info where CAT_CL_CODIGO like 'N%' and CAT_CL_CODIGO not in (Select pe_cliente from pedido)")
|
||||||
If x.RowCount > 0 Then
|
If x.RowCount > 0 Then
|
||||||
x.Position = 0
|
' x.Position = 0
|
||||||
For i = 0 To x.RowCount - 1
|
For i = 0 To x.RowCount - 1
|
||||||
|
x.Position = i
|
||||||
Starter.skmt.ExecNonQuery($"delete from kmt_info where CAT_CL_CODIGO = '${x.GetString("CAT_CL_CODIGO")}'"$)
|
Starter.skmt.ExecNonQuery($"delete from kmt_info where CAT_CL_CODIGO = '${x.GetString("CAT_CL_CODIGO")}'"$)
|
||||||
|
' Log($"delete from kmt_info where CAT_CL_CODIGO = '${x.GetString("CAT_CL_CODIGO")}'"$)
|
||||||
LogColor($"Cliente nuevo "${x.GetString("CAT_CL_CODIGO")}" SIN VENTA -> BORRADO!!"$, Colors.red)
|
LogColor($"Cliente nuevo "${x.GetString("CAT_CL_CODIGO")}" SIN VENTA -> BORRADO!!"$, Colors.red)
|
||||||
Next
|
Next
|
||||||
End If
|
End If
|
||||||
@@ -3774,16 +4036,24 @@ Private Sub b_noVisita_Click
|
|||||||
Do While mnv.NextRow
|
Do While mnv.NextRow
|
||||||
Subs.bitacora(Subs.fechanormal(DateTime.Now), usuario, alm, rut, "NO VISITADO", mnv.GetString("CAT_CL_CODIGO"), fech, fech, Starter.lat_gps, Starter.lon_gps, 2, "", r_razonNoVisita)
|
Subs.bitacora(Subs.fechanormal(DateTime.Now), usuario, alm, rut, "NO VISITADO", mnv.GetString("CAT_CL_CODIGO"), fech, fech, Starter.lat_gps, Starter.lon_gps, 2, "", r_razonNoVisita)
|
||||||
Log($"NO VISITADO - ${mnv.GetString("CAT_CL_CODIGO")}"$)
|
Log($"NO VISITADO - ${mnv.GetString("CAT_CL_CODIGO")}"$)
|
||||||
|
DateTime.DateFormat = "yyyy-MM-dd HH:mm:ss"
|
||||||
|
' Actualizamos HIST_NOTIFICACIONES con la hora y el motivo.
|
||||||
|
cmd.Initialize
|
||||||
|
cmd.Name = "updateHistNotificacionesMotivo"
|
||||||
|
|
||||||
|
|
||||||
|
' ("", DateTime.Date(DateTime.Now), Subs.traeRuta, usuario, Subs.traeAlmacen, clienteId)
|
||||||
|
cmd.Parameters = Array As Object(r_razonNoVisita, DateTime.Date(DateTime.Now), Subs.traeRuta, usuario, ALMACEN, mnv.GetString("CAT_CL_CODIGO"))
|
||||||
|
reqManager.ExecuteCommand(cmd , "insertHistNotificaciones")
|
||||||
Loop
|
Loop
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
' b_motivoNoVisita.Color = Colors.RGB(247, 94, 0)
|
' b_motivoNoVisita.Color = Colors.RGB(247, 94, 0)
|
||||||
Private cd1 As ColorDrawable
|
Private cd1 As ColorDrawable
|
||||||
cd1.Initialize(Colors.RGB(247, 94, 0), 5dip)
|
cd1.Initialize(Colors.RGB(247, 94, 0), 5dip)
|
||||||
b_motivoNoVisita.Background = cd1
|
b_motivoNoVisita.Background = cd1
|
||||||
B_MAPA_RUTA.Enabled = False
|
B_MAPA_RUTA.Enabled = False
|
||||||
trabajar.Enabled = False
|
trabajar.Enabled = False
|
||||||
|
' LogColor("deshabilitamos", Colors.magenta)
|
||||||
NUEVO.Enabled = False
|
NUEVO.Enabled = False
|
||||||
B_PROXIMA.Enabled = False
|
B_PROXIMA.Enabled = False
|
||||||
Else If result = DialogResponse.CANCEL Then
|
Else If result = DialogResponse.CANCEL Then
|
||||||
@@ -3910,22 +4180,31 @@ Sub Linker_Response(Status As String) ' << AÑADE ESTE SUB [New Query]
|
|||||||
Log("El servidor no proporcionó un estado de verificación válido. Contacte a soporte.")
|
Log("El servidor no proporcionó un estado de verificación válido. Contacte a soporte.")
|
||||||
ToastMessageShow("El servidor no proporcionó un estado de verificación válido. Contacte a soporte.", True)
|
ToastMessageShow("El servidor no proporcionó un estado de verificación válido. Contacte a soporte.", True)
|
||||||
Case "OK"
|
Case "OK"
|
||||||
Log("Dispositivo ligado y verificado exitosamente.")
|
Log("########################################################")
|
||||||
ToastMessageShow("Dispositivo verificado y ligado correctamente.", False)
|
Log("Dispositivo vinculado y verificado exitosamente.")
|
||||||
|
ToastMessageShow("Dispositivo verificado y vinculado correctamente.", False)
|
||||||
' Aquí puedes añadir lógica adicional si la verificación es exitosa, por ejemplo, habilitar ciertos botones o continuar con el flujo normal.
|
' Aquí puedes añadir lógica adicional si la verificación es exitosa, por ejemplo, habilitar ciertos botones o continuar con el flujo normal.
|
||||||
connecta2
|
connecta2
|
||||||
' Case "NO_REGISTRADO"
|
Case "REGISTRO_COMPLETO"
|
||||||
' Log("Dispositivo NO registrado.")
|
Log("########################################################")
|
||||||
' ToastMessageShow("Dispositivo NO registrado.", False)
|
Log("¡Registro completo!")
|
||||||
Case "REGISTRO_NUEVO"
|
ToastMessageShow("¡Registro completo!", False)
|
||||||
Log("¡¡Registro nuevo!!")
|
|
||||||
connecta2
|
connecta2
|
||||||
ToastMessageShow("¡¡Registro nuevo!!", False)
|
Case "SIN_REGISTRO"
|
||||||
|
Log("########################################################")
|
||||||
|
Log("Sin registro")
|
||||||
|
ToastMessageShow("¡Dispositivo sin registro!", False)
|
||||||
|
linker.linkDevice(Subs.traeAlmacen, e_ruta.text)
|
||||||
|
Case "REGISTRANDO"
|
||||||
|
Log("¡Registro en proceso!")
|
||||||
|
ToastMessageShow("¡Registro en proceso!", True)
|
||||||
Case "YA_REGISTRADO"
|
Case "YA_REGISTRADO"
|
||||||
Log("¡¡El dispositivo ya esta registrado con otra ruta!!")
|
Log("########################################################")
|
||||||
|
Log("¡El dispositivo ya esta registrado con otra ruta!")
|
||||||
ToastMessageShow("¡¡El dispositivo ya esta registrado con otra ruta!!", True)
|
ToastMessageShow("¡¡El dispositivo ya esta registrado con otra ruta!!", True)
|
||||||
Msgbox2("Ruta registrada en otro dispositivo", "RUTA INCORRECTA","Aceptar", "", "",Null) 'ignore
|
Msgbox2("Esa ruta ya esta registrada en otro dispositivo", "RUTA INCORRECTA","Aceptar", "", "",Null) 'ignore
|
||||||
Case Else ' Otros estados que tu servidor pueda devolver (ej. "UNAUTHORIZED", "PENDING_APPROVAL")
|
Case Else ' Otros estados que tu servidor pueda devolver (ej. "UNAUTHORIZED", "PENDING_APPROVAL")
|
||||||
|
Log("########################################################")
|
||||||
Log($"Estado de verificación del dispositivo: ${Status}"$)
|
Log($"Estado de verificación del dispositivo: ${Status}"$)
|
||||||
ToastMessageShow($"Verificación del dispositivo: ${Status}"$, True)
|
ToastMessageShow($"Verificación del dispositivo: ${Status}"$, True)
|
||||||
' Puedes decidir si bloquear la funcionalidad o mostrar un mensaje específico según el estado.
|
' Puedes decidir si bloquear la funcionalidad o mostrar un mensaje específico según el estado.
|
||||||
|
|||||||
@@ -13,10 +13,7 @@ Sub Class_Globals
|
|||||||
Dim q_buscar As String
|
Dim q_buscar As String
|
||||||
Dim forzarBusqueda As Boolean = False
|
Dim forzarBusqueda As Boolean = False
|
||||||
Dim skmt As SQL
|
Dim skmt As SQL
|
||||||
Dim c As Cursor
|
Dim ab, c, c2, c3, c_prods, pPromo, p1, prod, pPromos, s, s1 As Cursor
|
||||||
Dim c2 As Cursor
|
|
||||||
Dim C3 As Cursor
|
|
||||||
Dim s As Cursor
|
|
||||||
Dim lv_catalogos As ListView
|
Dim lv_catalogos As ListView
|
||||||
Dim lv_promos As ListView
|
Dim lv_promos As ListView
|
||||||
Dim entro As String
|
Dim entro As String
|
||||||
@@ -29,7 +26,6 @@ Sub Class_Globals
|
|||||||
Dim ya_entro As String
|
Dim ya_entro As String
|
||||||
Dim TIENE_PROMOS As String
|
Dim TIENE_PROMOS As String
|
||||||
Dim RES As String
|
Dim RES As String
|
||||||
Dim S1 As Cursor
|
|
||||||
Dim bmp As Bitmap
|
Dim bmp As Bitmap
|
||||||
Dim ciclo As String
|
Dim ciclo As String
|
||||||
Private b_qr As Button
|
Private b_qr As Button
|
||||||
@@ -113,6 +109,9 @@ End Sub
|
|||||||
Public Sub Initialize As Object
|
Public Sub Initialize As Object
|
||||||
kh.Initialize(Me, "kh", Starter.skmt)
|
kh.Initialize(Me, "kh", Starter.skmt)
|
||||||
ts.Initialize(Me, "ts", Starter.skmt)
|
ts.Initialize(Me, "ts", Starter.skmt)
|
||||||
|
Log(TS_RMI)
|
||||||
|
Log(TS_DESCUENTOS)
|
||||||
|
Log(TS_BONIFICACIONES)
|
||||||
' promosC.Initialize(Me, "promosC", Starter.skmt)
|
' promosC.Initialize(Me, "promosC", Starter.skmt)
|
||||||
Return Me
|
Return Me
|
||||||
End Sub
|
End Sub
|
||||||
@@ -240,10 +239,24 @@ Sub B4XPage_Appear
|
|||||||
' Log(Starter.tipov)
|
' Log(Starter.tipov)
|
||||||
c = Starter.skmt.ExecQuery("select count(*) as hayPromos from promos_comp")
|
c = Starter.skmt.ExecQuery("select count(*) as hayPromos from promos_comp")
|
||||||
c.Position = 0
|
c.Position = 0
|
||||||
|
|
||||||
|
Private mx As Map = ts.traeInfoTrendSpending
|
||||||
|
TS_RMI = Regex.Split(",", mx.Get("RMI"))
|
||||||
|
TS_DESCUENTOS = Regex.Split(",", mx.Get("DESCUENTOS"))
|
||||||
|
TS_BONIFICACIONES = Regex.Split(",", mx.Get("BONIFICACIONES"))
|
||||||
|
Dim bonificacionesDisp As String = TS_BONIFICACIONES(0)
|
||||||
|
Log(">>>>>>>>>>>>> TRADESPENDING: " & mx)
|
||||||
|
Log("RMI: " & TS_RMI(0) & "|" & TS_RMI(1))
|
||||||
|
Log("DESCUENTOS: " & TS_DESCUENTOS(0) & "|" & TS_DESCUENTOS(1))
|
||||||
|
Log("BONIFICACIONES: " & TS_BONIFICACIONES(0) & "|" & TS_BONIFICACIONES(1))
|
||||||
|
|
||||||
Log("revisaImpresa: " & Subs.revisaImpresa)
|
Log("revisaImpresa: " & Subs.revisaImpresa)
|
||||||
If c.GetInt("hayPromos") > 0 And Subs.traeCliente <> 0 And Subs.revisaImpresa = False Then
|
Log("bonificacionesDisp: " & bonificacionesDisp)
|
||||||
|
If bonificacionesDisp = 0 Then ToastMessageShow("¡No hay presupuesto para promociones!", False)
|
||||||
|
If bonificacionesDisp > 0 And c.GetInt("hayPromos") > 0 And Subs.traeCliente <> 0 And Subs.revisaImpresa = False Then
|
||||||
lv_catalogos.AddSingleLine("PROMOS")
|
lv_catalogos.AddSingleLine("PROMOS")
|
||||||
End If
|
End If
|
||||||
|
c.Close
|
||||||
Sleep(100)
|
Sleep(100)
|
||||||
' l_total.Visible = False
|
' l_total.Visible = False
|
||||||
' l_totProds.Visible = False
|
' l_totProds.Visible = False
|
||||||
@@ -286,14 +299,6 @@ Sub B4XPage_Appear
|
|||||||
End If
|
End If
|
||||||
If B4XPages.MainPage.cliente.la_cuenta.text = "0" Then b_rmi.Visible = False
|
If B4XPages.MainPage.cliente.la_cuenta.text = "0" Then b_rmi.Visible = False
|
||||||
' Log(Starter.tipov)
|
' Log(Starter.tipov)
|
||||||
Private mx As Map = ts.traeInfoTrendSpending
|
|
||||||
TS_RMI = Regex.Split(",", mx.Get("RMI"))
|
|
||||||
TS_DESCUENTOS = Regex.Split(",", mx.Get("DESCUENTOS"))
|
|
||||||
TS_BONIFICACIONES = Regex.Split(",", mx.Get("BONIFICACIONES"))
|
|
||||||
Log(">>>>>>>>>>>>> TRADESPENDING: " & mx)
|
|
||||||
Log("RMI: " & TS_RMI(0) & "|" & TS_RMI(1))
|
|
||||||
Log("DESCUENTOS: " & TS_DESCUENTOS(0) & "|" & TS_DESCUENTOS(1))
|
|
||||||
Log("BONIFICACIONES: " & TS_BONIFICACIONES(0) & "|" & TS_BONIFICACIONES(1))
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub PCLV_AddProds
|
Sub PCLV_AddProds
|
||||||
@@ -342,7 +347,7 @@ Sub lv_catalogos_ItemClick (Position As Int, Value As Object)
|
|||||||
|
|
||||||
c2 = Starter.skmt.ExecQuery($"select CAT_PA_TIPO_PROMONTO, CAT_PA_PORCENTAJE_PAQUETE, CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_TIPOPROD2, CAT_GP_PRECIO, CAT_GP_ALMACEN, CAT_GP_IMG from ${Subs.traeTablaProds(Starter.tipov)} left join PROMOS_COMP on CAT_GP_ID = CAT_PA_ID where CAT_GP_ALMACEN > 0 AND CAT_GP_TIPO = '${Value}' AND CAT_GP_SUBTIPO = '${Value}' AND CAT_GP_TIPOPROD <> 1 and length(CAT_GP_CODPROMO) = 1 OR CAT_GP_CODPROMO = CAT_GP_ID ORDER BY CAT_GP_TIPOPROD2 DESC, CAT_GP_NOMBRE"$)
|
c2 = Starter.skmt.ExecQuery($"select CAT_PA_TIPO_PROMONTO, CAT_PA_PORCENTAJE_PAQUETE, CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_TIPOPROD2, CAT_GP_PRECIO, CAT_GP_ALMACEN, CAT_GP_IMG from ${Subs.traeTablaProds(Starter.tipov)} left join PROMOS_COMP on CAT_GP_ID = CAT_PA_ID where CAT_GP_ALMACEN > 0 AND CAT_GP_TIPO = '${Value}' AND CAT_GP_SUBTIPO = '${Value}' AND CAT_GP_TIPOPROD <> 1 and length(CAT_GP_CODPROMO) = 1 OR CAT_GP_CODPROMO = CAT_GP_ID ORDER BY CAT_GP_TIPOPROD2 DESC, CAT_GP_NOMBRE"$)
|
||||||
|
|
||||||
Log($"select CAT_PA_TIPO_PROMONTO, CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_TIPOPROD2, CAT_GP_PRECIO, CAT_GP_ALMACEN, CAT_GP_IMG from ${Subs.traeTablaProds(Starter.tipov)} left join PROMOS_COMP on CAT_GP_ID = CAT_PA_ID where CAT_GP_ALMACEN > 0 AND CAT_GP_TIPO = '${Value}' AND CAT_GP_SUBTIPO = '${Value}' AND CAT_GP_TIPOPROD <> 1 and length(CAT_GP_CODPROMO) = 1 OR CAT_GP_CODPROMO = CAT_GP_ID ORDER BY CAT_GP_TIPOPROD2 DESC, CAT_GP_NOMBRE"$)
|
' Log($"select CAT_PA_TIPO_PROMONTO, CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_TIPOPROD2, CAT_GP_PRECIO, CAT_GP_ALMACEN, 1 as CAT_GP_IMG from ${Subs.traeTablaProds(Starter.tipov)} left join PROMOS_COMP on CAT_GP_ID = CAT_PA_ID where CAT_GP_ALMACEN > 0 AND CAT_GP_TIPO = '${Value}' AND CAT_GP_SUBTIPO = '${Value}' AND CAT_GP_TIPOPROD <> 1 and length(CAT_GP_CODPROMO) = 1 OR CAT_GP_CODPROMO = CAT_GP_ID ORDER BY CAT_GP_TIPOPROD2 DESC, CAT_GP_NOMBRE"$)
|
||||||
|
|
||||||
' Log($"Resultados : ${c2.RowCount}, ${Value}, ${marca}, ${tipo}"$)
|
' Log($"Resultados : ${c2.RowCount}, ${Value}, ${marca}, ${tipo}"$)
|
||||||
If c2.RowCount > 0 Then
|
If c2.RowCount > 0 Then
|
||||||
@@ -352,9 +357,9 @@ Sub lv_catalogos_ItemClick (Position As Int, Value As Object)
|
|||||||
' promosC.procesaPromocion(c2.GetString("CAT_GP_ID"), clienteId)
|
' promosC.procesaPromocion(c2.GetString("CAT_GP_ID"), clienteId)
|
||||||
If tm.Get("status") = "ok" Then 'Solo muestrala si hay producto.
|
If tm.Get("status") = "ok" Then 'Solo muestrala si hay producto.
|
||||||
|
|
||||||
Log(c2.GetString("CAT_GP_ID"))
|
' Log(c2.GetString("CAT_GP_ID"))
|
||||||
Log(c2.GetString("CAT_PA_TIPO_PROMONTO"))
|
' Log(c2.GetString("CAT_PA_TIPO_PROMONTO"))
|
||||||
Log(c2.GetString("CAT_PA_PORCENTAJE_PAQUETE"))
|
' Log(c2.GetString("CAT_PA_PORCENTAJE_PAQUETE"))
|
||||||
If c2.GetString("CAT_PA_TIPO_PROMONTO") = "0" Then ' Si NO es promo por monto entonces la mostamos.
|
If c2.GetString("CAT_PA_TIPO_PROMONTO") = "0" Then ' Si NO es promo por monto entonces la mostamos.
|
||||||
lv_promos.AddTwoLines(c2.GetString("CAT_GP_NOMBRE"),"# " & c2.GetString("CAT_GP_ALMACEN") & " $ " & c2.GetString("CAT_GP_PRECIO") & " F:" & tm.Get("mp").As(Map).Get("prodsFijosCant") & " V:" & tm.Get("mp").As(Map).Get("prodsVariablesCant"))
|
lv_promos.AddTwoLines(c2.GetString("CAT_GP_NOMBRE"),"# " & c2.GetString("CAT_GP_ALMACEN") & " $ " & c2.GetString("CAT_GP_PRECIO") & " F:" & tm.Get("mp").As(Map).Get("prodsFijosCant") & " V:" & tm.Get("mp").As(Map).Get("prodsVariablesCant"))
|
||||||
End If
|
End If
|
||||||
@@ -492,6 +497,11 @@ Sub llenaCatalogo(subtipo1 As String)
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub B4XPage_CloseRequest As ResumableSub
|
Private Sub B4XPage_CloseRequest As ResumableSub
|
||||||
|
If c.IsInitialized Then c.Close
|
||||||
|
If c2.IsInitialized Then c2.Close
|
||||||
|
If c3.IsInitialized Then c3.Close
|
||||||
|
If s.IsInitialized Then s.Close
|
||||||
|
If s1.IsInitialized Then s1.Close
|
||||||
' BACK key pressed
|
' BACK key pressed
|
||||||
' Return True To close, False To cancel
|
' Return True To close, False To cancel
|
||||||
If p_rmi.Visible Then p_rmi.Visible = False
|
If p_rmi.Visible Then p_rmi.Visible = False
|
||||||
@@ -604,7 +614,7 @@ Sub b_prodMenos_Click
|
|||||||
Private id As String=clv_prods_ll.GetValue(index).As(Map).Get("id")
|
Private id As String=clv_prods_ll.GetValue(index).As(Map).Get("id")
|
||||||
' Private tmpMap As Map = CreateMap("precio":precio, "cant":laCant.Text, "almacen":Subs.traeAlmacen)
|
' Private tmpMap As Map = CreateMap("precio":precio, "cant":laCant.Text, "almacen":Subs.traeAlmacen)
|
||||||
Log(clv_prods_ll.GetValue(index).As(Map))
|
Log(clv_prods_ll.GetValue(index).As(Map))
|
||||||
|
|
||||||
' ######## Trend Spending - Poner estas lineas antes de que si es negativo se ponga en CERO.
|
' ######## Trend Spending - Poner estas lineas antes de que si es negativo se ponga en CERO.
|
||||||
' Private laBonificacion As String = kh.traePrecio(id)*(kh.traeDescXSku(clienteId, id)/100)
|
' Private laBonificacion As String = kh.traePrecio(id)*(kh.traeDescXSku(clienteId, id)/100)
|
||||||
' If laBonificacion > 0 Then
|
' If laBonificacion > 0 Then
|
||||||
@@ -620,7 +630,7 @@ Sub b_prodMenos_Click
|
|||||||
' Subs.modTrendSpending("suma", "bonificaciones", laBonificacion)
|
' Subs.modTrendSpending("suma", "bonificaciones", laBonificacion)
|
||||||
' End If
|
' End If
|
||||||
' #######################
|
' #######################
|
||||||
|
|
||||||
' ######## Trend Spending - Poner estas lineas antes de que si es negativo se ponga en CERO.
|
' ######## Trend Spending - Poner estas lineas antes de que si es negativo se ponga en CERO.
|
||||||
If lfila.Text = "PRODUCTOS" Then
|
If lfila.Text = "PRODUCTOS" Then
|
||||||
Log(">>>>>>>>>> PRODUCTOS <<<<<<<<<<<<<<")
|
Log(">>>>>>>>>> PRODUCTOS <<<<<<<<<<<<<<")
|
||||||
@@ -629,7 +639,7 @@ Sub b_prodMenos_Click
|
|||||||
ts.trendSpending("prodMenos", "rmi", clienteId, id, laCant.Text, 0)
|
ts.trendSpending("prodMenos", "rmi", clienteId, id, laCant.Text, 0)
|
||||||
End If
|
End If
|
||||||
' #######################
|
' #######################
|
||||||
|
|
||||||
If laCant.Text < 0 Then laCant.Text = 0
|
If laCant.Text < 0 Then laCant.Text = 0
|
||||||
' Log(tmpMap)
|
' Log(tmpMap)
|
||||||
' prodsMap.Put(id, tmpMap)
|
' prodsMap.Put(id, tmpMap)
|
||||||
@@ -658,6 +668,7 @@ Sub b_prodMenos_Click
|
|||||||
invActualizado = i.GetString("CAT_GP_ALMACEN")
|
invActualizado = i.GetString("CAT_GP_ALMACEN")
|
||||||
End If
|
End If
|
||||||
If Starter.tipov <> "ABORDO" Then lProdX.Text = cs.Color(Colors.red).append(nombreX).pop.append(CRLF).Append("Existencias: " & invActualizado).Color(0xFF017F01).Append($" $${NumberFormat2(precio, 1, 2, 2, False)}"$).Popall
|
If Starter.tipov <> "ABORDO" Then lProdX.Text = cs.Color(Colors.red).append(nombreX).pop.append(CRLF).Append("Existencias: " & invActualizado).Color(0xFF017F01).Append($" $${NumberFormat2(precio, 1, 2, 2, False)}"$).Popall
|
||||||
|
i.Close
|
||||||
End If
|
End If
|
||||||
If kh.totalPedido < 1 Then laCant.Text = "0"
|
If kh.totalPedido < 1 Then laCant.Text = "0"
|
||||||
' Log($"Total Prods: ${totalProds}, Total Compra: $$1.2{totalCompra}"$)
|
' Log($"Total Prods: ${totalProds}, Total Compra: $$1.2{totalCompra}"$)
|
||||||
@@ -714,11 +725,12 @@ Sub b_prodMas_Click
|
|||||||
' Subs.modTrendSpending("resta", "bonificaciones", laBonificacion)
|
' Subs.modTrendSpending("resta", "bonificaciones", laBonificacion)
|
||||||
' Log(Subs.traeAcumuladoHoyTS("bonificaciones"))
|
' Log(Subs.traeAcumuladoHoyTS("bonificaciones"))
|
||||||
' End If
|
' End If
|
||||||
' Log("BONIFCACIONES RESTANTES: " & (TS_BONIFICACIONES(0) - TS_BONIFICACIONES(1) - Subs.traeAcumuladoHoyTS("bonificaciones")))
|
Log("BONIFCACIONES RESTANTES: " & (TS_BONIFICACIONES(0) - TS_BONIFICACIONES(1) - ts.traeAcumuladoHoyTS("bonificaciones")))
|
||||||
Private tsMonto As String = 0
|
Private tsMonto As String = 0
|
||||||
Private tsMaximas As Int = 0
|
Private tsMaximas As Int = 0
|
||||||
If lfila.Text = "PRODUCTOS" Then
|
If lfila.Text = "PRODUCTOS" Then
|
||||||
Log(">>>>>>>>>> PRODUCTOS <<<<<<<<<<<<<<")
|
Log(">>>>>>>>>> PRODUCTOS <<<<<<<<<<<<<<")
|
||||||
|
Log($"${TS_DESCUENTOS(0)} - ${TS_DESCUENTOS(1)} - ${ts.traeAcumuladoHoyTS("descuentos")}"$)
|
||||||
Private tsRestantes As String = (TS_DESCUENTOS(0) - TS_DESCUENTOS(1) - ts.traeAcumuladoHoyTS("descuentos")) ' Traemos monto restante de Trend Spending para bonificaciones.
|
Private tsRestantes As String = (TS_DESCUENTOS(0) - TS_DESCUENTOS(1) - ts.traeAcumuladoHoyTS("descuentos")) ' Traemos monto restante de Trend Spending para bonificaciones.
|
||||||
tsMonto = NumberFormat2(ts.traePrecio(id)*(ts.traeDescXSku(clienteId, id)/100), 1, 2, 2, False) ' Traemos el monto (descuento total) del producto actual.
|
tsMonto = NumberFormat2(ts.traePrecio(id)*(ts.traeDescXSku(clienteId, id)/100), 1, 2, 2, False) ' Traemos el monto (descuento total) del producto actual.
|
||||||
tsMaximas = ((laCant.text * tsMonto) + tsRestantes) / tsMonto ' Traemos la cantidad maxima de descuentos por presupuesto de Trend Spending.
|
tsMaximas = ((laCant.text * tsMonto) + tsRestantes) / tsMonto ' Traemos la cantidad maxima de descuentos por presupuesto de Trend Spending.
|
||||||
@@ -792,7 +804,7 @@ Sub b_prodMas_Click
|
|||||||
' Log(77)
|
' Log(77)
|
||||||
laCant.Text = "0"
|
laCant.Text = "0"
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Log(99)
|
Log(99)
|
||||||
If lfila.Text = "RMI" Then
|
If lfila.Text = "RMI" Then
|
||||||
almacenX = "DUR"
|
almacenX = "DUR"
|
||||||
@@ -841,6 +853,7 @@ Sub b_prodMas_Click
|
|||||||
invActualizado = i.GetString("CAT_GP_ALMACEN")
|
invActualizado = i.GetString("CAT_GP_ALMACEN")
|
||||||
End If
|
End If
|
||||||
If Starter.tipov <> "ABORDO" Then lProdX.Text = cs.Color(Colors.red).append(nombreX).pop.append(CRLF).Append("Existencias: " & invActualizado).Color(0xFF017F01).Append($" $${NumberFormat2(precio, 1, 2, 2, False)}"$).Popall
|
If Starter.tipov <> "ABORDO" Then lProdX.Text = cs.Color(Colors.red).append(nombreX).pop.append(CRLF).Append("Existencias: " & invActualizado).Color(0xFF017F01).Append($" $${NumberFormat2(precio, 1, 2, 2, False)}"$).Popall
|
||||||
|
i.Close
|
||||||
End If
|
End If
|
||||||
Log($"Total Prods: ${totalProds}, Total Compra: $$1.2{totalCompra}"$)
|
Log($"Total Prods: ${totalProds}, Total Compra: $$1.2{totalCompra}"$)
|
||||||
Sleep(300)
|
Sleep(300)
|
||||||
@@ -1113,6 +1126,7 @@ Sub b_terminar1_Click
|
|||||||
If Subs.revisaImpresa Then b_rechazar.Visible = False Else b_rechazar.Visible = True
|
If Subs.revisaImpresa Then b_rechazar.Visible = False Else b_rechazar.Visible = True
|
||||||
p_vistaPrevia.Visible=True
|
p_vistaPrevia.Visible=True
|
||||||
p_vistaPreviaTrans.Visible=True
|
p_vistaPreviaTrans.Visible=True
|
||||||
|
Subs.RecalcularInventario
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub b_continuar_Click
|
Private Sub b_continuar_Click
|
||||||
@@ -1141,6 +1155,7 @@ Private Sub b_continuar_Click
|
|||||||
montoPedidoActual = m.Get("monto")
|
montoPedidoActual = m.Get("monto")
|
||||||
' LlenaProdsLL(Null)
|
' LlenaProdsLL(Null)
|
||||||
' BUSCA.Text = " "
|
' BUSCA.Text = " "
|
||||||
|
Subs.RecalcularInventario
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub l_info_Click
|
Private Sub l_info_Click
|
||||||
@@ -1150,13 +1165,14 @@ End Sub
|
|||||||
Private Sub lv_promos_ItemLongClick (Position As Int, Value As Object)
|
Private Sub lv_promos_ItemLongClick (Position As Int, Value As Object)
|
||||||
Log("Promo longclic = "&Value)
|
Log("Promo longclic = "&Value)
|
||||||
Private id As String = ""
|
Private id As String = ""
|
||||||
Dim c As Cursor = Starter.skmt.ExecQuery($"select CAT_GP_ID from ${Subs.traeTablaProds(starter.tipov)} where CAT_GP_TIPO = 'PROMOS' and CAT_GP_NOMBRE = '${Value}'"$)
|
Dim c As Cursor = Starter.skmt.ExecQuery($"select CAT_GP_ID from ${Subs.traeTablaProds(Starter.tipov)} where CAT_GP_TIPO = 'PROMOS' and CAT_GP_NOMBRE = '${Value}'"$)
|
||||||
If c.RowCount > 0 Then
|
If c.RowCount > 0 Then
|
||||||
c.Position = 0
|
c.Position = 0
|
||||||
id = c.GetString("CAT_GP_ID")
|
id = c.GetString("CAT_GP_ID")
|
||||||
End If
|
End If
|
||||||
l_info.Text = $"ID: ${id}${CRLF}${Value}"$
|
l_info.Text = $"ID: ${id}${CRLF}${Value}"$
|
||||||
l_info.Visible = True
|
l_info.Visible = True
|
||||||
|
c.Close
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub b_buscar_Click
|
Private Sub b_buscar_Click
|
||||||
@@ -1237,6 +1253,7 @@ Private Sub b_aceptar_Click
|
|||||||
' LogColor(p.GetString("total"), Colors.red)
|
' LogColor(p.GetString("total"), Colors.red)
|
||||||
If p.GetString("total") < 1 Then LlenaProdsLL(Null, Null)
|
If p.GetString("total") < 1 Then LlenaProdsLL(Null, Null)
|
||||||
p_vistaPreviaTrans.Visible=False
|
p_vistaPreviaTrans.Visible=False
|
||||||
|
p.Close
|
||||||
Subs.iniciaActividad("Cliente")
|
Subs.iniciaActividad("Cliente")
|
||||||
' B4XPages.ShowPage("Cliente")
|
' B4XPages.ShowPage("Cliente")
|
||||||
End Sub
|
End Sub
|
||||||
@@ -1334,6 +1351,7 @@ Sub l_prodX_Click
|
|||||||
Log(Sender.as(Label).tag)
|
Log(Sender.as(Label).tag)
|
||||||
l_info.BringToFront
|
l_info.BringToFront
|
||||||
l_info.Visible = True
|
l_info.Visible = True
|
||||||
|
i.Close
|
||||||
' Dim index As Int = clv_prods_ll.GetItemFromView(Sender)
|
' Dim index As Int = clv_prods_ll.GetItemFromView(Sender)
|
||||||
' Private p0 As B4XView = clv_prods_ll.GetPanel(index)
|
' Private p0 As B4XView = clv_prods_ll.GetPanel(index)
|
||||||
' Private p As B4XView = p0.GetView(0)
|
' Private p As B4XView = p0.GetView(0)
|
||||||
@@ -1406,6 +1424,7 @@ Private Sub clv_prods_ll_VisibleRangeChanged (FirstIndex As Int, LastIndex As In
|
|||||||
prioridad = p1.GetInt("CAT_GP_TIPOPROD2")
|
prioridad = p1.GetInt("CAT_GP_TIPOPROD2")
|
||||||
' Log(prioridad)
|
' Log(prioridad)
|
||||||
End If
|
End If
|
||||||
|
p1.Close
|
||||||
' Log("NIVEL: " & lfila.Text)
|
' Log("NIVEL: " & lfila.Text)
|
||||||
If lfila.Text = "RMI" Then ' Si es RMI, la cantidad solo se puede cambiar con los botones.
|
If lfila.Text = "RMI" Then ' Si es RMI, la cantidad solo se puede cambiar con los botones.
|
||||||
et_pCant.Enabled = False
|
et_pCant.Enabled = False
|
||||||
@@ -1434,7 +1453,15 @@ Private Sub clv_prods_ll_VisibleRangeChanged (FirstIndex As Int, LastIndex As In
|
|||||||
Else
|
Else
|
||||||
l_prodX.Text = cs.Color(Colors.red).append(clv_prods_ll.GetValue(i).As(Map).Get("prod")).pop.append(CRLF).Append("Almacen: " & clv_prods_ll.GetValue(i).As(Map).Get("almacen")).color(Colors.RGB(48,99,192)).Append(" Abordo: " & clv_prods_ll.GetValue(i).As(Map).Get("abordo")).Color(0xFF017F01).Append($" $${NumberFormat2(precio,1,2,2,False)}"$).Popall
|
l_prodX.Text = cs.Color(Colors.red).append(clv_prods_ll.GetValue(i).As(Map).Get("prod")).pop.append(CRLF).Append("Almacen: " & clv_prods_ll.GetValue(i).As(Map).Get("almacen")).color(Colors.RGB(48,99,192)).Append(" Abordo: " & clv_prods_ll.GetValue(i).As(Map).Get("abordo")).Color(0xFF017F01).Append($" $${NumberFormat2(precio,1,2,2,False)}"$).Popall
|
||||||
End If
|
End If
|
||||||
|
'#######################################################
|
||||||
|
If clv_prods_ll.GetValue(i).As(Map).Get("almacen").As(Int) = Subs.traeExistenciasPorId(clv_prods_ll.GetValue(i).As(Map).Get("id")) Then
|
||||||
|
' Log("|"&clv_prods_ll.GetValue(i).As(Map).Get("almacen") & "|" & Subs.traeExistenciasPorId(clv_prods_ll.GetValue(i).As(Map).Get("id"))&"|")
|
||||||
|
Else
|
||||||
|
' LogColor("|"&clv_prods_ll.GetValue(i).As(Map).Get("almacen") & "|" & Subs.traeExistenciasPorId(clv_prods_ll.GetValue(i).As(Map).Get("id"))&"|"&clv_prods_ll.GetValue(i).As(Map).Get("prod")&"|", Colors.red)
|
||||||
|
' LogColor("#### ERROR DE INVENTARIO ####" , Colors.red)
|
||||||
|
End If
|
||||||
|
'#######################################################
|
||||||
|
|
||||||
l_prodX.Tag = clv_prods_ll.GetValue(i).As(Map).Get("id")
|
l_prodX.Tag = clv_prods_ll.GetValue(i).As(Map).Get("id")
|
||||||
l_pCant.Tag = clv_prods_ll.GetValue(i).As(Map).Get("id")
|
l_pCant.Tag = clv_prods_ll.GetValue(i).As(Map).Get("id")
|
||||||
End If
|
End If
|
||||||
@@ -1546,6 +1573,7 @@ Sub LlenaProdsLL(p As ResultSet, extra As String)
|
|||||||
invAbordo = ab.GetString("CAT_GP_ALMACEN")
|
invAbordo = ab.GetString("CAT_GP_ALMACEN")
|
||||||
' Log(invAbordo)
|
' Log(invAbordo)
|
||||||
End If
|
End If
|
||||||
|
ab.Close
|
||||||
End If
|
End If
|
||||||
Private precio As String = NumberFormat2(p.GetDouble("CAT_GP_PRECIO"),1,2,2,False)
|
Private precio As String = NumberFormat2(p.GetDouble("CAT_GP_PRECIO"),1,2,2,False)
|
||||||
'Descuentos de condiciones comerciales por TIPO
|
'Descuentos de condiciones comerciales por TIPO
|
||||||
|
|||||||
112
B4A/C_Promos.bas
112
B4A/C_Promos.bas
@@ -4,6 +4,74 @@ ModulesStructureVersion=1
|
|||||||
Type=Class
|
Type=Class
|
||||||
Version=11.5
|
Version=11.5
|
||||||
@EndOfDesignText@
|
@EndOfDesignText@
|
||||||
|
Sub Descripcion
|
||||||
|
' *** FLUJO DE LAS PROMOCIONES ***
|
||||||
|
' Aquí está el desglose del flujo actual de decisión para mostrar una promoción, calculando los máximos y aplicando las restricciones de Segmentación, Inventario y Trade Spending (Bonificaciones).
|
||||||
|
'
|
||||||
|
' ### Flujo Maestro: ¿Se muestra la promo y cuántas alcanzan?
|
||||||
|
'
|
||||||
|
' El proceso se ejecuta secuencialmente. Si en algún punto el resultado es 0, la promoción no se muestra o se marca como agotada.
|
||||||
|
'
|
||||||
|
' #### 1. Cálculo de Límites Administrativos (La Base)
|
||||||
|
'
|
||||||
|
' Lo primero que hace el sistema es determinar el "Techo Teórico" de cuántas promociones se pueden vender Sin mirar inventario ni dinero aún.
|
||||||
|
' * **Paso A: Datos Generales:** Se obtienen los límites configurados en `PROMOS_COMP`: Máximo por Cliente, Máximo Recurrente y Máximo Global.
|
||||||
|
' * **Paso B: Lógica de Promociones Segmentadas:** Aquí entra el filtro crítico.
|
||||||
|
' * El sistema consulta `HIST_CLIENTE_CANT_PROMOS`.
|
||||||
|
' * **Si la promo es segmentada:**
|
||||||
|
' * Si el cliente **NO** está en la lista: Se establecen todos los máximos a 0. La promo se oculta.
|
||||||
|
' * Si el cliente **SÍ** está en la lista: Se ignoran los límites generales y se usan los específicos asignados al cliente.
|
||||||
|
' * **Fórmula:** `MaxDisponible = Asignado - Vendido`.
|
||||||
|
' * **Paso C: Cálculo del Mínimo:** Se comparan todos los límites (Global, Recurrente, Cliente/Segmentado) y se toma el **valor más pequeño** como el `MaxPromos` inicial.
|
||||||
|
'
|
||||||
|
' #### 2. Restricción por Inventario de Productos FIJOS
|
||||||
|
'
|
||||||
|
' Una vez que sabemos cuántas *podríamos* vender administrativamente, revisamos si tenemos los productos obligatorios (Fijos).
|
||||||
|
' * El sistema itera sobre cada producto fijo de la promoción.
|
||||||
|
' * **Cálculo:** `InventarioDisponible / PiezasRequeridasPorPromo`.
|
||||||
|
' * **Resultado:** El `MaxPromos` se actualiza al **mínimo** entre el valor del Paso 1 y lo que permite el inventario de cada producto fijo.
|
||||||
|
' * *Nota Crítica:* Si este valor es 0, la promo se marca como "KO" (No disponible).
|
||||||
|
'
|
||||||
|
' #### 3. El Cruce de Inventarios (La Resta)
|
||||||
|
'
|
||||||
|
' Este es el punto que mencionaste y es vital en el flujo actual. Antes de evaluar si alcanzan los productos variables, el código **simula la venta de los productos fijos**.
|
||||||
|
' * Se toma el mapa de inventario actual.
|
||||||
|
' * Se ejecuta `restaFijosDePromo`.
|
||||||
|
' * **Acción:** Para cada producto fijo, se resta: `(MaxPromosCalculado * PiezasRequeridas)`.
|
||||||
|
' * **Resultado:** Se genera un *Nuevo Mapa de Inventario Virtual* que contiene solo lo que sobró después de apartar lo necesario para la parte fija. Este mapa es el que se pasa a la siguiente etapa.
|
||||||
|
'
|
||||||
|
' #### 4. Cálculo de Variables y Restricción de Trade Spending (TS)
|
||||||
|
'
|
||||||
|
' Aquí es donde la lógica se vuelve compleja y utiliza los bucles iterativos para validar tanto existencia física como presupuesto financiero (Bonificaciones).
|
||||||
|
' Se ejecuta `revisaMaxPromosProdsVariablesPorInventario`, que usa el *Inventario Virtual* del paso anterior.
|
||||||
|
' **El Bucle de Validación (Paso a Paso):**
|
||||||
|
' El código prueba vender 1 promo, luego 2, hasta llegar al `MaxPromos` calculado en el paso 2.
|
||||||
|
' 1. **Iteración `x` (Número de promos a probar):**
|
||||||
|
' 2. **Consumo de Fijos en Variables:** Si un producto variable *también* es fijo, el código descuenta (otra vez) el inventario necesario para la parte fija dentro de este bucle para asegurar integridad.
|
||||||
|
' 3. **Suma de Inventario Variable:** Se suman las existencias de todos los productos que califican como variables para esta promo.
|
||||||
|
' 4. **Validación de Trade Spending (El Presupuesto):**
|
||||||
|
' * Dentro del bucle, para cada producto variable disponible, se llama a `ts.traeBonificacionesMaximas`.
|
||||||
|
' * **La Lógica de ts:** El sistema verifica si el producto actual califica como bonificación (precio especial/cero).
|
||||||
|
' * **Si califica:** Verifica si hay saldo en el presupuesto de "BONIFICACIONES". Si no hay saldo, este producto variable **no se cuenta** como disponible para armar la promo en esta iteración.
|
||||||
|
' * **Si NO califica:** (Es un producto de precio normal dentro de la promo), no consume presupuesto y se cuenta libremente según su inventario físico.
|
||||||
|
' 5. **Prueba de Fuego:**
|
||||||
|
' * Se compara: `InventarioVariableValidado (Físico + Financiero)` vs `(PiezasVariablesRequeridas * x)`.
|
||||||
|
' * Si alcanza, el ciclo continúa para probar `x + 1`.
|
||||||
|
' * Si no alcanza, el ciclo se rompe y se define el máximo posible.
|
||||||
|
'
|
||||||
|
' ### Resumen del Factor TS en el Flujo
|
||||||
|
'
|
||||||
|
' El presupuesto de ts no bloquea la promo "per se", sino que **filtra qué productos variables están disponibles**.
|
||||||
|
' * Si la promo pide 3 variables.
|
||||||
|
' * Tienes 5 opciones en inventario físico.
|
||||||
|
' * 2 opciones son "Bonificación" (consumen presupuesto) y 3 son venta normal.
|
||||||
|
' * **Escenario Sin Presupuesto:** Al iterar, `ts.traeBonificacionesMaximas` devolverá 0 para los 2 productos de bonificación. El sistema solo verá 3 productos disponibles (los normales).
|
||||||
|
' * **Resultado:** Como la promo pide 3 y el sistema "ve" 3 disponibles, la promo **SÍ SE MUESTRA**.
|
||||||
|
' * **Bloqueo:** Solo se bloquearía si la promo pidiera 4 variables, ya que Sin presupuesto ts solo "vemos" 3 productos disponibles, insuficientes para armar el paquete.
|
||||||
|
'
|
||||||
|
' ### Este flujo garantiza que la promo se muestre siempre que sea *físicamente* posible armarla, restringiendo la parte financiera solo a los ítems que realmente cuestan dinero al presupuesto de bonificaciones.
|
||||||
|
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
|
||||||
@@ -44,12 +112,18 @@ Sub Class_Globals
|
|||||||
Dim montoPedidoActual As String
|
Dim montoPedidoActual As String
|
||||||
Dim promosMap As Map
|
Dim promosMap As Map
|
||||||
Dim ts As C_TrendSpending
|
Dim ts As C_TrendSpending
|
||||||
|
Dim TS_RMI() As String
|
||||||
|
Dim TS_DESCUENTOS() As String
|
||||||
|
Dim TS_BONIFICACIONES() As String
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
'You can add more parameters here.
|
'You can add more parameters here.
|
||||||
Public Sub Initialize As Object
|
Public Sub Initialize As Object
|
||||||
' promosC.Initialize(Me, "promosC", Starter.skmt)
|
' promosC.Initialize(Me, "promosC", Starter.skmt)
|
||||||
ts.Initialize("ts", "ts", Starter.skmt)
|
ts.Initialize("ts", "ts", Starter.skmt)
|
||||||
|
Log(TS_RMI)
|
||||||
|
Log(TS_DESCUENTOS)
|
||||||
|
Log(TS_BONIFICACIONES)
|
||||||
Return Me
|
Return Me
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@@ -479,29 +553,35 @@ Private Sub b_terminar1_Click
|
|||||||
Log($"${prodsIds}${CRLF}${prodsCants}${CRLF}${prodsPrecios}"$)
|
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))
|
||||||
|
|
||||||
Private idProdFijo As String = prodsIds.Get(t)
|
Private idProdFijo As String = prodsIds.Get(t)
|
||||||
Private cantProdFijo As Int = prodsCants.Get(t)
|
Private cantProdFijo As Int = prodsCants.Get(t)
|
||||||
|
Private prodsPrecio As String = prodsPrecios.Get(t)
|
||||||
|
|
||||||
|
Log($"#### idProdFijo: ${idProdFijo}, ${cantProdFijo}, ${prodsPrecio}"$)
|
||||||
|
|
||||||
' ' Asumimos que el índice 0 es el encabezado de la promoción (estaPromo) y no tiene bonificación de producto.
|
' ' Asumimos que el índice 0 es el encabezado de la promoción (estaPromo) y no tiene bonificación de producto.
|
||||||
If t > 0 Then
|
If t > 0 Then
|
||||||
Private bonificacion_monto As String = ts.traeMontoBonificacion(idProdFijo, estaPromo)
|
Private bonificacion_monto As String = ts.traeMontoBonificacion(idProdFijo, prodsPrecio, estaPromo)
|
||||||
Log(bonificacion_monto)
|
Log(bonificacion_monto)
|
||||||
|
Log("elMontoTSDeLaVenta=" & elMontoTSDeLaVenta)
|
||||||
|
Log($"${elMontoTSDeLaVenta} + (${bonificacion_monto} * ${cantProdFijo})"$)
|
||||||
elMontoTSDeLaVenta = elMontoTSDeLaVenta + (bonificacion_monto * cantProdFijo)
|
elMontoTSDeLaVenta = elMontoTSDeLaVenta + (bonificacion_monto * cantProdFijo)
|
||||||
Log($"TS Fijo Acumulado: ${elMontoTSDeLaVenta}, Prod: ${idProdFijo}"$)
|
Log($"TS Fijo Acumulado: ${elMontoTSDeLaVenta}, Prod: ${idProdFijo}"$)
|
||||||
End If
|
End If
|
||||||
|
|
||||||
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, Starter.tipov)
|
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, Starter.tipov)
|
||||||
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.guardaProductoSinGestion(estaPromo, prodsPrecios2.Get(t), prodsCants2.Get(t), pn, prodsIds2.Get(t), Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, Subs.traeRuta, 0, Starter.tipov)
|
Subs.guardaProductoSinGestion(estaPromo, prodsPrecios2.Get(t), prodsCants2.Get(t), pn, prodsIds2.Get(t), Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, Subs.traeRuta, 0, Starter.tipov)
|
||||||
' Traemos el monto de las bonificacionos a guardar. -- Trade Spending
|
' Traemos el monto de las bonificacionos a guardar. -- Trade Spending
|
||||||
Log("Monto Bonificacion -->> " & ts.traeMontoBonificacion(prodsIds2.Get(t), estaPromo))
|
Log("Monto Bonificacion -->> " & ts.traeMontoBonificacion(prodsIds2.Get(t), prodsPrecios2.Get(t), estaPromo))
|
||||||
elMontoTSDeLaVenta = elMontoTSDeLaVenta + (ts.traeMontoBonificacion(prodsIds2.Get(t), estaPromo) * prodsCants2.Get(t))
|
elMontoTSDeLaVenta = elMontoTSDeLaVenta + (ts.traeMontoBonificacion(prodsIds2.Get(t), prodsPrecios2.Get(t), estaPromo) * prodsCants2.Get(t))
|
||||||
Log("Acumulado: " & elMontoTSDeLaVenta)
|
Log("Acumulado: " & elMontoTSDeLaVenta)
|
||||||
Next
|
Next
|
||||||
ts.modTrendSpending("RESTA", "BONIFICACIONES", elMontoTSDeLaVenta)
|
ts.modTrendSpending("RESTA", "BONIFICACIONES", elMontoTSDeLaVenta)
|
||||||
|
Log($"### modTrendSpending("RESTA", "BONIFICACIONES", ${elMontoTSDeLaVenta})"$)
|
||||||
lv_prodsFijos.Clear
|
lv_prodsFijos.Clear
|
||||||
B4XPages.MainPage.bTerminarClicked = True
|
B4XPages.MainPage.bTerminarClicked = True
|
||||||
B4XPages.ShowPage("productos")
|
B4XPages.ShowPage("productos")
|
||||||
@@ -515,29 +595,35 @@ Private Sub b_continuar_Click
|
|||||||
Log($"${prodsIds}${CRLF}${prodsCants}${CRLF}${prodsPrecios}"$)
|
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))
|
||||||
|
|
||||||
Private idProdFijo As String = prodsIds.Get(t)
|
Private idProdFijo As String = prodsIds.Get(t)
|
||||||
Private cantProdFijo As Int = prodsCants.Get(t)
|
Private cantProdFijo As Int = prodsCants.Get(t)
|
||||||
|
Private prodsPrecio As String = prodsPrecios.Get(t)
|
||||||
|
|
||||||
|
Log($"#### idProdFijo: ${idProdFijo}, ${cantProdFijo}, ${prodsPrecio}"$)
|
||||||
|
|
||||||
' ' Asumimos que el índice 0 es el encabezado de la promoción (estaPromo) y no tiene bonificación de producto.
|
' ' Asumimos que el índice 0 es el encabezado de la promoción (estaPromo) y no tiene bonificación de producto.
|
||||||
If t > 0 Then
|
If t > 0 Then
|
||||||
Private bonificacion_monto As String = ts.traeMontoBonificacion(idProdFijo, estaPromo)
|
Private bonificacion_monto As String = ts.traeMontoBonificacion(idProdFijo, prodsPrecio, estaPromo)
|
||||||
Log(bonificacion_monto)
|
Log(bonificacion_monto)
|
||||||
|
Log("elMontoTSDeLaVenta=" & elMontoTSDeLaVenta)
|
||||||
|
Log($"${elMontoTSDeLaVenta} + (${bonificacion_monto} * ${cantProdFijo})"$)
|
||||||
elMontoTSDeLaVenta = elMontoTSDeLaVenta + (bonificacion_monto * cantProdFijo)
|
elMontoTSDeLaVenta = elMontoTSDeLaVenta + (bonificacion_monto * cantProdFijo)
|
||||||
Log($"TS Fijo Acumulado: ${elMontoTSDeLaVenta}, Prod: ${idProdFijo}"$)
|
Log($"TS Fijo Acumulado: ${elMontoTSDeLaVenta}, Prod: ${idProdFijo}"$)
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Subs.guardaProductoSinGestion(estaPromo, prodsPrecios.Get(t), prodsCants.Get(t), pn, prodsIds.Get(t), Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, Subs.traeRuta, 0, Starter.tipov)
|
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, Starter.tipov)
|
||||||
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.guardaProductoSinGestion(estaPromo, prodsPrecios2.Get(t), prodsCants2.Get(t), pn, prodsIds2.Get(t), Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, Subs.traeRuta, 0, Starter.tipov)
|
Subs.guardaProductoSinGestion(estaPromo, prodsPrecios2.Get(t), prodsCants2.Get(t), pn, prodsIds2.Get(t), Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, Subs.traeRuta, 0, Starter.tipov)
|
||||||
' Traemos el monto de las bonificacionos a guardar. -- Trade Spending
|
' Traemos el monto de las bonificacionos a guardar. -- Trade Spending
|
||||||
Log("Monto Bonificacion -->> " & ts.traeMontoBonificacion(prodsIds2.Get(t), estaPromo))
|
Log("Monto Bonificacion -->> " & ts.traeMontoBonificacion(prodsIds2.Get(t), prodsPrecios2.Get(t), estaPromo))
|
||||||
elMontoTSDeLaVenta = elMontoTSDeLaVenta + (ts.traeMontoBonificacion(prodsIds2.Get(t), estaPromo) * prodsCants2.Get(t))
|
elMontoTSDeLaVenta = elMontoTSDeLaVenta + (ts.traeMontoBonificacion(prodsIds2.Get(t), prodsPrecios2.Get(t), estaPromo) * prodsCants2.Get(t))
|
||||||
Log("Acumulado: " & elMontoTSDeLaVenta)
|
Log("Acumulado: " & elMontoTSDeLaVenta)
|
||||||
Next
|
Next
|
||||||
ts.modTrendSpending("RESTA", "BONIFICACIONES", elMontoTSDeLaVenta)
|
ts.modTrendSpending("RESTA", "BONIFICACIONES", elMontoTSDeLaVenta)
|
||||||
|
Log($"### modTrendSpending("RESTA", "BONIFICACIONES", ${elMontoTSDeLaVenta})"$)
|
||||||
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)
|
||||||
|
|||||||
@@ -90,6 +90,7 @@ Sub Activity_KeyPress (key As Int) As Boolean
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub ListView1_ItemLongClick (Position As Int, Value As Object)
|
Sub ListView1_ItemLongClick (Position As Int, Value As Object)
|
||||||
|
Log(value)
|
||||||
Starter.skmt.ExecNonQuery("delete from CUENTAA")
|
Starter.skmt.ExecNonQuery("delete from CUENTAA")
|
||||||
Starter.skmt.ExecNonQuery2("INSERT INTO CUENTAA VALUES (?)", Array As Object(Value))
|
Starter.skmt.ExecNonQuery2("INSERT INTO CUENTAA VALUES (?)", Array As Object(Value))
|
||||||
Subs.iniciaActividad("Cliente")
|
Subs.iniciaActividad("Cliente")
|
||||||
|
|||||||
@@ -9,6 +9,41 @@ Version=12.8
|
|||||||
' Propósito: Gestionar el GUID del dispositivo y verificar/ligar el dispositivo
|
' Propósito: Gestionar el GUID del dispositivo y verificar/ligar el dispositivo
|
||||||
' a un almacén y ruta en el servidor de forma segura.
|
' a un almacén y ruta en el servidor de forma segura.
|
||||||
'-----------------------------------------------------------------------------------
|
'-----------------------------------------------------------------------------------
|
||||||
|
' Ejemplo de uso:
|
||||||
|
' ==== En config.properties ====
|
||||||
|
' sql.verify_device=Select nvl(CAT_RU_IDTELEFONO, 0) As CAT_RU_IDTELEFONO from kelloggs.CAT_RUTAS where cat_ru_idalmacen = ? And cat_ru_ruta = ?
|
||||||
|
' sql.registarMovil=update kelloggs.CAT_RUTAS set CAT_RU_IDTELEFONO = ? where cat_ru_idalmacen = ? And cat_ru_ruta = ?
|
||||||
|
' ==== En Class_Globals ====
|
||||||
|
' Dim linker As C_deviceLinker '<<<< Class_Globals
|
||||||
|
' ==== En B4XPage_Created ====
|
||||||
|
' linker.Initialize(Me, "Linker", True) '<<<<<< B4XPage_Created
|
||||||
|
' ==== En donde se quiera llamar ====
|
||||||
|
' linker.VerifyDevice(Subs.traeAlmacen, Subs.traeRuta)
|
||||||
|
' Sub Linker_Response(Status As String) ' << AÑADE ESTE SUB [New Query]
|
||||||
|
' If Starter.Logger Then LogColor($"Respuesta de DeviceLinker para la verificación del dispositivo: ${Status}"$, Colors.Magenta) '
|
||||||
|
' Select Status
|
||||||
|
' Case "OK"
|
||||||
|
' Log("########################################################")
|
||||||
|
' ToastMessageShow("Dispositivo verificado y vinculado correctamente.", False)
|
||||||
|
' ' Aquí puedes añadir lógica adicional si la verificación es exitosa, por ejemplo, habilitar ciertos botones o continuar con el flujo normal.
|
||||||
|
' Case "REGISTRO_COMPLETO"
|
||||||
|
' Log("########################################################")
|
||||||
|
' ToastMessageShow("¡Registro completo!", False)
|
||||||
|
' Case "SIN_REGISTRO"
|
||||||
|
' Log("########################################################")
|
||||||
|
' ToastMessageShow("¡Dispositivo sin registro!", False)
|
||||||
|
' linker.linkDevice(Subs.traeAlmacen, e_ruta.text) '<<<<<<<<< Si no esta registrado lo registramos.
|
||||||
|
' Case "REGISTRANDO"
|
||||||
|
' ToastMessageShow("¡Registro en proceso!", True)
|
||||||
|
' Case "YA_REGISTRADO"
|
||||||
|
' Log("########################################################")
|
||||||
|
' ToastMessageShow("¡¡El dispositivo ya esta registrado con otra ruta!!", True)
|
||||||
|
' Case Else ' Otros estados que tu servidor pueda devolver (ej. "UNAUTHORIZED", "PENDING_APPROVAL")
|
||||||
|
' Log("########################################################")
|
||||||
|
' ToastMessageShow($"Verificación del dispositivo: ${Status}"$, True)
|
||||||
|
' ' Puedes decidir si bloquear la funcionalidad o mostrar un mensaje específico según el estado.
|
||||||
|
' End Select
|
||||||
|
' End Sub
|
||||||
|
|
||||||
Sub Class_Globals
|
Sub Class_Globals
|
||||||
' Configuración del servidor y comandos
|
' Configuración del servidor y comandos
|
||||||
@@ -28,6 +63,7 @@ Sub Class_Globals
|
|||||||
' - KeyValueStore2
|
' - KeyValueStore2
|
||||||
' - DBRequestManager
|
' - DBRequestManager
|
||||||
' - XUI
|
' - XUI
|
||||||
|
Dim dlDB As SQL
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
' Inicializa la clase DeviceLinker.
|
' Inicializa la clase DeviceLinker.
|
||||||
@@ -42,12 +78,16 @@ Public Sub Initialize (PageObject As Object, NameOfEvent As String, AppLogger As
|
|||||||
' Inicializamos el KeyValueStore para almacenamiento seguro del GUID
|
' Inicializamos el KeyValueStore para almacenamiento seguro del GUID
|
||||||
kvs.Initialize(File.DirInternal, "DeviceKeyStore.b4xkey")
|
kvs.Initialize(File.DirInternal, "DeviceKeyStore.b4xkey")
|
||||||
If logger Then Log("B4XKeyStore 'DeviceKeyStore' inicializado.")
|
If logger Then Log("B4XKeyStore 'DeviceKeyStore' inicializado.")
|
||||||
|
|
||||||
|
dlDB.Initialize(File.DirInternal, "deviceLink.db", True)
|
||||||
|
dlDB.ExecNonQuery("CREATE TABLE IF NOT EXISTS Registro (GUID_KEY_ALIAS TEXT)") ' Creamos la tabla si no existe
|
||||||
|
|
||||||
' Inicializamos el DBRequestManager para las comunicaciones con el servidor.
|
' Inicializamos el DBRequestManager para las comunicaciones con el servidor.
|
||||||
' 'Me' indica que el evento JobDone de esta clase se encargará de las respuestas de reqManager.
|
' 'Me' indica que el evento JobDone de esta clase se encargará de las respuestas de reqManager.
|
||||||
' reqManager.Initialize(Me, Starter.DBReqServer)
|
' reqManager.Initialize(Me, Starter.DBReqServer)
|
||||||
' reqManager.Initialize(Me, "http://keymon.net:9010/DB2") 'Servidor de pruebas
|
' reqManager.Initialize(Me, "http://keymon.net:9010/DB2") 'Servidor de pruebas
|
||||||
reqManager.Initialize(Me, "http://keymon.net:1781") 'Servidor productivo
|
' reqManager.Initialize(Me, "http://keymon.net:1781") 'Servidor productivo
|
||||||
|
reqManager.Initialize(Me, Starter.DBReqServer) 'Servidor productivo
|
||||||
|
|
||||||
If logger Then Log("DBRequestManager para DeviceLinker inicializado.")
|
If logger Then Log("DBRequestManager para DeviceLinker inicializado.")
|
||||||
If logger Then Log("DeviceLinker inicializado y listo para operar.")
|
If logger Then Log("DeviceLinker inicializado y listo para operar.")
|
||||||
@@ -56,43 +96,87 @@ End Sub
|
|||||||
' Verifica y liga el dispositivo con un almacén y una ruta en el servidor.
|
' Verifica y liga el dispositivo con un almacén y una ruta en el servidor.
|
||||||
' Almacen: El identificador del almacén.
|
' Almacen: El identificador del almacén.
|
||||||
' Ruta: El identificador de la ruta.
|
' Ruta: El identificador de la ruta.
|
||||||
Public Sub VerifyAndLinkDevice(Almacen_ As String, Ruta_ As String)
|
Public Sub verifyDevice(Almacen_ As String, Ruta_ As String)
|
||||||
Dim DeviceId_ As String = GetDeviceGUID ' Obtenemos o generamos el GUID del dispositivo.
|
Private verificar As Boolean = True ' La verificacion se realiza por default
|
||||||
almacen = Almacen_
|
Private tv As Cursor = Starter.skmt.ExecQuery("select * from cat_variables where CAT_VA_DESCRIPCION = 'VERIFY_DEVICE'")
|
||||||
ruta = Ruta_
|
If tv.RowCount > 0 Then
|
||||||
deviceId = DeviceId_
|
tv.Position = 0
|
||||||
If DeviceId_ = "" Then
|
If tv.GetString("CAT_VA_VALOR") = 0 Then verificar = False
|
||||||
If logger Then LogColor("Error: GUID del dispositivo no pudo ser obtenido o generado.", Colors.Red)
|
|
||||||
' Enviar una respuesta de error al callback si no se pudo obtener el GUID.
|
|
||||||
If SubExists(CallBack, EventName & "_Response") Then ' [New Query]
|
|
||||||
CallSub2(CallBack, EventName & "_Response", "GUID_ERROR")
|
|
||||||
End If
|
|
||||||
Return
|
|
||||||
End If
|
End If
|
||||||
|
If verificar Then ' Si VERIFY_DEVICE no está en CERO ... verificamos.
|
||||||
|
Dim DeviceId_ As String = GetDeviceGUID ' Obtenemos o generamos el GUID del dispositivo.
|
||||||
|
LogColor(DeviceId_, Colors.red)
|
||||||
|
almacen = Almacen_
|
||||||
|
ruta = Ruta_
|
||||||
|
deviceId = DeviceId_
|
||||||
|
If DeviceId_ = "" Then
|
||||||
|
If logger Then LogColor("Error: GUID del dispositivo no pudo ser obtenido o generado.", Colors.Red)
|
||||||
|
' Enviar una respuesta de error al callback si no se pudo obtener el GUID.
|
||||||
|
If SubExists(CallBack, EventName & "_Response") Then ' [New Query]
|
||||||
|
CallSub2(CallBack, EventName & "_Response", "GUID_ERROR") ' Dispara el evento Linker_Response("GUID_ERROR")
|
||||||
|
End If
|
||||||
|
Return
|
||||||
|
End If
|
||||||
|
|
||||||
If logger Then Log($"Enviando solicitud de verificación para DeviceId: ${DeviceId_}, Almacen: ${Almacen_}, Ruta: ${Ruta_}"$)
|
If logger Then Log($"Enviando solicitud de verificación para DeviceId: ${DeviceId_}, Almacen: ${Almacen_}, Ruta: ${Ruta_}"$)
|
||||||
|
|
||||||
|
Dim cmd As DBCommand ' Creamos un comando para enviar al servidor.
|
||||||
|
cmd.Initialize
|
||||||
|
cmd.Name = "verify_device"
|
||||||
|
' Pasamos el almacén, la ruta y el GUID del dispositivo como parámetros.
|
||||||
|
cmd.Parameters = Array As Object(Almacen_, Ruta_) ', DeviceId_
|
||||||
|
Log($"Enviamos almacen: ${Almacen_} y ruta: ${Ruta_}"$)
|
||||||
|
|
||||||
|
' Ejecutamos el comando en el servidor. 'Me' indica que DBRequestManager_JobDone en esta clase manejará la respuesta.
|
||||||
|
reqManager.ExecuteQuery(cmd, 0, "verify_device")
|
||||||
|
Else ' Si está en CERO (Verificacion deshabilitada), regresamos "OK".
|
||||||
|
CallSub2(CallBack, EventName & "_Response", "OK")
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Sub linkDevice(Almacen_ As String, Ruta_ As String)
|
||||||
|
Dim deviceId As String = GetDeviceGUID ' Obtenemos o generamos el GUID del dispositivo.
|
||||||
|
Log("########################################################")
|
||||||
|
Log("REGISTRANDO")
|
||||||
Dim cmd As DBCommand ' Creamos un comando para enviar al servidor.
|
Dim cmd As DBCommand ' Creamos un comando para enviar al servidor.
|
||||||
cmd.Initialize
|
cmd.Initialize
|
||||||
cmd.Name = "verify_device"
|
cmd.Name = "registarMovil"
|
||||||
' Pasamos el almacén, la ruta y el GUID del dispositivo como parámetros.
|
' Pasamos el almacén, la ruta y el GUID del dispositivo como parámetros.
|
||||||
cmd.Parameters = Array As Object(Almacen_, Ruta_) ', DeviceId_
|
cmd.Parameters = Array As Object(deviceId, Almacen_, Ruta_)
|
||||||
|
reqManager.ExecuteCommand(cmd, "registramosGUID")
|
||||||
' Ejecutamos el comando en el servidor. 'Me' indica que DBRequestManager_JobDone en esta clase manejará la respuesta.
|
If SubExists(CallBack, EventName & "_Response") Then
|
||||||
reqManager.ExecuteQuery(cmd, 0, "verify_device")
|
CallSub2(CallBack, EventName & "_Response", "REGISTRANDO") ' Dispara el evento Linker_Response("REGISTRANDO")
|
||||||
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
'244500
|
||||||
|
|
||||||
' Obtiene el GUID único del dispositivo desde B4XKeyStore.
|
' Obtiene el GUID único del dispositivo desde B4XKeyStore.
|
||||||
' Si no existe, lo genera y lo guarda utilizando Subs.GUID.
|
' Si no existe, lo genera y lo guarda utilizando Subs.GUID.
|
||||||
Private Sub GetDeviceGUID As String
|
Private Sub GetDeviceGUID As String
|
||||||
If kvs.ContainsKey(GUID_KEY_ALIAS) = False Then
|
' If kvs.ContainsKey(GUID_KEY_ALIAS) = False Then
|
||||||
|
' ' Corrección: Usamos la función GUID ya existente en el módulo Subs [1].
|
||||||
|
' Dim NewGUID As String = generaGUID
|
||||||
|
' kvs.Put(GUID_KEY_ALIAS, NewGUID) ' Lo guardamos de forma segura en el KeyStore.
|
||||||
|
' If logger Then LogColor($"Nuevo GUID generado y guardado: ${NewGUID}"$, Colors.Blue)
|
||||||
|
' Return NewGUID
|
||||||
|
' Else
|
||||||
|
' Dim ExistingGUID As String = kvs.Get(GUID_KEY_ALIAS) ' Recuperamos el GUID existente.
|
||||||
|
' If logger Then LogColor($"GUID existente cargado: ${ExistingGUID}"$, Colors.Blue)
|
||||||
|
' Return ExistingGUID
|
||||||
|
' End If
|
||||||
|
|
||||||
|
If deviceLinked = False Then
|
||||||
' Corrección: Usamos la función GUID ya existente en el módulo Subs [1].
|
' Corrección: Usamos la función GUID ya existente en el módulo Subs [1].
|
||||||
Dim NewGUID As String = generaGUID
|
Dim NewGUID As String = generaGUID
|
||||||
kvs.Put(GUID_KEY_ALIAS, NewGUID) ' Lo guardamos de forma segura en el KeyStore.
|
dlDB.ExecNonQuery($"insert into registro ('GUID_KEY_ALIAS') values ('${NewGUID}')"$) ' Guardamos nuevo registro
|
||||||
If logger Then LogColor($"Nuevo GUID generado y guardado: ${NewGUID}"$, Colors.Blue)
|
If logger Then LogColor($"Nuevo GUID generado y guardado: ${NewGUID}"$, Colors.Blue)
|
||||||
Return NewGUID
|
Return NewGUID
|
||||||
Else
|
Else
|
||||||
Dim ExistingGUID As String = kvs.Get(GUID_KEY_ALIAS) ' Recuperamos el GUID existente.
|
Dim ExistingGUID As String
|
||||||
|
Private e As Cursor = dlDB.ExecQuery("select GUID_KEY_ALIAS from registro")
|
||||||
|
e.Position = 0
|
||||||
|
ExistingGUID = e.GetString("GUID_KEY_ALIAS")
|
||||||
If logger Then LogColor($"GUID existente cargado: ${ExistingGUID}"$, Colors.Blue)
|
If logger Then LogColor($"GUID existente cargado: ${ExistingGUID}"$, Colors.Blue)
|
||||||
Return ExistingGUID
|
Return ExistingGUID
|
||||||
End If
|
End If
|
||||||
@@ -115,7 +199,7 @@ Public Sub JobDone(Job As HttpJob) ' El nombre del sub debe ser 'JobDone' o el q
|
|||||||
LogColor("############################################", Colors.red)
|
LogColor("############################################", Colors.red)
|
||||||
' Enviar una respuesta de error HTTP al callback.
|
' Enviar una respuesta de error HTTP al callback.
|
||||||
If SubExists(CallBack, EventName & "_Response") Then
|
If SubExists(CallBack, EventName & "_Response") Then
|
||||||
CallSub2(CallBack, EventName & "_Response", "HTTP_ERROR")
|
CallSub2(CallBack, EventName & "_Response", "HTTP_ERROR") ' Dispara el evento Linker_Response("HTTP_ERROR")
|
||||||
End If
|
End If
|
||||||
Else 'If Job Success then ...
|
Else 'If Job Success then ...
|
||||||
lastJobDoneError = ""
|
lastJobDoneError = ""
|
||||||
@@ -144,48 +228,54 @@ Public Sub JobDone(Job As HttpJob) ' El nombre del sub debe ser 'JobDone' o el q
|
|||||||
For Each records() As Object In result.Rows
|
For Each records() As Object In result.Rows
|
||||||
Dim Status As String = "" 'records(result.Columns.Get("ESTATUS"))
|
Dim Status As String = "" 'records(result.Columns.Get("ESTATUS"))
|
||||||
Dim CAT_RU_IDTELEFONO As String = records(result.Columns.Get("CAT_RU_IDTELEFONO"))
|
Dim CAT_RU_IDTELEFONO As String = records(result.Columns.Get("CAT_RU_IDTELEFONO"))
|
||||||
|
deviceId = GetDeviceGUID
|
||||||
Log($"|${deviceId}|${CAT_RU_IDTELEFONO}|"$)
|
Log($"|${deviceId}|${CAT_RU_IDTELEFONO}|"$)
|
||||||
' If deviceId <> CAT_RU_IDTELEFONO Then Status = "YA_REGISTRADO" ' Ya existe OTRO registro.
|
' If deviceId <> CAT_RU_IDTELEFONO Then Status = "YA_REGISTRADO" ' Ya existe OTRO registro.
|
||||||
If CAT_RU_IDTELEFONO = 0 Or CAT_RU_IDTELEFONO.Length < 5 Then
|
If CAT_RU_IDTELEFONO = 0 Or CAT_RU_IDTELEFONO.Length < 5 Then
|
||||||
Log(">>> NUEVO")
|
Status = "SIN_REGISTRO"
|
||||||
' Status = "REGISTRO_NUEVO"
|
' Log("########################################################")
|
||||||
Dim cmd As DBCommand ' Creamos un comando para enviar al servidor.
|
' Log("REGISTRANDO")
|
||||||
cmd.Initialize
|
' Dim cmd As DBCommand ' Creamos un comando para enviar al servidor.
|
||||||
cmd.Name = "registarMovil"
|
' cmd.Initialize
|
||||||
' Pasamos el almacén, la ruta y el GUID del dispositivo como parámetros.
|
' cmd.Name = "registarMovil"
|
||||||
cmd.Parameters = Array As Object(deviceId, almacen, ruta)
|
' ' Pasamos el almacén, la ruta y el GUID del dispositivo como parámetros.
|
||||||
reqManager.ExecuteCommand(cmd, "registramosGUID")
|
' cmd.Parameters = Array As Object(deviceId, almacen, ruta)
|
||||||
|
' reqManager.ExecuteCommand(cmd, "registramosGUID")
|
||||||
If SubExists(CallBack, EventName & "_Response") Then
|
If SubExists(CallBack, EventName & "_Response") Then
|
||||||
CallSub2(CallBack, EventName & "_Response", "REGISTRO_NUEVO")
|
CallSub2(CallBack, EventName & "_Response", "SIN_REGISTRO")
|
||||||
End If
|
End If
|
||||||
else if CAT_RU_IDTELEFONO = deviceId Then
|
else if CAT_RU_IDTELEFONO = deviceId Then
|
||||||
Status = "OK"
|
Status = "OK"
|
||||||
|
Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("LIGADO"))
|
||||||
|
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("LIGADO", 1))
|
||||||
|
Log("OK")
|
||||||
|
LogColor("######### GUARDAMOS ###########", Colors.red)
|
||||||
Else
|
Else
|
||||||
Status = "YA_REGISTRADO"
|
Status = "YA_REGISTRADO"
|
||||||
|
Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("LIGADO"))
|
||||||
|
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("LIGADO", 0))
|
||||||
|
Log("YA_REGISTRADO")
|
||||||
|
LogColor("######### GUARDAMOS ###########", Colors.red)
|
||||||
End If
|
End If
|
||||||
' Invocamos el callback en el módulo principal con el estado.
|
' Invocamos el callback en el módulo principal con el estado.
|
||||||
If SubExists(CallBack, EventName & "_Response") Then
|
|
||||||
CallSub2(CallBack, EventName & "_Response", Status)
|
|
||||||
End If
|
|
||||||
Next
|
Next
|
||||||
' Else
|
Else
|
||||||
' If logger Then LogColor($"El servidor respondió con éxito, pero no encontró registros.${CRLF}Quiere decir que la ruta NO esta registrada en el servidor."$, Colors.Red)
|
Status = "NO_EXISTE_RUTA"
|
||||||
' Dim cmd As DBCommand ' Creamos un comando para enviar al servidor.
|
End If
|
||||||
' cmd.Initialize
|
If SubExists(CallBack, EventName & "_Response") Then
|
||||||
' cmd.Name = "registarMovil"
|
CallSub2(CallBack, EventName & "_Response", Status) ' Dispara el evento Linker_Response("OK") o Linker_Response("YA_REGISTRADO")
|
||||||
' ' Pasamos el almacén, la ruta y el GUID del dispositivo como parámetros.
|
|
||||||
' cmd.Parameters = Array As Object(almacen, ruta, deviceId)
|
|
||||||
' reqManager.ExecuteCommand(cmd, "registramosGUID")
|
|
||||||
' If SubExists(CallBack, EventName & "_Response") Then
|
|
||||||
' CallSub2(CallBack, EventName & "_Response", "NO_REGISTRADO")
|
|
||||||
' End If
|
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
|
||||||
If result.Tag = "registramosGUID" Then
|
If result.Tag = "registramosGUID" Then
|
||||||
|
Log("########################################################")
|
||||||
|
Log("REGISTRO_COMPLETO")
|
||||||
|
LogColor("######### GUARDAMOS ###########", Colors.red)
|
||||||
Subs.logJobDoneResultados(result)
|
Subs.logJobDoneResultados(result)
|
||||||
|
Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("LIGADO"))
|
||||||
|
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("LIGADO", 1))
|
||||||
If SubExists(CallBack, EventName & "_Response") Then
|
If SubExists(CallBack, EventName & "_Response") Then
|
||||||
CallSub2(CallBack, EventName & "_Response", "REGISTRO_NUEVO")
|
CallSub2(CallBack, EventName & "_Response", "REGISTRO_COMPLETO") ' Dispara el evento Linker_Response("REGISTRO_COMPLETO")
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
@@ -207,4 +297,14 @@ Sub generaGUID As String
|
|||||||
Next
|
Next
|
||||||
Next
|
Next
|
||||||
Return sb.ToString
|
Return sb.ToString
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
'Regresa true si existe registro
|
||||||
|
Sub deviceLinked As Boolean
|
||||||
|
Private e As Cursor = dlDB.ExecQuery("select * from registro")
|
||||||
|
If e.RowCount > 0 Then
|
||||||
|
Return True
|
||||||
|
Else
|
||||||
|
Return False
|
||||||
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -917,7 +917,7 @@ Version=12.8
|
|||||||
#Region Project Attributes
|
#Region Project Attributes
|
||||||
#ApplicationLabel: Kelloggs Venta
|
#ApplicationLabel: Kelloggs Venta
|
||||||
#VersionCode: 3000
|
#VersionCode: 3000
|
||||||
#VersionName: 5.09.10.1
|
#VersionName: 5.12.5
|
||||||
#SupportedOrientations: portrait
|
#SupportedOrientations: portrait
|
||||||
#CanInstallToExternalStorage: False
|
#CanInstallToExternalStorage: False
|
||||||
#BridgeLogger:true
|
#BridgeLogger:true
|
||||||
@@ -933,6 +933,9 @@ Version=12.8
|
|||||||
#IncludeTitle: False
|
#IncludeTitle: False
|
||||||
#End Region
|
#End Region
|
||||||
|
|
||||||
|
|
||||||
|
'222543
|
||||||
|
|
||||||
' Version que estaba en la tabla CAT_VERSION antes -> 2.95
|
' Version que estaba en la tabla CAT_VERSION antes -> 2.95
|
||||||
' 5.08.30 --> corrige que en la barra de busqeda en productos no hacia nada!
|
' 5.08.30 --> corrige que en la barra de busqeda en productos no hacia nada!
|
||||||
|
|
||||||
|
|||||||
@@ -67,12 +67,12 @@ ModuleBreakpoints7=
|
|||||||
ModuleBreakpoints8=
|
ModuleBreakpoints8=
|
||||||
ModuleBreakpoints9=
|
ModuleBreakpoints9=
|
||||||
ModuleClosedNodes0=
|
ModuleClosedNodes0=
|
||||||
ModuleClosedNodes1=6,46,47
|
ModuleClosedNodes1=2,3,6,10,11,12,13,14,15,16,18,19,20,21,22,23,24,25,26,27,28,29,31,33,34,35,37,38,39,40,41,42,43,45,46,47
|
||||||
ModuleClosedNodes10=
|
ModuleClosedNodes10=
|
||||||
ModuleClosedNodes11=
|
ModuleClosedNodes11=
|
||||||
ModuleClosedNodes12=3,5
|
ModuleClosedNodes12=
|
||||||
ModuleClosedNodes13=7,8,9,10,11,12
|
ModuleClosedNodes13=8,9,11,12
|
||||||
ModuleClosedNodes14=6,7,8,9,12,13
|
ModuleClosedNodes14=1,2
|
||||||
ModuleClosedNodes15=
|
ModuleClosedNodes15=
|
||||||
ModuleClosedNodes16=3,8,17
|
ModuleClosedNodes16=3,8,17
|
||||||
ModuleClosedNodes17=
|
ModuleClosedNodes17=
|
||||||
@@ -85,11 +85,11 @@ ModuleClosedNodes22=
|
|||||||
ModuleClosedNodes23=
|
ModuleClosedNodes23=
|
||||||
ModuleClosedNodes24=
|
ModuleClosedNodes24=
|
||||||
ModuleClosedNodes25=
|
ModuleClosedNodes25=
|
||||||
ModuleClosedNodes26=24,26,27,31,32,33,35
|
ModuleClosedNodes26=24,26,31,32,33,35
|
||||||
ModuleClosedNodes27=
|
ModuleClosedNodes27=
|
||||||
ModuleClosedNodes28=4
|
ModuleClosedNodes28=4
|
||||||
ModuleClosedNodes29=
|
ModuleClosedNodes29=
|
||||||
ModuleClosedNodes3=1,3,5,6
|
ModuleClosedNodes3=3
|
||||||
ModuleClosedNodes30=
|
ModuleClosedNodes30=
|
||||||
ModuleClosedNodes31=
|
ModuleClosedNodes31=
|
||||||
ModuleClosedNodes32=116
|
ModuleClosedNodes32=116
|
||||||
@@ -100,6 +100,6 @@ ModuleClosedNodes6=
|
|||||||
ModuleClosedNodes7=
|
ModuleClosedNodes7=
|
||||||
ModuleClosedNodes8=
|
ModuleClosedNodes8=
|
||||||
ModuleClosedNodes9=
|
ModuleClosedNodes9=
|
||||||
NavigationStack=C_Principal,JobDone,1779,0,B4XMainPage,B4XPage_Appear,392,0,B4XMainPage,Label4_Click,1062,0,B4XMainPage,Linker_Response,1063,3,C_Principal,l_efectiva_Click,3892,0,C_Principal,Class_Globals,214,0,C_Principal,B4XPage_Created,312,0,C_Principal,B4XPage_Appear,321,0,C_Principal,Linker_Response,3917,6,C_deviceLinker,JobDone,132,6,C_deviceLinker,Initialize,44,0
|
NavigationStack=C_Principal,B4XPage_Appear,595,0,Subs,revisaMaxPromosProdsFijosPorInventario,1393,1,Subs,procesaPromocion,1256,1,C_TrendSpending,traeMontoBonificacion,370,1,C_TrendSpending,traeBonificacionesMaximas,363,0,kms_helperSubs,RD_Init,105,0,C_Productos,B4XPage_Appear,235,6,MAPA_RUTAS,CreateBitmapWithNumber,363,0,MAPA_RUTAS,MapFragment1_Ready,223,0,B4XMainPage,B4XPage_Created,128,0
|
||||||
SelectedBuild=0
|
SelectedBuild=0
|
||||||
VisibleModules=31,1,12,5,16,26,3,32,13,14,8,33,10,28,19
|
VisibleModules=31,1,12,3,32,13,14,19,16,26,28
|
||||||
|
|||||||
@@ -186,9 +186,9 @@ Sub MapFragment1_Ready
|
|||||||
Next
|
Next
|
||||||
c2 .Close
|
c2 .Close
|
||||||
End If
|
End If
|
||||||
|
|
||||||
'''''''---------------------------- MARKER ROJO - NO VENTA
|
'''''''---------------------------- MARKER ROJO - NO VENTA
|
||||||
|
|
||||||
If rojo =1 Or todos = 1 Then
|
If rojo =1 Or todos = 1 Then
|
||||||
c3.IsInitialized
|
c3.IsInitialized
|
||||||
c3=Starter.skmt.ExecQuery("select CAT_CL_CODIGO, CAT_CL_NOMBRE,CAT_CL_LONG,CAT_CL_LAT ,CAT_CL_NUM_SERIEFISICO from kmt_info where CAT_CL_NOMBRE <>'VENTA ABORDO' AND CAT_CL_CODIGO In (Select NV_CLIENTE from NOVENTA ) AND CAT_CL_CODIGO NOT IN (Select PE_CLIENTE from PEDIDO) and CAT_CL_DIAS_VISITA = (SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = 'DIA_VISITA')order by CAT_CL_NUM_SERIEFISICO")
|
c3=Starter.skmt.ExecQuery("select CAT_CL_CODIGO, CAT_CL_NOMBRE,CAT_CL_LONG,CAT_CL_LAT ,CAT_CL_NUM_SERIEFISICO from kmt_info where CAT_CL_NOMBRE <>'VENTA ABORDO' AND CAT_CL_CODIGO In (Select NV_CLIENTE from NOVENTA ) AND CAT_CL_CODIGO NOT IN (Select PE_CLIENTE from PEDIDO) and CAT_CL_DIAS_VISITA = (SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = 'DIA_VISITA')order by CAT_CL_NUM_SERIEFISICO")
|
||||||
@@ -200,7 +200,8 @@ Sub MapFragment1_Ready
|
|||||||
CODIGO=c3.GetString("CAT_CL_CODIGO")
|
CODIGO=c3.GetString("CAT_CL_CODIGO")
|
||||||
Tienda= c3.GetString("CAT_CL_NOMBRE")
|
Tienda= c3.GetString("CAT_CL_NOMBRE")
|
||||||
NumSerie=c3.GetInt("CAT_CL_NUM_SERIEFISICO")
|
NumSerie=c3.GetInt("CAT_CL_NUM_SERIEFISICO")
|
||||||
MARK_ROJO = gmap.AddMarker3(LatitudRU,LongitudRU,CODIGO, LoadBitmap(File.DirAssets, "marker-rojo-" & NumSerie &".png"))
|
' MARK_ROJO = gmap.AddMarker3(LatitudRU,LongitudRU,CODIGO, LoadBitmap(File.DirAssets, "marker-rojo-" & NumSerie &".png"))
|
||||||
|
MARK_ROJO = gmap.AddMarker3(LatitudRU, LongitudRU, CODIGO, CreateBitmapWithNumber(LoadBitmap(File.DirAssets, "marker-rojo.png"), NumSerie))
|
||||||
MARK_ROJO.Snippet = Tienda
|
MARK_ROJO.Snippet = Tienda
|
||||||
Next
|
Next
|
||||||
c3.Close
|
c3.Close
|
||||||
|
|||||||
@@ -4,6 +4,11 @@ ModulesStructureVersion=1
|
|||||||
Type=Class
|
Type=Class
|
||||||
Version=12.8
|
Version=12.8
|
||||||
@EndOfDesignText@
|
@EndOfDesignText@
|
||||||
|
'##############################################################################################
|
||||||
|
' CODIGO DE PRUEBA, NO HABILITADO, NO TERMINADO
|
||||||
|
' PRETENDE UTILIZAR MENOS MAPAS Y MAS QUERIES PARA EL CALCULO DE LAS PROMOCIONES
|
||||||
|
'##############################################################################################
|
||||||
|
|
||||||
Sub Class_Globals
|
Sub Class_Globals
|
||||||
Dim ruta As String
|
Dim ruta As String
|
||||||
Dim almacen As String
|
Dim almacen As String
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ Sub Process_Globals
|
|||||||
Dim pingShell As Boolean = False
|
Dim pingShell As Boolean = False
|
||||||
Dim errorConnDBReq As Boolean = False
|
Dim errorConnDBReq As Boolean = False
|
||||||
Dim GUID As String = ""
|
Dim GUID As String = ""
|
||||||
Dim passSupervisor As String = "13X#X$X46" ' Valor predeterminado DIFERENTE a ""
|
Dim passSupervisor As String = "135###" ' Valor predeterminado DIFERENTE a ""
|
||||||
Dim semana As Int = 0
|
Dim semana As Int = 0
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@@ -189,17 +189,20 @@ Sub ENVIA_ULTIMA_GPS
|
|||||||
If i = "SALTY SNACKS" Then salty = x
|
If i = "SALTY SNACKS" Then salty = x
|
||||||
Next
|
Next
|
||||||
h.Close
|
h.Close
|
||||||
Dim cmd As DBCommand
|
|
||||||
cmd.Initialize
|
If Subs.EstaEnHorarioPermitido Then
|
||||||
cmd.Name = "UPDATE_KELL_ACTUAL3_GPS"
|
Dim cmd As DBCommand
|
||||||
cmd.Parameters = Array As Object(montoActual, clientesVisitaHoy, clientesVenta, clientesVisitados, lat_gps, lon_gps, batt, 0, 0, 0, Application.VersionName, rtec, ping, salty, Subs.dameClientesFueraDeFrecuencia, almacen, rutaPreventa)
|
cmd.Initialize
|
||||||
' If Logger Then LogColor(montoActual&","&clientesVisitaHoy&","&clientesVenta&","&clientesVisitados&","&lat_gps&","&lon_gps&","&batt&","&0&","&0&","&0&","&Application.VersionName&","&rtec&","&ping&","&salty&","& Subs.dameClientesFueraDeFrecuencia&","&almacen&","&rutaPreventa, Colors.Magenta)
|
cmd.Name = "UPDATE_KELL_ACTUAL3_GPS"
|
||||||
reqManager.ExecuteCommand(cmd,"updateKell_UTR")
|
cmd.Parameters = Array As Object(montoActual, clientesVisitaHoy, clientesVenta, clientesVisitados, lat_gps, lon_gps, batt, 0, 0, 0, Application.VersionName, rtec, ping, salty, Subs.dameClientesFueraDeFrecuencia, almacen, rutaPreventa)
|
||||||
|
' If Logger Then LogColor(montoActual&","&clientesVisitaHoy&","&clientesVenta&","&clientesVisitados&","&lat_gps&","&lon_gps&","&batt&","&0&","&0&","&0&","&Application.VersionName&","&rtec&","&ping&","&salty&","& Subs.dameClientesFueraDeFrecuencia&","&almacen&","&rutaPreventa, Colors.Magenta)
|
||||||
cmd.Name = "select_hora"
|
reqManager.ExecuteCommand(cmd,"updateKell_UTR")
|
||||||
reqManager.ExecuteQuery(cmd , 0, "hora")
|
|
||||||
|
cmd.Name = "select_hora"
|
||||||
|
reqManager.ExecuteQuery(cmd , 0, "hora")
|
||||||
' log(subs.revisaHora)
|
' log(subs.revisaHora)
|
||||||
|
End If
|
||||||
|
|
||||||
' If Logger Then Log(reqManager)
|
' If Logger Then Log(reqManager)
|
||||||
' If Logger Then Log("++ ++ ++ Envia_Ultima GPS - Inst_visitas - server: "& server)
|
' If Logger Then Log("++ ++ ++ Envia_Ultima GPS - Inst_visitas - server: "& server)
|
||||||
skmt.ExecNonQuery2("Update cat_variables set CAT_VA_VALOR = ? WHERE CAT_VA_DESCRIPCION = ?" , Array As String(DateTime.Time(DateTime.Now),"HoraIngreso"))
|
skmt.ExecNonQuery2("Update cat_variables set CAT_VA_VALOR = ? WHERE CAT_VA_DESCRIPCION = ?" , Array As String(DateTime.Time(DateTime.Now),"HoraIngreso"))
|
||||||
|
|||||||
267
B4A/Subs.bas
267
B4A/Subs.bas
@@ -863,6 +863,7 @@ Sub traeNombreCliente(id As String) As String
|
|||||||
Do While c.NextRow
|
Do While c.NextRow
|
||||||
n = c.GetString("CAT_CL_NOMBRE")
|
n = c.GetString("CAT_CL_NOMBRE")
|
||||||
Loop
|
Loop
|
||||||
|
c.Close
|
||||||
Return n
|
Return n
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@@ -906,7 +907,7 @@ Sub guardaProducto(cedis As String, costoTot As String, costoU As String, cant A
|
|||||||
LogColor("guardaProducto", Colors.Magenta)
|
LogColor("guardaProducto", Colors.Magenta)
|
||||||
Log($"Guardamos producto ${prodId}"$)
|
Log($"Guardamos producto ${prodId}"$)
|
||||||
LogColor("TIPO VENTA="&tipoV, Colors.Magenta)
|
LogColor("TIPO VENTA="&tipoV, Colors.Magenta)
|
||||||
Starter.skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS, PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_FECHA, PE_USUARIO, PE_TIPO, PE_PRECIO2, PE_RUTA) VALUES(?,?,?,?,?,?,?,?,?,?,?,?) ", Array As Object (cedis, costoTot, costoU, cant, nombre, prodId, clienteId, fecha, usuario, tipoV, precio2, Starter.rutaV))
|
Starter.skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS, PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_FECHA, PE_USUARIO, PE_TIPO, PE_PRECIO2, PE_RUTA, PE_ENVIADO) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,0) ", Array As Object (cedis, costoTot, costoU, cant, nombre, prodId, clienteId, fecha, usuario, tipoV, precio2, Starter.rutaV))
|
||||||
Starter.skmt.ExecNonQuery2("update " & query & " set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? ", Array As Object(cant, prodId))
|
Starter.skmt.ExecNonQuery2("update " & query & " set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? ", Array As Object(cant, prodId))
|
||||||
ToastMessageShow("guardaProd", False)
|
ToastMessageShow("guardaProd", False)
|
||||||
End Sub
|
End Sub
|
||||||
@@ -915,22 +916,26 @@ End Sub
|
|||||||
'NO ACTUALIZA LA BANDERA DE GESTION EN LA TABLA "kmt_info".
|
'NO ACTUALIZA LA BANDERA DE GESTION EN LA TABLA "kmt_info".
|
||||||
'Si "gestion=2" entonces el sistema considera que el pedido ya se guardó y ya no se debe modificar.
|
'Si "gestion=2" entonces el sistema considera que el pedido ya se guardó y ya no se debe modificar.
|
||||||
Sub guardaProductoSinGestion(cedis As String, costoU As String, cant As String, nombre As String, prodId As String, clienteId As String, fecha As String, usuario As String, rutaV As String, precioSin As String, tipoVenta As String)
|
Sub guardaProductoSinGestion(cedis As String, costoU As String, cant As String, nombre As String, prodId As String, clienteId As String, fecha As String, usuario As String, rutaV As String, precioSin As String, tipoVenta As String)
|
||||||
|
Log($"Guarda producto ${nombre}, cant: ${cant}, cedis: ${cedis}"$)
|
||||||
If nombre.Length < 6 Then ToastMessageShow("(guardaProductoSinGestion) El nombre del producto no es valido " & nombre, True)
|
If nombre.Length < 6 Then ToastMessageShow("(guardaProductoSinGestion) El nombre del producto no es valido " & nombre, True)
|
||||||
precioSin = NumberFormat2(precioSin, 1, 2, 2, False)
|
precioSin = NumberFormat2(precioSin, 1, 2, 2, False)
|
||||||
costoU = NumberFormat2(costoU, 1, 2, 2, False)
|
costoU = NumberFormat2(costoU, 1, 2, 2, False)
|
||||||
' LogColor("guardaProductoSinGestion: "&prodId&", cant="&cant&", tipo="&tipoVenta, Colors.Magenta)
|
LogColor("guardaProductoSinGestion: "&prodId&", cant="&cant&", tipo="&tipoVenta, Colors.Magenta)
|
||||||
Private c As Cursor
|
Private c As Cursor
|
||||||
' Private tablaProds As String = "cat_gunaprod2"
|
' Private tablaProds As String = "cat_gunaprod2"
|
||||||
' If tipoVenta = "ABORDO" Then tablaProds = "cat_gunaprod"
|
' If tipoVenta = "ABORDO" Then tablaProds = "cat_gunaprod"
|
||||||
Starter.skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS, PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_FECHA, PE_USUARIO, PE_RUTA, PE_COSTO_SIN, PE_TIPO) VALUES(?,?,?,?,?,?,?,?,?,?,?,?) ", Array As Object (cedis, (cant * costoU), costoU, cant, nombre, prodId, clienteId, fecha, usuario, rutaV, precioSin, tipoVenta))
|
Starter.skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS, PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_FECHA, PE_USUARIO, PE_RUTA, PE_COSTO_SIN, PE_TIPO, PE_ENVIADO) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,0) ", Array As Object (cedis, (cant * costoU), costoU, cant, nombre, prodId, clienteId, fecha, usuario, rutaV, precioSin, tipoVenta))
|
||||||
'Actualizamos el inventario en cat_gunaprod solo si no es RMI
|
'Actualizamos el inventario en cat_gunaprod solo si no es RMI
|
||||||
If cedis <> "DUR" Then Starter.skmt.ExecNonQuery2($"update ${traeTablaProds(tipoVenta)} set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? "$, Array As Object(cant, prodId))
|
If cedis <> "DUR" Then
|
||||||
|
Starter.skmt.ExecNonQuery2($"update ${traeTablaProds(tipoVenta)} set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? "$, Array As Object(cant, prodId))
|
||||||
|
Log($"update ${traeTablaProds(tipoVenta)} set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? -- ${cant}, ${prodId}"$)
|
||||||
|
End If
|
||||||
c=Starter.skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, SUM(PE_COSTO_SIN) AS TOTAL_CLIE_SIN FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
|
c=Starter.skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, SUM(PE_COSTO_SIN) AS TOTAL_CLIE_SIN FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
|
||||||
c.Position=0
|
c.Position=0
|
||||||
' Log("###### delete from pedido_cliente - " & traeCliente & "|" & clienteId)
|
' Log("###### delete from pedido_cliente - " & traeCliente & "|" & clienteId)
|
||||||
' Log($"delete from pedido_cliente where PC_CLIENTE = '${traeCliente}'"$)
|
' Log($"delete from pedido_cliente where PC_CLIENTE = '${traeCliente}'"$)
|
||||||
Starter.skmt.ExecNonQuery($"delete from pedido_cliente where PC_CLIENTE = '${traeCliente}'"$)
|
Starter.skmt.ExecNonQuery($"delete from pedido_cliente where PC_CLIENTE = '${traeCliente}'"$)
|
||||||
Starter.skmt.ExecNonQuery2("insert into pedido_cliente(PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT,PC_ALMACEN,PC_RUTA,PC_COSTO_SIN) VALUES (?,?,?,?,?,?,?,?,?,?)", Array As Object(clienteId, fecha, usuario, c.GetString("CANT_CLIE"), c.GetString("TOTAL_CLIE"), B4XPages.MainPage.lon_gps, B4XPages.MainPage.lat_gps, cedis, rutaV, c.GetString("TOTAL_CLIE_SIN")))
|
Starter.skmt.ExecNonQuery2("insert into pedido_cliente(PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT,PC_ALMACEN,PC_RUTA,PC_COSTO_SIN,PC_ENVIADO) VALUES (?,?,?,?,?,?,?,?,?,?,0)", Array As Object(clienteId, fecha, usuario, c.GetString("CANT_CLIE"), c.GetString("TOTAL_CLIE"), B4XPages.MainPage.lon_gps, B4XPages.MainPage.lat_gps, cedis, rutaV, c.GetString("TOTAL_CLIE_SIN")))
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub guardaProductoSin(cedis As String, costoTot As String, costoU As String, cant As String, nombre As String, prodId As String, clienteId As String, fecha As String, usuario As String, rutaV As String, precioSin As String, tipoV As String, precio2 As String, query As String) 'ignore
|
Sub guardaProductoSin(cedis As String, costoTot As String, costoU As String, cant As String, nombre As String, prodId As String, clienteId As String, fecha As String, usuario As String, rutaV As String, precioSin As String, tipoV As String, precio2 As String, query As String) 'ignore
|
||||||
@@ -940,7 +945,7 @@ Sub guardaProductoSin(cedis As String, costoTot As String, costoU As String, can
|
|||||||
costoU = NumberFormat2(costoU, 1, 2, 2, False)
|
costoU = NumberFormat2(costoU, 1, 2, 2, False)
|
||||||
costoTot = NumberFormat2(costoTot, 1, 2, 2, False)
|
costoTot = NumberFormat2(costoTot, 1, 2, 2, False)
|
||||||
LogColor("guardaProductoSin", Colors.Magenta)
|
LogColor("guardaProductoSin", Colors.Magenta)
|
||||||
Starter.skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS, PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_FECHA, PE_USUARIO, PE_RUTA, PE_COSTO_SIN, PE_TIPO, PE_PRECIO2) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?) ", Array As Object (cedis, costoTot, costoU, cant, nombre, prodId, clienteId, fecha, usuario, rutaV, precioSin, tipoV, precio2))
|
Starter.skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS, PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_FECHA, PE_USUARIO, PE_RUTA, PE_COSTO_SIN, PE_TIPO, PE_PRECIO2, PE_ENVIADO) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,0) ", Array As Object (cedis, costoTot, costoU, cant, nombre, prodId, clienteId, fecha, usuario, rutaV, precioSin, tipoV, precio2))
|
||||||
Starter.skmt.ExecNonQuery2("update " & query & " set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? ", Array As Object(cant, prodId))
|
Starter.skmt.ExecNonQuery2("update " & query & " set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? ", Array As Object(cant, prodId))
|
||||||
DateTime.DateFormat = "MM/dd/yyyy"
|
DateTime.DateFormat = "MM/dd/yyyy"
|
||||||
Private sDate As String =DateTime.Date(DateTime.Now)
|
Private sDate As String =DateTime.Date(DateTime.Now)
|
||||||
@@ -949,7 +954,7 @@ Sub guardaProductoSin(cedis As String, costoTot As String, costoU As String, can
|
|||||||
c.Position=0
|
c.Position=0
|
||||||
Log("###### delete from pedido_cliente - " & traeCliente & "|" & clienteId)
|
Log("###### delete from pedido_cliente - " & traeCliente & "|" & clienteId)
|
||||||
Starter.skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)")
|
Starter.skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)")
|
||||||
Starter.skmt.ExecNonQuery2("insert into pedido_cliente(PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT,PC_ALMACEN,PC_RUTA,PC_COSTO_SIN) VALUES (?,?,?,?,?,?,?,?,?,?)", Array As Object(clienteId, sDate & sTime, usuario, c.GetString("CANT_CLIE"),c.GetString("TOTAL_CLIE"), Starter.lon_gps, Starter.lat_gps, cedis, rutaV, c.GetString("TOTAL_CLIE_SIN")))
|
Starter.skmt.ExecNonQuery2("insert into pedido_cliente(PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT,PC_ALMACEN,PC_RUTA,PC_COSTO_SIN,PC_ENVIADO) VALUES (?,?,?,?,?,?,?,?,?,?,0)", Array As Object(clienteId, sDate & sTime, usuario, c.GetString("CANT_CLIE"),c.GetString("TOTAL_CLIE"), Starter.lon_gps, Starter.lat_gps, cedis, rutaV, c.GetString("TOTAL_CLIE_SIN")))
|
||||||
Starter.skmt.ExecNonQuery("UPDATE kmt_info set gestion = 2 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
|
Starter.skmt.ExecNonQuery("UPDATE kmt_info set gestion = 2 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
|
||||||
c.Close
|
c.Close
|
||||||
' ToastMessageShow("guardaProdSin", False)
|
' ToastMessageShow("guardaProdSin", False)
|
||||||
@@ -1004,10 +1009,10 @@ End Sub
|
|||||||
' 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
|
||||||
Private thisLog As Boolean = False
|
Private thisLog As Boolean = false
|
||||||
If thisLog Then Log("traePromo:"&promo)
|
If thisLog Then Log("traePromo:"&promo)
|
||||||
Private inicioContador As String = DateTime.Now
|
Private inicioContador As String = DateTime.Now
|
||||||
Private c As Cursor = Starter.skmt.ExecQuery("Select * from promos_comp where cat_pa_id = '"& promo&"'") 'Obtenemos las el maximo de promocioones a otorgar.
|
Private c As Cursor = Starter.skmt.ExecQuery("Select * from promos_comp where cat_pa_id = '"& promo&"'") 'Obtenemos el maximo de promociones 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, prodsVariablesPrecios As List
|
Private prodsFijos, prodsFijosPrecios, prodsFijosPiezas, prodsVariables, prodsVariablesPrecios As List
|
||||||
@@ -1019,32 +1024,38 @@ Sub traePromo(promo As String, cliente As String) As Map
|
|||||||
prodsVariablesPrecios.Initialize
|
prodsVariablesPrecios.Initialize
|
||||||
c.Position = 0
|
c.Position = 0
|
||||||
promoMap = CreateMap("id":promo, "maxXcliente":0, "maxRecurrente":0, "maxPromos":0) 'Ponemos el DEFAULT en CERO.
|
promoMap = CreateMap("id":promo, "maxXcliente":0, "maxRecurrente":0, "maxPromos":0) 'Ponemos el DEFAULT en CERO.
|
||||||
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"))
|
||||||
|
End If
|
||||||
'######### PROMOCIONES SEGMENTADAS ##########
|
'######### PROMOCIONES SEGMENTADAS ##########
|
||||||
' Si la promo esta en la lista, SOLO los clientes que la tengan la pueden ver.
|
' Si la promo esta en la lista, SOLO los clientes que la tengan la pueden ver.
|
||||||
Private ps As Cursor = Starter.skmt.ExecQuery($"select * from HIST_CLIENTE_CANT_PROMOS where HCCP_PROMO = '${promo}' and HCCP_CLIENTE = '${cliente}'"$)
|
Private ps As Cursor = Starter.skmt.ExecQuery($"select * from HIST_CLIENTE_CANT_PROMOS where HCCP_PROMO = '${promo}'"$) ' and HCCP_CLIENTE = '${cliente}'
|
||||||
' Log($"select * from HIST_CLIENTE_CANT_PROMOS where HCCP_PROMO = '${promo}'"$)
|
' Log($"select * from HIST_CLIENTE_CANT_PROMOS where HCCP_PROMO = '${promo}'"$)
|
||||||
If thisLog Then Log($"PROMOS SEGMENTADAS DISPONIBLES: ${ps.RowCount}"$)
|
If thisLog Then Log($"PROMOS SEGMENTADAS ENCONTRADAS: ${ps.RowCount}"$)
|
||||||
|
If thisLog Then Log(promoMap)
|
||||||
If ps.RowCount > 0 Then
|
If ps.RowCount > 0 Then
|
||||||
ps.Position = 0
|
ps.Position = 0
|
||||||
promoMap = CreateMap("id":promo, "maxXcliente":0, "maxRecurrente":0, "maxPromos":0) 'Si es segmentada la ponemos en cero, porque SOLO le debe de aparecer a ciertos clientes.
|
promoMap = CreateMap("id":promo, "maxXcliente":0, "maxRecurrente":0, "maxPromos":0) 'Si es segmentada la ponemos en cero, porque SOLO le debe de aparecer a ciertos clientes.
|
||||||
If thisLog Then Log($">>> PROMO "${promo}" SEGMENTADA PARA EL CLIENTE ${ps.GetString("HCCP_CLIENTE")}"$)
|
If thisLog Then Log($">>> PROMO "${promo}" SEGMENTADA PARA EL CLIENTE ${ps.GetString("HCCP_CLIENTE")}"$)
|
||||||
' Select hccp_cliente As valido from HIST_CLIENTE_CANT_PROMOS where HCCP_PROMO = '${promo}' and HCCP_CLIENTE = '${traecliente}'
|
' Select hccp_cliente As valido from HIST_CLIENTE_CANT_PROMOS where HCCP_PROMO = '${promo}' and HCCP_CLIENTE = '${traecliente}'
|
||||||
Private ps2 As Cursor = Starter.skmt.ExecQuery($"Select * from HIST_CLIENTE_CANT_PROMOS where HCCP_PROMO = '${promo}' and HCCP_CLIENTE = '${traeCliente}' and HCCP_CANT > HCCP_CANT_VENDIDA"$)
|
Private ps2 As Cursor = Starter.skmt.ExecQuery($"Select * from HIST_CLIENTE_CANT_PROMOS where HCCP_PROMO = '${promo}' and HCCP_CLIENTE = '${traeCliente}' and HCCP_CANT > HCCP_CANT_VENDIDA"$)
|
||||||
' Log($"Select * from HIST_CLIENTE_CANT_PROMOS where HCCP_PROMO = '${promo}' and HCCP_CLIENTE = '${traeCliente}' and HCCP_CANT > HCCP_CANT_VENDIDA"$)
|
Log($"Select * from HIST_CLIENTE_CANT_PROMOS where HCCP_PROMO = '${promo}' and HCCP_CLIENTE = '${traeCliente}' and HCCP_CANT > HCCP_CANT_VENDIDA"$)
|
||||||
' Log($"registros:${ps2.RowCount}"$)
|
Log($"registros:${ps2.RowCount}"$)
|
||||||
If ps2.RowCount > 0 Then
|
If ps2.RowCount > 0 Then
|
||||||
ps2.Position = 0
|
ps2.Position = 0
|
||||||
If thisLog Then Log($"registros:${ps2.RowCount}, cliente: ${ps2.GetString("HCCP_CLIENTE")} cant:${ps2.GetString("HCCP_CANT")}"$)
|
If thisLog Then Log($"registros:${ps2.RowCount}, cliente: ${ps2.GetString("HCCP_CLIENTE")} cant:${ps2.GetString("HCCP_CANT")}"$)
|
||||||
promoMap = CreateMap("id":promo, "maxXcliente":(ps2.GetString("HCCP_CANT")-ps2.GetString("HCCP_CANT_VENDIDA")), "maxRecurrente":ps2.GetString("HCCP_CANT"), "maxPromos":ps2.GetString("HCCP_CANT")) 'Si es segmentada SOLO le aparece a ciertos clientes.
|
promoMap = CreateMap("id":promo, "maxXcliente":(ps2.GetString("HCCP_CANT")-ps2.GetString("HCCP_CANT_VENDIDA")), "maxRecurrente":ps2.GetString("HCCP_CANT"), "maxPromos":ps2.GetString("HCCP_CANT")) 'Si es segmentada SOLO le aparece a ciertos clientes.
|
||||||
End If
|
End If
|
||||||
|
ps2.Close
|
||||||
End If
|
End If
|
||||||
|
ps.Close
|
||||||
If thisLog Then Log(promoMap)
|
If thisLog Then Log(promoMap)
|
||||||
' ########## TERMINA PROMOS SEGMENTADAS ##########
|
' ########## TERMINA PROMOS SEGMENTADAS ##########
|
||||||
c = Starter.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 = Starter.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.Close
|
||||||
c = Starter.skmt.ExecQuery("Select * from CAT_DETALLES_PAQ where CAT_DP_ID = '"& promo & "'") 'Obtenemos los detalles de la promoción.
|
c = Starter.skmt.ExecQuery("Select * from CAT_DETALLES_PAQ where CAT_DP_ID = '"& promo & "'") 'Obtenemos los detalles de la promoción.
|
||||||
c.Position = 0
|
c.Position = 0
|
||||||
If c.RowCount > 0 Then
|
If c.RowCount > 0 Then
|
||||||
@@ -1083,6 +1094,7 @@ Sub traePromo(promo As String, cliente As String) As Map
|
|||||||
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.Close
|
||||||
c = Starter.skmt.ExecQuery("Select CAT_GP_STS, CAT_GP_NOMBRE from CAT_GUNAPROD2 where CAT_GP_ID = '"& promo & "'") 'Obtenemos las piezas requeridas de productos variables para la promoción.
|
c = Starter.skmt.ExecQuery("Select CAT_GP_STS, CAT_GP_NOMBRE from CAT_GUNAPROD2 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
|
||||||
@@ -1096,12 +1108,13 @@ Sub traePromo(promo As String, cliente As String) As Map
|
|||||||
If thisLog Then Log($"Inv variables: ${cuantosVariablesDisponiblesDB(promo)}"$)
|
If thisLog Then Log($"Inv variables: ${cuantosVariablesDisponiblesDB(promo)}"$)
|
||||||
If thisLog Then Log($"Inv dispo: ${traemosInventarioDisponibleParaPromo(promo)}"$)
|
If thisLog Then Log($"Inv dispo: ${traemosInventarioDisponibleParaPromo(promo)}"$)
|
||||||
If thisLog Then LogColor($"Promo ${promo}: ${promoMap}"$, Colors.Blue)
|
If thisLog Then LogColor($"Promo ${promo}: ${promoMap}"$, Colors.Blue)
|
||||||
If thisLog Then LogColor("TIEMPO para traePromo -=" & promo & "=- : " & ((DateTime.Now-inicioContador)/1000), Colors.Red)
|
' If thisLog Then 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
|
||||||
|
Private thisLog As Boolean = False
|
||||||
Private c As Cursor
|
Private c As Cursor
|
||||||
c = Starter.skmt.ExecQuery2("SELECT CAT_GP_ID, CAT_GP_ALMACEN FROM CAT_GUNAPROD2 WHERE CAT_GP_ID IN (select CAT_DP_IDPROD FROM CAT_DETALLES_PAQ WHERE CAT_DP_ID = ?)", Array As String(promo))
|
c = Starter.skmt.ExecQuery2("SELECT CAT_GP_ID, CAT_GP_ALMACEN FROM CAT_GUNAPROD2 WHERE CAT_GP_ID IN (select CAT_DP_IDPROD FROM CAT_DETALLES_PAQ WHERE CAT_DP_ID = ?)", Array As String(promo))
|
||||||
' Private prodInv As Map
|
' Private prodInv As Map
|
||||||
@@ -1113,9 +1126,15 @@ Sub traemosInventarioDisponibleParaPromo(promo As String) As Map 'ignore
|
|||||||
c.Position=i
|
c.Position=i
|
||||||
prods.Put(c.GetString("CAT_GP_ID"), c.GetString("CAT_GP_ALMACEN"))
|
prods.Put(c.GetString("CAT_GP_ID"), c.GetString("CAT_GP_ALMACEN"))
|
||||||
' Log($"prod:${c.GetString("CAT_GP_ID")}, inventario:${c.GetString("CAT_GP_ALMACEN")}"$)
|
' Log($"prod:${c.GetString("CAT_GP_ID")}, inventario:${c.GetString("CAT_GP_ALMACEN")}"$)
|
||||||
|
If thisLog Then LogColor($"#### prod:${c.GetString("CAT_GP_ID")}, inventario:${c.GetString("CAT_GP_ALMACEN")}, inv2: ${traeExistenciasPorId(c.GetString("CAT_GP_ID"))}"$, Colors.Magenta)
|
||||||
|
If c.GetString("CAT_GP_ALMACEN") <> traeExistenciasPorId(c.GetString("CAT_GP_ID")) Then
|
||||||
|
If thisLog Then LogColor("#### ERROR DE INVENTARIO ####" , Colors.red)
|
||||||
|
End If
|
||||||
|
|
||||||
Next
|
Next
|
||||||
' prodInv.Put("inventarios", prods)
|
' prodInv.Put("inventarios", prods)
|
||||||
End If
|
End If
|
||||||
|
c.Close
|
||||||
Return prods
|
Return prods
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@@ -1134,7 +1153,7 @@ Sub restaFijosPromo(promoMap As Map) As Map 'ignore
|
|||||||
Private prodsFijos As List = promoMap.get("prodsFijos") 'Obtenemos un a lista con los productos fijos de la promoción.
|
Private prodsFijos As List = promoMap.get("prodsFijos") 'Obtenemos un a lista con los productos fijos de la promoción.
|
||||||
If thisLog Then LogColor("ProdsFijos -> " & prodsFijos, Colors.red)
|
If thisLog Then LogColor("ProdsFijos -> " & prodsFijos, Colors.red)
|
||||||
inventariosDisponiblesParaEstaPromo.Put("resultado", "No hay suficiente producto para la promocion.") 'Valor por default
|
inventariosDisponiblesParaEstaPromo.Put("resultado", "No hay suficiente producto para la promocion.") 'Valor por default
|
||||||
Log($"Prods fijos requeridos ${prodsFijos.Size}"$)
|
If thisLog Then Log($"Prods fijos requeridos ${prodsFijos.Size}"$)
|
||||||
If prodsFijos.Size = 0 Then inventariosDisponiblesParaEstaPromo.Put("resultado", "ok") 'Si no lleva prods fijos la promo, entonces ponemos FIJOS OK.
|
If prodsFijos.Size = 0 Then inventariosDisponiblesParaEstaPromo.Put("resultado", "ok") 'Si no lleva prods fijos la promo, entonces ponemos FIJOS OK.
|
||||||
For p = 0 To prodsFijos.Size - 1
|
For p = 0 To prodsFijos.Size - 1
|
||||||
Private t As String = prodsFijos.Get(p) 'Obtenemos el Id de este producto desde la lista de productos fijos.
|
Private t As String = prodsFijos.Get(p) 'Obtenemos el Id de este producto desde la lista de productos fijos.
|
||||||
@@ -1164,7 +1183,7 @@ 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 = True '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.
|
||||||
@@ -1211,14 +1230,15 @@ Sub traeMaxPromos(pm As Map) As Int
|
|||||||
maxPromos.Add(hccp.GetInt("HCCP_CANT"))
|
maxPromos.Add(hccp.GetInt("HCCP_CANT"))
|
||||||
End If
|
End If
|
||||||
maxPromos.Sort(True)
|
maxPromos.Sort(True)
|
||||||
If thisLog Then Log($">>>>> Max promos : ${maxPromos}"$)
|
If thisLog Then Log($" >>>>> MAX PROMOS X CONF : ${maxPromos} <==> ${maxPromos.Get(0)}"$)
|
||||||
mp = 0
|
mp = 0
|
||||||
If maxPromos.Size > 0 Then
|
If maxPromos.Size > 0 Then
|
||||||
mp0 = maxPromos.Get(0)
|
mp0 = maxPromos.Get(0)
|
||||||
' Log(mp0)
|
' Log(mp0)
|
||||||
mp = mp0 - traePromosVendidas(pm.Get("id"), traeCliente)
|
mp = mp0 - traePromosVendidas(pm.Get("id"), traeCliente)
|
||||||
If thisLog Then Log($"Max Promos (${mp0}) - promos vendidas (${(traePromosVendidas(pm.Get("id"), traeCliente)).As(Int)}) = ${mp}"$)
|
If thisLog Then Log($" >>>>> MAX PROMOS - PROMOS VENDIDAS <==> ${mp0} - ${(traePromosVendidas(pm.Get("id"), traeCliente)).As(Int)} = ${mp}"$)
|
||||||
End If
|
End If
|
||||||
|
hccp.Close
|
||||||
Return mp 'Regresamos el numero mas pequeño de las opciones.
|
Return mp 'Regresamos el numero mas pequeño de las opciones.
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@@ -1231,16 +1251,17 @@ Sub traePromosVendidas(promo As String, cliente As String) As Int
|
|||||||
c.Position = 0
|
c.Position = 0
|
||||||
If c.GetString("cuantas") <> Null Then pv = c.GetString("cuantas")
|
If c.GetString("cuantas") <> Null Then pv = c.GetString("cuantas")
|
||||||
End If
|
End If
|
||||||
|
c.Close
|
||||||
Return pv
|
Return pv
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub procesaPromocion(idPromo As String, cliente As String) As Map 'ignore
|
Sub procesaPromocion(idPromo As String, cliente As String) As Map 'ignore
|
||||||
Private thisLog As Boolean = True 'Si es verdadero, muestra los logs de este sub.
|
Private thisLog As Boolean = True 'Si es verdadero, muestra los logs de este sub.
|
||||||
Private inicioContador As String = DateTime.Now
|
Private inicioContador As String = DateTime.Now
|
||||||
Private mp As Int = 0
|
Private mp As Int = 0
|
||||||
If thisLog Then LogColor($"****************************************************************"$, Colors.red)
|
If thisLog Then LogColor($"****************************************************************"$, Colors.RGB(142,0,255))
|
||||||
If thisLog Then LogColor($"********* Iniciamos revision de Promo ${idPromo} *********"$, Colors.red)
|
If thisLog Then LogColor($"********* Iniciamos revision de Promo ${idPromo} *********"$, Colors.RGB(142,0,255))
|
||||||
If thisLog Then LogColor($"****************************************************************"$, Colors.red)
|
If thisLog Then LogColor($"****************************************************************"$, Colors.RGB(142,0,255))
|
||||||
Try
|
Try
|
||||||
'Obtenemos el mapa con toda la info de la promoción.
|
'Obtenemos el mapa con toda la info de la promoción.
|
||||||
Private pm As Map = traePromo(idPromo, cliente)
|
Private pm As Map = traePromo(idPromo, cliente)
|
||||||
@@ -1250,7 +1271,9 @@ Sub procesaPromocion(idPromo As String, cliente As String) As Map 'ignore
|
|||||||
' Log("|"&revisaMaxPromosProdsFijosPorInventario(pm)&"|")
|
' Log("|"&revisaMaxPromosProdsFijosPorInventario(pm)&"|")
|
||||||
Private maxPromosXprodsFijos As Int = revisaMaxPromosProdsFijosPorInventario(pm)
|
Private maxPromosXprodsFijos As Int = revisaMaxPromosProdsFijosPorInventario(pm)
|
||||||
If maxPromosXprodsFijos < 1 Then pm.Put("resultado", 0)
|
If maxPromosXprodsFijos < 1 Then pm.Put("resultado", 0)
|
||||||
LogColor($">>> Promos disponibles por productos fijos = ${maxPromosXprodsFijos}"$, Colors.Magenta)
|
If thisLog Then LogColor($"***********************************************************************"$, Colors.Blue)
|
||||||
|
LogColor($"*** PROMOS DISPONIBLES X PRODS FIJOS (${idPromo}) = ${maxPromosXprodsFijos} ***"$, Colors.Blue)
|
||||||
|
If thisLog Then LogColor($"***********************************************************************"$, Colors.Blue)
|
||||||
If pm.Get("resultado") = "ok" Then 'Si encontramos la promoción, entonces ...
|
If pm.Get("resultado") = "ok" Then 'Si encontramos la promoción, entonces ...
|
||||||
'Buscamos el máximo de promociones permitidas.
|
'Buscamos el máximo de promociones permitidas.
|
||||||
mp = traeMaxPromos(pm)
|
mp = traeMaxPromos(pm)
|
||||||
@@ -1266,7 +1289,9 @@ Sub procesaPromocion(idPromo As String, cliente As String) As Map 'ignore
|
|||||||
If inventarioSinFijos.Get("resultado") = "ok" Then
|
If inventarioSinFijos.Get("resultado") = "ok" Then
|
||||||
'Revisamos que los productos variables requeridos sean menos que el inventario total (mapa).
|
'Revisamos que los productos variables requeridos sean menos que el inventario total (mapa).
|
||||||
Private pv As Boolean = alcanzanLosVariablesParaPromo(pm, inventarioSinFijos)
|
Private pv As Boolean = alcanzanLosVariablesParaPromo(pm, inventarioSinFijos)
|
||||||
If thisLog Then Log("Alcanzan los variables? --> " & pv)
|
If thisLog Then LogColor($"****************************************************"$, Colors.Blue)
|
||||||
|
If thisLog Then LogColor($"***** ¿ALCANZAN LOS VARIABLES? ==> ${IIf(pv, "SI", "NO")} *****"$, Colors.Blue)
|
||||||
|
If thisLog Then LogColor($"****************************************************"$, Colors.Blue)
|
||||||
If pv Then Return CreateMap("status":"ok", "mp":pm) Else Return CreateMap("status":"ko", "mp":pm)
|
If pv Then Return CreateMap("status":"ok", "mp":pm) Else Return CreateMap("status":"ko", "mp":pm)
|
||||||
Else
|
Else
|
||||||
If thisLog Then LogColor("NO HAY INVENTARIO SUFICIENTE " & idPromo, Colors.red)
|
If thisLog Then LogColor("NO HAY INVENTARIO SUFICIENTE " & idPromo, Colors.red)
|
||||||
@@ -1283,6 +1308,8 @@ Sub procesaPromocion(idPromo As String, cliente As String) As Map 'ignore
|
|||||||
Log($"Promo ${idPromo} mal configurada"$)
|
Log($"Promo ${idPromo} mal configurada"$)
|
||||||
ToastMessageShow($"Promo ${idPromo} mal configurada"$, True)
|
ToastMessageShow($"Promo ${idPromo} mal configurada"$, True)
|
||||||
Log(LastException)
|
Log(LastException)
|
||||||
|
' Agregamos esta línea para evitar el NullPointerException
|
||||||
|
Return CreateMap("status":"ko", "mp":Null)
|
||||||
End Try
|
End Try
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@@ -1331,35 +1358,47 @@ End Sub
|
|||||||
|
|
||||||
'Regresa cuantas promos alcanzan con los productos FIJOS que hay en inventario.
|
'Regresa cuantas promos alcanzan con los productos FIJOS que hay en inventario.
|
||||||
Sub revisaMaxPromosProdsFijosPorInventario(pm As Map) As Int
|
Sub revisaMaxPromosProdsFijosPorInventario(pm As Map) As Int
|
||||||
Private thisLog As Boolean = True
|
Private thisLog As Boolean = False
|
||||||
Private invFijoXpromo As Map
|
Private invFijoXpromo As Map
|
||||||
Private t As List
|
Private t As List
|
||||||
t.Initialize
|
t.Initialize
|
||||||
t.Add(traeMaxPromos(pm)) ' Agregamos a la lista las promos maximas permitidas (recurrente, cliente y promo).
|
t.Add(traeMaxPromos(pm)) ' Agregamos a la lista las promos maximas permitidas (recurrente, cliente y promo).
|
||||||
|
If thisLog Then LogColor($"============ INICIA MAX PROMOS X PRODS FIJOS X INV ========"$, Colors.RGB(176,0,0))
|
||||||
|
If thisLog Then LogColor($" ### MAX PROMOS (recurrente, cliente y promo): ${t}"$, Colors.Green)
|
||||||
invFijoXpromo.Initialize
|
invFijoXpromo.Initialize
|
||||||
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 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")
|
||||||
|
Private idProdsFijosPrecios As List = pm.Get("prodsFijosPrecios")
|
||||||
For p = 0 To idProdsFijos.Size -1 'Generamos una lista con las promos disponibles por producto (dividimos el inventario total entre las piezas requeridas).
|
For p = 0 To idProdsFijos.Size -1 'Generamos una lista con las promos disponibles por producto (dividimos el inventario total entre las piezas requeridas).
|
||||||
Private thisInvDisp As Int = 0
|
Private thisInvDisp As Int = 0
|
||||||
If invDispParaPromo.Get(idProdsFijos.Get(p)) <> Null Then thisInvDisp = invDispParaPromo.Get(idProdsFijos.Get(p))
|
If invDispParaPromo.Get(idProdsFijos.Get(p)) <> Null Then thisInvDisp = invDispParaPromo.Get(idProdsFijos.Get(p))
|
||||||
If thisLog Then Log($"id=${idProdsFijos.Get(p)}, inv=${thisInvDisp}, pzasReq=${prodsFijosPiezas.Get(p)}"$)
|
If thisLog Then Log($" id=${idProdsFijos.Get(p)}, inv=${thisInvDisp}, pzasReq=${prodsFijosPiezas.Get(p)}"$)
|
||||||
|
' LogColor($" ====== ${idProdsFijos.Get(p)} - Inv1:${thisInvDisp}, inv2: ${traeExistenciasPorId(idProdsFijos.Get(p))}"$, Colors.Magenta)
|
||||||
|
' If thisInvDisp <> traeExistenciasPorId(idProdsFijos.Get(p)) Then
|
||||||
|
' LogColor(" #### ERROR DE INVENTARIO ####" , Colors.red)
|
||||||
|
' End If
|
||||||
' If thisLog Then Log($"${(thisInvDisp / prodsFijosPiezas.Get(p))}"$)
|
' If thisLog Then Log($"${(thisInvDisp / prodsFijosPiezas.Get(p))}"$)
|
||||||
Private x() As String = Regex.Split("\.", $"${(thisInvDisp / prodsFijosPiezas.Get(p))}"$) 'Separamos el resultado de la division por el punto decimal.
|
Private x() As String = Regex.Split("\.", $"${(thisInvDisp / prodsFijosPiezas.Get(p))}"$) 'Separamos el resultado de la division por el punto decimal.
|
||||||
t.Add(x(0).As(Int)) 'Solo guardamos la parte del entero de la division.
|
t.Add(x(0).As(Int)) 'Solo guardamos la parte del entero de la division. (promos por inventario)
|
||||||
If thisLog Then Log(">> Promos x Prods Fijos: " & x(0))
|
' If thisLog Then LogColor($" ### T: ${t}"$, Colors.Green) 'promos por inventario
|
||||||
Log(">>>>> Monto Bonificacion: " & B4XPages.MainPage.promos.ts.traeMontoBonificacion(idProdsFijos.Get(p), pm.Get("id")))
|
If thisLog Then LogColor($" >>>>> PROMOS X PRODS FIJOS (${idProdsFijos.Get(p)}): ${x(0)} <<<<<"$, Colors.red)
|
||||||
If thisLog Then LogColor(">> Max prods fijos x Bonificaciones: " & B4XPages.MainPage.promos.ts.traeBonificacionesMaximas("bonificaciones", clienteActual, idProdsFijos.Get(p), prodsFijosPiezas.Get(p), pm.Get("id")), Colors.blue)
|
Log($" >>>>> Monto Bonificacion FIJOS (${idProdsFijos.Get(p)}): "$ & B4XPages.MainPage.promos.ts.traeMontoBonificacion(idProdsFijos.Get(p), idProdsFijosPrecios.Get(p), pm.Get("id")))
|
||||||
t.Add(B4XPages.MainPage.promos.ts.traeBonificacionesMaximas("bonificaciones", clienteActual, idProdsFijos.Get(p), prodsFijosPiezas.Get(p), pm.Get("id")))
|
If thisLog Then LogColor(" >> MAX PRODS FIJOS X BONIFICACIONES: " & B4XPages.MainPage.promos.ts.traeBonificacionesMaximas("bonificaciones", clienteActual, idProdsFijos.Get(p), prodsFijosPiezas.Get(p), idProdsFijosPrecios.Get(p), pm.Get("id")), Colors.blue)
|
||||||
|
t.Add(B4XPages.MainPage.promos.ts.traeBonificacionesMaximas("bonificaciones", clienteActual, idProdsFijos.Get(p), prodsFijosPiezas.Get(p), idProdsFijosPrecios.Get(p), pm.Get("id"))) 'Agregamos las promos disponibles por Trade Spending
|
||||||
|
If thisLog Then LogColor($" ### PROMOS X INV: ${t}"$, Colors.Green) 'promos por inventario
|
||||||
Next
|
Next
|
||||||
t.Sort(True) 'Ordenamos la lista para que en el lugar 0 este el resultao mas pequeño.
|
t.Sort(True) 'Ordenamos la lista para que en el lugar 0 este el resultao mas pequeño.
|
||||||
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($"invFijoXpromo=${invFijoXpromo}"$, Colors.Blue)
|
' If thisLog Then LogColor($" invFijoXpromo=${invFijoXpromo}"$, Colors.Blue)
|
||||||
' LogColor(">>>>>> T: " & t, Colors.red)
|
If thisLog Then LogColor(" >>>>>> T: " & t, Colors.Magenta)
|
||||||
If thisLog Then LogColor("Max promos x inv de prodsFijos = " & t.Get(0), Colors.red)
|
LogColor(" ***********************************************************************", Colors.RGB(156,0,0))
|
||||||
|
LogColor($" ****** MAX PROMOS X INV DE PRODS FIJOS (${pm.get("id")}): "$ & t.Get(0) & " ******", Colors.RGB(156,0,0))
|
||||||
|
LogColor(" ***********************************************************************", Colors.RGB(156,0,0))
|
||||||
|
If thisLog Then LogColor($"============ TERMINA MAX PROMOS X PRODS FIJOS X INV ========"$, Colors.RGB(176,0,0))
|
||||||
Return t.Get(0) 'Regresamos el resultado mas pequeño.
|
Return t.Get(0) 'Regresamos el resultado mas pequeño.
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@@ -1381,6 +1420,7 @@ Sub revisaMaxPromosProdsVariablesPorInventario(pm As Map) As Int 'ignore
|
|||||||
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 prodsVariablesPrecios As List = pm.Get("prodsVariablesPrecios")
|
||||||
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")
|
||||||
@@ -1412,7 +1452,7 @@ Sub revisaMaxPromosProdsVariablesPorInventario(pm As Map) As Int 'ignore
|
|||||||
|
|
||||||
' Log(pm.Get("prodsFijos").As(List).Size)
|
' Log(pm.Get("prodsFijos").As(List).Size)
|
||||||
' Log(maxPromosXFijos)
|
' Log(maxPromosXFijos)
|
||||||
|
|
||||||
For x = 1 To maxPromosXFijos
|
For x = 1 To maxPromosXFijos
|
||||||
If thisLog Then Log("==================== maxPromosXFijos "& x &" ========================")
|
If thisLog Then Log("==================== maxPromosXFijos "& x &" ========================")
|
||||||
If thisLog Then Log("=====================================================")
|
If thisLog Then Log("=====================================================")
|
||||||
@@ -1430,12 +1470,12 @@ Sub revisaMaxPromosProdsVariablesPorInventario(pm As Map) As Int 'ignore
|
|||||||
Log($"Este prodVariable: ${idProdsVariables.Get(i)}"$)
|
Log($"Este prodVariable: ${idProdsVariables.Get(i)}"$)
|
||||||
Log($"Este invDisponible: ${invDispParaPromo.Get(idProdsVariables.Get(i))}"$)
|
Log($"Este invDisponible: ${invDispParaPromo.Get(idProdsVariables.Get(i))}"$)
|
||||||
' Log(">> Monto Bonificacion: " & B4XPages.MainPage.promos.ts.traeMontoBonificacion(idProdsVariables.Get(i), pm.Get("id")))
|
' Log(">> Monto Bonificacion: " & B4XPages.MainPage.promos.ts.traeMontoBonificacion(idProdsVariables.Get(i), pm.Get("id")))
|
||||||
prodsVariablesXPresupuestoBonificaciones.Add(B4XPages.MainPage.promos.ts.traeBonificacionesMaximas("bonificaciones", clienteActual, idProdsVariables.Get(i), prodsVariablesRequeridos, pm.Get("id")))
|
prodsVariablesXPresupuestoBonificaciones.Add(B4XPages.MainPage.promos.ts.traeBonificacionesMaximas("bonificaciones", clienteActual, idProdsVariables.Get(i), prodsVariablesRequeridos, prodsVariablesPrecios.Get(i), pm.Get("id")))
|
||||||
' If thisLog Then LogColor(">> Max prods fijos x Bonificaciones: " & B4XPages.MainPage.promos.ts.traeBonificacionesMaximas("bonificaciones", clienteActual, idProdsVariables.Get(i), prodsVariablesRequeridos, pm.Get("id")), Colors.blue)
|
' If thisLog Then LogColor(">> Max prods fijos x Bonificaciones: " & B4XPages.MainPage.promos.ts.traeBonificacionesMaximas("bonificaciones", clienteActual, idProdsVariables.Get(i), prodsVariablesRequeridos, pm.Get("id")), Colors.blue)
|
||||||
totalProdsVariablesDisponibles = totalProdsVariablesDisponibles + invDispParaPromo.Get(idProdsVariables.Get(i))
|
totalProdsVariablesDisponibles = totalProdsVariablesDisponibles + invDispParaPromo.Get(idProdsVariables.Get(i))
|
||||||
End If
|
End If
|
||||||
Next
|
Next
|
||||||
If thisLog Then Log($"prodsVariablesXPresupuestoBonificaciones: ${prodsVariablesXPresupuestoBonificaciones}"$)
|
If thisLog Then Log($"1924: ${prodsVariablesXPresupuestoBonificaciones}"$)
|
||||||
'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)
|
||||||
@@ -1477,6 +1517,7 @@ Sub cuantosVariablesDisponiblesDB(promo As String)
|
|||||||
If c.GetString("CAT_GP_ALMACEN") <> Null Then x = c.GetString("CAT_GP_ALMACEN")
|
If c.GetString("CAT_GP_ALMACEN") <> Null Then x = c.GetString("CAT_GP_ALMACEN")
|
||||||
Next
|
Next
|
||||||
End If
|
End If
|
||||||
|
c.Close
|
||||||
End If
|
End If
|
||||||
Return x
|
Return x
|
||||||
End Sub
|
End Sub
|
||||||
@@ -1539,7 +1580,7 @@ Sub borraPedidoClienteActual As String
|
|||||||
Log($"Borramos pedido del cliente ${traeCliente}"$)
|
Log($"Borramos pedido del cliente ${traeCliente}"$)
|
||||||
Private thisC As Cursor
|
Private thisC As Cursor
|
||||||
' Private tablaProds As String = "cat_gunaprod2"
|
' Private tablaProds As String = "cat_gunaprod2"
|
||||||
thisC = Starter.skmt.ExecQuery("select PE_PROID, PE_CANT, PE_CEDIS FROM PEDIDO where pe_cliente in (Select CUENTA from cuentaa) and PE_CEDIS <> 'DOE'")
|
thisC = Starter.skmt.ExecQuery("select PE_PROID, PE_CANT, PE_CEDIS, PE_COSTOU FROM PEDIDO where pe_cliente in (Select CUENTA from cuentaa) and PE_CEDIS <> 'DOE'")
|
||||||
Log($"Registros = ${thisC.RowCount}"$)
|
Log($"Registros = ${thisC.RowCount}"$)
|
||||||
If thisC.RowCount > 0 Then
|
If thisC.RowCount > 0 Then
|
||||||
For i = 0 To thisC.RowCount - 1
|
For i = 0 To thisC.RowCount - 1
|
||||||
@@ -1553,7 +1594,8 @@ Sub borraPedidoClienteActual As String
|
|||||||
Log("precioConDesc: " & precioConDesc)
|
Log("precioConDesc: " & precioConDesc)
|
||||||
Log(">>>>>>>>>>>>> " & (precioConDesc * thisC.GetString("PE_CANT")))
|
Log(">>>>>>>>>>>>> " & (precioConDesc * thisC.GetString("PE_CANT")))
|
||||||
If Not(IsNumber(thisC.GetString("PE_CEDIS"))) Then ' Si es promo, entonces es bonificacion.
|
If Not(IsNumber(thisC.GetString("PE_CEDIS"))) Then ' Si es promo, entonces es bonificacion.
|
||||||
Private desc As String = B4XPages.MainPage.promos.ts.traeMontoBonificacion(thisC.GetString("PE_PROID"), thisC.GetString("PE_CEDIS"))
|
Private desc As String = B4XPages.MainPage.promos.ts.traeMontoBonificacion(thisC.GetString("PE_PROID"), thisC.GetString("PE_COSTOU"), thisC.GetString("PE_CEDIS"))
|
||||||
|
desc = desc * thisC.GetString("PE_CANT")
|
||||||
Log("Regresamos bonificaciones " & thisC.GetString("PE_PROID") & "=" & desc)
|
Log("Regresamos bonificaciones " & thisC.GetString("PE_PROID") & "=" & desc)
|
||||||
modTrendSpending("suma", "bonificaciones", desc)
|
modTrendSpending("suma", "bonificaciones", desc)
|
||||||
Else ' Si no es promo, entonces es descuento.
|
Else ' Si no es promo, entonces es descuento.
|
||||||
@@ -1668,7 +1710,7 @@ Sub guardaCambiosDeProducto(cantidad, prodNombre, prodId, precio2, query) 'ignor
|
|||||||
a = Starter.skmt.ExecQuery("select USUARIO from usuarioa")
|
a = Starter.skmt.ExecQuery("select USUARIO from usuarioa")
|
||||||
a.Position=0
|
a.Position=0
|
||||||
usuario = a.GetString("USUARIO")
|
usuario = a.GetString("USUARIO")
|
||||||
Starter.skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS, PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_FECHA, PE_USUARIO, PE_TIPO, PE_PRECIO2) VALUES(?,?,?,?,?,?,?,?,?,?,?) ", Array As Object ("DUR", (precio2 * -1), ((precio2/cantidad) * -1), cantidad, "CAMBIO" & prodNombre, prodId, clie_id, sDate & sTime, usuario, Starter.tipov, precio2))
|
Starter.skmt.ExecNonQuery2("INSERT INTO PEDIDO (PE_CEDIS, PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_FECHA, PE_USUARIO, PE_TIPO, PE_PRECIO2, PE_ENVIADO) VALUES(?,?,?,?,?,?,?,?,?,?,?,0) ", Array As Object ("DUR", (precio2 * -1), ((precio2/cantidad) * -1), cantidad, "CAMBIO" & prodNombre, prodId, clie_id, sDate & sTime, usuario, Starter.tipov, precio2))
|
||||||
Starter.skmt.ExecNonQuery2("update " & query & " set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? ", Array As Object(cantidad, prodId))
|
Starter.skmt.ExecNonQuery2("update " & query & " set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? ", Array As Object(cantidad, prodId))
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@@ -1709,7 +1751,7 @@ Sub agrupador()
|
|||||||
' Log($"Ya imprimio=${YA_IMPRIMIO}"$)
|
' Log($"Ya imprimio=${YA_IMPRIMIO}"$)
|
||||||
Starter.skmt.ExecNonQuery("delete from pedido3")
|
Starter.skmt.ExecNonQuery("delete from pedido3")
|
||||||
Starter.skmt.ExecNonQuery("UPDATE PEDIDO SET PE_FOLIO = 0 where PE_FOLIO IS NULL")
|
Starter.skmt.ExecNonQuery("UPDATE PEDIDO SET PE_FOLIO = 0 where PE_FOLIO IS NULL")
|
||||||
Starter.skmt.ExecNonQuery("INSERT INTO PEDIDO3 (PE_PRECIO2, PE_TIPO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_USUARIO ) SELECT PE_PRECIO2, PE_TIPO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, SUM(PE_COSTO_TOT) AS PE_COSTO_TOT, PE_COSTOU, SUM(PE_CANT) As PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_USUARIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) GROUP BY PE_PRECIO2, PE_TIPO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, PE_COSTOU, PE_PRONOMBRE, PE_PROID, PE_CLIENTE ")
|
Starter.skmt.ExecNonQuery("INSERT INTO PEDIDO3 (PE_PRECIO2, PE_TIPO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_USUARIO, PE_ENVIADO) SELECT PE_PRECIO2, PE_TIPO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, SUM(PE_COSTO_TOT) AS PE_COSTO_TOT, PE_COSTOU, SUM(PE_CANT) As PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_USUARIO, PE_ENVIADO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) GROUP BY PE_PRECIO2, PE_TIPO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, PE_COSTOU, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_ENVIADO")
|
||||||
' Log("update pedido3")
|
' Log("update pedido3")
|
||||||
Starter.skmt.ExecNonQuery2("UPDATE PEDIDO3 SET PE_FOLIO = ? WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)", Array As Object(YA_IMPRIMIO))
|
Starter.skmt.ExecNonQuery2("UPDATE PEDIDO3 SET PE_FOLIO = ? WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)", Array As Object(YA_IMPRIMIO))
|
||||||
Starter.skmt.ExecNonQuery("delete from pedido WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
|
Starter.skmt.ExecNonQuery("delete from pedido WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
|
||||||
@@ -2081,11 +2123,23 @@ End Sub
|
|||||||
' 0 si son IGUALES
|
' 0 si son IGUALES
|
||||||
' 1 si versionActual es MAYOR que versionMinima
|
' 1 si versionActual es MAYOR que versionMinima
|
||||||
Sub comparaVersiones(versionMinima As String, versionActual As String) As Int
|
Sub comparaVersiones(versionMinima As String, versionActual As String) As Int
|
||||||
|
Dim Pattern As String = "[^0-9.]"
|
||||||
|
Log(versionMinima)
|
||||||
|
If versionMinima = "NA" Then Return 0 ' Si version minima es igal a "NA" regresamos "Version valida"
|
||||||
|
versionMinima = Regex.Replace(Pattern, versionMinima, "") ' Quitamos todo lo que no sea numero o punto.
|
||||||
|
versionActual = Regex.Replace(Pattern, versionActual, "") ' Quitamos todo lo que no sea numero o punto.
|
||||||
|
Log($"${versionMinima}|${versionActual}"$)
|
||||||
Dim partesMin() As String = Regex.Split("\.", versionMinima)
|
Dim partesMin() As String = Regex.Split("\.", versionMinima)
|
||||||
Dim partesAct() As String = Regex.Split("\.", versionActual)
|
Dim partesAct() As String = Regex.Split("\.", versionActual)
|
||||||
|
If partesMin.Length < 2 Then
|
||||||
|
' ToastMessageShow("Version incorrecta", False)
|
||||||
|
LogColor("VERSION INCORRECTA", Colors.red)
|
||||||
|
Return -1 ' ← Actual no cumple el formato mínimo
|
||||||
|
End If
|
||||||
' Si la actual tiene MENOS partes que la mínima, es inválida (opcional)
|
' Si la actual tiene MENOS partes que la mínima, es inválida (opcional)
|
||||||
If partesAct.Length < partesMin.Length Then
|
If partesAct.Length < partesMin.Length Then
|
||||||
ToastMessageShow("Version incorrecta", False)
|
' ToastMessageShow("Version incorrecta", False)
|
||||||
|
LogColor("VERSION INCORRECTA", Colors.red)
|
||||||
Return -1 ' ← Actual no cumple el formato mínimo
|
Return -1 ' ← Actual no cumple el formato mínimo
|
||||||
End If
|
End If
|
||||||
' Compara solo las partes que existen en la versión mínima
|
' Compara solo las partes que existen en la versión mínima
|
||||||
@@ -2093,7 +2147,7 @@ Sub comparaVersiones(versionMinima As String, versionActual As String) As Int
|
|||||||
Dim numMin As Int = partesMin(i)
|
Dim numMin As Int = partesMin(i)
|
||||||
Dim numAct As Int = partesAct(i)
|
Dim numAct As Int = partesAct(i)
|
||||||
If numAct < numMin Then
|
If numAct < numMin Then
|
||||||
ToastMessageShow("Versión vieja, por favor actualizar!", False)
|
ToastMessageShow("Versión descontinuada, por favor actualizar!", False)
|
||||||
Return -1 ' Actual es menor
|
Return -1 ' Actual es menor
|
||||||
Else If numAct > numMin Then
|
Else If numAct > numMin Then
|
||||||
Return 1 ' Actual es mayor
|
Return 1 ' Actual es mayor
|
||||||
@@ -2358,4 +2412,121 @@ Sub revisaContrasenaHoy
|
|||||||
' If Not(versionOk) Then ExitApplication 'Si la version no es correcta, salimos de la aplicacion.
|
' If Not(versionOk) Then ExitApplication 'Si la version no es correcta, salimos de la aplicacion.
|
||||||
' kb.HideKeyboard
|
' kb.HideKeyboard
|
||||||
' End If
|
' End If
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
' Trae las existencias de un producto dado desde CAT_GUNAPROD5 (inventario original) menos el total de producto en PEDIDO.
|
||||||
|
Sub traeExistenciasPorId(id As String) As Int
|
||||||
|
' Private inv As Cursor = Starter.skmt.ExecQuery($"Select
|
||||||
|
' inv.cat_gp_id, inv.cat_gp_almacen - IFNULL(ventas.total_vendido, 0) As inventario_final
|
||||||
|
' FROM ${traeTablaProds(Starter.tipov)} As inv
|
||||||
|
' LEFT JOIN
|
||||||
|
' (Select pe_proid, SUM(pe_cant) As total_vendido FROM pedido
|
||||||
|
' WHERE pe_tipo = 'VENTA' GROUP BY pe_proid) As ventas
|
||||||
|
' ON inv.cat_gp_id = ventas.pe_proid
|
||||||
|
' WHERE inv.cat_gp_id = '${id}'"$)
|
||||||
|
Dim vendido As Int = 0
|
||||||
|
Dim existencias As Int = 0
|
||||||
|
Private inv As Cursor = Starter.skmt.ExecQuery($"select cat_gp_almacen from cat_gunaprod5 where cat_gp_id = '${id}'"$)
|
||||||
|
If inv.RowCount > 0 Then
|
||||||
|
inv.position = 0
|
||||||
|
existencias = inv.GetString("CAT_GP_ALMACEN").As(Int)
|
||||||
|
End If
|
||||||
|
' Log("ex:" & existencias)
|
||||||
|
inv = Starter.skmt.ExecQuery($"Select ifnull(SUM(pe_cant),0) As total_vendido FROM pedido WHERE pe_tipo = 'VENTA' and pe_proid = '${id}'"$)
|
||||||
|
inv.Position = 0
|
||||||
|
vendido = inv.GetInt("total_vendido")
|
||||||
|
' Log("ven:" & vendido)
|
||||||
|
existencias = (existencias - vendido)
|
||||||
|
inv.Close
|
||||||
|
Return existencias
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
' Devuelve True si la hora actual está entre las 5:00 AM y las 22:30 PM
|
||||||
|
Sub EstaEnHorarioPermitido As Boolean
|
||||||
|
' Obtener la hora y el minuto actual
|
||||||
|
Dim HoraActual As Int = DateTime.GetHour(DateTime.Now)
|
||||||
|
Dim MinutoActual As Int = DateTime.GetMinute(DateTime.Now)
|
||||||
|
|
||||||
|
' Convertir la hora actual a minutos totales desde la medianoche para una comparación simple
|
||||||
|
Dim TiempoActualEnMinutos As Int = (HoraActual * 60) + MinutoActual
|
||||||
|
|
||||||
|
' Definir los límites del horario permitido en minutos
|
||||||
|
Dim InicioEnMinutos As Int = (5 * 60) + 0 ' 5:00 AM = 300 minutos
|
||||||
|
Dim FinEnMinutos As Int = (22 * 60) + 30 ' 22:30 PM = 1350 minutos
|
||||||
|
|
||||||
|
' Comprobar si la hora actual está dentro del rango
|
||||||
|
If TiempoActualEnMinutos >= InicioEnMinutos And TiempoActualEnMinutos <= FinEnMinutos Then
|
||||||
|
Return True
|
||||||
|
Else
|
||||||
|
Return False
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
'Desahabilita validaciones de Ruta y Version
|
||||||
|
Sub deshabilitaValidaciones
|
||||||
|
Log("Deshabilitamos VERIFY_DEVICE")
|
||||||
|
Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("VERIFY_DEVICE"))
|
||||||
|
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("VERIFY_DEVICE", 0))
|
||||||
|
Log("Deshabilitamos VALIDA_VERSION")
|
||||||
|
Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("VALIDA_VERSION"))
|
||||||
|
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("VALIDA_VERSION", 0))
|
||||||
|
Log("Espeificamos LIGADO")
|
||||||
|
Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("LIGADO"))
|
||||||
|
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("LIGADO", 1))
|
||||||
|
' B4XPages.MainPage.principal.Btn_CheckList.Enabled = True
|
||||||
|
' B4XPages.MainPage.principal.trabajar.Enabled = True
|
||||||
|
' B4XPages.MainPage.principal.Resumen.Enabled = True
|
||||||
|
' B4XPages.MainPage.principal.BUSCA.Enabled = True
|
||||||
|
ToastMessageShow("REALIZADO", False)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
' Recalcula en inventario actual, utiliza la tabla CAT_GUNAPROD5 que tiene el inventario INICIAL y le resta
|
||||||
|
' lo que hay en PEDIDO, y actualiza CAT_GUNAPROD2 con el valor calculado.
|
||||||
|
Public Sub RecalcularInventario
|
||||||
|
Private inicial As Long = DateTime.Now
|
||||||
|
' 1. Índices: ESTO ES CRUCIAL. Si no tienes estos índices, ningún query será rápido.
|
||||||
|
' Ejecuta esto una sola vez al crear la BD o al iniciar la app, no en cada cálculo.
|
||||||
|
' skmt.ExecNonQuery("CREATE INDEX IF NOT EXISTS idx_pedido_proid ON PEDIDO(PE_PROID)")
|
||||||
|
' skmt.ExecNonQuery("CREATE INDEX IF NOT EXISTS idx_pedido_cliente ON PEDIDO(PE_CLIENTE)")
|
||||||
|
' skmt.ExecNonQuery("CREATE INDEX IF NOT EXISTS idx_cat5_id ON CAT_GUNAPROD5(CAT_GP_ID)")
|
||||||
|
|
||||||
|
Starter.skmt.BeginTransaction
|
||||||
|
Try
|
||||||
|
' Lógica del Query:
|
||||||
|
' 1. Toma el inventario inicial del día desde CAT_GUNAPROD5 (T5).
|
||||||
|
' 2. Le resta SOLO las ventas reales de la tabla PEDIDO.
|
||||||
|
' 3. FILTRA (Ignora) los RMIs usando PE_CEDIS <> 'DUR' y el nombre '%CAMBIO%'.
|
||||||
|
' 4. Actualiza CAT_GUNAPROD2 masivamente.
|
||||||
|
|
||||||
|
Dim sql As String = _
|
||||||
|
"UPDATE CAT_GUNAPROD2 " & _
|
||||||
|
"SET CAT_GP_ALMACEN = ( " & _
|
||||||
|
" SELECT (IFNULL(T5.CAT_GP_ALMACEN, 0) - IFNULL(Ventas.CantidadVendida, 0)) " & _
|
||||||
|
" FROM CAT_GUNAPROD5 T5 " & _
|
||||||
|
" LEFT JOIN ( " & _
|
||||||
|
" SELECT PE_PROID, SUM(PE_CANT) AS CantidadVendida " & _
|
||||||
|
" FROM PEDIDO " & _
|
||||||
|
" WHERE PE_CLIENTE <> '0' " & _
|
||||||
|
" AND PE_CEDIS <> 'DUR' " & _
|
||||||
|
" AND PE_PRONOMBRE NOT LIKE '%CAMBIO%' " & _
|
||||||
|
" GROUP BY PE_PROID " & _
|
||||||
|
" ) Ventas ON T5.CAT_GP_ID = Ventas.PE_PROID " & _
|
||||||
|
" WHERE T5.CAT_GP_ID = CAT_GUNAPROD2.CAT_GP_ID " & _
|
||||||
|
") " & _
|
||||||
|
"WHERE EXISTS ( " & _ '<-- ESTA ES LA CLAVE QUE EVITA LOS NULLS
|
||||||
|
" SELECT 1 FROM CAT_GUNAPROD5 T5 " & _
|
||||||
|
" WHERE T5.CAT_GP_ID = CAT_GUNAPROD2.CAT_GP_ID " & _
|
||||||
|
")"
|
||||||
|
|
||||||
|
' Ejecutamos el cálculo masivo
|
||||||
|
Starter.skmt.ExecNonQuery(sql)
|
||||||
|
|
||||||
|
Starter.skmt.TransactionSuccessful
|
||||||
|
If Starter.Logger Then Log("Inventario Sincronizado (Excluyendo RMIs)")
|
||||||
|
|
||||||
|
Catch
|
||||||
|
Log("Error al recalcular inventario: " & LastException)
|
||||||
|
End Try
|
||||||
|
Starter.skmt.EndTransaction
|
||||||
|
LogColor(">>>>> Tiempo de RecalcularInventario: " & ((DateTime.Now - inicial)/1000), Colors.red)
|
||||||
End Sub
|
End Sub
|
||||||
28
B4A/_juntaBas.ps1
Normal file
28
B4A/_juntaBas.ps1
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
# SCRIPT: _juntaBas.ps1 - Versión Saneada y Optimizada para LLM
|
||||||
|
$OutputFile="_CODIGO_COMPLETO_PARA_LLM.txt"
|
||||||
|
|
||||||
|
# Eliminar el archivo anterior si existe (IMPORTANTE)
|
||||||
|
Remove-Item -Path $OutputFile -ErrorAction SilentlyContinue
|
||||||
|
|
||||||
|
Write-Host "Iniciando fusion para LLM..."
|
||||||
|
|
||||||
|
# Itera sobre los archivos .bas, .b4a, .b4j
|
||||||
|
Get-ChildItem -Path ".\*" -Include @("*.bas", "*.b4a", "*.b4j") | ForEach-Object {
|
||||||
|
$currentFile = $_.Name
|
||||||
|
Write-Host "Procesando: $currentFile"
|
||||||
|
|
||||||
|
# --- ENCABEZADO ESTRUCTURADO Y COMENTADO EN B4X (Agregado al archivo) ---
|
||||||
|
Add-Content -Path $OutputFile -Value "`n'======================================================================================"
|
||||||
|
Add-Content -Path $OutputFile -Value $"// ARCHIVO_INICIO: ${currentFile}"
|
||||||
|
Add-Content -Path $OutputFile -Value "'======================================================================================`n"
|
||||||
|
|
||||||
|
# Vuelca el contenido del archivo
|
||||||
|
Get-Content -Encoding UTF8 -Path $_.FullName -Raw | Add-Content -Path $OutputFile
|
||||||
|
|
||||||
|
# --- DELIMITADOR DE FIN DE ARCHIVO (Agregado al archivo) ---
|
||||||
|
Add-Content -Path $OutputFile -Value "`n'======================================================================================"
|
||||||
|
Add-Content -Path $OutputFile -Value $"// ARCHIVO_FIN: ${currentFile}"
|
||||||
|
Add-Content -Path $OutputFile -Value "'======================================================================================`n"
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-Host "`nProceso terminado. Se ha creado el archivo: $OutputFile"
|
||||||
@@ -100,6 +100,7 @@ Sub RD_Init
|
|||||||
agregaColumna(rkmt, "PROMOS_COMP", "CAT_PA_PRECIO1", "TEXT")
|
agregaColumna(rkmt, "PROMOS_COMP", "CAT_PA_PRECIO1", "TEXT")
|
||||||
agregaColumna(rkmt, "CAT_DETALLES_PAQ", "CAT_DP_PRECIOB", "TEXT")
|
agregaColumna(rkmt, "CAT_DETALLES_PAQ", "CAT_DP_PRECIOB", "TEXT")
|
||||||
agregaColumna(rkmt, "kmt_info", "CREDITO", "INTEGER")
|
agregaColumna(rkmt, "kmt_info", "CREDITO", "INTEGER")
|
||||||
|
agregaColumna(rkmt, "PEDIDO", "PE_ENVIADO", "INTEGER")
|
||||||
If chkIfTableExists(khdb, "CAT_VARIABLES") Then rkmt.ExecNonQuery($"create table if not exists CAT_VARIABLES (${getTableColumnList(khdb, "CAT_VARIABLES")}, FECHA TEXT)"$)
|
If chkIfTableExists(khdb, "CAT_VARIABLES") Then rkmt.ExecNonQuery($"create table if not exists CAT_VARIABLES (${getTableColumnList(khdb, "CAT_VARIABLES")}, FECHA TEXT)"$)
|
||||||
If chkIfTableExists(khdb, "CAT_RMI") Then rkmt.ExecNonQuery($"create table if not exists CAT_RMI (${getTableColumnList(khdb, "CAT_RMI")}, FECHA TEXT)"$)
|
If chkIfTableExists(khdb, "CAT_RMI") Then rkmt.ExecNonQuery($"create table if not exists CAT_RMI (${getTableColumnList(khdb, "CAT_RMI")}, FECHA TEXT)"$)
|
||||||
DateTime.DateFormat = "yyyyMMdd"
|
DateTime.DateFormat = "yyyyMMdd"
|
||||||
@@ -118,9 +119,7 @@ Sub revisaSiExisteRespaldo
|
|||||||
If File.size(File.DirInternal&"/kmts", $"${name(0)}.rkmt.km"$) < 43000 And File.Exists(File.DirRootExternal & extDir, $"${name(0)}.rkmt.km"$) Then
|
If File.size(File.DirInternal&"/kmts", $"${name(0)}.rkmt.km"$) < 43000 And File.Exists(File.DirRootExternal & extDir, $"${name(0)}.rkmt.km"$) Then
|
||||||
LogColor("Copiamos el respaldo desde la tarjeta!!", Colors.red)
|
LogColor("Copiamos el respaldo desde la tarjeta!!", Colors.red)
|
||||||
File.Copy(File.DirRootExternal & extDir, $"${name(0)}.rkmt.km"$, File.DirInternal&"/kmts", $"${name(0)}.rkmt.km"$)
|
File.Copy(File.DirRootExternal & extDir, $"${name(0)}.rkmt.km"$, File.DirInternal&"/kmts", $"${name(0)}.rkmt.km"$)
|
||||||
|
|
||||||
RD_Init
|
RD_Init
|
||||||
|
|
||||||
Else
|
Else
|
||||||
LogColor("No hay respaldo en tarjeta externa!", Colors.red)
|
LogColor("No hay respaldo en tarjeta externa!", Colors.red)
|
||||||
End If
|
End If
|
||||||
@@ -1072,6 +1071,7 @@ Sub revisaImpresa As Boolean
|
|||||||
Dim i As Cursor = Starter.skmt.ExecQuery("select count(*) as CUANTOS from kmt_info where (impresion = 1 or cat_cl_codigo in (select ci_cuenta from cliente_impreso)) and CAT_CL_CODIGO in (Select CUENTA from cuentaa)")
|
Dim i As Cursor = Starter.skmt.ExecQuery("select count(*) as CUANTOS from kmt_info where (impresion = 1 or cat_cl_codigo in (select ci_cuenta from cliente_impreso)) and CAT_CL_CODIGO in (Select CUENTA from cuentaa)")
|
||||||
i.Position = 0
|
i.Position = 0
|
||||||
If i.GetString("CUANTOS") > 0 Then imp = True Else imp = False
|
If i.GetString("CUANTOS") > 0 Then imp = True Else imp = False
|
||||||
|
Log($"Impresa: ${imp}"$)
|
||||||
Return imp
|
Return imp
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
|||||||
@@ -13,6 +13,11 @@ Version=12.8
|
|||||||
' el presupuesto de bonificaciones ya se agoto, ya no aparecen promociones, o si el de descuentos se agoto, ya no se pueden agregar
|
' el presupuesto de bonificaciones ya se agoto, ya no aparecen promociones, o si el de descuentos se agoto, ya no se pueden agregar
|
||||||
' mas productos con descuento.
|
' mas productos con descuento.
|
||||||
|
|
||||||
|
' Descuento es TODO lo que tenga un precio diferente al precio de lista y NO esta en promo.
|
||||||
|
' Bonificacion es lo que tiene precio diferente al orginal y esta en promo y NO es regalo o exhibidor.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Sub Class_Globals
|
Sub Class_Globals
|
||||||
Private EventName As String 'ignore
|
Private EventName As String 'ignore
|
||||||
Private CallBack As Object 'ignore
|
Private CallBack As Object 'ignore
|
||||||
@@ -29,7 +34,7 @@ Public Sub Initialize (vCallback As Object, vEventName As String, db As SQL) As
|
|||||||
CallBack = vCallback
|
CallBack = vCallback
|
||||||
tsdb = db
|
tsdb = db
|
||||||
Private mx As Map = traeInfoTrendSpending
|
Private mx As Map = traeInfoTrendSpending
|
||||||
' LogColor(mx, Colors.red)
|
LogColor(mx, Colors.red)
|
||||||
TS_RMI = Regex.Split(",", mx.Get("RMI"))
|
TS_RMI = Regex.Split(",", mx.Get("RMI"))
|
||||||
TS_DESCUENTOS = Regex.Split(",", mx.Get("DESCUENTOS"))
|
TS_DESCUENTOS = Regex.Split(",", mx.Get("DESCUENTOS"))
|
||||||
TS_BONIFICACIONES = Regex.Split(",", mx.Get("BONIFICACIONES"))
|
TS_BONIFICACIONES = Regex.Split(",", mx.Get("BONIFICACIONES"))
|
||||||
@@ -76,12 +81,15 @@ Sub traeInfoTrendSpending As Map
|
|||||||
semana = c.GetInt("CAT_VA_VALOR")
|
semana = c.GetInt("CAT_VA_VALOR")
|
||||||
End If
|
End If
|
||||||
If semana > 0 Then
|
If semana > 0 Then
|
||||||
c = tsdb.ExecQuery($"select HIST_TSS_TIPO, HIST_TSS_SEMANA${semana}, HIST_TSS_SEMANA${semana}_ACUM from HIST_TREND_SPENDING_SEMANAL"$)
|
c = tsdb.ExecQuery($"select HIST_TSS_TIPO, HIST_TSS_SEMANA${semana}, ifnull(HIST_TSS_SEMANA${semana}_ACUM,0) as HIST_TSS_SEMANA${semana}_ACUM from HIST_TREND_SPENDING_SEMANAL"$)
|
||||||
|
' Log($"select HIST_TSS_TIPO, HIST_TSS_SEMANA${semana}, ifnull(HIST_TSS_SEMANA${semana}_ACUM,0) as HIST_TSS_SEMANA${semana}_ACUM from HIST_TREND_SPENDING_SEMANAL"$)
|
||||||
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
|
||||||
HIST_TSS_SEMANA = c.GetString($"HIST_TSS_SEMANA${semana}"$)
|
HIST_TSS_SEMANA = c.GetString($"HIST_TSS_SEMANA${semana}"$)
|
||||||
HIST_TSS_SEMANA_ACUM = c.GetString($"HIST_TSS_SEMANA${semana}_ACUM"$)
|
Private xx As String = c.GetString($"HIST_TSS_SEMANA${semana}_ACUM"$)
|
||||||
|
If xx = "null" Then xx = 0
|
||||||
|
HIST_TSS_SEMANA_ACUM = xx
|
||||||
If c.GetString("HIST_TSS_TIPO") = "RMI" Then
|
If c.GetString("HIST_TSS_TIPO") = "RMI" Then
|
||||||
m.Put("RMI", HIST_TSS_SEMANA & "," & HIST_TSS_SEMANA_ACUM)
|
m.Put("RMI", HIST_TSS_SEMANA & "," & HIST_TSS_SEMANA_ACUM)
|
||||||
else if c.GetString("HIST_TSS_TIPO") = "DESCUENTOS" Then
|
else if c.GetString("HIST_TSS_TIPO") = "DESCUENTOS" Then
|
||||||
@@ -97,7 +105,7 @@ End Sub
|
|||||||
|
|
||||||
' Modifica el acumulado del Trend Speding, le "suma" o "resta" al presupuesto especificado (RMI, BONIFICACIONES o DESCUENTOS)
|
' Modifica el acumulado del Trend Speding, le "suma" o "resta" al presupuesto especificado (RMI, BONIFICACIONES o DESCUENTOS)
|
||||||
Sub modTrendSpending(accion As String, tipo As String, monto As String)
|
Sub modTrendSpending(accion As String, tipo As String, monto As String)
|
||||||
LogColor($"Accion: ${accion}, Tipo: ${tipo}, Monto: ${monto}"$, Colors.Blue)
|
LogColor($"#### ACCION: ${accion}, Tipo: ${tipo}, Monto: ${monto}"$, Colors.Blue)
|
||||||
Private HIST_TSS_SEMANA As String
|
Private HIST_TSS_SEMANA As String
|
||||||
Private HIST_TSS_SEMANA_ACUM As String
|
Private HIST_TSS_SEMANA_ACUM As String
|
||||||
Private acumulado As String = "0"
|
Private acumulado As String = "0"
|
||||||
@@ -110,7 +118,7 @@ Sub modTrendSpending(accion As String, tipo As String, monto As String)
|
|||||||
End If
|
End If
|
||||||
HIST_TSS_SEMANA = $"HIST_TSS_SEMANA${Starter.semana}"$
|
HIST_TSS_SEMANA = $"HIST_TSS_SEMANA${Starter.semana}"$
|
||||||
HIST_TSS_SEMANA_ACUM = $"HIST_TSS_SEMANA${Starter.semana}_ACUM"$
|
HIST_TSS_SEMANA_ACUM = $"HIST_TSS_SEMANA${Starter.semana}_ACUM"$
|
||||||
Private d As Cursor = tsdb.ExecQuery($"select acumulado from TREND_SPENDING where tipo = '${tipo.ToUpperCase}'"$)
|
Private d As Cursor = tsdb.ExecQuery($"select ifnull(acumulado, 0) as ACUMULADO from TREND_SPENDING where tipo = '${tipo.ToUpperCase}'"$)
|
||||||
If d.RowCount > 0 Then
|
If d.RowCount > 0 Then
|
||||||
d.Position = 0
|
d.Position = 0
|
||||||
acumulado = d.GetString("ACUMULADO")
|
acumulado = d.GetString("ACUMULADO")
|
||||||
@@ -221,6 +229,7 @@ Sub trendSpending(accion As String, tipo As String, clienteId As String, id As S
|
|||||||
If logger Then Log($"lacant=${laCant} < lasMaximas=${lasMaximas} = ${laCant<lasMaximas}"$)
|
If logger Then Log($"lacant=${laCant} < lasMaximas=${lasMaximas} = ${laCant<lasMaximas}"$)
|
||||||
If laCant < lasMaximas Then
|
If laCant < lasMaximas Then
|
||||||
modTrendSpending("resta", "rmi", elMonto) ' Restamos al presupuesto de hoy (agregamos al acumulado).
|
modTrendSpending("resta", "rmi", elMonto) ' Restamos al presupuesto de hoy (agregamos al acumulado).
|
||||||
|
Log($"modTrendSpending("resta", "rmi", ${elMonto})"$)
|
||||||
End If
|
End If
|
||||||
If logger Then LogColor("RMI RESTANTES: " & (TS_RMI(0) - TS_RMI(1) - traeAcumuladoHoyTS("rmi")), Colors.red)
|
If logger Then LogColor("RMI RESTANTES: " & (TS_RMI(0) - TS_RMI(1) - traeAcumuladoHoyTS("rmi")), Colors.red)
|
||||||
Return lasMaximas & "|" & elMonto
|
Return lasMaximas & "|" & elMonto
|
||||||
@@ -228,6 +237,7 @@ Sub trendSpending(accion As String, tipo As String, clienteId As String, id As S
|
|||||||
If logger Then Log("LaCANT= " & laCant & ", elMonto= " & elMonto)
|
If logger Then Log("LaCANT= " & laCant & ", elMonto= " & elMonto)
|
||||||
If laCant >= 0 Then
|
If laCant >= 0 Then
|
||||||
modTrendSpending("suma", "rmi", elMonto) ' Agregamos al presupuesto de hoy (restamos del acumulado).
|
modTrendSpending("suma", "rmi", elMonto) ' Agregamos al presupuesto de hoy (restamos del acumulado).
|
||||||
|
Log($"modTrendSpending("suma", "rmi", ${elMonto})"$)
|
||||||
End If
|
End If
|
||||||
Return lasMaximas & "|" & elMonto
|
Return lasMaximas & "|" & elMonto
|
||||||
End If
|
End If
|
||||||
@@ -324,45 +334,66 @@ End Sub
|
|||||||
|
|
||||||
' Trae la cantidad máxima de productos con bonificacion por presupuesto.
|
' Trae la cantidad máxima de productos con bonificacion por presupuesto.
|
||||||
' Si el presupuesto es 10 y la bonificacion del producto es 2, el máximo es 5 productos.
|
' Si el presupuesto es 10 y la bonificacion del producto es 2, el máximo es 5 productos.
|
||||||
Sub traeBonificacionesMaximas(tipo As String, clienteId As String, id As String, laCant As String, promoId As String) As Int
|
Sub traeBonificacionesMaximas(tipo As String, clienteId As String, id As String, laCant As String, elPrecioVenta As String, promoId As String) As Int
|
||||||
Private tsMaximas As Int = 10000000
|
Private thisLog As Boolean = True
|
||||||
|
Private tsMaximas As Int = 100000000
|
||||||
Private tsRestantes As String = 0
|
Private tsRestantes As String = 0
|
||||||
Private tsMonto As String
|
Private tsMonto As String
|
||||||
LogColor($"Presupuesto: ${TS_BONIFICACIONES(0)} - Acumulado ayer: ${TS_BONIFICACIONES(1)} - Hoy: ${traeAcumuladoHoyTS("bonificaciones")}"$, Colors.Red)
|
|
||||||
|
Private mx As Map = traeInfoTrendSpending
|
||||||
|
TS_RMI = Regex.Split(",", mx.Get("RMI"))
|
||||||
|
TS_DESCUENTOS = Regex.Split(",", mx.Get("DESCUENTOS"))
|
||||||
|
TS_BONIFICACIONES = Regex.Split(",", mx.Get("BONIFICACIONES"))
|
||||||
|
|
||||||
|
If thisLog Then LogColor($" ============ INICIA BONIFICACIONES MAXIMAS (${id}) ========"$, Colors.RGB(0,197,110))
|
||||||
|
If thisLog Then LogColor($" Presupuesto: ${TS_BONIFICACIONES(0)} - Acumulado ayer: ${TS_BONIFICACIONES(1)} - Hoy: ${traeAcumuladoHoyTS("bonificaciones")}"$, Colors.Magenta)
|
||||||
If tipo.ToUpperCase = "BONIFICACIONES" Then
|
If tipo.ToUpperCase = "BONIFICACIONES" Then
|
||||||
tsMonto = NumberFormat2(traeMontoBonificacion(id, promoId), 1, 2, 2, False)
|
tsMonto = NumberFormat2(traeMontoBonificacion(id, elPrecioVenta, promoId), 1, 2, 2, False)
|
||||||
tsRestantes = (TS_BONIFICACIONES(0) - TS_BONIFICACIONES(1) - traeAcumuladoHoyTS("bonificaciones")) ' Traemos monto restante de Trend Spending para bonificaciones.
|
tsRestantes = (TS_BONIFICACIONES(0) - TS_BONIFICACIONES(1) - traeAcumuladoHoyTS("bonificaciones")) ' Traemos monto restante de Trend Spending para bonificaciones.
|
||||||
|
Log($" PresupuestoBonifs: ${TS_BONIFICACIONES(0)}, AcumuladoBonifs: ${TS_BONIFICACIONES(1)}, traeAcumuladoHoyTS('bonificaciones'): ${traeAcumuladoHoyTS("bonificaciones")}"$)
|
||||||
|
' Log($" ${TS_BONIFICACIONES(0)} - ${TS_BONIFICACIONES(1)} - ${traeAcumuladoHoyTS("bonificaciones")}"$)
|
||||||
End If
|
End If
|
||||||
Log($"Monto de bonificacion: ${tsMonto}"$)
|
If thisLog Then Log($" Monto de bonificacion: ${tsMonto}"$)
|
||||||
Log($"Presupuesto disponible: ${tsRestantes}"$)
|
If thisLog Then Log($" Presupuesto disponible: ${tsRestantes}"$)
|
||||||
Log($"Cantidad: ${laCant}"$)
|
' If thisLog Then Log($"Cantidad: ${laCant}"$)
|
||||||
Log($"Floor(tsRestantes / (tsMonto * laCant))= ${Floor(tsRestantes / (tsMonto * laCant))}"$)
|
If thisLog Then Log($" Floor(tsRestantes / (tsMonto * laCant)) <==> Floor(${tsRestantes} / (${tsMonto} * ${laCant})) = ${Floor(tsRestantes / (tsMonto * laCant))}"$)
|
||||||
Log($"Floor(${tsRestantes} / (${tsMonto} * ${laCant}))= ${Floor(tsRestantes / (tsMonto * laCant))}"$)
|
' If thisLog Then Log($"Floor(${tsRestantes} / (${tsMonto} * ${laCant}))= ${Floor(tsRestantes / (tsMonto * laCant))}"$)
|
||||||
If tsMonto > 0 Then
|
If tsMonto > 0 Then
|
||||||
tsMaximas = Floor(tsRestantes / (tsMonto * laCant))
|
tsMaximas = Floor(tsRestantes / (tsMonto * laCant))
|
||||||
End If
|
End If
|
||||||
Log(">>> tsMaximas: " & tsMaximas)
|
If thisLog Then LogColor(" ************************************************", Colors.red)
|
||||||
|
If thisLog Then LogColor(" ***** BONIFICACIONES MAXIMAS: " & tsMaximas & " *****", Colors.red)
|
||||||
|
If thisLog Then LogColor(" ************************************************", Colors.red)
|
||||||
|
If thisLog Then LogColor(" ============ TERMINA BONIFICACIONNES MAXIMAS ========", Colors.RGB(0,197,110))
|
||||||
Return tsMaximas
|
Return tsMaximas
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
' Trae el monto de la bonificacion, que es el precio original MENOS el precio de venta con descuento.
|
' Trae el monto de la bonificacion, que es el precio original MENOS el precio de venta con descuento.
|
||||||
' - Si CAT_DP_PRECIOB es 1, la bonificacion es: Precio original - precio de venta.
|
' - Si CAT_DP_PRECIOB es 1, la bonificacion es: Precio original - precio de venta.
|
||||||
' - Si CAT_DP_PRECIOB es 0, la bonificacion es: Precio original.
|
' - Si CAT_DP_PRECIOB es 0, la bonificacion es: Precio original.
|
||||||
Sub traeMontoBonificacion(id As String, promoId As String) As String
|
Sub traeMontoBonificacion(id As String, precio As String, promoId As String) As String
|
||||||
' Log(promoId)
|
Private thisLog As Boolean = True
|
||||||
|
If thisLog Then LogColor($" ============ INICIA MONTO BONIFICACION (${id}) ========"$, Colors.RGB(151,0,171))
|
||||||
|
If thisLog Then LogColor($" ###### ${promoId}, ${precio}, ${id}"$, Colors.Magenta)
|
||||||
Private tsMonto As String = 0
|
Private tsMonto As String = 0
|
||||||
Private c As Cursor = tsdb.ExecQuery($"SELECT CAT_DP_ID, CAT_DP_IDPROD, CAT_DP_PRECIO, CAT_DP_TIPO, CAT_GP_PRECIO, CAT_DP_PRECIOB FROM CAT_DETALLES_PAQ join ${traeTablaProds(Starter.tipov)} on CAT_GP_ID = CAT_DP_IDPROD where CAT_GP_ID = '${id}' and CAT_DP_ID = '${promoId}'"$)
|
Private re As Cursor = Starter.skmt.ExecQuery($"select cat_gp_id from cat_gunaprod2 where (cat_gp_tipo like 'REGALO%' or cat_gp_tipo like 'EXHIBIDOR%') and cat_gp_id = '${id}'"$) ' Revisamos si el producto es regalo o exhibidor.
|
||||||
If c.RowCount > 0 Then
|
If re.RowCount = 0 Then' No es regalo ni exhibidor.
|
||||||
c.Position = 0
|
Private c As Cursor = tsdb.ExecQuery($"SELECT CAT_DP_ID, CAT_DP_IDPROD, CAT_DP_PRECIO, CAT_DP_TIPO, CAT_GP_PRECIO, CAT_DP_PRECIOB FROM CAT_DETALLES_PAQ join ${traeTablaProds(Starter.tipov)} on CAT_GP_ID = CAT_DP_IDPROD where CAT_GP_ID = '${id}' and CAT_DP_PRECIO = '${precio}' and CAT_DP_ID = '${promoId}'"$)
|
||||||
If c.GetInt("CAT_DP_PRECIOB") = 1 Then
|
' Log($"SELECT CAT_DP_ID, CAT_DP_IDPROD, CAT_DP_PRECIO, CAT_DP_TIPO, CAT_GP_PRECIO, CAT_DP_PRECIOB FROM CAT_DETALLES_PAQ join ${traeTablaProds(Starter.tipov)} on CAT_GP_ID = CAT_DP_IDPROD where CAT_GP_ID = '${id}' and CAT_DP_PRECIO = '${precio}' and CAT_DP_ID = '${promoId}'"$)
|
||||||
tsMonto = c.GetString("CAT_GP_PRECIO") - c.GetString("CAT_DP_PRECIO") ' Precio original - precio de venta.
|
If thisLog Then Log($" Rowcount DP y CGP2: ${c.RowCount}"$)
|
||||||
Else
|
If c.RowCount > 0 Then
|
||||||
tsMonto = c.GetString("CAT_GP_PRECIO") ' Precio original.
|
c.Position = 0
|
||||||
End If
|
If c.GetInt("CAT_DP_PRECIOB") = 1 Or (c.GetInt("CAT_DP_PRECIOB") = 0 And c.GetString("CAT_GP_PRECIO") = c.GetString("CAT_DP_PRECIO")) Then
|
||||||
|
tsMonto = c.GetString("CAT_GP_PRECIO") - c.GetString("CAT_DP_PRECIO") ' Precio original - precio de venta.
|
||||||
|
Else
|
||||||
|
tsMonto = c.GetString("CAT_GP_PRECIO") ' Precio original.
|
||||||
|
End If
|
||||||
' Log("PRECIOB: " & c.GetInt("CAT_DP_PRECIOB"))
|
' Log("PRECIOB: " & c.GetInt("CAT_DP_PRECIOB"))
|
||||||
Log($"Precio normal: ${c.GetString("CAT_GP_PRECIO")}, Precio desc: ${c.GetString("CAT_DP_PRECIO")}, Monto bonificacion: ${tsMonto}"$)
|
If thisLog Then Log($" Precio normal: ${c.GetString("CAT_GP_PRECIO")}, Precio desc: ${c.GetString("CAT_DP_PRECIO")}, Monto bonificacion: ${tsMonto}"$)
|
||||||
|
End If
|
||||||
|
' Log("ROWCOUNT: " & c.RowCount)
|
||||||
End If
|
End If
|
||||||
' Log("ROWCOUNT: " & c.RowCount)
|
If thisLog Then LogColor($" ============ TERMINA MONTO BONIFICACION ========"$, Colors.RGB(151,0,171))
|
||||||
Return tsMonto
|
Return tsMonto
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@@ -374,7 +405,7 @@ End Sub
|
|||||||
' se agoto el presupuesto.
|
' se agoto el presupuesto.
|
||||||
' Aunque si hay suficiente para mostrar algunas promos ... pues que si las muestre.
|
' Aunque si hay suficiente para mostrar algunas promos ... pues que si las muestre.
|
||||||
Sub maxPromosPorProdsVariables(idProdsVariables As List, promo As String)As Int
|
Sub maxPromosPorProdsVariables(idProdsVariables As List, promo As String)As Int
|
||||||
Private logger As Boolean = True
|
Private logger As Boolean = False
|
||||||
Private Maxs As Int = 10000000
|
Private Maxs As Int = 10000000
|
||||||
Private prodsVariablesXPresupuestoBonificaciones As List
|
Private prodsVariablesXPresupuestoBonificaciones As List
|
||||||
Private prodsVariablesRequeridos As Int = traeProdsVariablesRequeridos(promo)
|
Private prodsVariablesRequeridos As Int = traeProdsVariablesRequeridos(promo)
|
||||||
@@ -383,8 +414,8 @@ Sub maxPromosPorProdsVariables(idProdsVariables As List, promo As String)As Int
|
|||||||
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 logger Then LogColor($"=>> prodVariable ${i} : ${idProdsVariables.Get(i)}, ${Subs.traeProdNombre(idProdsVariables.Get(i))} <<=="$, Colors.blue)
|
If logger Then LogColor($"=>> prodVariable ${i} : ${idProdsVariables.Get(i)}, ${Subs.traeProdNombre(idProdsVariables.Get(i))} <<=="$, Colors.blue)
|
||||||
' Log($"Este invDisponible: ${invDispParaPromo.Get(idProdsVariables.Get(i))}"$)
|
' Log($"Este invDisponible: ${invDispParaPromo.Get(idProdsVariables.Get(i))}"$)
|
||||||
If logger Then Log(">> Monto Bonificacion: " & traeMontoBonificacion(idProdsVariables.Get(i), promo))
|
If logger Then Log(">> Monto Bonificacion: " & traeMontoBonificacion(idProdsVariables.Get(i), 1, promo))
|
||||||
Private maxProds As Int = traeBonificacionesMaximas("bonificaciones", traeCliente, idProdsVariables.Get(i), prodsVariablesRequeridos, promo)
|
Private maxProds As Int = traeBonificacionesMaximas("bonificaciones", traeCliente, idProdsVariables.Get(i), prodsVariablesRequeridos, 1, promo)
|
||||||
prodsVariablesXPresupuestoBonificaciones.Add(maxProds)
|
prodsVariablesXPresupuestoBonificaciones.Add(maxProds)
|
||||||
Next
|
Next
|
||||||
prodsVariablesXPresupuestoBonificaciones.Sort(True)
|
prodsVariablesXPresupuestoBonificaciones.Sort(True)
|
||||||
|
|||||||
Reference in New Issue
Block a user