- VERSION 5.08.22

- Cambios para que desde clienets y mapa aparezcan losbotones de inicio y fin venta
This commit is contained in:
2025-08-22 20:21:24 -06:00
parent 08289ecef0
commit 79897e5efd
25 changed files with 2789 additions and 1287 deletions

View File

@@ -86,7 +86,7 @@ Sub Class_Globals
Private META2 As String
Private VERIFICA As String
Private L_QR As Label
Private BT_QR As Button
dim BT_QR As Button
'Private qr As QRCode
Dim CODIGO As String
@@ -179,6 +179,16 @@ Sub Class_Globals
Private b_acept_tp As Button
Private chb_impreso As CheckBox
Dim nombrepdf As String
Private p_pidePeso As Panel
Private et_pidePeso As EditText
Private b_pidePeso As Button
Private p_transparentePidePeso As Panel
Private b_inicioFinVenta As Button
Dim dentroDeGeocerca As Boolean = False
Dim motivoNoVenta, motivoNoVisita As String
Private motivo As String
Dim precision As Int = 0
Private b_cancelaPeso As Button
End Sub
'You can add more parameters here.
@@ -199,7 +209,7 @@ Private Sub B4XPage_Created (Root1 As B4XView)
End If
skmt.Initialize(ruta,"kmt.db", True)
c = skmt.ExecQuery("select CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_MTOCOMPRA from kmt_info where CAT_CL_CODIGO In (Select cuenta from cuentaa)")
s = skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
s = skmt.ExecQuery("select ifnull(sum(pe_costo_tot),0) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
b = skmt.ExecQuery("select COUNT(*) AS CLIENTE FROM ABONOSP WHERE CLIENTE IN (Select CUENTA from cuentaa)")
b.Position = 0
Dim cabonos As String = b.GetString("CLIENTE")
@@ -234,6 +244,14 @@ Private Sub B4XPage_Created (Root1 As B4XView)
End If
c.Close
s.Close
p_tipopago.Top = 0 : p_tipopago.Left = 0
p_camara.Top = 0 : p_camara.Left = 0
p_transparentePidePeso.Left = 0 : p_transparentePidePeso.Top = 0
p_transparentePidePeso.Height = Root.Height : p_transparentePidePeso.Width = Root.Width
p_pidePeso.Top = 200dip 'p_transparentePidePeso.Height / 3
Subs.centraPanel(p_pidePeso, p_transparentePidePeso.Width)
btAdmin.Initialize("BlueTeeth")
cmp20.Initialize("Printer")
Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_CAMERA)
@@ -254,7 +272,6 @@ Private Sub B4XPage_Created (Root1 As B4XView)
' End If
' h.Close
' j.Close
End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
@@ -268,7 +285,29 @@ Sub B4XPage_Appear
p_tipopago.Height = Root.Height
p_tipopago.Width = Root.Width
banderaimp = 0
b_inicioFinVenta.Top = Tar.top
b_inicioFinVenta.Width = Root.Width - 4
b_inicioFinVenta.Left = 2
b_inicioFinVenta.Text = "INICIAR VENTA"
b_inicioFinVenta.BringToFront
Guardar.SendToBack
' LogColor(">>>>>> EN VENTA: " & Starter.enVenta, Colors.red)
If Not(Starter.enVenta) And la_cuenta.Text <> "0" Then
b_inicioFinVenta.Visible = True
' Log("EnVenta Visible")
Else
' Log("EnVenta NO Visible")
b_inicioFinVenta.Visible = False
End If
reqManager.Initialize(Me, Starter.DBReqServer)
If la_cuenta.Text = "0" Then
B4XPages.MainPage.tipo_venta = "ABORDO"
Else If la_cuenta.Text = "1" Then
B4XPages.MainPage.tipo_venta = "RECARGA"
Else
B4XPages.MainPage.tipo_venta = "PREVENTA"
End If
Starter.tabla = Subs.traeTablaProds(tipo_venta)
LA_GPS.TextColor = Colors.Red
LA_GPS.Text = "SIN UBICACION GPS"
cercavalor = 0
@@ -276,14 +315,13 @@ Sub B4XPage_Appear
ToastMessageShow("Es necesario tener el GPS encendido", True)
StartActivity(Starter.gps.LocationSettingsIntent)
End If
' Log("appear")
cb_factura.Checked = False
p_abono.Visible = False
Subs.centraPanel(p_abono, Root.Width)
Subs.centraPanel(p_credito, Root.Width)
skmt.Initialize(ruta,"kmt.db", True)
c=B4XPages.MainPage.skmt.ExecQuery("select CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO from kmt_info where CAT_CL_CODIGO In (Select cuenta from cuentaa) UNION ALL select CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO from kmt_info2 where CAT_CL_CODIGO In (Select cuenta from cuentaa)")
s=B4XPages.MainPage.skmt.ExecQuery("Select SUM(PE_COSTO_TOT) As TOTAL_CLIE, SUM(PE_CANT) As CANT_CLIE, PC_FACTURA FROM PEDIDO_CLIENTE INNER JOIN PEDIDO ON PEDIDO_CLIENTE.PC_CLIENTE = PEDIDO.PE_CLIENTE WHERE (PE_CLIENTE IN (Select cuenta from cuentaa))")
s=B4XPages.MainPage.skmt.ExecQuery("Select ifnull(SUM(PE_COSTO_TOT),0) As TOTAL_CLIE, SUM(PE_CANT) As CANT_CLIE, PC_FACTURA FROM PEDIDO_CLIENTE INNER JOIN PEDIDO ON PEDIDO_CLIENTE.PC_CLIENTE = PEDIDO.PE_CLIENTE WHERE (PE_CLIENTE IN (Select cuenta from cuentaa))")
b = B4XPages.MainPage.skmt.ExecQuery("select COUNT(*) AS CLIENTE FROM ABONOSP WHERE CLIENTE IN (Select CUENTA from cuentaa)")
b.Position = 0
Dim cabonos As String = b.GetString("CLIENTE")
@@ -292,7 +330,6 @@ Sub B4XPage_Appear
Else
b_cxc.Visible = True
End If
If la_cuenta.Text = "0" Or la_cuenta.Text = "1" Then
p_cbFactura.Visible = False
l_factura.Visible = False
@@ -303,7 +340,9 @@ Sub B4XPage_Appear
b_ventaabordo.Visible = False
End If
chb_impreso.Checked = False
s.Position=0
m_lat = "0"
m_lon = "0"
s.Position = 0
If c.RowCount > 0 Then
c.Position=0
la_cuenta.Text = c.GetString("CAT_CL_CODIGO")
@@ -321,11 +360,9 @@ Sub B4XPage_Appear
Private factura As String = 0
If s.GetString("PC_FACTURA") <> Null And IsNumber(s.GetString("PC_FACTURA")) Then factura = s.GetString("PC_FACTURA")
If factura = "1" Then cb_factura.Checked = True
m_lat = "0"
If c.GetString("CAT_CL_LAT") <> "" Then m_lat =c.GetString("CAT_CL_LAT")
If c.GetString("CAT_CL_LAT") <> "" Then m_lat = c.GetString("CAT_CL_LAT")
If m_lat.Length < 5 Then m_lat = "0"
m_lon = "0"
If c.GetString("CAT_CL_LONG") <> "" Then m_lon =c.GetString("CAT_CL_LONG")
If c.GetString("CAT_CL_LONG") <> "" Then m_lon = c.GetString("CAT_CL_LONG")
If m_lon.Length < 5 Then m_lon = "0"
LA_RUTA = c.GetString("CAT_CL_RUTA")
' ESTO ES PARA FORZAR A PEDIR LA FOTO Y EL GPS
@@ -354,7 +391,6 @@ Sub B4XPage_Appear
Else
MONTO_COMPRA = "0"
End If
la_saldotot.Text = MONTO_COMPRA
If MONTO_COMPRA <> "0" Then
META2 = 300 - MONTO_COMPRA
@@ -371,35 +407,6 @@ Sub B4XPage_Appear
ALMACEN = C.GetString("ID_ALMACEN")
End If
c.Close
' If ALMACEN = "1" Then
' Tels.Visible = False
' gest.Visible = False
'' B_GPS.Visible = False
' End If
If ALMACEN = "4" Then
' b_like.Visible = True
DD=B4XPages.MainPage.skmt.ExecQuery2("SELECT COUNT(*) AS CUANTOS FROM HIST_VENTAS WHERE HVD_CLIENTE IN (Select cuenta from cuentaa) AND HVD_PRONOMBRE =?", Array As String("KNORR RINDE MAS 70 GR"))
DD.Position =0
If DD.GetString("CUANTOS") = 0 Then
c=B4XPages.MainPage.skmt.ExecQuery2("SELECT COUNT(*) AS CUANTOS FROM PEDIDO WHERE PE_CLIENTE IN (Select cuenta from cuentaa) AND PE_PRONOMBRE =?", Array As String("KNORR RINDE MAS 70 GR"))
c.Position =0
' If c.GetString("CUANTOS") = 0 Then
' b_like.Visible = True
' Else
' b_like.Visible = False
' End If
c.Close
Else
' b_like.Visible = False
End If
DD.Close
Else
' b_like.Visible = False
End If
' If ALMACEN = "16" Or ALMACEN = "13" Then
' Tels.Visible = True
' gest.Visible = True
' End If
CallSubDelayed(Tracker, "Track")
CallSubDelayed(Tracker, "StartFLPSmall")
If Tracker.FLP.IsInitialized And Tracker.FLP.GetLastKnownLocation.IsInitialized Then 'Si tenemos "UltimaUbicaccionConocida" la usamos.
@@ -408,31 +415,6 @@ Sub B4XPage_Appear
' Log($"Tenemos UUC: ${Tracker.FLP.GetLastKnownLocation.Latitude},${Tracker.FLP.GetLastKnownLocation.Longitude}"$)
GPS_LocationChanged(Tracker.FLP.GetLastKnownLocation)
End If
' Tels.Visible = True
' gest.Visible = True
' h = B4XPages.MainPage.skmt.ExecQuery("SELECT CUENTA from CUENTAA")
' h.Position = 0
' Log(h.GetString("CUENTA"))
' j = B4XPages.MainPage.skmt.ExecQuery2("SELECT a_abono AS CUANTOS FROM ABONOS WHERE a_cliente = ?", Array As String(h.GetString("CUENTA")))
' j.position = 0
' Log(j.RowCount)
' If j.RowCount = 0 Then
' b_cxc.Enabled = True
' Else If j.RowCount > 0 Then
' b_cxc.Enabled = False
' End If
' h.Close
' j.Close
'
' Tels.Visible = False
' gest.Visible = False
' b_ventaabordo.Visible = False
c = skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("MACIMP"))
If c.RowCount > 0 Then
c.Position = 0
@@ -441,7 +423,6 @@ Sub B4XPage_Appear
If Starter.MAC_IMPRESORA = "" Then Starter.MAC_IMPRESORA = "0"
' Log("|" & Starter.MAC_IMPRESORA & "|")
Printer1.Initialize(Me, "Printer1")
If Printer1.IsConnected = False Then
' Printer1.Connect
' Log("1")
@@ -450,13 +431,7 @@ Sub B4XPage_Appear
Printer1.Connect
Log("2")
End If
pre_act = Subs.traeTotalClientepreventaparacredito
'SELECT CAT_CL_BCREDITO, CAT_CL_CODIGO, Ifnull(SALDO_PENDIENTE,0) FROM KMT_INFO INNER JOIN ABONOSP ON CAT_CL_CODIGO = CLIENTE WHERE CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA)
Private credi2 As Cursor = B4XPages.MainPage.skmt.ExecQuery("SELECT CAT_CL_BCREDITO, CAT_CL_CODIGO, Ifnull(SALDO_PENDIENTE,0) As SALDO_PENDIENTE FROM KMT_INFO INNER JOIN ABONOSP ON CAT_CL_CODIGO = CLIENTE WHERE CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA) UNION SELECT CAT_CL_BCREDITO, CAT_CL_CODIGO, Ifnull(SALDO_PENDIENTE,0) As SALDO_PENDIENTE FROM KMT_INFO2 INNER JOIN ABONOSP ON CAT_CL_CODIGO = CLIENTE WHERE CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA)")
If credi2.RowCount > 0 Then
credi2.Position = 0
@@ -496,15 +471,16 @@ Sub B4XPage_Appear
gest.Text = "Recarga"
B4XPages.MainPage.recarga = "1"
Else
gest.Text = "Pre-venta"
gest.Text = "Venta"
B4XPages.MainPage.recarga = "0"
End If
LogColor(B4XPages.MainPage.recarga,Colors.Blue)
p_transparentePidePeso.Visible = False
If camEx.IsInitialized Then
camEx.Release
End If
InitializeCamera
if venimosDeTicketsDia then Subs.bitacora(Subs.fechanormal(DateTime.Now), usuario, ALMACEN, Subs.traeRuta, "Cliente desde TicketsDia", "", Subs.fechanormal(DateTime.Now), Subs.fechanormal(DateTime.Now), Starter.lat_gps, Starter.lon_gps, "2", "", "", $"Cliente:${la_cuenta.text}"$)
End Sub
Sub GPS_LocationChanged (Location1 As Location)
@@ -514,12 +490,12 @@ Sub GPS_LocationChanged (Location1 As Location)
B4XPages.MainPage.lon_gps = Tracker.FLP.GetLastKnownLocation.Longitude
' Log("Coords set to: " & B4XPages.MainPage.lat_gps & " and " & B4XPages.MainPage.lon_gps)
End If
' ToastMessageShow(B4XPages.MainPage.lat_gps,False)
Dim l1, l2 As Location
l1.Initialize2(B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps)
' Log($"Coordenadas de la tienda - lat:${m_lat}, lon:${m_lon}"$)
If Not(IsNumber(m_lat)) Then m_lat = 0
If Not(IsNumber(m_lon)) Then m_lon = 0
Log($"Coordenadas de la tienda - lat:${m_lat}, lon:${m_lon}"$)
l2.Initialize2(m_lat, m_lon)
BT_QR.Enabled = True
@@ -527,13 +503,13 @@ Sub GPS_LocationChanged (Location1 As Location)
LA_GPS.Text = "CON UBICACION GPS"
' B_GPS.Enabled = True
'now we need the distance between our location and the target location
distance = l1.DistanceTo(l2) 'the result is in meter
distance = l1.DistanceTo(l2) 'the result is in meter
' gest.Visible = True
If distance < 100000000000000000000000000000000 Then
LA_GEO.TextColor = Colors.Blue
Tels.Visible = True
' Tels.Visible = True
gest.Visible = True
b_ventaabordo.Visible = True
' b_ventaabordo.Visible = True
Else
Tels.Visible = False
gest.Visible = False
@@ -551,7 +527,6 @@ Sub ListView1_ItemLongClick (Position As Int, Value As Object)
End Sub
Sub gest_Click
c = Starter.skmt.ExecQuery("SELECT * FROM FOTOINICIAL")
If c.RowCount = 0 Then
p_camara.Visible = True
@@ -559,14 +534,8 @@ Sub gest_Click
Subs.panelVisible(p_camara, 0, 0)
b_foto_inci.Text = "Foto tienda"
Else
If la_cuenta.Text = "0" Then
B4XPages.MainPage.tipo_venta = "ABORDO"
Else If la_cuenta.Text = "1" Then
B4XPages.MainPage.tipo_venta = "RECARGA"
Else
B4XPages.MainPage.tipo_venta = "PREVENTA"
End If
Log(1)
p_transparentePidePeso.Visible = True
'Buscamos en el historial de cuestionarios si el cliente ya tiene cuestionario contestado.
' Private hc As Cursor = Starter.skmt.ExecQuery($"select count(HC_CLIENTE) as cuantos from HIST_CUESTIONARIO where HC_CLIENTE = '${Subs.traeCliente}'"$)
@@ -597,7 +566,7 @@ Sub gest_Click
' End If
'Si hay mapa de productos es que hay venta en proceso, entonces borramos la actual para meter la nueva.
' If B4XPages.MainPage.productos.prodsMap.IsInitialized And B4XPages.MainPage.productos.prodsMap.Size > 0 Then Subs.borraPedidoClienteActual
B4XPages.ShowPage("productos")
' B4XPages.ShowPage("productos")
End If
End Sub
@@ -608,8 +577,15 @@ End Sub
Private Sub B4XPage_CloseRequest As ResumableSub
' BACK key pressed
' Return True To close, False To cancel
' Log($"venimosDeTicketsDia=${venimosDeTicketsDia}"$)
If Starter.pre_viejo = pre_act Then
If l_total.Text = 0 And Starter.enVenta = False Then
Log(4)
Return True
else If p_transparentePidePeso.Visible Then
Log(3)
p_transparentePidePeso.Visible = False
else If Starter.pre_viejo = pre_act And l_total.Text > 0 And Starter.enVenta = False Then
Log(2)
If (la_cuenta.Text <> "0" And la_cuenta.Text <> "1") Then
If banderaimp = 1 Then
Else
@@ -622,7 +598,6 @@ Private Sub B4XPage_CloseRequest As ResumableSub
Log("Borrra venta")
Subs.borraPedidoClienteActual
ToastMessageShow("Venta Borrada", False)
' venimosDeTicketsDia = False
B4XPages.ShowPage("Principal")
else if resultado1=DialogResponse.CANCEL Then
Log("Pedido guardado")
@@ -630,20 +605,16 @@ Private Sub B4XPage_CloseRequest As ResumableSub
ToastMessageShow("Venta Guardada", False)
End If
End If
' venimosDeTicketsDia = False
B4XPages.ShowPage("Clientes")
B4XPages.ShowPage("Clientes")
End If
' Else If la_cuenta.Text = "1" Then
' If B4XPages.MainPage.recarga = "1" Then
' B4XPages.ShowPage("login")
' End If
Else
End If
Else
If B4XPages.MainPage.recarga = "1" Then
B4XPages.ShowPage("login")
End If
Else If B4XPages.MainPage.recarga = "1" Then
Log(1)
B4XPages.ShowPage("login")
Else
Log(5)
Msgbox("Presione Guardar y Terminar Venta para continuar","Aviso") 'ignore
End If
' Return True
Return False
@@ -662,7 +633,6 @@ Sub DATOS_Click
End Sub
Sub Guardar_Click
c = B4XPages.MainPage.skmt.ExecQuery2("SELECT COUNT(*) AS CUANTOS FROM PEDIDO WHERE PE_CLIENTE IN (SELECT CUENTA FROM CUENTAA) and PE_FOLIO = ?", Array As String("PREVENTA"))
c.Position = 0
If c.GetString("CUANTOS") > 0 Then
@@ -672,12 +642,7 @@ Sub Guardar_Click
If Credi.RowCount > 0 Then
Credi.Position = 0
If Credi.GetString("CAT_CL_BCREDITO") = "1" Then
If pre_act <> Starter.pre_viejo Then
Msgbox2Async("La venta es a credito?", "ATENCION","SI","", "NO",LoadBitmap(File.DirAssets,"alert2.png"), False)
Wait For Msgbox_Result (resultado As Int)
If resultado = DialogResponse.POSITIVE Then
@@ -695,12 +660,9 @@ Sub Guardar_Click
Else
GuardaVenta
End If
Else If pre_act = Starter.pre_viejo Then
GuardaVenta
End If
Else If Credi.GetString("CAT_CL_BCREDITO") = "0" Then
GuardaVenta
End If
@@ -710,7 +672,6 @@ Sub Guardar_Click
credi2.Position = 0
If credi2.GetString ("CAT_CL_BCREDITO") = "1" And credi2.GetString ("a_abono")=credi2.GetString ("SALDO_PENDIENTE") Then
If pre_act <> Starter.pre_viejo Then
Msgbox2Async("La venta es a credito?", "ATENCION","SI","", "NO",LoadBitmap(File.DirAssets,"alert2.png"), False)
Wait For Msgbox_Result (resultado As Int)
If resultado = DialogResponse.POSITIVE Then
@@ -728,7 +689,6 @@ Sub Guardar_Click
Else
GuardaVenta
End If
Else If pre_act = Starter.pre_viejo Then
GuardaVenta
End If
@@ -808,6 +768,10 @@ Private Sub b_cancred_Click
End Sub
Sub GuardaVenta
Log("GuardaVenta")
pre_act = Starter.pre_viejo ' ################ NOS BRINCAMOS EL "PRE"
If pre_act <> Starter.pre_viejo Then
p_tipopago.Visible = True
rb_efectivo.Checked = False
@@ -825,13 +789,15 @@ Sub GuardaVenta
' HIST.Enabled = False
' banderaimp = 1
Else If pre_act = Starter.pre_viejo Then
GUADAVENTA2
GuardaVenta2
End If
End Sub
Sub GUADAVENTA2
Sub GuardaVenta2
Log("GuardaVenta2")
Log(B4XPages.MainPage.recarga)
If B4XPages.MainPage.recarga = "0" Then
Log("Recarga 0")
DateTime.DateFormat = "MM/dd/yyyy"
sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now)
@@ -861,7 +827,7 @@ Sub GUADAVENTA2
B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE HIST_STAY_STORE set HSS_OUT = ? where HSS_OUT = 0 AND HSS_CODIGO In (select cuenta from cuentaa)", Array As Object(sTime))
' B4XPages.MainPage.skmt.ExecNonQuery("UPDATE HIST_STAY_STORE set HSS_TOT = HSS_OUT - HSS_IN where HSS_CODIGO In (select cuenta from cuentaa)")
Try
c=B4XPages.MainPage.skmt.ExecQuery(" Select (substr(HSS_OUT,1,2) - substr(HSS_IN,1,2)) - Case when (substr(HSS_OUT,3,2) - substr(HSS_IN,3,2)) < 0 Then 1 Else 0 end HORAS_TOTALES, " & _
c=B4XPages.MainPage.skmt.ExecQuery("Select (substr(HSS_OUT,1,2) - substr(HSS_IN,1,2)) - Case when (substr(HSS_OUT,3,2) - substr(HSS_IN,3,2)) < 0 Then 1 Else 0 end HORAS_TOTALES, " & _
"Case when (substr(HSS_OUT,3,2) - substr(HSS_IN,3,2)) < 0 Then (substr(HSS_OUT,3,2) + 60 - substr(HSS_IN,3,2)) " & _
" Else (substr(HSS_OUT,3,2) - substr(HSS_IN,3,2)) End - Case when (substr(HSS_OUT,5,2) - substr(HSS_IN,5,2)) < 0 Then 1 Else 0 end MINUTOS_TOTALES, " & _
"Case when (substr(HSS_OUT,5,2) - substr(HSS_IN,5,2)) < 0 Then (substr(HSS_OUT,5,2) + 60 - substr(HSS_IN,5,2)) " & _
@@ -877,12 +843,10 @@ Sub GUADAVENTA2
Catch
ToastMessageShow(".",True)
End Try
skmt.ExecNonQuery2("update PEDIDO_INICIO_FINAL set PIF_HORA_FINAL = ? where PIF_CLIENTE = ? and PIF_HORA_FINAL = 0", Array As Object (DateTime.Now, la_cuenta.Text))
' LogColor($"actualizamos "${la_cuenta.text}, hora_final=${DateTime.now}"$,Colors.Red)
Subs.actualizaTET(la_cuenta.text)
DateTime.TimeFormat = "HH:mm:ss"
mandaPendientes 'LO COMENTAMOS PARA PRUEBAS, ACTIVAR AL FINAL!!!
mandapiezas
B4XPages.MainPage.productos.reiniciarlistaProds = True
@@ -896,8 +860,22 @@ Sub GUADAVENTA2
b_ventaabordo.Enabled = True
HIST.Enabled = True
banderaimp = 0
B4XPages.ShowPage("Principal")
b_inicioFinVenta.Text = "TERMINAR VENTA"
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.BringToFront
Guardar.SendToBack
Else
b_inicioFinVenta.Visible = False
Starter.enVenta = False
Subs.enVenta(0, "")
LogColor(">>>>>> ABORDO: " & Starter.enVenta, Colors.red)
Subs.bitacora(Subs.fechanormal(DateTime.Now), usuario, ALMACEN, Subs.traeRuta, "Venta Abordo", "0", Subs.fechanormal(DateTime.Now), Subs.fechanormal(DateTime.Now), Starter.lat_gps, Starter.lon_gps, precision, "", "", "")
B4XPages.ShowPageAndRemovePreviousPages("Principal")
End If
Else If B4XPages.MainPage.recarga = "1" Then
Log("Recarga 1")
DateTime.DateFormat = "MM/dd/yyyy"
sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now)
@@ -924,30 +902,10 @@ Sub GUADAVENTA2
DateTime.TimeFormat = "HHmmss"
sTime=DateTime.Time(DateTime.Now)
B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE HIST_STAY_STORE set HSS_OUT = ? where HSS_OUT = 0 AND HSS_CODIGO In (select cuenta from cuentaa)", Array As Object(sTime))
' B4XPages.MainPage.skmt.ExecNonQuery("UPDATE HIST_STAY_STORE set HSS_TOT = HSS_OUT - HSS_IN where HSS_CODIGO In (select cuenta from cuentaa)")
' Try
' c=B4XPages.MainPage.skmt.ExecQuery(" Select (substr(HSS_OUT,1,2) - substr(HSS_IN,1,2)) - Case when (substr(HSS_OUT,3,2) - substr(HSS_IN,3,2)) < 0 Then 1 Else 0 end HORAS_TOTALES, " & _
' "Case when (substr(HSS_OUT,3,2) - substr(HSS_IN,3,2)) < 0 Then (substr(HSS_OUT,3,2) + 60 - substr(HSS_IN,3,2)) " & _
' " Else (substr(HSS_OUT,3,2) - substr(HSS_IN,3,2)) End - Case when (substr(HSS_OUT,5,2) - substr(HSS_IN,5,2)) < 0 Then 1 Else 0 end MINUTOS_TOTALES, " & _
' "Case when (substr(HSS_OUT,5,2) - substr(HSS_IN,5,2)) < 0 Then (substr(HSS_OUT,5,2) + 60 - substr(HSS_IN,5,2)) " & _
' " Else (substr(HSS_OUT,5,2) - substr(HSS_IN,5,2)) end SEGUNDOS_TOTALES " & _
' " from HIST_STAY_STORE where HSS_CODIGO In (Select cuenta from cuentaa) ")
' c.Position = 0
' stay_hh = c.GetString("HORAS_TOTALES") * 60 * 60
' stay_mi = c.GetString("MINUTOS_TOTALES") * 60
' stay_ss = c.GetString("SEGUNDOS_TOTALES")
' B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE HIST_STAY_STORE set HSS_TOT = ? where HSS_CODIGO In (select cuenta from cuentaa)", Array As Object(stay_hh + stay_mi + stay_ss))
' B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE HIST_STAY_OUT set HSO_FIN = ? ", Array As Object(sTime))
' c.Close
' Catch
' ToastMessageShow(".",True)
' End Try
skmt.ExecNonQuery2("update PEDIDO_INICIO_FINAL set PIF_HORA_FINAL = ? where PIF_CLIENTE = ? and PIF_HORA_FINAL = 0", Array As Object (DateTime.Now, la_cuenta.Text))
' LogColor($"actualizamos "${la_cuenta.text}, hora_final=${DateTime.now}"$,Colors.Red)
Subs.actualizaTET(la_cuenta.text)
DateTime.TimeFormat = "HH:mm:ss"
' mandaPendientes 'LO COMENTAMOS PARA PRUEBAS, ACTIVAR AL FINAL!!!
' mandapiezas
mandaPendientesrecarga
@@ -1335,14 +1293,14 @@ Sub imprime_preventa
If resultado = DialogResponse.POSITIVE Then
B_IMP_Click
Else
GUADAVENTA2
GuardaVenta2
End If
' printer.Flush
' printer.Close
End Sub
Private Sub Label20_LongClick
Private Sub l_ticketCorreo_LongClick
xui.SetDataFolder("B4Xpdf")
File.Copy(File.DirAssets,"intmex_logo_192x192.jpg",xui.DefaultFolder,"intmex_logo_192x192.jpg")
File.Copy(File.DirAssets,"mariana1.jpg",xui.DefaultFolder,"mariana1.jpg")
@@ -1526,9 +1484,7 @@ Private Sub Label20_LongClick
openPDF(sDate&sTime&".pdf")
End Sub
Private Sub PDFGENERAR
Private Sub PDFGenerar
ESPACIO = 0
DateTime.DateFormat = "MM/dd/yyyy"
DateTime.TimeFormat = "HH:mm:ss"
@@ -1537,32 +1493,24 @@ Private Sub PDFGENERAR
Dim PDF As cPDF
'initialize with mm unit
PDF.Initialize("mm")
'set properties
PDF.sProperty(PDF.PropertyAuthor,"Keymonsoft"). _
sProperty(PDF.PropertyTitle,"Ticket"). _
sProperty(PDF.PropertyKeywords,"B4X,PDF,Cross platform")
'add a page
Dim s56 As Cursor=skmt.ExecQuery2("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU,PE_CANT * PE_COSTOU AS PE_COSTO_TOT, length(PE_CANT * PE_COSTOU) as L_COSTO_TOT,PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_FOLIO = ? AND LENGTH(PE_CEDIS) < 4 AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_PROID", Array As String("PREVENTA"))
Dim s57 As Cursor = skmt.ExecQuery2("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU,PE_CANT * PE_COSTOU AS PE_COSTO_TOT, length(PE_CANT * PE_COSTOU) as L_COSTO_TOT,PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_FOLIO = ? AND LENGTH(PE_CEDIS) > 3 AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_CEDIS, PE_COSTOU", Array As String("PREVENTA"))
Dim pagina As Double = ((18 + (s56.RowCount*2) + (s57.RowCount*2)) * (6)) + 18
' Dim pagina As Double = ((18 + s56.RowCount + s57.RowCount +2) * (6)) + 18
Dim multiplicador As Int = 0
PDF.pageAdd(-300,pagina)
' pdf.pageAdd(-350,-1900)
PDF.sFont(PDF.fontHelvetica,0,10,PDF.colorBlack)
PDF.outImage(xui.DefaultFolder,"mariana1.jpg",1,pagina-55,70,0)
multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6,"ADM Distribuciones")
multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6,sDate& " " & sTime)
multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6,"Vendedor:" & Subs.traeUsuarioDeBD)
@@ -1583,18 +1531,14 @@ Private Sub PDFGENERAR
multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6," ")
c = skmt.ExecQuery2("SELECT * FROM PEDIDO WHERE PE_FOLIO = ?",Array As String("PREVENTA"))
If c.RowCount > 0 Then
multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6,"------------------------------------PREVENTA-----------------------------------------")
multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6,"Cant. Precio Importe")
multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6,"-----------------------------------------------------------------------------------------")
s=skmt.ExecQuery2("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU,PE_CANT * PE_COSTOU AS PE_COSTO_TOT, length(PE_CANT * PE_COSTOU) as L_COSTO_TOT,PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_FOLIO = ? AND LENGTH(PE_CEDIS) < 4 AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_PROID", Array As String("PREVENTA"))
If S.RowCount>0 Then
For i=0 To S.RowCount -1
@@ -1602,7 +1546,6 @@ Private Sub PDFGENERAR
If s.GetString("PE_CEDIS") = s.GetString("PE_PROID") Then
multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6,s.GetString("PE_PRONOMBRE") )
Else
PDF.sFont(PDF.fontHelvetica,0,7,PDF.colorBlack)
multiplicador = multiplicador +1
@@ -1610,7 +1553,6 @@ Private Sub PDFGENERAR
LogColor(s.GetLong("L_CANT"),Colors.Magenta)
LogColor(s.GetLong("L_COSTOU"),Colors.Magenta)
LogColor(s.GetLong("L_COSTO_TOT"),Colors.Magenta)
TAMANO = s.GetLong("L_CANT") + s.GetLong("L_COSTOU") + s.GetLong("L_COSTO_TOT")
ESPACIO = 92
BLANCO = " "
@@ -1622,16 +1564,11 @@ Private Sub PDFGENERAR
PDF.sFont(PDF.fontHelvetica,0,10,PDF.colorBlack)
multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6, s.GETSTRING("PE_CANT") & BLANCO & s.GETSTRING("PE_COSTOU") & BLANCO & s.GETSTRING("PE_COSTO_TOT"))
' pdf.outtext(1,108-9*6,s.GETSTRING("PE_COSTOU"))
'
' pdf.outtext(1,108-9*6,s.GETSTRING("PE_COSTOU")
' pdf.outtext(1,108-9*6,s.GETSTRING("PE_COSTO_TOT") )
End If
Next
End If
s.Close
PDF.outtext(1,108-9*6," " )
s=skmt.ExecQuery2("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU,PE_CANT * PE_COSTOU AS PE_COSTO_TOT, length(PE_CANT * PE_COSTOU) as L_COSTO_TOT,PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_FOLIO = ? AND LENGTH(PE_CEDIS) > 3 AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_CEDIS, PE_COSTOU", Array As String("PREVENTA"))
@@ -1647,16 +1584,13 @@ Private Sub PDFGENERAR
If s.GetString("PE_CEDIS") = s.GetString("PE_PROID") Then
multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6,s.GetString("PE_PRONOMBRE") )
Else
PDF.sFont(PDF.fontHelvetica,0,7,PDF.colorBlack)
multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6,s.GetString("PE_PRONOMBRE"))
LogColor(s.GetLong("L_CANT"),Colors.Magenta)
LogColor(s.GetLong("L_COSTOU"),Colors.Magenta)
LogColor(s.GetLong("L_COSTO_TOT"),Colors.Magenta)
TAMANO = s.GetLong("L_CANT") + s.GetLong("L_COSTOU") + s.GetLong("L_COSTO_TOT")
ESPACIO = 92
BLANCO = " "
@@ -1668,12 +1602,10 @@ Private Sub PDFGENERAR
PDF.sFont(PDF.fontHelvetica,0,10,PDF.colorBlack)
multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6, s.GETSTRING("PE_CANT") & BLANCO & s.GETSTRING("PE_COSTOU") & BLANCO & s.GETSTRING("PE_COSTO_TOT"))
End If
Next
End If
s.Close
' multiplicador = multiplicador +1
' pdf.outtext(1,pagina-multiplicador*6," " )
multiplicador = multiplicador +1
@@ -1709,8 +1641,7 @@ Private Sub PDFGENERAR
PDF.outtext(1,pagina-multiplicador*6," " )
multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6," " )
' 'all combinations of font normal, bold,italic,underline and strikethrough
' For i=0 To 15
' 'select a font
@@ -1730,7 +1661,7 @@ Private Sub PDFGENERAR
openPDF(sDate&sTime&".pdf")
End If
nombrepdf =sDate&sTime&".pdf"
GUADAVENTA2
GuardaVenta2
End Sub
private Sub savePDF(apdf As cPDF,afile As String,acompress As Int)
@@ -1745,7 +1676,6 @@ private Sub savePDF(apdf As cPDF,afile As String,acompress As Int)
' '......
' #End If
' apdf.saveToFile(folder,afile,acompress)
Dim folder As String
#if B4J
folder = xui.DefaultFolder
@@ -1756,10 +1686,8 @@ private Sub savePDF(apdf As cPDF,afile As String,acompress As Int)
#if B4I
folder = File.DirDocuments
#End If
' Guardar el PDF
apdf.saveToFile(folder, afile, acompress)
' Mostrar mensaje de éxito
Log($"PDF guardado en: ${File.Combine(folder, afile)}"$)
End Sub
@@ -1781,7 +1709,6 @@ private Sub openPDF(afile As String)
#End If
End Sub
Sub imprime_venta
c=skmt.ExecQuery("select USUARIO from usuarioa")
c.Position=0
@@ -2034,7 +1961,7 @@ Sub imprime_venta
If resultado = DialogResponse.POSITIVE Then
B_IMP_Click
Else
GUADAVENTA2
GuardaVenta2
End If
End If
@@ -2858,9 +2785,7 @@ End Sub
Sub Camera1_PictureTaken (Data() As Byte)
If b_foto_inci.Text = "Foto tienda" Then
DateTime.DateFormat="ddMMyyyyHHmmss"
fototomada = DateTime.Now & "_cliente.jpg"
Dim filename As String = fototomada
@@ -2868,7 +2793,6 @@ Sub Camera1_PictureTaken (Data() As Byte)
camEx.SavePictureToFile(Data, dir, filename)
camEx.StartPreview 'restart preview
ToastMessageShow("Picture saved." & CRLF & "File size: " & File.Size(dir, filename), True)
Dim Dirp As String = File.DirInternal
Dim dir As String
Dim Dir2 As String
@@ -2880,7 +2804,6 @@ Sub Camera1_PictureTaken (Data() As Byte)
dir = ""
Log("creado en raiz")
End Try
Try
File.MakeDir(Dirp & dir,"/reduccion")
Dir2 = "/reduccion"
@@ -2889,12 +2812,10 @@ Sub Camera1_PictureTaken (Data() As Byte)
dir = ""
Log("creado en raiz")
End Try
DateTime.DateFormat = "MM/dd/yyyy"
DateTime.TimeFormat = "HH:mm:ss"
sDate = DateTime.Date(DateTime.Now)
sTime = DateTime.Time(DateTime.Now)
camEx.SavePictureToFile(Data, Dirp&dir, filename)
camEx.StartPreview 'restart preview
ToastMessageShow("Picture saved." & CRLF & "File size: " & File.Size(dir, filename) & dir &"," & filename, True)
@@ -2916,7 +2837,6 @@ Sub Camera1_PictureTaken (Data() As Byte)
camEx.SavePictureToFile(Data, dir, filename)
camEx.StartPreview 'restart preview
ToastMessageShow("Picture saved." & CRLF & "File size: " & File.Size(dir, filename), True)
Dim Dirp As String = File.DirInternal
Dim dir As String
Dim Dir2 As String
@@ -2928,7 +2848,6 @@ Sub Camera1_PictureTaken (Data() As Byte)
dir = ""
Log("creado en raiz")
End Try
Try
File.MakeDir(Dirp & dir,"/reduccion")
Dir2 = "/reduccion"
@@ -2937,23 +2856,18 @@ Sub Camera1_PictureTaken (Data() As Byte)
dir = ""
Log("creado en raiz")
End Try
DateTime.DateFormat = "MM/dd/yyyy"
DateTime.TimeFormat = "HH:mm:ss"
sDate = DateTime.Date(DateTime.Now)
sTime = DateTime.Time(DateTime.Now)
camEx.SavePictureToFile(Data, Dirp&dir, filename)
camEx.StartPreview 'restart preview
ToastMessageShow("Picture saved." & CRLF & "File size: " & File.Size(dir, filename) & dir &"," & filename, True)
Log("Picture saved." & CRLF & "File size: " & File.Size(dir, filename) & dir &"," & filename)
Dim img As B4XBitmap = xui.LoadBitmapResize(File.DirInternal & dir, filename, 450, 600, True)
Dim out As OutputStream = File.OpenOutput(File.DirInternal & dir & Dir2, filename, False)
img.WriteToStream(out, 100, "PNG")
out.Close
B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE FOTOINICIAL set FOTO2 = ? where USUARIO = ? and RUTAA = ? and ALMACEN = ? ", Array As Object (File.ReadBytes(File.DirInternal & dir & Dir2, fototomada), Subs.traeUsuarioDeBD,LA_RUTA, ALMACEN ))
b_foto_inci.Text = "Foto tienda"
ChangeCamera_Click
@@ -2966,9 +2880,9 @@ Sub Camera1_PictureTaken (Data() As Byte)
Else
B4XPages.MainPage.tipo_venta = "PREVENTA"
End If
B4XPages.ShowPage("productos")
' B4XPages.ShowPage("productos")
p_transparentePidePeso.Visible = True
End If
End Sub
@@ -3137,10 +3051,8 @@ End Sub
' End If
'End Sub
Private Sub b_acept_tp_Click
If rb_efectivo.Checked Or rb_tranfe.Checked Or rb_tarjetacredito.Checked Or rb_tarjetadebito.Checked Then
Dim metopago As String
If rb_efectivo.Checked Then
metopago = "EFECTIVO"
@@ -3151,7 +3063,6 @@ Private Sub b_acept_tp_Click
Else If rb_tarjetacredito.Checked Then
metopago = "TARJETA DE CREDITO"
End If
Guardar.Enabled = True
gest.Enabled = True
b_cxc.Enabled = True
@@ -3160,18 +3071,14 @@ Private Sub b_acept_tp_Click
b_ventaabordo.Enabled = True
HIST.Enabled = True
banderaimp = 1
If chb_impreso.Checked Then
' Guardar en BD que se enviará por correo
B4XPages.MainPage.skmt.ExecNonQuery2("update PEDIDO set PE_TIPOPAGO = ?, PE_COMENTARIO = ?, PE_TICKET = ? where PE_CLIENTE IN (SELECT CUENTA FROM CUENTAA) ", _
Array As String(metopago, et_com_tp.Text, "CORREO"))
' Generar el PDF primero
PDFGENERAR
PDFGenerar
' Esperar un momento para que se genere el PDF
Sleep(500)
' Obtener el nombre del archivo PDF recién generado
Dim pdfFileName As String =nombrepdf
' /data/user/0/adm.keymon.com.mx/files/shared/22142025121454.pdf
@@ -3179,7 +3086,6 @@ Private Sub b_acept_tp_Click
Log(xui.DefaultFolder)
Log(nombrepdf)
If File.Exists(Starter.fFileProvider.SharedFolder, pdfFileName) Then
Dim email As Email
' email.To.Add("soporte@keymonsoft.com")
email.Subject = "Adjunto encontrará el ticket de venta"
@@ -3188,7 +3094,6 @@ Private Sub b_acept_tp_Click
Dim in As Intent = email.GetIntent
in.Flags = 1 'FLAG_GRANT_READ_URI_PERMISSION
StartActivity(in)
Else
ToastMessageShow("No se encontró el archivo PDF para enviar", True)
End If
@@ -3196,9 +3101,8 @@ Private Sub b_acept_tp_Click
' Caso normal (impresión)
B4XPages.MainPage.skmt.ExecNonQuery2("update PEDIDO set PE_TIPOPAGO = ?, PE_COMENTARIO = ?, PE_TICKET = ? where PE_CLIENTE IN (SELECT CUENTA FROM CUENTAA) ", _
Array As String(metopago, et_com_tp.Text, "IMPRESO"))
PDFGENERAR
PDFGenerar
End If
' Limpiar controles
rb_efectivo.Checked = False
rb_tranfe.Checked = False
@@ -3209,4 +3113,44 @@ Private Sub b_acept_tp_Click
Else
MsgboxAsync("Selecciona un metodo de pago.", "Atención")
End If
End Sub
End Sub
Private Sub b_pidePeso_Click
p_transparentePidePeso.Visible = False
Starter.skmt.ExecNonQuery($"delete from pedido where PE_CLIENTE = '${Subs.traeCliente}'"$)
Subs.guardaProductoSinGestion(ALMACEN, 1, et_pidePeso.text, "Peso", "123", Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, Subs.traeRuta, 0, B4XPages.MainPage.tipo_venta, 0, 0)
l_total.Text = et_pidePeso.text
End Sub
Private Sub b_cancelaPeso_Click
p_transparentePidePeso.Visible = False
End Sub
Sub p_pidePeso_Click
End Sub
Private Sub p_transparentePidePeso_Click
End Sub
Private Sub b_inicioFinVenta_Click
If dentroDeGeocerca Then precision = 1
motivoNoVenta = ""
motivoNoVisita = ""
If Starter.enVenta Then
Subs.bitacora(Subs.fechanormal(DateTime.Now), usuario, ALMACEN, Subs.traeRuta, "Termina Venta", Subs.traeCliente, "", Subs.fechanormal(DateTime.Now), Starter.lat_gps, Starter.lon_gps, precision, motivoNoVenta, motivoNoVisita, $"Venta:${l_total.text}"$)
Starter.enVenta = False
Subs.enVenta(0, "")
LogColor($">>>>>> TERMINA VENTA: ${Starter.enVenta} - ${Subs.traeCliente}"$, Colors.red)
B4XPages.ShowPageAndRemovePreviousPages("Principal")
Else
Subs.bitacora(Subs.fechanormal(DateTime.Now), usuario, ALMACEN, Subs.traeRuta, "Inicia Venta", Subs.traeCliente, Subs.fechanormal(DateTime.Now), "", Starter.lat_gps, Starter.lon_gps, precision, motivoNoVenta, "", "")
Starter.enVenta = True
Subs.enVenta(1, "CLIENTES")
LogColor($">>>>>> INICIA VENTA: ${Starter.enVenta} - ${Subs.traeCliente}"$, Colors.red)
End If
b_inicioFinVenta.Visible = False
End Sub