- Se puso la misam fecha en inicio y fin de los eventos del "Motivo de no venta"

This commit is contained in:
Jose Alberto Guerra Ugalde
2024-06-27 20:26:42 -06:00
parent 2739051f7e
commit c05d8282f9
13 changed files with 229 additions and 37 deletions

View File

@@ -403,6 +403,10 @@ End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
Sub B4XPage_Appear
If kh.motivoNoVisitaActivo Then
ToastMessageShow("Ruta CERRADA por NO VISITA", True)
Subs.iniciaActividad("Principal")
End If
indicePregunta = 0
b_noVenta.Enabled = False
' Log(kh.traeTotalCliente)
@@ -1519,7 +1523,7 @@ Sub Imprime_ticket
Next
End If
s.Close
s=Starter.skmt.ExecQuery2("select sum(PE_CANT) as CANTIDAD, SUM(PE_COSTO_TOT) AS TOTAL FROM PEDIDO WHERE PE_CEDIS <> PE_PROID AND PE_TIPO = ? and substr(pe_pronombre,1,6) = ? AND PE_CLIENTE IN (Select CUENTA from cuentaa)", Array As String("VENTA","CAMBIO"))
s.Position = 0
Private sTotal3 As Double

View File

@@ -142,7 +142,7 @@ Sub B4XPage_Appear
C_DOE=Starter.skmt.ExecQuery2("select sum(pe_cant) AS CANTIDAD, sum(pe_costo_tot) AS MONTO from pedido where PE_CEDIS <> PE_PROID and pe_cliente in (Select CUENTA from cuentaa) AND PE_CEDIS = ?", Array As String("DOE"))
C_DOE.Position=0
L_CANT_D.Text = C_DOE.GetString("CANTIDAD")
L_TOTAL_D.Text = C_DOE.GetString("MONTO")
L_TOTAL_D.Text = numberformat2(kh.traeTotalCliente, 1, 2, 2, True)
c.Close
Else
B_PEDIDO_DOE.VISIBLE = False

View File

@@ -197,6 +197,22 @@ Sub Class_Globals
Private p_centrado As Panel
Private l_version As Label
Private p_botonesResumen As Panel
Private b_motivoNoVisita As Button
Private p_transparente As Panel
Private b_noVisita As Button
Private p_noVisita As Panel
Private p_transparente2 As Panel
Private b_reactivaRuta As Button
Private et_reactivaRuta As EditText
Private p_noVisita2 As Panel
Private r_1 As RadioButton
Private r_2 As RadioButton
Private r_3 As RadioButton
Private r_4 As RadioButton
Private r_5 As RadioButton
Private r_6 As RadioButton
Private r_7 As RadioButton
private r_razonNoVisita as String
End Sub
'You can add more parameters here.
@@ -398,7 +414,10 @@ Sub B4XPage_Appear
' Log(">>>> CHECKLIST: |" & Cedis_Check & "|")
Btn_CheckList.Visible = False
If Cedis_Check = 0 Then ' And l_ruta.Text <> 0
If l_ruta.Text <> 0 Then Btn_CheckList.Visible = True
If l_ruta.Text <> 0 Then
Btn_CheckList.BringToFront
Btn_CheckList.Visible = True
End If
B_MAPA_RUTA.Visible = False
NUEVO.Visible = False
B_PROXIMA.Visible = False
@@ -457,6 +476,19 @@ Sub B4XPage_Appear
' Wait For Activity_PermissionResult (Permission As String, Result As Boolean)
' If Result Then Log("Tenemos permisos de bluetooth.")
' Log("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")
If kh.motivoNoVisitaActivo Then
Private cd1 As ColorDrawable
cd1.Initialize(Colors.RGB(247, 94, 0), 5dip)
b_motivoNoVisita.Background = cd1
B_MAPA_RUTA.Enabled = False
trabajar.Enabled = False
Else
Private cd1 As ColorDrawable
cd1.Initialize(Colors.RGB(213, 0, 0), 5dip)
b_motivoNoVisita.Background = cd1
B_MAPA_RUTA.Enabled = True
trabajar.Enabled = True
End If
End Sub
Sub trabajar_Click
@@ -953,10 +985,10 @@ Sub JobDone(Job As HttpJob)
Dim CAT_CL_CATEGORIA As String = records(RESULT.Columns.Get("CAT_CL_CATEGORIA"))
Dim CAT_CL_SEGMENTO As String = records(RESULT.Columns.Get("CAT_CL_SEGMENTO"))
Dim CAT_CL_LIMITECREDITO As String = records(RESULT.Columns.Get("CAT_CL_LIMITECREDITO"))
LogColor("CAT_CL_LIMITECREDITO:" & CAT_CL_LIMITECREDITO & " -- ID: " & CAT_CL_CODIGO, Colors.red)
' LogColor("CAT_CL_LIMITECREDITO:" & CAT_CL_LIMITECREDITO & " -- ID: " & CAT_CL_CODIGO, Colors.red)
Starter.skmt.ExecNonQuery2("INSERT INTO kmt_info(CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO,CAT_CL_BFACTURA,CAT_CL_BCREDITO,CAT_CL_DIAS_VISITA,CAT_CL_TIPO_RUTA, gestion, IMPRESION, CAT_CL_CATEGORIA, CAT_CL_SEGMENTO,CAT_CL_LIMITECREDITO) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,0,?,?,?)", Array As Object (CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LAT,CAT_CL_LONG,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO,CAT_CL_BFACTURA,CAT_CL_BCREDITO,CAT_CL_DIAS_VISITA,CAT_CL_TIPO_RUTA,CAT_CL_CATEGORIA, CAT_CL_SEGMENTO,CAT_CL_LIMITECREDITO))
Next
Starter.skmt.ExecNonQuery2("INSERT INTO kmt_info(CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_BFACTURA,CAT_CL_BCREDITO,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO,CAT_CL_DIAS_VISITA, gestion, IMPRESION) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,0,0,?,0,0) ",Array As Object ("0",e_ruta.TEXT, "VENTA ABORDO","null","null","null","null","null","null","null","null","null","null","null","null","NULL","null","null","NULL","NULL"))
Starter.skmt.ExecNonQuery2("INSERT INTO kmt_info(CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_BFACTURA,CAT_CL_BCREDITO,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO,CAT_CL_DIAS_VISITA, gestion, IMPRESION) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,0,0,?,0,0) ",Array As Object ("0",e_ruta.TEXT, "VENTA ABORDO","null","null","null","null","null","null","null","null","null","null","null","0","null","null","null","10000000","null"))
Starter.skmt.TransactionSuccessful 'Si no se pone TransactionSuccessful no se escribe NADA!!
Starter.skmt.EndTransaction
Listo1 = 1
@@ -1978,7 +2010,11 @@ End Sub
Private Sub B4XPage_CloseRequest As ResumableSub
' BACK key pressed
'Return True to close, False to cancel
If pdfViewerActivo Then
If p_transparente2.Visible Then
p_transparente2.Visible = False
else If p_transparente.Visible Then
p_transparente.Visible = False
Else If pdfViewerActivo Then
pdfViewerActivo = False
PNL_ACCESO.Visible = True
Panel7.Visible = True
@@ -2145,6 +2181,8 @@ Sub e_ruta_EnterPressed
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("NUMERO_PEDIDO",0))
Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("FINDIA_FECHA"))
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_RAZON"))
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,"FOTO3.jpg") Then File.Delete(File.DirInternal,"FOTO3.jpg")
@@ -3496,4 +3534,107 @@ Sub IsConnectedToInternet As Boolean 'ignore
Return r.RunMethod("isConnectedOrConnecting")
End If
Return False
End Sub
Private Sub b_motivoNoVisita_Click
r_1.Checked = True
r_razonNoVisita = "FALLA MECANICA"
If Not(kh.motivoNoVisitaActivo) Then
p_transparente.Top = 0 : p_transparente.left = 0
p_transparente.Height = Root.Height : p_transparente.Width = Root.Width
kh.centraPanel(p_noVisita, Root.Width)
kh.centraPanelV(p_noVisita, Root.Height)
p_transparente.Visible = True
Else
p_transparente2.Top = 0 : p_transparente2.left = 0
p_transparente2.Height = Root.Height : p_transparente2.Width = Root.Width
kh.centraPanel(p_noVisita2, Root.Width)
kh.centraPanelV(p_noVisita2, Root.Height)
p_transparente2.Visible = True
End If
End Sub
Private Sub p_transparente_Click
End Sub
Private Sub b_noVisita_Click
Msgbox2Async("Si se envia la información, ya NO se va a poder continuar con la ruta, los clientes por visitar se van a bloquear.", "AVISO", "Continuar", "Cancelar", "", LoadBitmap(File.DirAssets,"alert2.png"), False)
Wait For Msgbox_Result (result As Int)
If result = DialogResponse.POSITIVE Then
ToastMessageShow("CONTINUAR", False)
Starter.skmt.ExecNonQuery($"delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'NOVISITA_ACTIVA'"$)
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("NOVISITA_ACTIVA", 1))
Starter.skmt.ExecNonQuery($"delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'NOVISITA_RAZON'"$)
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("NOVISITA_RAZON", r_razonNoVisita))
Starter.skmt.ExecNonQuery($"delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'NOVISITA_FECHA'"$)
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("NOVISITA_FECHA", Subs.traeFecha))
Starter.skmt.ExecNonQuery($"update kmt_info set gestion = '4' where gestion = '0'"$)
Log(Subs.traeRuta)
Subs.bitacora(Subs.fechanormal(DateTime.Now), usuario, Subs.traeAlmacen, Subs.traeRuta, "MOTIVO NO VENTA ACTIVO", "", Subs.fechanormal(DateTime.Now), Subs.fechanormal(DateTime.Now), Starter.lat_gps, Starter.lon_gps, 2, "", r_razonNoVisita)
' b_motivoNoVisita.Color = Colors.RGB(247, 94, 0)
Private cd1 As ColorDrawable
cd1.Initialize(Colors.RGB(247, 94, 0), 5dip)
b_motivoNoVisita.Background = cd1
B_MAPA_RUTA.Enabled = False
trabajar.Enabled = False
Else If result = DialogResponse.CANCEL Then
ToastMessageShow("CANCELAR", False)
End If
p_transparente.Visible = False
End Sub
Private Sub p_transparente2_Click
End Sub
Private Sub b_reactivaRuta_Click
Private cfd As Cursor = Starter.skmt.ExecQuery("select ifnull(CAT_VA_VALOR, '') as valor from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'FINDIA_PASS'")
If cfd.RowCount > 0 Then
cfd.Position = 0
Private finDiaPass As String = cfd.GetString("valor")
If et_reactivaRuta.Text = finDiaPass Then
Starter.skmt.ExecNonQuery($"delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'NOVISITA_ACTIVA'"$)
Starter.skmt.ExecNonQuery($"delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'NOVISITA_RAZON'"$)
Starter.skmt.ExecNonQuery("update kmt_info set gestion = '0' where gestion = '4'")
Subs.bitacora(Subs.fechanormal(DateTime.Now), usuario, Subs.traeAlmacen, Subs.traeRuta, "REACTIVA RUTA", "", Subs.fechanormal(DateTime.Now), Subs.fechanormal(DateTime.Now), Starter.lat_gps, Starter.lon_gps, 2, "", "")
Private cd1 As ColorDrawable
cd1.Initialize(Colors.RGB(213, 0, 0), 5dip)
b_motivoNoVisita.Background = cd1
B_MAPA_RUTA.Enabled = True
trabajar.Enabled = True
p_transparente2.Visible = False
ToastMessageShow("Ruta activa", False)
Else
ToastMessageShow("Contraseña equivocada", True)
End If
End If
End Sub
Private Sub r_7_CheckedChange(Checked As Boolean)
r_razonNoVisita = r_7.Text
End Sub
Private Sub r_6_CheckedChange(Checked As Boolean)
r_razonNoVisita = r_6.Text
End Sub
Private Sub r_5_CheckedChange(Checked As Boolean)
r_razonNoVisita = r_5.Text
End Sub
Private Sub r_4_CheckedChange(Checked As Boolean)
r_razonNoVisita = r_4.Text
End Sub
Private Sub r_3_CheckedChange(Checked As Boolean)
r_razonNoVisita = r_3.Text
End Sub
Private Sub r_2_CheckedChange(Checked As Boolean)
r_razonNoVisita = r_2.Text
End Sub
Private Sub r_1_CheckedChange(Checked As Boolean)
r_razonNoVisita = r_1.Text
End Sub

View File

@@ -764,12 +764,27 @@ Private Sub et_pCant_TextChanged (Old As String, New As String)
' Log($"inventario=${inv}"$)
' Dim tmpCant As String = laCant.text
If laCant.Text = "" Then laCant.Text = "0"
If laCant.Text > existencias Then
Log("======== " & Sender.As(EditText).text & "|" & laCant.text & "|" & New & "|" & existencias)
If laCant.Text > existencias Or New > existencias Then
Log(888)
Log($"Ponemos laCant en: ${existencias}"$)
' laCant.Text = ""
laCant.text = existencias
Log($">>>>> LACANT=${laCant.Text}"$)
' etCantHasFocus = True
End If
' If New < existencias Then
Log(999)
Log($"${kh.traeLimiteCredito(Subs.traeCliente)} < ${kh.totalPedido + (precio*laCant.text)}"$)
Log(kh.traeLimiteCredito(Subs.traeCliente) < (kh.totalPedido + (precio*laCant.text)))
If kh.traeLimiteCredito(Subs.traeCliente) < (kh.totalPedido + (precio*laCant.text)) Then
Log($"#######################${CRLF}#### LIMITE CREDITO SUPERADO${CRLF}#######################"$)
ToastMessageShow("LIMITE DE CREDITO SUPERADO", False)
laCant.text = 0
End If
' End If
' If Not(Old = "0" And New = "") And laCant.Text <> Null And laCant.Text <> "" And etCantHasFocus Then
Subs.actualizaProducto(almacenX, precioX, laCant.Text, nombreX, id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, Starter.tipov)
' End If
@@ -914,7 +929,7 @@ Sub b_terminar1_Click
End If
' Log(list_prodsPedido)
c_prods.Close
l_total2.Text = $"$1.2{totalPedido}"$
l_total2.Text = $"${numberformat2(kh.traeTotalCliente, 1, 2, 2, True)}"$
l_cant.Text = cantPedido
If Subs.revisaImpresa Then b_rechazar.Visible = False Else b_rechazar.Visible = True
p_vistaPrevia.Visible=True
@@ -1298,7 +1313,7 @@ Sub LlenaProdsLL(p As ResultSet, extra As String)
Dim pe As ResultSet = Starter.skmt.ExecQuery($"select PE_PROID, PE_CANT from PEDIDO where PE_CLIENTE = '${clienteId}' and PE_CEDIS = '${Subs.traeAlmacen}'"$)
'Si EXTRA es igual a rmi, entonces regresamos los RMIs existentes.
If extra = "rmi" Then pe = Starter.skmt.ExecQuery($"select PE_PROID, PE_CANT from PEDIDO where PE_CLIENTE = '${clienteId}' and PE_CEDIS = 'DUR'"$)
' LogColor("Ponemos productos de pedido anterior: "&pe.RowCount, Colors.red)
Do While pe.NextRow
Private cant As Int = 0
@@ -1334,13 +1349,13 @@ Sub LlenaProdsLL(p As ResultSet, extra As String)
Private precio As String = NumberFormat2(p.GetDouble("CAT_GP_PRECIO"),1,2,2,False)
'Descuentos de condiciones comerciales por TIPO
Private descXTipo As String = kh.traeDescXTipo(clienteId, p.GetString("CAT_GP_TIPO"))
If Starter.Logger And descXTipo > 0 Then LogColor(">>> DESCXTIPO CC - " & descXTipo & " | " & p.GetString("CAT_GP_NOMBRE"), Colors.Blue)
' If Starter.Logger And descXTipo > 0 Then LogColor(">>> DESCXTIPO CC - " & descXTipo & " | " & p.GetString("CAT_GP_NOMBRE"), Colors.Blue)
' Log($"precioAnt=${precio}, precioNew=${precio - (precio*(descXTipo/100))}"$)
precio = precio-(precio*(descXTipo/100))
'Descuentos de condiciones comerciales por SKU
Private descXSku As String = kh.traeDescXSku(clienteId, p.GetString("CAT_GP_ID"))
If Starter.Logger And descXSku > 0 Then LogColor(">>> DESCXSKU CC - " & descXSku & " | " & p.GetString("CAT_GP_NOMBRE"), Colors.red)
precio = precio-(precio*(descXSku/100))
precio = NumberFormat2((precio-(precio*(descXSku/100))), 1, 2, 2, False)
Dim tempMap As Map = CreateMap("prod":p.GetString("CAT_GP_NOMBRE"), "precio":precio, "almacen":p.GetString("CAT_GP_ALMACEN"), "abordo":invAbordo, "id":p.GetString("CAT_GP_ID"), "cant":cant, "tipo":p.GetString("CAT_GP_TIPO"))
listaProds.Add(tempMap)
Loop

View File

@@ -39,7 +39,7 @@ Private Sub B4XPage_Created (Root1 As B4XView)
label2 = ListView1.TwoLinesLayout.SecondLabel
label2.TextSize = 13
label2.TextColor = Colors.Black
ListView1.AddTwoLines(c.GetString("PC_CLIENTE"),"Cantidad #"& c.GetString("PC_NOART")& " SubTotal $"& NumberFormat2(c.GetString("PC_MONTO"), 1, 2, 2, True))
ListView1.AddTwoLines(c.GetString("PC_CLIENTE"),"Cantidad #"& c.GetString("PC_NOART")& " SubTotal $"& NumberFormat2(Subs.traeTotalCliente, 1, 2, 2, True))
Next
End If
Subs.centraEtiqueta(l_titulo, Root.Width)

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -887,7 +887,7 @@ Version=12.8
#Region Project Attributes
#ApplicationLabel: Kelloggs Venta
#VersionCode: 3000
#VersionName: 4.06.01
#VersionName: 4.06.26
#SupportedOrientations: portrait
#CanInstallToExternalStorage: False
#BridgeLogger:true

View File

@@ -63,7 +63,7 @@ ModuleBreakpoints9=
ModuleClosedNodes0=
ModuleClosedNodes1=
ModuleClosedNodes10=
ModuleClosedNodes11=9
ModuleClosedNodes11=
ModuleClosedNodes12=
ModuleClosedNodes13=
ModuleClosedNodes14=
@@ -91,6 +91,6 @@ ModuleClosedNodes6=
ModuleClosedNodes7=
ModuleClosedNodes8=
ModuleClosedNodes9=
NavigationStack=Visual Designer,login.bal,-100,6,kms_helperSubs,RD_Init,71,0,Subs,totalPedido,1565,0,Subs,hayPedido,1563,0,kms_helperSubs,ping,1146,0,kms_helperSubs,traeLimiteCredito,1156,0,kms_helperSubs,totalPedido,1159,1,C_Productos,b_prodMenos_Click,596,1,C_Productos,b_prodMas_Click,650,6,C_Productos,et_pCant_TextChanged,730,2,C_Productos,cuentaProds,812,3
NavigationStack=Subs,bitacora,1685,0,C_Principal,p_transparente2_Click,3570,0,C_Principal,b_motivoNoVisita_Click,3528,6,Visual Designer,principal.bal,-100,2,C_Principal,B4XPage_Appear,396,1,C_Principal,e_ruta_EnterPressed,2148,0,Main,Globals,24,0,Main,Process_Globals,22,0,C_Principal,b_reactivaRuta_Click,3593,6,C_Principal,b_noVisita_Click,3566,6,Subs,traeRuta,831,1
SelectedBuild=0
VisibleModules=1,28,11,3,26,23,29,12,4,13

View File

@@ -138,7 +138,7 @@ Sub MapFragment1_Ready
'''''''---------------------------- MARKER AZUL - POR VISITAR
If azul = 1 Or todos = 1 Then
c.IsInitialized
c=Starter.skmt.ExecQuery2("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 NOT IN (Select PE_CLIENTE from PEDIDO) AND CAT_CL_CODIGO NOT In (Select NV_CLIENTE from NOVENTA) AND CAT_CL_CODIGO NOT LIKE 'N%' and CAT_CL_DIAS_VISITA = (SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = 'DIA_VISITA') and cat_cl_codigo <> 0 AND CAT_CL_TIPO_RUTA IN (?,?) ORDER BY CAT_CL_NUM_SERIEFISICO", Array As String(SEMANA, "SEMANAL"))
c=Starter.skmt.ExecQuery2("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 NOT IN (Select PE_CLIENTE from PEDIDO) AND CAT_CL_CODIGO NOT In (Select NV_CLIENTE from NOVENTA) AND gestion <> '4' AND CAT_CL_CODIGO NOT LIKE 'N%' and CAT_CL_DIAS_VISITA = (SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = 'DIA_VISITA') and cat_cl_codigo <> 0 AND CAT_CL_TIPO_RUTA IN (?,?) ORDER BY CAT_CL_NUM_SERIEFISICO", Array As String(SEMANA, "SEMANAL"))
' skmt.Initialize(ruta,"kmt.db", True)
Log($"Por visitar = ${c.RowCount}"$)
If c.RowCount > 0 Then

View File

@@ -835,7 +835,7 @@ End Sub
Sub traeRuta As String 'ignore
Private c As Cursor
Private r As String
c=Starter.skmt.ExecQuery("select CAT_CL_RUTA from kmt_info where CAT_CL_CODIGO In (Select cuenta from cuentaa)")
c=Starter.skmt.ExecQuery("select CAT_CL_RUTA from kmt_info limit 1")
r = "0"
If c.RowCount > 0 Then
c.Position=0
@@ -896,23 +896,12 @@ Sub traeInvDeBD(id As String) As Int
Return inv
End Sub
'Inserta un producto en la tabla "pedido" y "pedido_cliente".
'Actualiza "cat_gunaprod" y la columna "gestion" en la tabla "kmt_info".
'Sub guardaProducto(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)
'' LogColor("guardaProducto: "&prodId&", cant="&cant, Colors.Magenta)
' Private c As Cursor
' 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_FOLIO) VALUES(?,?,?,?,?,?,?,?,?,?,?,?) ", Array As Object (cedis, (cant * costoU), costoU, cant, nombre, prodId, clienteId, fecha, usuario, rutaV, precioSin, tipoVenta))
' Starter.skmt.ExecNonQuery2("update cat_gunaprod set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? ", Array As Object(cant, prodId))
' 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
' 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, fecha, usuario, c.GetString("CANT_CLIE"), c.GetString("TOTAL_CLIE"), B4XPages.MainPage.lon_gps, B4XPages.MainPage.lat_gps, cedis, c.GetString("TOTAL_CLIE_SIN")))
' Starter.skmt.ExecNonQuery("UPDATE kmt_info set gestion = 2 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
'End Sub
'Inserta un producto en la tabla "PEDIDO"
Sub guardaProducto(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, tipoV As String, precio2 As String, query As String) 'ignore
If nombre.Length < 6 Then ToastMessageShow("(guardaProducto) El nombre del producto no es valido " & nombre, True)
precio2 = NumberFormat2(precio2, 1, 2, 2, False)
costoU = NumberFormat2(costoU, 1, 2, 2, False)
costoTot = NumberFormat2(costoTot, 1, 2, 2, False)
LogColor("guardaProducto", Colors.Magenta)
Log($"Guardamos producto ${prodId}"$)
LogColor("TIPO VENTA="&tipoV, Colors.Magenta)
@@ -926,6 +915,8 @@ End Sub
'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)
If nombre.Length < 6 Then ToastMessageShow("(guardaProductoSinGestion) El nombre del producto no es valido " & nombre, True)
precioSin = NumberFormat2(precioSin, 1, 2, 2, False)
costoU = NumberFormat2(costoU, 1, 2, 2, False)
' LogColor("guardaProductoSinGestion: "&prodId&", cant="&cant&", tipo="&tipoVenta, Colors.Magenta)
Private c As Cursor
' Private tablaProds As String = "cat_gunaprod2"
@@ -943,6 +934,10 @@ 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
If nombre.Length < 6 Then ToastMessageShow("(guardaProductoSin) El nombre del producto no es valido " & nombre, True)
precioSin = NumberFormat2(precioSin, 1, 2, 2, False)
precio2 = NumberFormat2(precio2, 1, 2, 2, False)
costoU = NumberFormat2(costoU, 1, 2, 2, False)
costoTot = NumberFormat2(costoTot, 1, 2, 2, False)
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("update " & query & " set cat_gp_almacen = cat_gp_almacen - ? where cat_gp_id = ? ", Array As Object(cant, prodId))
@@ -961,6 +956,8 @@ End Sub
Sub actualizaProducto(cedis As String, costoU As String, cant As String, nombre As String, prodId As String, clienteId As String, fecha As String, usuario As String, rutaV As String, precioSin As String, tipoVenta As String)
If nombre.Length < 6 Then ToastMessageShow("(actualizaProducto) El nombre del producto no es valido " & nombre, True)
precioSin = NumberFormat2(precioSin, 1, 2, 2, False)
costoU = NumberFormat2(costoU, 1, 2, 2, False)
LogColor($"actualizaProducto, c=${clienteId}, p=${prodId}, nombre=${nombre}, cant=${cant}, cedis=${cedis}, tipo=${tipoVenta}"$, Colors.Magenta)
' Private tablaProds As String = "cat_gunaprod2"
' If tipoVenta = "ABORDO" Then tablaProds = "cat_gunaprod"
@@ -971,7 +968,7 @@ Sub actualizaProducto(cedis As String, costoU As String, cant As String, nombre
Private antCant As Int = 0
If IsNumber(c.GetInt("PE_CANT")) Then antCant=c.GetInt("PE_CANT")
Private difCant As Int = cant - antCant
Starter.skmt.ExecNonQuery($"update pedido set pe_cant = ${cant}, pe_costo_tot = ${(cant*c.GetString("PE_COSTOU"))}, pe_tipo = '${tipoVenta}' where pe_cedis = '${cedis}' and pe_proid = '${prodId}' and pe_cliente = '${clienteId}' "$)
Starter.skmt.ExecNonQuery($"update pedido set pe_cant = ${cant}, pe_costo_tot = ${NumberFormat2((cant*c.GetString("PE_COSTOU")), 1, 2, 2, False)}, pe_tipo = '${tipoVenta}' where pe_cedis = '${cedis}' and pe_proid = '${prodId}' and pe_cliente = '${clienteId}' "$)
If cedis <> "DUR" Then Starter.skmt.ExecNonQuery($"update ${traeTablaProds(tipoVenta)} set cat_gp_almacen = cat_gp_almacen - (${difCant}) where cat_gp_id = '${prodId}' "$)
If cant = 0 Then
LogColor($"BORRAMOS PRODUCTO - ${prodId}"$, Colors.Red)
@@ -1693,6 +1690,7 @@ End Sub
'En geocerca si mete la contraseña poner 0 en precision gps y si esta dentro de los 50 mts poner 1 y 2 para eventos que no lo ocupen
'Mandar fecha de sync(sysdate)
Sub bitacora(fechab As String, usuariob As String, almacenb As String, rutab As String, eventob As String, clienteb As String, iniciob As String, finb As String, latitudb As String, longitudb As String, precision As String, motivonoventa As String, motivonovisita As String )
Log(motivonovisita)
Log("bitacora")
Private cmd As DBCommand
cmd.Initialize
@@ -1853,4 +1851,19 @@ Sub traeinventario(id As String) As Int
End If
c.Close
Return inventario
End Sub
'Regresa el TOTAL de la venta del cliente
Sub traeTotalCliente As Double
Private sumaTotal As Double
Private cursorprueba As Cursor = Starter.skmt.ExecQuery2("select PE_COSTO_TOT from pedido where PE_CEDIS <> PE_PROID and pe_cliente in (Select CUENTA from cuentaa) AND PE_CEDIS <> ?", Array As String("DOE"))
For i= 0 To cursorprueba.RowCount -1
cursorprueba.Position = i
' LogColor(cursorprueba.GetString("PE_COSTO_TOT"),Colors.Red)
sumaTotal = sumaTotal + cursorprueba.GetString("PE_COSTO_TOT")
sumaTotal = NumberFormat2(sumaTotal, 0, 2, 2, False)
' Log(NumberFormat2(sumaTotal, 0, 2, 2, False))
Next
cursorprueba.Close
Return sumaTotal
End Sub

View File

@@ -591,6 +591,11 @@ Sub centraPanel(elemento As Panel, anchoElementoSuperior As Int) 'ignore
elemento.Left = Round(anchoElementoSuperior/2)-(elemento.Width/2)
End Sub
'Centra un boton horizontalmente dentro de un elemento superior
Sub centraBoton(elemento As Button, anchoElementoSuperior As Int) 'ignore
elemento.Left = Round(anchoElementoSuperior/2)-(elemento.Width/2)
End Sub
'Centra un panel verticalmente dentro de un elemento superior
Sub centraPanelV(elemento As Panel, altoElementoSuperior As Int) 'ignore
elemento.Top = Round(altoElementoSuperior/2)-(elemento.Height/2)
@@ -1153,8 +1158,9 @@ End Sub
'Trae el limite de credito para el cliente especificado.
Sub traeLimiteCredito(idCliente As String) As Double
Private limite As Double = 10000000
Private c As ResultSet = khdb.ExecQuery($"select CAT_CL_BFACTURA from kmt_info where CAT_CL_CODIGO = '${idCliente}' and CAT_CL_BCREDITO = 0 "$)
Private c As ResultSet = khdb.ExecQuery($"select ifnull(CAT_CL_BFACTURA,10000000) as CAT_CL_BFACTURA from kmt_info where CAT_CL_CODIGO = '${idCliente}' and CAT_CL_BCREDITO = 0"$)
Do While c.NextRow
Log($"|${c.GetString("CAT_CL_BFACTURA")}|"$)
limite = c.GetString("CAT_CL_BFACTURA")
Loop
Log($"Limite: ${NumberFormat2(limite, 1, 0, 0, True)}"$)
@@ -1163,20 +1169,33 @@ End Sub
'Regresa el total del pedido en la tabla "PEDIDO" del cliente actual.
'Utiliza la columna PE_COSTO_TOT para hacer la suma.
Sub totalPedido As String 'ignore
Sub totalPedido As Long 'ignore
Private cT As Cursor = Starter.skmt.ExecQuery($"select sum(PE_COSTO_TOT) as total from PEDIDO where PE_CLIENTE = '${traeCliente}'"$)
Log($"select sum(PE_COSTO_TOT) as total from PEDIDO where PE_CLIENTE = '${traeCliente}'"$)
Private pTotal As String = "0"
' Log($"select sum(PE_COSTO_TOT) as total from PEDIDO where PE_CLIENTE = '${traeCliente}'"$)
Private pTotal As Long = 0
If cT.RowCount > 0 Then
cT.Position = 0
' Log("|"&cT.GetLong("total")&"|"&pTotal)
Private tempT As String = cT.GetLong("total")
If tempT <> "null" And tempT <> Null Then
' Log("|"&cT.GetLong("total")&"|")
Log("|"&cT.GetLong("total")&"|")
pTotal = tempT
End If
' Log($"Cliente actual=${traeCliente}, hayPedido=${hay}"$)
End If
cT.Close
Return pTotal
End Sub
'Revisa si esta activo el MOTIVO NO VISITA y regresa verdadero o falso
Sub motivoNoVisitaActivo As Boolean
Private rnv As Boolean = False
Private nv As Cursor = khdb.ExecQuery($"select ifnull(CAT_VA_VALOR, 0) as valor from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'NOVISITA_ACTIVA'"$)
Log(nv.RowCount)
If nv.RowCount > 0 Then
nv.Position = 0
Log(nv.GetString("valor"))
If nv.GetString("valor") = "1" Then rnv = True
End If
Return rnv
End Sub