3 Commits

Author SHA1 Message Date
bca0d31469 - VERSION 5.10.20
- Correcciones en el envio de informacion despues de agregar el mandaPendientes, no se estaba enviando el pedido cuando se enviaba informacion desde la pantalla principal (por un timer que no funciona bien).
2025-10-24 00:47:32 -06:00
6fc81fcf0d - VERSION 5.10.16
- Se corrigieron errores en resumen dia e impresion de inventario
2025-10-21 20:03:51 -06:00
ceaa5246e5 - VERSION 5.10.15
- Se pusieron los regalos y exhibidores como categorias exentas de bonificacion.
2025-10-20 16:20:47 -06:00
10 changed files with 185 additions and 92 deletions

View File

@@ -262,7 +262,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)

View File

@@ -774,7 +774,7 @@ Sub B4XPage_Appear
Private mPromoXMonto As Map = Subs.revisaPromoPorMonto Private mPromoXMonto As Map = Subs.revisaPromoPorMonto
Private elMontoTSDeLaVenta As String = 0 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")
@@ -782,10 +782,12 @@ 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 ' 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"))) Log("Monto Bonificacion -->> " & B4XPages.MainPage.promos.ts.traeMontoBonificacion(dp.GetString("CAT_DP_IDPROD"), dp.GetString("CAT_DP_PRECIO"), mPromoXMonto.Get("id")))
@@ -1110,16 +1112,16 @@ 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)
@@ -1128,6 +1130,8 @@ Sub B_IMP_Click
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
@@ -1139,10 +1143,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

View File

@@ -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
@@ -220,6 +220,7 @@ Sub Class_Globals
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 kb As IME
Dim reqTotales As Int
End Sub End Sub
'You can add more parameters here. 'You can add more parameters here.
@@ -274,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
@@ -288,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
@@ -651,12 +653,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
@@ -677,7 +682,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
@@ -1800,9 +1805,27 @@ Sub JobDone(Job As HttpJob)
End If End If
If RESULT.Tag.As(String).StartsWith("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) Private temp() As String = Regex.Split("_", RESULT.Tag)
Log(temp(2)) ' Log(temp(2))
If temp.Length > 1 Then If temp.Length > 1 Then
Starter.skmt.ExecNonQuery($"update pedido set pe_enviado = 1 where pe_cliente = '${temp(2)}'"$) 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)}'"$) Log($"update pedido set pe_enviado = 1 where pe_cliente = '${temp(2)}'"$)
@@ -1810,7 +1833,7 @@ Sub JobDone(Job As HttpJob)
PB2.Progress = PB2.Progress + 5 PB2.Progress = PB2.Progress + 5
S_CP.Text = "SUBIENDO" S_CP.Text = "SUBIENDO"
Next Next
PB2.Progress = 100 ' PB2.Progress = 100
S_CP.Text = "VALIDANDO" S_CP.Text = "VALIDANDO"
End If End If
@@ -2205,7 +2228,13 @@ 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)
actualizaProgressBar
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)}"$)
@@ -2216,11 +2245,20 @@ Sub JobDone(Job As HttpJob)
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
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'")
@@ -2377,6 +2415,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
@@ -2402,17 +2441,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_gunaprod2")
Starter.skmt.ExecNonQuery("delete from cat_inventario") Starter.skmt.ExecNonQuery("delete from cat_inventario")
Starter.skmt.ExecNonQuery("delete from cat_rmi") Starter.skmt.ExecNonQuery("delete from cat_rmi")
Starter.skmt.ExecNonQuery("delete from cat_gunaprod2")
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")
@@ -2680,6 +2719,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
@@ -2715,10 +2755,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
@@ -2789,10 +2833,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().
@@ -2805,7 +2847,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
@@ -3165,7 +3208,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"))
@@ -3258,6 +3301,9 @@ Sub SUBIR_INFO_PEDIDO
PORENVIAR = 0 PORENVIAR = 0
' PEDIDO ' PEDIDO
t3.Initialize("T3", 500) ' 1000 = 1 second
t3.Enabled = True
Wait For t3_tick
enviaPedido("Todos") enviaPedido("Todos")
d = Starter.skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDO FROM PEDIDO") d = Starter.skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDO FROM PEDIDO")
@@ -3353,6 +3399,8 @@ 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
@@ -3368,6 +3416,11 @@ Sub enviaPedido(filtro As String)
Starter.skmt.ExecNonQuery2("update PEDIDO set PE_CEDIS = ? where PE_CLIENTE =? AND PE_FOLIO IS NULL ", Array As Object("RECARGA", "0")) Starter.skmt.ExecNonQuery2("update PEDIDO set PE_CEDIS = ? where PE_CLIENTE =? AND PE_FOLIO IS NULL ", Array As Object("RECARGA", "0"))
End If End If
Starter.skmt.ExecNonQuery("UPDATE PEDIDO SET PE_FOLIO = rowid where PE_FOLIO = 0 or PE_FOLIO = 1") 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 If PERFIL = "V-ESPECIAL" Then
Log($"pe_cedis_1"$) 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"$) 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"$)
@@ -3388,17 +3441,15 @@ Sub enviaPedido(filtro As String)
Else Else
' Log($"pe_cedis_3"$) ' 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}"$) 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}"$) 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 ' TIEMPO = 0
t3.Initialize("T3", 500) ' 1000 = 1 second
t3.Enabled = True
Wait For t3_tick
S_CP.Text = "Envio de Pedidos" S_CP.Text = "Envio de Pedidos"
PB2.Progress = 1 PB2.Progress = 1
Log("pedido:" & cPed.RowCount) Log("pedido:" & cPed.RowCount)
If cPed.RowCount>0 Then If cPed.RowCount > 0 Then
For i = 0 To cPed.RowCount - 1 For i = 0 To cPed.RowCount - 1
cPed.Position = i cPed.Position = i
' LogColor($"##### ${i} #### "$, Colors.magenta)
Dim cmd As DBCommand Dim cmd As DBCommand
cmd.Initialize cmd.Initialize
cmd.Name = "insert_pedido_KELL" cmd.Name = "insert_pedido_KELL"
@@ -3406,26 +3457,31 @@ Sub enviaPedido(filtro As String)
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")) 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")}"$) reqManager.ExecuteCommand(cmd , $"ins_pedido_${cPed.GetString("PE_CLIENTE")}"$)
contador_env = contador_env + 1 contador_env = contador_env + 1
TIEMPO = TIEMPO + 1 ' TIEMPO = TIEMPO + 1
PB2.Progress = PB2.Progress + 1 ' PB2.Progress = PB2.Progress + 1
If TIEMPO > 20 Then ' If i Mod 10 = 1 Then
' Msgbox("M","A") 'ignore ' ' Msgbox("M","A") 'ignore
If L_P_2.Text = "Envio de Pedidos" Then ' If L_P_2.Text = "Envio de Pedidos" Then
L_P_2.Text = "Envio de Pedidos --" ' L_P_2.Text = "Envio de Pedidos --"
else if L_P_2.Text = "Envio de Pedidos --" Then ' Log(1)
L_P_2.Text = "Envio de Pedidos \" ' else if L_P_2.Text = "Envio de Pedidos --" Then
else if L_P_2.Text = "Envio de Pedidos \" Then ' Log(2)
L_P_2.Text = "Envio de Pedidos |" ' L_P_2.Text = "Envio de Pedidos \"
else if L_P_2.Text = "Envio de Pedidos |" Then ' else if L_P_2.Text = "Envio de Pedidos \" Then
L_P_2.Text = "Envio de Pedidos /" ' Log(3)
else if L_P_2.Text = "Envio de Pedidos /" Then ' L_P_2.Text = "Envio de Pedidos |"
L_P_2.Text = "Envio de Pedidos --" ' else if L_P_2.Text = "Envio de Pedidos |" Then
End If ' Log(4)
t3.Initialize("T3", 2000) ' 1000 = 1 second ' L_P_2.Text = "Envio de Pedidos /"
t3.Enabled = True ' else if L_P_2.Text = "Envio de Pedidos /" Then
Wait For t3_tick ' Log(5)
TIEMPO = 0 ' L_P_2.Text = "Envio de Pedidos --"
End If ' End If
'' t3.Initialize("T3", 2000) ' 1000 = 1 second
'' t3.Enabled = True
'' Wait For t3_tick
' TIEMPO = 0
' End If
Next Next
cPed.Close cPed.Close
End If End If
@@ -3802,9 +3858,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

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -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.10.02 #VersionName: 5.10.20
#SupportedOrientations: portrait #SupportedOrientations: portrait
#CanInstallToExternalStorage: False #CanInstallToExternalStorage: False
#BridgeLogger:true #BridgeLogger:true

View File

@@ -67,10 +67,10 @@ ModuleBreakpoints7=
ModuleBreakpoints8= ModuleBreakpoints8=
ModuleBreakpoints9= ModuleBreakpoints9=
ModuleClosedNodes0= ModuleClosedNodes0=
ModuleClosedNodes1=6,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,31,32,33,34,35,37,38,39,40,41,42,43,45,46,47 ModuleClosedNodes1=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=1 ModuleClosedNodes12=
ModuleClosedNodes13=1,7,8,9,10,11,12 ModuleClosedNodes13=1,7,8,9,10,11,12
ModuleClosedNodes14=6,7,8,9,12,13 ModuleClosedNodes14=6,7,8,9,12,13
ModuleClosedNodes15= ModuleClosedNodes15=
@@ -89,7 +89,7 @@ ModuleClosedNodes26=24,26,31,32,33,35
ModuleClosedNodes27= ModuleClosedNodes27=
ModuleClosedNodes28=4 ModuleClosedNodes28=4
ModuleClosedNodes29= ModuleClosedNodes29=
ModuleClosedNodes3=3,5,6 ModuleClosedNodes3=5,6
ModuleClosedNodes30= ModuleClosedNodes30=
ModuleClosedNodes31= ModuleClosedNodes31=
ModuleClosedNodes32=101,116 ModuleClosedNodes32=101,116
@@ -100,6 +100,6 @@ ModuleClosedNodes6=
ModuleClosedNodes7= ModuleClosedNodes7=
ModuleClosedNodes8= ModuleClosedNodes8=
ModuleClosedNodes9= ModuleClosedNodes9=
NavigationStack=C_Cliente,B4XPage_Appear,774,0,B4XMainPage,B4XPage_Appear,407,0,kms_helperSubs,traeMaxClientesNuevos,1034,0,C_Principal,cargar_Click,881,0,C_Productos,Class_Globals,0,0,C_Promos,revisaInvProdsVariables,472,0,C_Promos,b_terminar1_Click,511,0,C_Promos,b_continuar_Click,551,0,C_TrendSpending,traeMontoBonificacion,360,0,C_Productos,b_terminar1_Click,1080,0,C_Productos,LlenaProdsLL,1507,0 NavigationStack=Diseñador Visual,principal.bal,-100,6,C_Principal,SUBIR_INFO_PEDIDO,3371,6,C_Principal,B4XPage_Created,228,0,C_Principal,descargaCartaPorteyProgreso,3693,0,C_Principal,VALIDAR_INFO,3548,0,C_Principal,t1_tick,2536,0,C_Principal,cargar_Click,690,0,C_Principal,Subir_Click,679,6,C_Principal,actualizaProgressBar,2250,1,C_Principal,JobDone,2232,6
SelectedBuild=0 SelectedBuild=0
VisibleModules=31,1,12,5,16,3,32,13,14,9,8,26 VisibleModules=31,1,12,5,16,3,32,13,14,9

View File

@@ -915,17 +915,20 @@ 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}"$) 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, PE_ENVIADO) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,0) ", 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)
@@ -1026,8 +1029,8 @@ Sub traePromo(promo As String, cliente As String) As Map
'######### 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 thisLog Then Log(promoMap)
If ps.RowCount > 0 Then If ps.RowCount > 0 Then
ps.Position = 0 ps.Position = 0
@@ -1035,8 +1038,8 @@ Sub traePromo(promo As String, cliente As String) As Map
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")}"$)
@@ -1100,7 +1103,7 @@ 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
@@ -1195,7 +1198,7 @@ End Sub
'Regresa el numero máximo de promociones permitidas, tomando en cuenta recurrentes, clientes y maxPromos. 'Regresa el numero máximo de promociones permitidas, tomando en cuenta recurrentes, clientes y maxPromos.
Sub traeMaxPromos(pm As Map) As Int Sub traeMaxPromos(pm As Map) As Int
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 maxPromos As List Private maxPromos As List
Private mp0, mp As String = "0" Private mp0, mp As String = "0"
maxPromos.Initialize maxPromos.Initialize
@@ -1245,7 +1248,7 @@ Sub traePromosVendidas(promo As String, cliente As String) As Int
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.red)
@@ -2112,12 +2115,14 @@ Sub comparaVersiones(versionMinima As String, versionActual As String) As Int
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 If partesMin.Length < 2 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
' 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
@@ -2439,3 +2444,21 @@ Sub EstaEnHorarioPermitido As Boolean
Return False Return False
End If End If
End Sub 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

View File

@@ -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
@@ -330,7 +335,7 @@ 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, elPrecioVenta 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 thisLog As Boolean = True Private thisLog As Boolean = False
Private tsMaximas As Int = 100000000 Private tsMaximas As Int = 100000000
Private tsRestantes As String = 0 Private tsRestantes As String = 0
Private tsMonto As String Private tsMonto As String
@@ -366,20 +371,23 @@ Sub traeMontoBonificacion(id As String, precio As String, promoId As String) As
Private thisLog As Boolean = True Private thisLog As Boolean = True
LogColor($">>>>>>> ${promoId}, ${precio}, ${id}"$, Colors.Magenta) 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_PRECIO = '${precio}' 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.
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}'"$) If re.RowCount = 0 Then' No es regalo ni exhibidor.
Log($"rowcount: ${c.RowCount}"$) 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.RowCount > 0 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}'"$)
c.Position = 0 Log($"rowcount: ${c.RowCount}"$)
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 If c.RowCount > 0 Then
tsMonto = c.GetString("CAT_GP_PRECIO") - c.GetString("CAT_DP_PRECIO") ' Precio original - precio de venta. c.Position = 0
Else 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") ' Precio original. tsMonto = c.GetString("CAT_GP_PRECIO") - c.GetString("CAT_DP_PRECIO") ' Precio original - precio de venta.
End If 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"))
If thisLog Then 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 End If
' Log("ROWCOUNT: " & c.RowCount) ' Log("ROWCOUNT: " & c.RowCount)
End If
Return tsMonto Return tsMonto
End Sub End Sub