Files
Mariana/B4A/C_Cliente.bas
Jose Alberto Guerra Ugalde 0ddb35fb07 - VERSION 5.07.07
- Se hicieron cambios en el codigo de la geocerca en cliente.
2025-07-11 14:47:52 -06:00

1111 lines
41 KiB
QBasic

B4A=true
Group=Default Group
ModulesStructureVersion=1
Type=Class
Version=11.5
@EndOfDesignText@
Sub MODS 'ignore
'V3.04.10 - Se agregó código para el registro de abonos, en B4XMainPage se genera la tabla y aquí se agregó el panel p_abonos para ralizar el abono, y el codigo en el sub "mandaPendientes" para cambiar la bandera de enviado en el abono.
End Sub
Sub Class_Globals
Private Root As B4XView 'ignore
Private xui As XUI 'ignore
Private p_cliente As Panel
Dim reqManager As DBRequestManager
Dim cmd As DBCommand
Dim ime As IME
Dim g As GPS
Dim ruta As String
Dim skmt As SQL
Dim clie_id As String
Dim sDate,sTime As String
Dim usuario As String
Dim total_cliente As String
Dim m_lat, m_lon As String
Dim btAdmin As BluetoothAdmin
Dim cmp20 As Serial
Dim printer As TextWriter
Dim PairedDevices As Map
Dim L As List
Dim TAMANO As Int
Dim ESPACIO As Int
Dim BLANCO As String
Dim cuenta As String
Dim tipo_venta As String = "PREVENTA"
Dim MAC_IMPRESORA As String
Dim c As Cursor
Dim s As Cursor
Dim DD As Cursor
Dim c2 As Cursor
Dim ListView1 As ListView
Dim la_cuenta As Label
Dim La_nombre As Label
Dim la_Calle As Label
Dim la_numero As Label
Dim la_nint As Label
Dim la_edo As Label
Dim la_pob As Label
Dim la_col As Label
Dim la_cp As Label
Dim la_zona As Label
Dim b_venta As Button
Dim la_saldotot As Label
Dim la_saldooper As Label
Dim b_noVenta As Button
Dim Label10 As Label
Dim Label11 As Label
Dim Tar As Button
Dim la_comm As Label
Dim la_actdte As Label
Dim la_usuario As Label
Dim la_resultado As Label
Dim l_entre1 As Label
Dim l_entre2 As Label
Dim l_atiende As Label
Dim l_atiende2 As Label
Dim DATOS As Button
Dim Guardar As Button
Dim NUEVO As Button
' Dim lat_gps, lon_gps As String
Dim l_total As Label
Dim c2 As Cursor
Dim S2 As Cursor
Private s As Cursor
Dim res As String
Private HIST As Button
Private MONTO_COMPRA As String
Private META As String
Private META2 As String
Private VERIFICA As String
Private L_QR As Label
Private BT_QR As Button
'Private qr As QRCode
Dim CODIGO As String
Private b_mapa As Button
Dim CUANTOS As String
Private B_IMP As Button
Dim Toggla As Toggle
Dim tgl As Toggle
Private Panel1 As Panel
Private I_COMPRA As EditText
Private B_GUARDA_C As Button
Private b_venta As Button
Dim ALMACEN As String
Private LA_GPS As Label
Private B_E_NEXT As Button
Private E_RES_E As EditText
Private t_tenc As Label
Private Panel2 As Panel
Private CONTADOR_E As String
Private HR_RES1 As String
Private HR_RES2 As String
Private HR_RES3 As String
Private EXISTE As String
Private TELEFONO As String
Private RB1 As RadioButton
Private RB2 As RadioButton
Private RB3 As RadioButton
Private RB4 As RadioButton
Private RB5 As RadioButton
Private stay_hh As String
Private stay_mi As String
Private stay_ss As String
Private LA_GEO As Label
Dim result As Int
Private cercavalor As String
Private LA_RUTA As String
Private b_like As Button
Private B_GPS As Button
Dim CODIGO As String
Private cb_factura As CheckBox
Private p_cbFactura As Panel
Dim venimosDeTicketsDia As Boolean = False
Private p_abono As Panel
Private et_abono As EditText
Private b_abono As Button
Private b_cancelar As Button
Private b_abono1 As Button
Private Label20 As Label
Private l_calle1 As Label
Private l_ubicacion2 As Label
Private l_version As Label
Private b_pedidoYalo As Button
Private p_transYalo As Panel
Private lv_yalo As ListView
Dim distance As Long = 500000000000
Dim enGeocerca As Boolean = False
Private p_transparenteGeocerca As Panel
Private p_passGeocerca As Panel
Private b_passGeocerca As Button
Private et_passGeocerca As EditText
dim l_geoAlmacen As Label
End Sub
'You can add more parameters here.
Public Sub Initialize As Object
Return Me
End Sub
'This event will be called once, before the page becomes visible.
Private Sub B4XPage_Created (Root1 As B4XView)
B4XPages.SetTitle(Me, $"${Subs.capitalizar(B4XPages.GetPageId(Me))} - ${Application.VersionName}"$)
Root = Root1
'load the layout to Root
' Activity.RemoveAllViews
Root.LoadLayout("cliente")
l_version.Text = Application.VersionName
Subs.centraPanel(Panel1, Root.Width)
ruta = File.DirInternal
If File.Exists(ruta, "kmt.db") = False Then
File.Copy(File.DirAssets, "kmt.db", ruta, "kmt.db")
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.Position = 0
If c.RowCount>0 Then
c.Position = 0
la_cuenta.Text = c.GetString("CAT_CL_CODIGO")
cuenta = c.GetString("CAT_CL_CODIGO")
La_nombre.Text = c.GetString("CAT_CL_NOMBRE")
la_Calle.Text = c.GetString("CAT_CL_CALLE") & c.GetString("CAT_CL_NOEXT")
la_col.Text = c.GetString("CAT_CL_COLONIA")
la_edo.Text = c.GetString("CAT_CL_EDO")
' la_cp.Text = c.GetString("CAT_CL_CP")
l_entre1.Text = c.GetString("CAT_CL_NOEXT")
l_entre2.Text = c.GetString("CAT_CL_NOINT")
l_atiende.Text = c.GetString("CAT_CL_ATIENDE1")
l_atiende2.Text = c.GetString("CAT_CL_ATIENTE2")
la_saldotot.Text = c.GetString("CAT_CL_TELEFONO")
la_saldooper.Text = c.GetString("CAT_CL_EMAIL")
l_total.Text = s.GetString("TOTAL_CLIE")
total_cliente = s.GetString("TOTAL_CLIE")
MONTO_COMPRA = c.GetString("CAT_CL_MTOCOMPRA")
Label20.Text = c.GetString("CAT_CL_CP")
End If
c.Close
s.Close
p_transYalo.Width = Root.Width : p_transYalo.Height = Root.Height
p_transYalo.Top = 0 : p_transYalo.Left = 0
lv_yalo.Width = Root.Width * 0.9 : lv_yalo.Height = Root.Height * 0.8
lv_yalo.Left = (Root.Width / 2) - (lv_yalo.Width / 2)
lv_yalo.top = (Root.Height / 2) - (lv_yalo.Height / 2)
btAdmin.Initialize("BlueTeeth")
cmp20.Initialize("Printer")
p_transparenteGeocerca.top = 0 : p_transparenteGeocerca.Left = 0
p_transparenteGeocerca.height = Root.Height : p_transparenteGeocerca.width = Root.width
Subs.centraPanel(p_passGeocerca, Root.Width)
End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
Sub B4XPage_Appear
distance = 500000000000
B4XPages.MainPage.lon_gps = 0
B4XPages.MainPage.lat_gps = 0
B4XPages.mainpage.pantallaActual = Root
b_noVenta.Enabled = True
b_venta.Enabled = True
b_noVenta.Visible = False 'Boton deshabilitado por default.
b_venta.Visible = False 'Boton deshabilitado por default.
' c = Starter.skmt.ExecQuery("SELECT ID FROM VENDIDOS WHERE ID IN (Select cuenta from cuentaa)")
' If c.RowCount > 0 Then
' b_noVenta.Enabled = False
' b_venta.Enabled = False
' End If
reqManager.Initialize(Me, Starter.DBReqServer)
' Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_CAMERA)
' Wait For B4XPage_PermissionResult (Permission As String, resultC As Boolean)
' Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_WRITE_EXTERNAL_STORAGE)
' Wait For B4XPage_PermissionResult (Permission As String, resultC As Boolean)
LA_GPS.TextColor = Colors.Red
LA_GPS.Text = "SIN UBICACION GPS"
cercavalor = 0
If Not(Starter.gps.GPSEnabled) Then
ToastMessageShow("Es necesario tener el GPS encendido", True)
StartActivity(Starter.gps.LocationSettingsIntent)
End If
cb_factura.Checked = False
p_abono.Visible = False
Subs.centraPanel(p_abono, Root.Width)
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,CAT_CL_NUM_SERIEFISICO 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, 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.Position=0
If c.RowCount > 0 Then
c.Position=0
la_cuenta.Text = c.GetString("CAT_CL_CODIGO")
La_nombre.Text = c.GetString("CAT_CL_NOMBRE")
la_Calle.Text = c.GetString("CAT_CL_CALLE")
la_col.Text = c.GetString("CAT_CL_COLONIA")
la_edo.Text = c.GetString("CAT_CL_EDO")
l_entre1.Text = c.GetString("CAT_CL_NOEXT")
l_entre2.Text = c.GetString("CAT_CL_NOINT")
l_atiende.Text = c.GetString("CAT_CL_ATIENDE1")
l_atiende2.Text = c.GetString("CAT_CL_ATIENTE2")
Label20.Text = c.GetString("CAT_CL_CP")
l_calle1.Text = c.GetString("CAT_CL_CALLE1")
TELEFONO = c.GetString("CAT_CL_TELEFONO")
If s.GetString("TOTAL_CLIE") = Null Then
l_total.Text = "0"
Else
l_total.Text = s.GetString("TOTAL_CLIE")
End If
total_cliente = s.GetString("TOTAL_CLIE")
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 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 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
If c.GetString("CAT_CL_NUM_SERIEFISICO") = "0" Then
L_QR.TEXT = "SIN CODIGO"
L_QR.TextColor = Colors.Red
b_venta.VISIBLE = False
BT_QR.Visible = True
Else
L_QR.TEXT = c.GetString("CAT_CL_NUM_SERIEFISICO")
L_QR.TextColor = Colors.Blue
BT_QR.Visible = False
End If
End If
c.Close
s.Close
S2=skmt.ExecQuery("select count(*) AS CUANTOS from HIST_VENTAS WHERE HVD_CLIENTE IN (Select CUENTA from cuentaa)")
S2.Position =0
CUANTOS = S2.GetString("CUANTOS")
S2.Close
If CUANTOS > 0 Then
c2=skmt.ExecQuery("select sum(HVD_COSTO_TOT) AS TOTAL from HIST_VENTAS WHERE HVD_CLIENTE IN (Select CUENTA from cuentaa)")
c2.Position =0
MONTO_COMPRA = c2.GetString("TOTAL")
c2.Close
Else
MONTO_COMPRA = "0"
End If
la_saldotot.Text = MONTO_COMPRA
If MONTO_COMPRA <> "0" Then
META2 = 1200 - MONTO_COMPRA
Else
META2 = 1200
End If
If META2 < 1 Then
META2 = "CUBIERTO"
End If
la_saldooper.Text = META2
c=skmt.ExecQuery("select ID_ALMACEN from CAT_ALMACEN")
If c.RowCount>0 Then
C.Position=0
ALMACEN = C.GetString("ID_ALMACEN")
End If
c.Close
' If ALMACEN = "1" Then
' b_noVenta.Visible = False
' b_venta.Visible = False
'' B_GPS.Visible = False
' End If
If ALMACEN = "4" Then
' b_like.Visible = True
DD=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=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
' b_noVenta.Visible = True
' b_venta.Visible = True
' End If
If Not(Starter.GPS.GPSEnabled) Then
ToastMessageShow("Debe Activar el GPS del Equipo.", True)
StartActivity(Starter.GPS.LocationSettingsIntent)
Else
Starter.GPS.Start(0, 0)
' If Starter.ubicacionActual.Latitude <> 0 Then GPS_LocationChanged(Starter.ubicacionActual)
End If
Log("Tracker LR Init: " & (Tracker.actualLR.IsInitialized))
If Not(Tracker.actualLR.IsInitialized) Then
Log("INICIAMOS TRACKER")
CallSubDelayed(Tracker, "Track")
CallSubDelayed(Tracker, "StartFLPSmall")
End If
' If Tracker.FLP.IsInitialized And Tracker.FLP.GetLastKnownLocation.IsInitialized Then 'Si tenemos "UltimaUbicaccionConocida" la usamos.
' B4XPages.MainPage.lat_gps = Tracker.FLP.GetLastKnownLocation.Latitude
' B4XPages.MainPage.lon_gps = Tracker.FLP.GetLastKnownLocation.Longitude
'' Log($"Tenemos UUC: ${Tracker.FLP.GetLastKnownLocation.Latitude},${Tracker.FLP.GetLastKnownLocation.Longitude}"$)
' GPS_LocationChanged(Tracker.FLP.GetLastKnownLocation)
' End If
' Log("DISTANCIA: " & distance)
' Log("HAY PEDIDO: " & Subs.hayPedido)
' Log("GEOCERCA ACTIVA: " & Subs.geocercaHabilitada)
' Log("EN ALMACEN: " & Subs.estamosEnAlmacen(50))
If Subs.hayPedido Or distance <= 50 Or Not(Subs.geocercaHabilitada) Or Subs.estamosEnAlmacen(50) Then ' Si estamos dentro de la geocerca, habilitamos los botones de Venta y noVenta
b_noVenta.Visible = True
b_venta.Visible = True
Log("Botones visibles")
End If
'Si el cliente es nuevo, no aparece el boton de venta
If la_cuenta.text.SubString2(0,1) = "N" Then
b_venta.Visible = False
b_noVenta.Visible = False
End If
Subs.estamosEnAlmacen(50)
End Sub
Sub GPS_LocationChanged (Location1 As Location)
' LogColor($"Entrando a Cliente.GPS_LocationChanged"$, Colors.red)
' If Tracker.FLP.GetLastKnownLocation.IsInitialized And Tracker.FLP.GetLastKnownLocation.Latitude <> 0 Then
B4XPages.MainPage.lat_gps = Location1.Latitude
B4XPages.MainPage.lon_gps = Location1.Longitude
' Log("Coords set to: " & B4XPages.MainPage.lat_gps & " and " & B4XPages.MainPage.lon_gps)
' End If
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}"$)
l2.Initialize2(m_lat, m_lon)
BT_QR.Enabled = True
LA_GPS.TextColor = Colors.Blue
LA_GPS.Text = "CON UBICACION GPS"
'now we need the distance between our location and the target location
distance = l1.DistanceTo(l2) 'the result is in meter
' If distance <= 50 Then ' Si estamos dentro de la geocerca, habilitamos los botones de Venta y noVenta
' b_noVenta.Visible = True
' b_venta.Visible = True
' Log("Botones visibles")
' End If
' If Subs.estamosEnAlmacen(50) Or Not(Subs.geocercaHabilitada) Then
' b_noVenta.Visible = True
' b_venta.Visible = True
' Log("Botones visibles")
' End If
' Log("###########################################")
' Log("No geocerca: " & Not(Subs.geocercaHabilitada))
' Log("estamosEnAlmacen: " & Subs.estamosEnAlmacen(50))
' Log("distance: " & distance)
' Log("hayPedido: " & Subs.hayPedido)
' Log("ENTRAMOS: " & (Subs.hayPedido Or distance <= 50 Or Not(Subs.geocercaHabilitada) Or Subs.estamosEnAlmacen(50)))
If Subs.hayPedido Or distance <= 50 Or Not(Subs.geocercaHabilitada) Or Subs.estamosEnAlmacen(50) Then ' Si estamos dentro de la geocerca, habilitamos los botones de Venta y noVenta
b_noVenta.Visible = True
b_venta.Visible = True
' Log("Botones visibles")
End If
LA_GEO.TextColor = Colors.Blue
' b_noVenta.Visible = True
' b_venta.Visible = True
If la_cuenta.text.SubString2(0,1) = "N" Then
b_venta.Visible = False
b_noVenta.Visible = False
End If
' Else
' LA_GEO.TextColor = Colors.Red
' End If
LA_GEO.Text= $"$1.2{distance/1000} kms"$
skmt.ExecNonQuery("DELETE FROM HIST_GPS")
skmt.ExecNonQuery2("INSERT INTO HIST_GPS (HGDATE, HGLAT, HGLON) VALUES(?,?,?) ", Array As Object (sDate & sTime, B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps))
l_ubicacion2.TextSize = 13
l_ubicacion2.Text = $"Precisión GPS $1.0{Location1.Accuracy} m"$
If Location1.Accuracy > 200 Then
l_ubicacion2.TextColor = Colors.Red
l_ubicacion2.TextSize = 16
l_ubicacion2.Text = $"Mala señal GPS $1.0{Location1.Accuracy} m"$
End If
' If Tracker.actualLR.IsInitialized Then LogColor("Tracker Update Req: " & Tracker.actualLR.GetExpirationTime, Colors.red)
' Tracker.actualLR.
Tracker.FLP.RemoveLocationUpdates
CallSubDelayed(Tracker, "CreateLocationRequest")
' If Tracker.actualLR.GetNumUpdates < 3 Then CallSubDelayed(Tracker, "StartFLP")
End Sub
Sub ListView1_ItemLongClick (Position As Int, Value As Object)
End Sub
Sub b_venta_Click
B4XPages.MainPage.tipo_venta = "PREVENTA"
'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")
End Sub
Sub b_noVenta_Click
B4XPages.ShowPage("NoVenta")
End Sub
Private Sub B4XPage_CloseRequest As ResumableSub
' BACK key pressed
' Return True To close, False To cancel
' Log($"venimosDeTicketsDia=${venimosDeTicketsDia}"$)
If p_transYalo.Visible Then
p_transYalo.Visible = False
else If IsNumber(l_total.text) And l_total.text <> "0" And Not(Subs.pedidoGuardado) Then
LogColor("Hay Venta", Colors.Red)
Private resultado1 As Int = Msgbox2($"Va salir sin haber guardado la venta, si continua, la venta se BORRARA.${CRLF}${CRLF}¿Esta seguro que desea continuar?"$, "SE VA A BORRAR LA VENTA", "Borrar Venta", "Guardar Venta", "", LoadBitmap(File.DirAssets,"alert2.png"))
If resultado1 = DialogResponse.POSITIVE Then
Log("Borrra venta")
Subs.borraPedidoClienteActual
ToastMessageShow("Venta Borrada", False)
' venimosDeTicketsDia = False
B4XPages.ShowPage("Principal")
else if resultado1=DialogResponse.CANCEL Then
Log("Pedido guardado")
Guardar_Click
ToastMessageShow("Venta Guardada", False)
End If
End If
ToastMessageShow("Por favor presione GUARDAR para continuar", True)
' venimosDeTicketsDia = False
' B4XPages.ShowPage("Clientes")
' Return True
Return False
End Sub
Sub Tar_Click
B4XPages.ShowPage("Nota")
End Sub
Sub Tar_LongClick
p_abono.Visible = True
End Sub
Sub DATOS_Click
B4XPages.ShowPage("telefonos")
End Sub
Sub Guardar_Click
' If l_total.Text = "0" Or l_total.Text = Null Then
' B4XPages.ShowPage("Principal")
' Else
' c = Starter.skmt.ExecQuery("SELECT ID FROM VENDIDOS WHERE ID IN (Select cuenta from cuentaa)")
' If c.RowCount > 0 Then
' B4XPages.ShowPage("Principal")
' Else
' res = Msgbox2("Seguro que desea cerrar el pedido? no se podran hacer cambios una vez guardada la venta!!!","Atención", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) 'ignore
' If res = DialogResponse.POSITIVE Then
DateTime.DateFormat = "MM/dd/yyyy"
sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now)
c=skmt.ExecQuery("Select CUENTA from cuentaa")
c.Position=0
clie_id = c.GetString("CUENTA")
c.Close
c=skmt.ExecQuery("select USUARIO from usuarioa")
c.Position=0
usuario = c.GetString("USUARIO")
c.Close
c = skmt.ExecQuery("Select sum(pe_costo_tot) As TOTAL_CLIE, SUM(PE_CANT) As CANT_CLIE, COUNT(*) As CUANTOS, PC_ENVIO_OK FROM PEDIDO left join PEDIDO_CLIENTE Where pc_cliente = pe_cliente And PE_CLIENTE IN (Select cuenta from cuentaa)")
c.Position=0
If c.GetString("CUANTOS") > 0 Then
Private cbFactura As Int = 0
If cb_factura.Checked Then cbFactura = 1
skmt.ExecNonQuery("delete from NOVENTA where NV_CLIENTE In (select cuenta from cuentaa)")
skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)")
skmt.ExecNonQuery2("insert into pedido_cliente(PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT, PC_ENVIO_OK, PC_FACTURA) VALUES (?,?,?,?,?,?,?,?,?)", Array As Object(clie_id, sDate & sTime, usuario, c.GetString("CANT_CLIE"), c.GetString("TOTAL_CLIE"), B4XPages.MainPage.lon_gps, B4XPages.MainPage.lat_gps, c.GetString("PC_ENVIO_OK"), cbFactura))
skmt.ExecNonQuery("UPDATE kmt_info set gestion = 2 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
End If
c.Close
DateTime.TimeFormat = "HHmmss"
sTime=DateTime.Time(DateTime.Now)
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))
' skmt.ExecNonQuery("UPDATE HIST_STAY_STORE set HSS_TOT = HSS_OUT - HSS_IN where HSS_CODIGO In (select cuenta from cuentaa)")
Try
c=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")
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))
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"
' skmt.ExecNonQuery2("insert into VENDIDOS(ID) VALUES(?)",Array As String(clie_id))
' mandaPendientes 'LO COMENTAMOS PARA PRUEBAS, ACTIVAR AL FINAL!!!
B4XPages.MainPage.productos.reiniciarlistaProds = True
B4XPages.MainPage.productos.prodsMap.Initialize
B4XPages.MainPage.promos.promosMap.Initialize
B4XPages.ShowPage("Principal")
' End If
' End If
' End If
End Sub
Sub NUEVO_Click
B4XPages.ShowPage("NuevoCliente")
End Sub
Sub HIST_Click
B4XPages.ShowPage("Historico")
End Sub
Sub BT_QR_Click
' sc.isportrait = True
' sc.timeoutDuration = 45
' sc.theViewFinderXfactor = 0.7
' sc.theViewFinderYfactor = 0.5
' sc.theResultColor = Colors.Green
' sc.mustVibrate = True
' sc.BeginScan("sc")
End Sub
Sub sc_result(atype As String,Values As String, image As Bitmap)
'Log("Type : " & atype)
'Log("Value : " & Values)
CODIGO = Values
DD=skmt.ExecQuery2("SELECT COUNT(*) AS CUANTOS FROM kmt_info WHERE CAT_CL_NUM_SERIEFISICO = ?", Array As String(CODIGO))
DD.Position =0
If DD.GetString("CUANTOS") > 0 Then
MsgboxAsync("Código ya asignado", "AVISO")
Else
If CODIGO.Length = 7 Then
Msgbox2Async("El código "& CODIGO & " es correcto?" , "Title", "Yes", "Cancel", "No", Null, False)
Wait For Msgbox_Result (resultado As Int)
If resultado = DialogResponse.POSITIVE Then
skmt.ExecNonQuery2("UPDATE kmt_info set CAT_CL_NUM_SERIEFISICO = ?, CAT_CL_LONG = ?, CAT_CL_LAT =? where CAT_CL_CODIGO In (select cuenta from cuentaa)", Array As Object(CODIGO, B4XPages.MainPage.lon_gps, B4XPages.MainPage.lat_gps))
L_QR.TEXT =CODIGO
L_QR.TextColor = Colors.Blue
skmt.ExecNonQuery2("insert into HIST_CODIGO_BARRAS(CODIGOKMTS, CODIGOB, LAT, LON) VALUES (?,?,?,?)", Array As Object(la_cuenta.Text,CODIGO, B4XPages.MainPage.lon_gps, B4XPages.MainPage.lat_gps))
End If
Else
MsgboxAsync("Código No Valido", "AVISO")
End If
End If
DD.Close
End Sub
Sub sc_timedout(timedOut As Boolean)
Log("timedOut " & timedOut)
End Sub
Sub sc_usercancelled(userCancelled As Boolean)
Log("userCancelled " & userCancelled)
End Sub
Sub calc_ean_checksum(number As String) As String 'this has now become redundant as I am only interested in QR Codes
Dim i As Int
Dim cO As Char
Dim soma As Int
Dim n As Int
Dim digit As Float
soma = 0
For i=0 To number.Length - 1
digit = number.SubString2(i,i+1)
n= digit * ((i Mod 2) * 2 + 1)
soma=soma+n
Next
Return number & ( ( 10 - ( soma Mod 10 )) Mod 10 )
End Sub
Sub b_mapa_Click
B4XPages.ShowPage("mapas")
End Sub
Sub B_IMP_Click
TAMANO = 0
ESPACIO = 21
BLANCO = " "
printer.Initialize(cmp20.OutputStream)
printer.WriteLine("DURAKELO S.A. de C.V.")
printer.WriteLine("RFC: DUR-011025-T12")
printer.WriteLine("Tel.: 618-826-0104")
printer.WriteLine("Vendedor: KMTS ")
printer.WriteLine("Tienda: " & La_nombre.Text)
printer.WriteLine("-----------PREVENTA-----------")
s=skmt.ExecQuery("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU, PE_COSTO_TOT, length(PE_COSTO_TOT) as L_COSTO_TOT FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
If S.RowCount>0 Then
For i=0 To S.RowCount -1
S.Position=i
printer.WriteLine(s.GetString("PE_CANT") & " " & s.GetString("PE_PRONOMBRE"))
TAMANO = s.GetLong("L_CANT") + TAMANO
TAMANO = s.GetLong("L_COSTOU") + TAMANO
TAMANO = s.GetLong("L_COSTO_TOT") + TAMANO
ESPACIO = ESPACIO - TAMANO
For E=0 To ESPACIO -1
BLANCO = " " & BLANCO
Next
printer.WriteLine(BLANCO & s.GETSTRING("PE_CANT") & " X $" & s.GETSTRING("PE_COSTOU") & " $" & s.GETSTRING("PE_COSTO_TOT") )
TAMANO = 0
ESPACIO = 21
BLANCO = " "
Next
End If
s.Close
printer.WriteLine("Total Preventa: $" & total_cliente)
printer.WriteLine("------------VENTA-------------")
printer.WriteLine(" ")
printer.WriteLine("TOTAL: $" & total_cliente)
printer.WriteLine(" ")
printer.WriteLine("----ESTE TICKET NO ES UN -----")
printer.WriteLine("--COMPROBANTE FISCAL, SOLO ES-")
printer.WriteLine("--------INFORMATIVO-----------")
printer.WriteLine("------------------------------")
printer.WriteLine(" ")
printer.Flush
' printer.Close
End Sub
Sub Printer_Connected (Success As Boolean)
If Success Then
B_IMP.Enabled = True
Else
B_IMP.Enabled = False
If Msgbox2("", "Printer Error","Reprint","Cancel","",Null) = DialogResponse.POSITIVE Then 'Ignore
StartPrinter
End If
End If
End Sub
Sub StartPrinter
Dim PairedDevices As Map
Dim L As List
Dim resimp As Int
ToastMessageShow("Printing.....",True)
PairedDevices.Initialize
Try
PairedDevices = cmp20.GetPairedDevices
Catch
Msgbox("Getting Paired Devices","Printer Error") 'Ignore
printer.Close
cmp20.Disconnect
End Try
If PairedDevices.Size = 0 Then
Msgbox("Error Connecting to Printer - Printer Not Found","") 'Ignore
Return
End If
If PairedDevices.Size = 1 Then
Try
cmp20.ConnectInsecure(btAdmin,PairedDevices.Get(PairedDevices.GetKeyAt(0)),1)
Catch
Msgbox("Connecting","Printer Error") 'Ignore
printer.Close
cmp20.Disconnect
End Try
Else
L.Initialize
For i = 0 To PairedDevices.Size - 1
L.Add(PairedDevices.GetKeyAt(i))
Next
resimp = InputList(L, "Choose device", -1) 'Ignore
If resimp <> DialogResponse.CANCEL Then
cmp20.Connect(PairedDevices.Get(L.Get(resimp)))
End If
End If
End Sub
Sub B_GUARDA_C_Click
DateTime.DateFormat = "MM/dd/yyyy"
sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now)
c=skmt.ExecQuery("Select CUENTA from cuentaa")
c.Position=0
clie_id = c.GetString("CUENTA")
c.Close
c=skmt.ExecQuery("select USUARIO from usuarioa")
c.Position=0
usuario = c.GetString("USUARIO")
c.Close
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) VALUES(?,?,?,?,?,?,?,?,?,?) ", Array As Object ("4",.01 , .01, 2, "KNORR RINDE MAS 70 GR", "GUNA2",la_cuenta.TEXT, sDate & sTime, usuario,LA_RUTA))
skmt.ExecNonQuery2("INSERT INTO HIST_FACE(HFCLIENTE, HFALIAS,HFRUTA,HFALMACEN) VALUES (?,?,?,?) ", Array As Object(la_cuenta.Text, I_COMPRA.Text,LA_RUTA,ALMACEN))
Panel1.Visible = False
' b_like.Visible = True
Tar.Visible = True
b_noVenta.Visible = True
b_venta.Visible = True
' b_like.Visible = False
Guardar.Visible = True
End Sub
'Sub b_venta_Click
' DateTime.DateFormat = "MM/dd/yyyy"
' sDate=DateTime.Date(DateTime.Now)
' sTime=DateTime.Time(DateTime.Now)
' s=skmt.ExecQuery("select COUNT(*) AS CUANTOS from HIST_ENCUESTA where HE_CLIE In (Select cuenta from cuentaa)")
' s.Position= 0
' If s.GetString("CUANTOS") = 0 Then
' c=skmt.ExecQuery2("SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String("CUESTIONARIO"))
' c.Position =0
' If c.GetString("CAT_VA_VALOR") = "2" Then
' res = Msgbox2("El cliente maneja CAZARES ?","CAZARES", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) 'Ignore
' If res = DialogResponse.POSITIVE Then
' skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_RES, HE_FECHA, HE_TIPO) VALUES (?,?,?,?)", Array As Object(la_cuenta.Text, "SI",sDate & sTime,"TIENE"))
' Panel1.Visible =True
' I_COMPRA.Text = ""
' BT_QR.Visible= False
' Else
' skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_RES, HE_FECHA, HE_TIPO) VALUES (?,?,?,?)", Array As Object(la_cuenta.Text, "NO",sDate & sTime,"TIENE"))
' B4XPages.MainPage.tipo_venta = "VENTA"
' B4XPages.ShowPage("Productos")
' End If
' Else
' B4XPages.MainPage.tipo_venta = "VENTA"
' B4XPages.ShowPage("Productos")
' End If
' c.Close
' Else
' B4XPages.MainPage.tipo_venta = "VENTA"
' B4XPages.ShowPage("Productos")
' End If
' s.Close
'End Sub
Sub B_E_NEXT_Click
If E_RES_E.Text <> "" Then
skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_RES, HE_FECHA, HE_TIPO) VALUES (?,?,?,?)", Array As Object(la_cuenta.Text, E_RES_E.Text,sDate & sTime,"DONDE"))
Panel2.Visible = False
B4XPages.ShowPage("Productos")
Else
Msgbox("SIN RESPUESTA","AVISO") 'Ignore
End If
End Sub
Sub RB1_CheckedChange(Checked As Boolean)
If RB1.Checked = True Then
E_RES_E.Text = "CENTRAL DE ABASTOS"
End If
End Sub
Sub RB2_CheckedChange(Checked As Boolean)
If RB2.Checked = True Then
E_RES_E.Text = "AUTOSERVICIO"
End If
End Sub
Sub RB3_CheckedChange(Checked As Boolean)
If RB3.Checked = True Then
E_RES_E.Text = "CLUB DE PRECIO"
End If
End Sub
Sub RB4_CheckedChange(Checked As Boolean)
If RB4.Checked = True Then
E_RES_E.Text = "DIRECTO PEDEGREE"
End If
End Sub
Sub b_like_Click
' Panel1.Visible = True
' b_like.Visible = False
' Tar.Visible = False
' b_noVenta.Visible = False
' gest.Visible = False
' b_venta.Visible = False
' Guardar.Visible = False
End Sub
Sub B_GPS_Click
' Dim result As Int
' result = Msgbox2("Esta seguro de cambiar las coordenadas de este cliente", "Aviso GPS", "SI", "", "NO", LoadBitmap(File.DirAssets, "alerta.jpg")) 'Ignore
' If result = DialogResponse.Positive Then
' skmt.ExecNonQuery2("UPDATE kmt_info SET CAT_CL_LAT = ?, CAT_CL_LONG = ? where CAT_CL_CODIGO In (Select cuenta from cuentaa)", Array As Object(B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps))
' B4XPage_Appear
' End If
End Sub
Private Sub p_cliente_Click
'Nada aqui, solo esta para que los clics no se pasen hacia atras.
End Sub
Private Sub cb_factura_CheckedChange(Checked As Boolean)
' Log(Checked)
If Checked Then p_cbFactura.Color = Colors.Green Else p_cbFactura.Color = Colors.red
End Sub
'Sub mandaPendientes
' Log("MandaPendientes")
' 'PEDIDO (Pendientes)
' c=skmt.ExecQuery("SELECT PE_ENVIO_OK, 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 FROM PEDIDO where PE_ENVIO_OK <> 1")
' Log($"Pedido PENDIENTE: ${c.RowCount}"$)
' If c.RowCount > 0 Then
' For i = 0 To c.RowCount -1
' c.Position=i
' Dim cmd As DBCommand
'
' cmd.Initialize
' cmd.Name = "DELETE_PEDIDO_MARDS_PE"
' cmd.Parameters = Array As Object(ALMACEN, B4XPages.MainPage.principal.l_ruta.text,c.GetString("PE_CLIENTE") )
' reqManager.ExecuteCommand(cmd , "DEL_PE")
'
' cmd.Initialize
' cmd.Name = "insert_pedido_MARDS"
' cmd.Parameters = Array As Object(C.GetString("PE_CEDIS"),ALMACEN,C.GetString("PE_COSTO_TOT"),C.GetString("PE_COSTOU"),C.GetString("PE_CANT"),C.GetString("PE_PRONOMBRE"),C.GetString("PE_PROID"),C.GetString("PE_CLIENTE"),C.GetString("PE_FECHA"),C.GetString("PE_USUARIO"),C.GetString("PE_RUTA"), C.GetString("PE_COSTO_SIN"),C.GetString("PE_DESC"),c.GetString("PE_FOLIO"))
' reqManager.ExecuteCommand(cmd , $"ins_pedidosPendientes_prods_${c.GetString("PE_CLIENTE")}"$)
' Next
' End If
'
' 'PEDIDO_CLIENTE (Pendientes)
' c = skmt.ExecQuery("SELECT PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT, PC_COSTO_SIN, PC_RUTA, PC_ALMACEN, PC_FACTURA, PC_ENVIO_OK FROM PEDIDO_CLIENTE where PC_ENVIO_OK <> 1")
' Log($"Pedido_Cliente PENDIENTE: ${c.RowCount}"$)
' If c.RowCount > 0 Then
' For i = 0 To c.RowCount - 1
' c.Position = i
' Log($"**************** PC_ENVIO_OK: ${c.GetString("PC_ENVIO_OK")} "$)
' Dim cmd As DBCommand
' cmd.Initialize
' cmd.Name = "DELETE_PEDIDO_MARDS_PC"
' cmd.Parameters = Array As Object(ALMACEN, B4XPages.MainPage.principal.l_ruta.text,c.GetString("PC_CLIENTE") )
' reqManager.ExecuteCommand(cmd , "DEL_PC")
'
' Dim cmd As DBCommand
' cmd.Initialize
' cmd.Name = "insert_pedidos_MARDS"
' Log($"${c.GetString("PC_CLIENTE")}, ${ALMACEN}"$)
' cmd.Parameters = Array As Object(C.GetString("PC_CLIENTE"), C.GetString("PC_FECHA"), C.GetString("PC_USER"), C.GetString("PC_NOART"), C.GetString("PC_MONTO"), C.GetString("PC_LON"), C.GetString("PC_LAT"), ALMACEN, B4XPages.MainPage.principal.l_ruta.text, C.GetString("PC_COSTO_SIN"), C.GetString("PC_FACTURA"))
' reqManager.ExecuteCommand(cmd , $"ins_pedidosPendientes_head_${c.GetString("PC_CLIENTE")}"$)
' Next
' End If
'
' 'ABONOS
' Dim ab As Cursor = skmt.ExecQuery($"SELECT * from ABONOS where a_enviado is null"$)
'' Log(ab.RowCount)
' If ab.RowCount > 0 Then
' For i = 0 To ab.RowCount -1
' ab.Position = i
' Dim cmd As DBCommand
' cmd.Initialize
' cmd.Name = "insert_abono_MARDS"
' cmd.Parameters = Array As Object( ab.GetString("a_usuario"), ab.GetString("a_ruta"), ab.GetString("a_cliente"), ab.GetString("a_abono"), ab.GetString("a_fecha") )
' reqManager.ExecuteCommand(cmd , $"ins_abonosPendientes_${ab.GetString("a_cliente")}"$)
' Log($"ins_abonosPendientes_${ab.GetString("a_cliente")}"$)
' Next
' End If
' ab.Close
'
'' BANDERA FACTURA (Pendientes)
'' c=skmt.ExecQuery("SELECT PC_FACTURA, PC_CLIENTE FROM pedido_cliente where PC_CLIENTE IN (Select CUENTA from cuentaa)")
'' Log($"BANDERA FACTURA PENDIENTE: ${c.RowCount}"$)
'' If c.RowCount>0 Then
'' For i=0 To c.RowCount -1
'' c.Position=i
'' Dim cmd As DBCommand
'' cmd.Initialize
'' cmd.Name = "update_factura_INTMEX"
'' cmd.Parameters = Array As Object(C.GetString("PC_FACTURA"), C.GetString("PC_CLIENTE"), ALMACEN)
'' reqManager.ExecuteCommand(cmd , "upd_facturasPendientes")
'' Next
'' ' sql.update_factura_INTMEX=UPDATE INTMEX.HIST_VENTAS SET HV_FACTURA = (?) WHERE HV_CLIENTE = (?) And HV_ALMACEN = (?)
'' End If
'' c.Close
'End Sub
Sub JobDone(Job As HttpJob)
Log("JOBDONE CLIENTE . " & Job.Success)
If Job.Success = False Then
' ToastMessageShow("Error: " & Job.ErrorMessage, True)
' LogColor("JobDone Error: '" & reqManager.HandleJob(Job).tag, Colors.red) 'Mod por CHV - 211027
Else
LogColor("JobDone: '" & reqManager.HandleJob(Job).tag & "' - Registros: " & reqManager.HandleJob(Job).Rows.Size, Colors.Green) 'Mod por CHV - 211027
If Job.JobName = "DBRequest" Then
Dim resultado As DBResult = reqManager.HandleJob(Job)
If resultado.Tag.As(String).IndexOf("ins_pedidosPendientes_head_") > -1 Then
Private cliente As String= resultado.Tag
cliente = cliente.SubString(cliente.IndexOf("_")+24)
Log($"Cliente1:${cliente}"$)
For Each records() As Object In resultado.Rows
For Each k As String In resultado.Columns.Keys
Log(resultado.Tag & ": " & k & ": " & records(resultado.Columns.Get(k)))
Next
Next
skmt.ExecNonQuery($"UPDATE PEDIDO_CLIENTE set PC_ENVIO_OK = 1 where PC_CLIENTE = '${cliente}'"$)
End If
End If
If Job.JobName = "DBRequest" Then
Dim resultado As DBResult = reqManager.HandleJob(Job)
If resultado.Tag.As(String).IndexOf("ins_pedidosPendientes_prods_") > -1 Then
Private cliente As String= resultado.Tag
cliente = cliente.SubString(cliente.IndexOf("_")+25)
Log($"Cliente2:${cliente}"$)
For Each records() As Object In resultado.Rows
For Each k As String In resultado.Columns.Keys
Log(resultado.Tag & ": " & k & ": " & records(resultado.Columns.Get(k)))
Next
Next
skmt.ExecNonQuery($"UPDATE PEDIDO set PE_ENVIO_OK = 1 where PE_CLIENTE = '${cliente}'"$)
End If
End If
'ABONOS PENDIENTES
If Job.JobName = "DBRequest" Then
Dim resultado As DBResult = reqManager.HandleJob(Job)
If resultado.Tag.As(String).IndexOf("ins_abonosPendientes_") > -1 Then
Private cliente As String= resultado.Tag
cliente = cliente.SubString(cliente.IndexOf("_")+18)
Log($"Cliente2:${cliente}"$)
For Each records() As Object In resultado.Rows
For Each k As String In resultado.Columns.Keys
Log(resultado.Tag & ": " & k & ": " & records(resultado.Columns.Get(k)))
Next
Next
skmt.ExecNonQuery($"UPDATE ABONOS set a_enviado = 1 where a_cliente = '${cliente}'"$)
End If
If resultado.Tag = "traePassGeocerca" Then 'query tag
Subs.logJobDoneResultados(resultado)
Log(resultado.Rows.Size)
b_passGeocerca.Enabled = True
For Each records() As Object In resultado.Rows
Log($"|${records(resultado.Columns.Get("TMP_PASS"))}|"$)
Dim tmp_pass As String = records(resultado.Columns.Get("TMP_PASS")).As(String)
Log(tmp_pass)
ToastMessageShow("¡¡Listo!!", False)
Starter.skmt.ExecNonQuery($"update kmt_info set cat_cl_lat = '${B4XPages.MainPage.lat_gps}', cat_cl_long = '${B4XPages.MainPage.lon_gps}' where cat_cl_codigo = '${Subs.traeCliente}'"$)
m_lat = B4XPages.MainPage.lat_gps : m_lon = B4XPages.MainPage.lon_gps
p_transparenteGeocerca.Visible = False
et_passGeocerca.text = ""
cmd.Initialize
cmd.Name = "borraPassGeocerca"
cmd.Parameters = Array As Object(Subs.traeAlmacen, Subs.traeRuta)
reqManager.ExecuteCommand(cmd , "borraPassGeocerca")
Next
If resultado.Rows.Size = 0 Then
Msgbox("Contraseña equivocada","ATENCIÓN")
End If
End If
End If
Job.Release
End If
End Sub
Private Sub p_abono_Click
End Sub
Private Sub b_abono_Click
p_abono.Visible = False
If et_abono.Text <> "" Then
Msgbox2Async($"¿Seguro que quieres realizar un abono de $${et_abono.text} para este cliente?"$, "Guardar Abono", "Guardar", "Cancelar", "", Null, True)
Wait For Msgbox_Result (resultado As Int)
If resultado = DialogResponse.POSITIVE Then
skmt.ExecNonQuery($"INSERT INTO ABONOS(a_usuario, a_ruta, a_cliente, a_abono, a_fecha) VALUES ('${Subs.traeUsuarioDeBD}', '${Subs.traeRuta}', '${Subs.traeCliente}' ,'${et_abono.text}', '${Subs.fechaKMT(DateTime.now)}')"$)
ToastMessageShow("Abono guardado", False)
End If
End If
et_abono.Text = ""
ime.HideKeyboard
End Sub
Private Sub b_cancelar_Click
et_abono.Text = ""
p_abono.Visible = False
ime.HideKeyboard
End Sub
Private Sub b_abono1_Click
p_abono.Visible = True
End Sub
Private Sub b_pedidoYalo_Click
Private rs As ResultSet = Starter.skmt.ExecQuery($"select * from CAT_PEDIDOS_YALO where PY_IDCLIENTE = '${Subs.traeCliente}' order by PY_FECHA, PY_TICKET"$)
Private ticket As String = ""
Private cs As CSBuilder
Private label1 As B4XView = lv_yalo.SingleLineLayout.Label
lv_yalo.Clear
Do While rs.NextRow
label1.Left = 75dip
If ticket <> rs.GetString("PY_TICKET") Then
cs.Initialize
ticket = rs.GetString("PY_TICKET")
lv_yalo.AddSingleLine(cs.Size(16).Color(Colors.red).append("Pedido: " & ticket & " - " & rs.GetString("PY_FECHA").SubString2(0, rs.GetString("PY_FECHA").IndexOf(" "))).popAll)
End If
cs.Initialize
lv_yalo.AddSingleLine(cs.Size(13).Color(Colors.DarkGray).append(rs.GetString("PY_PRODNOMBRE") & " - Cant: " & rs.GetString("PY_CANT")).popAll)
Loop
p_transYalo.Visible = True
End Sub
Private Sub p_transYalo_Click
p_transYalo.Visible = False
End Sub
Private Sub p_transparenteGeocerca_Click
p_transparenteGeocerca.Visible = False
b_passGeocerca.Enabled = True
End Sub
Private Sub LA_GPS_LongClick
p_transparenteGeocerca.Visible = True
End Sub
Private Sub LA_GEO_LongClick
p_transparenteGeocerca.Visible = True
End Sub
Private Sub b_passGeocerca_Click
Log("b_passGeocerca clicked")
ToastMessageShow("¡Un momento por favor!", False)
b_passGeocerca.Enabled = False
If et_passGeocerca.Text.Trim = "KMTS1" Then
ToastMessageShow("¡¡Listo!!", False)
Starter.skmt.ExecNonQuery($"update kmt_info set cat_cl_lat = '${B4XPages.MainPage.lat_gps}', cat_cl_long = '${B4XPages.MainPage.lon_gps}' where cat_cl_codigo = '${Subs.traeCliente}'"$)
m_lat = B4XPages.MainPage.lat_gps : m_lon = B4XPages.MainPage.lon_gps
p_transparenteGeocerca.Visible = False
et_passGeocerca.text = ""
Else
' Msgbox("Contraseña equivocada","ATENCIÓN")
cmd.Initialize
cmd.Name = "traePassGeocerca"
cmd.Parameters = Array As Object(Subs.traeAlmacen, Subs.traeRuta, et_passGeocerca.text)
' c=Starter.skmt.ExecQuery("select CAT_CL_RUTA from kmt_info")
' Private r As String = "0"
' If c.RowCount > 0 Then
' c.Position=0
' r = c.GetString("CAT_CL_RUTA")
' End If
' Log($"${Subs.traeAlmacen}, ${r}, ${et_passGeocerca.text}"$)
reqManager.ExecuteQuery(cmd , 0, "traePassGeocerca")
End If
ime.HideKeyboard
End Sub