This commit is contained in:
Javier
2025-11-04 10:26:40 -06:00
parent fa3cbabdc9
commit e3614c5fcf
11 changed files with 1718 additions and 251 deletions

View File

@@ -1277,6 +1277,11 @@ Sub Class_Globals
Private p_importarBDWA As Panel
Dim intentUsado As Boolean = False
Private p_bypass As Panel
Private et_bypass As EditText
Private b_cancelabypass As Button
Private b_acepbypass As Button
Private b_bypass As Button
End Sub
Public Sub Initialize
@@ -1335,6 +1340,8 @@ Private Sub B4XPage_Created (Root1 As B4XView)
Subs.agregaColumna("CAT_GUNAPROD3", "CAT_DP_CANT_MIN_VENTA", "TEXT")
Subs.agregaColumna("ABONOS","TIPO_PAGO","TEXT")
Subs.agregaColumna("ABONOS","a_numpago","TEXT")
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS GEOCERCA (ACTIVA TEXT)")
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS BARRAS (BARRA BLOB)")
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS ABONOS (a_usuario TEXT, a_ruta TEXT, a_cliente TEXT, a_abono TEXT, a_fecha TEXT, a_enviado TEXT)")
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS PAGARES (PA_ALMACEN TEXT, PA_RUTA_REP TEXT, PA_RUTAPREV TEXT, PA_FECHA_PREV TEXT, PA_CAPTURA TEXT, PA_MONTO TEXT, PA_USUARIO TEXT, PA_CLIENTE TEXT)")
Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS PICK_CIEGO (PC_ID_PROD TEXT, PC_NOM_PROD TEXT, PC_CANT TEXT, PC_ALMACEN TEXT, PC_RUTA TEXT, PC_FECHA TEXT)")
@@ -1754,10 +1761,11 @@ Private Sub i_engrane_Click
Subs.panelVisible(p_appUpdate, 0, 0)
If user.Text.Trim = "KMTS1" Then
p_importarBDWA.Visible = True
p_importarBDWA.Visible = False
Else
p_importarBDWA.Visible = False
End If
If user.Text.trim = "KMTS1" Then b_bypass.Visible = True Else b_bypass.Visible = False
End Sub
Private Sub B4XPage_CloseRequest As ResumableSub
@@ -2232,4 +2240,42 @@ Private Sub cb_importarBDWA_CheckedChange(Checked As Boolean)
' LogColor($"cb_importarBDWA_CheckedChange = ${Checked}"$, Colors.Red)
Starter.skmt.ExecNonQuery("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'IMPORTAR_BD_WA'")
Starter.skmt.ExecNonQuery($"insert into CAT_VARIABLES (CAT_VA_DESCRIPCION, CAT_VA_VALOR) values ('IMPORTAR_BD_WA', '${Checked}')"$)
End Sub
Private Sub b_bypass_Click
c = Starter.skmt.ExecQuery("SELECT * FROM kmt_info")
If c.RowCount > 0 Then
Subs.panelVisible(p_bypass,0,0)
p_bypass.Visible = True
Else
MsgboxAsync("No hay ruta cargada, favor de cargar día","Atención")
End If
End Sub
Private Sub b_acepbypass_Click
DateTime.TimeFormat = "HH:mm:ss"
DateTime.DateFormat = "dd/MM/yyyy"
sDate = DateTime.Date(DateTime.Now)
sTime = DateTime.Time(DateTime.Now)
Dim datebypass() As String = Regex.Split("/",sDate)
Dim timebypass() As String = Regex.Split(":",sTime)
If et_bypass.Text = datebypass(0) & timebypass(0) & timebypass(1) Then
Starter.skmt.ExecNonQuery2("UPDATE GEOCERCA set ACTIVA = ? ", Array As Object(0))
et_bypass.Text = ""
MsgboxAsync("Geocerca Deshabilitada","Atención")
p_bypass.Visible = False
End If
End Sub
Private Sub b_cancelabypass_Click
p_bypass.Visible = False
et_bypass.Text = ""
End Sub
Private Sub p_bypass_Click
End Sub

View File

@@ -29,7 +29,8 @@ Sub Class_Globals
Dim s As Cursor
Dim limite_credito As Double
Dim banderaabono As String
Dim m_lat_al, m_lon_al As String
Dim distance2 As Long
Dim ListView1 As ListView
Dim la_cuenta As Label
@@ -93,6 +94,7 @@ Sub Class_Globals
Dim rutaprev As String
Dim rutarep As String
Dim montopagare As String
Private qr As QRGenerator
Private p_abono As Panel
Private clv_abonos As CustomListView
Private et_abono As EditText
@@ -125,6 +127,11 @@ Sub Class_Globals
Private l_telefono As Label
Private l_fecha As Label
Private CheckBox1 As CheckBox
Private ImageView1 As ImageView
Private barcode As barcodeGenerator
Private B4XImageView1 As B4XImageView
Private ImageView2 As ImageView
End Sub
'You can add more parameters here.
@@ -218,9 +225,31 @@ Sub B4XPage_Appear
p_abono.Height = Root.Height
p_principal.Width = Root.Width
Dim cor_al As Cursor = Starter.skmt.ExecQuery("SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = 'COORDS_ALMACEN' ")
If cor_al.RowCount > 0 Then
cor_al.Position = 0
Dim latlong() As String = Regex.Split(",",cor_al.GetString("CAT_VA_VALOR"))
m_lat_al = latlong(1)
m_lon_al = latlong(0)
End If
barcode.Initialize
qr.Initialize(B4XImageView1.mBase.Width)
Private cym As Map = Subs.traeCantYMonto2(Subs.traeCliente)
L_CANT.Text = cym.Get("cantidad")
l_total.Text = Round2(cym.Get("monto"), 2)
CallSubDelayed(Tracker, "Track")
CallSubDelayed(Tracker, "StartFLPSmall")
CallSubDelayed(Tracker, "StartFLP2")
If 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
Dim mostrarimp As Cursor = Starter.skmt.ExecQuery($"SELECT gestion from kmt_info where CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA)"$)
mostrarimp.Position = 0
@@ -254,6 +283,24 @@ Sub B4XPage_Appear
Starter.skmt.ExecNonQuery2("UPDATE ABONOSP set DIAS = ?, DIASATRASO = ? where NOTA = ? AND CLIENTE IN (SELECT CUENTA FROM CUENTAA)",Array As String(DiferenciaDias,cdias.GetInt("CAT_CL_DIASCREDITO")-DiferenciaDias, pagarepen.GetString("NOTA")))
Next
End If
Dim geo As Cursor = Starter.skmt.ExecQuery("SELECT ACTIVA FROM GEOCERCA")
If geo.RowCount > 0 Then
geo.Position = 0
If geo.GetInt("ACTIVA") = 0 Then
HIST.Visible = True
' b_cxc.Visible = True
b_noEntrega.Visible = True
gest.Visible = True
Else If geo.GetInt("ACTIVA") = 1 Then
HIST.Visible = False
' b_cxc.Visible = False
b_noEntrega.Visible = False
gest.Visible = False
End If
End If
' If CREDITO = "1" Then
' Msgbox("AVISO","SE TIENE QUE IMPRIMIR PAGARÉ") 'ignore
@@ -411,14 +458,14 @@ Sub B4XPage_Appear
b_cancel_pagare.Visible = False
End If
CallSubDelayed(Tracker, "Track")
CallSubDelayed(Tracker, "StartFLPSmall")
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
' CallSubDelayed(Tracker, "Track")
' CallSubDelayed(Tracker, "StartFLPSmall")
' 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
Dim x1 As Cursor =Starter.skmt.ExecQuery("SELECT IFNULL(CAT_CL_LIMITECREDITO,0) AS CAT_CL_LIMITECREDITO FROM kmt_info where CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA)")
x1.Position = 0
@@ -445,6 +492,13 @@ Sub B4XPage_Appear
' End If
'
' End If
If (almacen = 81 Or almacen = 94) Then
HIST.Visible = True
' b_cxc.Visible = True
b_noEntrega.Visible = True
gest.Visible = True
End If
End Sub
@@ -476,17 +530,91 @@ Sub GPS_LocationChanged (Location1 As Location)
Else
Dim l1, l2 As Location
Dim l1, l2,l3 As Location
l1.Initialize2(B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps)
Log($"Coordenadas de la tienda - lat:${LATITUD}, lon:${LONGITUD}"$)
l2.Initialize2(LATITUD, LONGITUD)
l3.Initialize2(m_lat_al,m_lon_al)
'now we need the distance between our location and the target location
distance = l1.DistanceTo(l2) 'the result is in meter
distance2 = l1.DistanceTo(l3) 'the result is in meter
Log("DISTANCIA "&distance)
Dim geo As Cursor = Starter.skmt.ExecQuery("SELECT ACTIVA FROM GEOCERCA")
If geo.RowCount > 0 Then
geo.Position = 0
If geo.GetInt("ACTIVA") = 1 Then
If (almacen = 88 Or almacen = 92) Then
If distance2 < 100 Then
HIST.Visible = True
b = Starter.skmt.ExecQuery("select COUNT(*) AS CLIENTE FROM ABONOSP WHERE CLIENTE IN (Select CUENTA from cuentaa) AND SALDO_PENDIENTE <> 0")
b.Position = 0
Dim cabonos As String = b.GetString("CLIENTE")
If cabonos = 0 Then
b_cxc.Visible = False
Else
b_cxc.Visible = True
End If
b_noEntrega.Visible = True
gest.Visible = True
Else
If distance < 100 Then
HIST.Visible = True
b = Starter.skmt.ExecQuery("select COUNT(*) AS CLIENTE FROM ABONOSP WHERE CLIENTE IN (Select CUENTA from cuentaa) AND SALDO_PENDIENTE <> 0")
b.Position = 0
Dim cabonos As String = b.GetString("CLIENTE")
If cabonos = 0 Then
b_cxc.Visible = False
Else
b_cxc.Visible = True
End If
b_noEntrega.Visible = True
gest.Visible = True
Else
HIST.Visible = False
b_cxc.Visible = False
b_noEntrega.Visible = False
gest.Visible = False
End If
End If
Else
HIST.Visible = True
b = Starter.skmt.ExecQuery("select COUNT(*) AS CLIENTE FROM ABONOSP WHERE CLIENTE IN (Select CUENTA from cuentaa) AND SALDO_PENDIENTE <> 0")
b.Position = 0
Dim cabonos As String = b.GetString("CLIENTE")
If cabonos = 0 Then
b_cxc.Visible = False
Else
b_cxc.Visible = True
End If
b_noEntrega.Visible = True
gest.Visible = True
End If
Else If geo.GetInt("ACTIVA") = 0 Then
HIST.Visible = True
b = Starter.skmt.ExecQuery("select COUNT(*) AS CLIENTE FROM ABONOSP WHERE CLIENTE IN (Select CUENTA from cuentaa) AND SALDO_PENDIENTE <> 0")
b.Position = 0
Dim cabonos As String = b.GetString("CLIENTE")
If cabonos = 0 Then
b_cxc.Visible = False
Else
b_cxc.Visible = True
End If
b_noEntrega.Visible = True
gest.Visible = True
End If
End If
End If
Dim sDate,sTime As String
@@ -513,7 +641,7 @@ Sub gest_Click
B4XPages.ShowPage("Principal")
End If
Else
If Subs.traeAlmacen = 92 Then
If (Subs.traeAlmacen = 92 Or Subs.traeAlmacen = 94) Then
Dim k As Cursor = Starter.skmt.ExecQuery("SELECT CUENTA from CUENTAA")
k.Position = 0
@@ -584,7 +712,7 @@ Sub gest_Click
End Sub
Sub checacredito
If l_total.Text = ".00" And L_CANT.Text = 1 Then
If l_total.Text = ".00" And (L_CANT.Text = 1 OR L_CANT.Text = 2) Then
Guardado
Else
@@ -600,100 +728,37 @@ Sub checacredito
x1.Position = 0
limite_credito = 0
If CREDITO = 1 And x1.GetString("CAT_CL_LIMITECREDITO") <> 0 Then '''' se debe de cambiar a si acepta o no credito, aparte de tener la bandera a credito
Msgbox2Async("EL CLIENTE TIENE CREDITO DISPONIBLE, UNA VEZ SELECCIONADA UNA OPCION NO SE PODRA MODIFICAR!!!!!","Forma de pago","","Credito","Efectivo",LoadBitmap(File.DirAssets,"alert2.png"),False)
Wait For Msgbox_Result (Result As Int)
If Result= DialogResponse.POSITIVE Then
Log(1)
' p_credito.Visible = True
' 'monto
' c=Starter.skmt.ExecQuery("select sum(HVD_COSTO_TOT) AS MONTO from HIST_VENTAS WHERE HVD_CLIENTE IN (SELECT CUENTA FROM CUENTAA) AND HVD_RECHAZO = 0 AND HVD_PARCIAL = 0")
' c.Position = 0
' montopagare = c.GetString("MONTO")
' c.Close
' l_limite.Text = "Monto de la venta: $" & l_total.Text
Else If Result = DialogResponse.NEGATIVE Then
escreditoono = 0
Log(2)
Tipoentrega = "CONTADO"
B_IMP_Click
banderaimp = 1
Else If Result = DialogResponse.CANCEL Then
If Subs.traeAlmacen = 81 Then
Log(12)
escreditoono = 1
' If l_total.Text.Replace(",","") <= NumberFormat2( x1.GetString("CAT_CL_LIMITECREDITO").Replace(",",""),0,2,2,False) Then
limite_credito = x1.GetString("CAT_CL_LIMITECREDITO")
esPagoACreditoGuardamosPagare'' para brincar el r
Log(3)
'' descomentar
' Private cliente As String = Subs.traeCliente
' c = Starter.skmt.ExecQuery($"select CAT_CL_RUTA from kmt_info where cat_cl_codigo = '${cliente}'"$)
' If c.RowCount > 0 Then
' c.Position = 0
' Private RUTA_PREVENTA = c.GetString("CAT_CL_RUTA")
' End If
' c = Starter.skmt.ExecQuery($"select distinct hvd_num_ticket from hist_ventas where hvd_cliente = '${cliente}'"$)
' If c.RowCount > 0 Then
' c.Position = 0
' NOTA = c.GetString("HVD_NUM_TICKET")
' End If
' DateTime.DateFormat = "MM/dd/yyyy"
' sDate=DateTime.Date(DateTime.Now)
' sTime=DateTime.Time(DateTime.Now)
' ProgressDialogShow("Un momento por favor!!")
' Dim cmd As DBCommand
' cmd.Initialize
' cmd.Name = "insertaPagareGunaRep"
' cmd.Parameters = Array As Object(Subs.traeAlmacen, RUTA_PREVENTA, Subs.traeRutaReparto, cliente, l_total.Text.Replace(",",""), NOTA, sDate & " " & sTime)
' reqManager.ExecuteCommand(cmd, $"insertaPagare_${NOTA}"$)
'' fin descomentar
If l_total.Text <> ".00" Then
esPagoACreditoGuardamosPagare
End If
' Else
' MsgboxAsync("El cliente debe de dar un pago de "& (l_total.Text.Replace(",","") - x1.GetString("CAT_CL_LIMITECREDITO")) &"","Atención")
' Log(3)
' Tipoentrega = "CREDITO"
' DateTime.DateFormat = "dd/MM/yyyy"
' DateTime.TimeFormat = "HH:mm:ss"
' sDate=DateTime.Date(DateTime.Now)
' sTime=DateTime.Time(DateTime.Now)
' 'cliente
' c=Starter.skmt.ExecQuery("select CUENTA from cuentaa")
' c.Position = 0
' cuenta = c.GetString("CUENTA")
' c.Close
' 'usuario
' c=Starter.skmt.ExecQuery("select usuario from usuarioa")
' c.Position = 0
' usuario = c.GetString("USUARIO")
' c.Close
' 'Almacen
' c=Starter.skmt.ExecQuery("select ID_ALMACEN from CAT_ALMACEN")
' c.Position = 0
' almacen = c.GetString("ID_ALMACEN")
' c.Close
' 'FECHA PREVENTA
' c=Starter.skmt.ExecQuery("select HVD_FECHA from HIST_VENTAS WHERE HVD_CLIENTE IN (SELECT CUENTA FROM CUENTAA)")
' c.Position = 0
' fechaprev = c.GetString("HVD_FECHA")
' c.Close
' 'RUTAPREVENTA
' c=Starter.skmt.ExecQuery("select CAT_CL_RUTA from kmt_info WHERE CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA)")
' c.Position = 0
' rutaprev = c.GetString("CAT_CL_RUTA")
' c.Close
' 'RUTA rep
' c=Starter.skmt.ExecQuery("select RUTAA from RUTAA")
' c.Position = 0
' rutarep = c.GetString("RUTAA")
' c.Close
' 'monto
' c=Starter.skmt.ExecQuery("select sum(HVD_COSTO_TOT) AS MONTO from HIST_VENTAS WHERE HVD_CLIENTE IN (SELECT CUENTA FROM CUENTAA) AND HVD_RECHAZO = 0 AND HVD_PARCIAL = 0")
' c.Position = 0
' montopagare = c.GetString("MONTO")
' c.Close
' Starter.skmt.ExecNonQuery2("INSERT INTO PAGARES (PA_ALMACEN, PA_RUTA_REP, PA_RUTAPREV, PA_FECHA_PREV, PA_CAPTURA, PA_MONTO, PA_USUARIO, PA_CLIENTE) VALUES(?,?,?,?,?,?,?,?) ", Array As Object (almacen,rutarep,rutaprev,fechaprev,(sDate),l_total.Text,usuario,cuenta))
' B_IMP_Click
' banderaimp = 1
' End If
Else
Msgbox2Async("EL CLIENTE TIENE CREDITO DISPONIBLE, UNA VEZ SELECCIONADA UNA OPCION NO SE PODRA MODIFICAR!!!!!","Forma de pago","","Credito","Efectivo",LoadBitmap(File.DirAssets,"alert2.png"),False)
Wait For Msgbox_Result (Result As Int)
If Result= DialogResponse.POSITIVE Then
Log(1)
Else If Result = DialogResponse.NEGATIVE Then
escreditoono = 0
Log(2)
Tipoentrega = "CONTADO"
B_IMP_Click
banderaimp = 1
Else If Result = DialogResponse.CANCEL Then
Log(12)
escreditoono = 1
limite_credito = x1.GetString("CAT_CL_LIMITECREDITO")
esPagoACreditoGuardamosPagare
Log(3)
End If
End If
Else
Log(4)
@@ -759,12 +824,20 @@ Sub esPagoACreditoGuardamosPagare
banderaimp = 1
Else
If l_total.Text.Replace(",","") <= limite_credito Then
DateTime.DateFormat = "dd/MM/yyyy"
DateTime.TimeFormat = "HH:mm:ss"
sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now)
Starter.skmt.ExecNonQuery2("INSERT INTO PAGARES (PA_ALMACEN, PA_RUTA_REP, PA_RUTAPREV, PA_FECHA_PREV, PA_CAPTURA, PA_MONTO, PA_USUARIO, PA_CLIENTE,PA_TICKET) VALUES(?,?,?,?,?,?,?,?,?) ", Array As Object (almacen,rutarep,rutaprev,fechaprev,(sDate),l_total.Text.Replace(",",""),usuario,cuenta,NOTA))
B_IMP_Click
banderaimp = 1
Else
DateTime.DateFormat = "dd/MM/yyyy"
DateTime.TimeFormat = "HH:mm:ss"
sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now)
Log(limite_credito)
Msgbox2Async("Se debe de realizar un pago por " & NumberFormat2((l_total.Text.Replace(",","")-limite_credito),0,2,2,False) & " por que exede el limite de credito","Atención","","Aceptar","Cancelar",LoadBitmap(File.DirAssets,"alert2.png"),False)
Msgbox2Async("Se debe de realizar un pago por " & NumberFormat2((l_total.Text.Replace(",","")-limite_credito),0,2,2,False) & " por que excede el limite de credito","Atención","","Aceptar","Cancelar",LoadBitmap(File.DirAssets,"alert2.png"),False)
Wait For Msgbox_Result (Result As Int)
If Result= DialogResponse.CANCEL Then
Starter.skmt.ExecNonQuery2("INSERT INTO PAGARES (PA_ALMACEN, PA_RUTA_REP, PA_RUTAPREV, PA_FECHA_PREV, PA_CAPTURA, PA_MONTO, PA_USUARIO, PA_CLIENTE,PA_TICKET) VALUES(?,?,?,?,?,?,?,?,?) ", Array As Object (almacen,rutarep,rutaprev,fechaprev,(sDate),l_total.Text.Replace(",",""),usuario,cuenta,NOTA))
@@ -875,7 +948,13 @@ Sub Guardado
' If mandamapa.RowCount > 0 Then
' StartActivity(MAPA_RUTAS)
' Else If mandamapa.RowCount = 0 Then
B4XPages.ShowPage("Principal")
' If (almacen = 81 Or almacen = 94) Then
'
'
' Else
B4XPages.ShowPage("Principal")
' End If
' End If
End Sub
@@ -963,16 +1042,7 @@ End Sub
Sub HIST_Click
Dim x2 As Cursor =Starter.skmt.ExecQuery("SELECT gestion FROM kmt_info where CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA)")
x2.Position = 0
If x2.GetString("gestion") = 2 Then
Msgbox2Async("Ya se gestiono el cliente, no se pueden hacer modificaciones","Atención","","","Ok",LoadBitmap(File.DirAssets,"alert2.png"),False)
Wait For Msgbox_Result (Result As Int)
If Result= DialogResponse.NEGATIVE Then
B4XPages.ShowPage("Principal")
End If
Else
Dim pagacheca2 As Cursor = Starter.skmt.ExecQuery("SELECT * FROM PAGARES WHERE PA_CLIENTE IN (SELECT CUENTA FROM CUENTAA)")
If pagacheca2.RowCount > 0 Then
@@ -986,7 +1056,7 @@ Sub HIST_Click
Else
If Subs.traeAlmacen = 92 Then
If (Subs.traeAlmacen = 92 Or Subs.traeAlmacen = 94) Then
Dim k As Cursor = Starter.skmt.ExecQuery("SELECT CUENTA from CUENTAA")
k.Position = 0
@@ -1061,7 +1131,7 @@ Sub HIST_Click
End If
End If
End If
End If
' B4XPages.MainPage.historico.prodsMap.Initialize
'' B4XPages.MainPage.historico.clv_pedido.Clear
' B4XPages.ShowPage("Historico")
@@ -1073,7 +1143,8 @@ Sub B_IMP_Click
c=Starter.skmt.ExecQuery("select USUARIO from usuarioa")
c.Position=0
usuario = c.GetString("USUARIO")
DateTime.DateFormat = "MM/dd/yyyy"
' DateTime.DateFormat = "MM/dd/yyyy"
DateTime.DateFormat = "dd/MM/yyyy"
sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now)
c.Close
@@ -1128,8 +1199,8 @@ Sub B_IMP_Click
Do While Not(impresoraConectada) Or Not(Printer1.IsConnected)
Sleep(1000)
cont = cont + 1
If cont = 2 Then Printer1.Connect
If cont > 4 Then impresoraConectada = True
If cont = 7 Then Printer1.Connect
If cont > 15 Then impresoraConectada = True
Loop
Sleep(500)
impresoraConectada = False
@@ -1558,7 +1629,7 @@ Printer1.WriteString(" " & CRLF)
Printer1.WriteString(" " & CRLF)
If almacen = "81" Then
Printer1.WriteString("Telefono de atención:" & CRLF)
Printer1.WriteString("Telefono de atencion:" & CRLF)
Printer1.WriteString("" & CRLF)
End If
@@ -1627,7 +1698,7 @@ End Sub
Sub Printer_Connected (Success As Boolean)
If Success Then
' B_IMP.Enabled = True
PASA_IMP = "1"
' PASA_IMP = "1"
Else
' B_IMP.Enabled = False
If Msgbox2("", "Printer Error","Reprint","Cancel","",Null) = DialogResponse.POSITIVE Then 'ignore
@@ -2310,7 +2381,8 @@ Sub imprime_abonopagare2
c=Starter.skmt.ExecQuery("select USUARIO from usuarioa")
c.Position=0
usuario = c.GetString("USUARIO")
DateTime.DateFormat = "MM/dd/yyyy"
' DateTime.DateFormat = "MM/dd/yyyy"
DateTime.DateFormat = "dd/MM/yyyy"
DateTime.TimeFormat = "HH:mm:ss"
sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now)
@@ -2375,6 +2447,8 @@ Sub imprime_abonopagare2
TAMANO = 0
ESPACIO = 22
BLANCO = " "
Dim bmp As Bitmap
bmp.InitializeResize(File.DirAssets, "logo-guna-18.jpg", 192, 192, True) 'ignore
Dim myimage As AnImage = Printer1.ImageToBWIMage(bmp)
@@ -2393,7 +2467,7 @@ Sub imprime_abonopagare2
c7.Close
Printer1.WriteString("DISTRIBUIDORA ROCHA TULA PACHUCA" & CRLF)
' Printer1.WriteString(sucursal & CRLF)
Printer1.WriteString(sDate & CRLF)
@@ -2475,6 +2549,55 @@ Sub imprime_abonopagare2
c4.Close
End If
Dim numpago As Int = c5.RowCount + 1
Dim tipopagotick As String = ""
If itemselect = "TRANSFERENCIA" Then
tipopagotick = "T"
Else If itemselect = "EFECTIVO" Then
tipopagotick = "E"
Else If itemselect = "CHEQUE" Then
tipopagotick = "C"
End If
'' codigo de barras
' ImageView1.Bitmap = barcode.CODE128(notaabono&sDate&tipopagotick&numpago)
'' codigo de qr
B4XImageView1.SetBitmap(qr.Create(notaabono&sDate&tipopagotick&numpago))
Dim Dirp As String = File.DirInternal
Dim Dir As String
Dim Dir2 As String
Try
File.MakeDir(Dirp,"/md")
Dir = "/md"
Log("creado en promotoria " & Dirp & Dir)
Catch
Dir = ""
Log("creado en raiz")
End Try
Try
File.MakeDir(Dirp & Dir,"/reduccion")
Dir2 = "/reduccion"
Log("creado en promotoria " & Dirp & Dir & Dir2)
Catch
Dir = ""
Log("creado en raiz")
End Try
'' codigo de barras
' Dim Out As OutputStream
' Out = File.OpenOutput(File.DirInternal & Dir & Dir2, "Test.png", False)
' barcode.CODE128(notaabono&sDate&tipopagotick&numpago).WriteToStream(Out, 100, "PNG")
' Out.Close
'' codigo de qr
Dim Out As OutputStream
Out = File.OpenOutput(File.DirInternal & Dir & Dir2, "qr.png", False)
qr.Create(notaabono&sDate&tipopagotick&numpago).WriteToStream(Out, 100, "PNG")
Out.Close
@@ -2483,7 +2606,7 @@ Sub imprime_abonopagare2
' c.Position = 0
' notaabono = c.GetString("NOTA")
' End If
Dim numpago As Int = c5.RowCount + 1
Log(notaabono)
Log(et_abono.Text)
Printer1.WriteString("Comprobante de pago del pagare" & CRLF)
@@ -2501,9 +2624,7 @@ Sub imprime_abonopagare2
Printer1.WriteString(" " & CRLF)
Printer1.WriteString("------------------------------" & CRLF)
Printer1.WriteString("-------------FIRMA------------" & CRLF)
Printer1.WriteString(" " & CRLF)
Printer1.WriteString(" " & CRLF)
Printer1.WriteString(" " & CRLF)
DateTime.DateFormat = "ddMMyyyy"
sDate=DateTime.Date(DateTime.Now)
itemselect = "EFECTIVO"
@@ -2511,16 +2632,27 @@ Sub imprime_abonopagare2
' Items.Add("TRANSFERENCIA")
' Items.Add("EFECTIVO")
' Items.Add("CHEQUE")
Dim tipopagotick As String = ""
If itemselect = "TRANSFERENCIA" Then
tipopagotick = "T"
Else If itemselect = "EFECTIVO" Then
tipopagotick = "E"
Else If itemselect = "CHEQUE" Then
tipopagotick = "C"
End If
Printer1.WriteBarCode("I",NOTA&sDate&tipopagotick&numpago)
' Dim bmp As Bitmap
'' bmp.InitializeResize(File.DirAssets, "logo-guna-18.jpg", 192, 192, True) 'ignore
Dim bmp2 As Bitmap
bmp2.InitializeResize(File.DirInternal & Dir & Dir2, "qr.png", 192, 192, True) 'ignore
' bmp.Initialize(File.DirInternal & Dir & Dir2, "qr.png") 'ignore
Dim myimage2 As AnImage = Printer1.ImageToBWIMage(bmp2)
myimage2 = Printer1.DitherImage2D(myimage2, 128)
myimage2= Printer1.PackImage(myimage2)
Printer1.WriteString(CRLF) ' nudge the printer to show the user something is happening
Printer1.WriteString(Printer1.REVERSE)
Printer1.PrintImage(myimage2)
Printer1.WriteString(Printer1.UNREVERSE)
' Printer1.WriteBarCode("I",NOTA&sDate&tipopagotick&numpago)
Printer1.WriteString(" " & CRLF)
Printer1.WriteString(" " & CRLF)
Printer1.WriteString(" " & CRLF)
@@ -2584,11 +2716,19 @@ End Sub
' End If
'End Sub
'Saves the data received from PictureTaken event
Public Sub SavePictureToFile(Data() As Byte, Dir As String, FileName As String)
Dim out As OutputStream = File.OpenOutput(Dir, FileName, False)
out.WriteBytes(Data, 0, Data.Length)
out.Close
End Sub
Sub imprime_abonopagare
c=Starter.skmt.ExecQuery("select USUARIO from usuarioa")
c.Position=0
usuario = c.GetString("USUARIO")
DateTime.DateFormat = "MM/dd/yyyy"
' DateTime.DateFormat = "MM/dd/yyyy"
DateTime.DateFormat = "dd/MM/yyyy"
DateTime.TimeFormat = "HH:mm:ss"
sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now)
@@ -2636,6 +2776,7 @@ Sub imprime_abonopagare
If cont > 15 Then impresoraConectada = True
Loop
Sleep(500)
Log("asasdas")
impresoraConectada = False
Else
' If logger Then Log("conectando 2")
@@ -2643,9 +2784,10 @@ Sub imprime_abonopagare
Private cont As Int = 0
Do While Not(impresoraConectada) Or Not(Printer1.IsConnected)
Sleep(1000)
Log("asasdas")
cont = cont + 1
If cont = 2 Then Printer1.Connect
If cont > 4 Then impresoraConectada = True
If cont = 7 Then Printer1.Connect
If cont > 15 Then impresoraConectada = True
Loop
Sleep(500)
impresoraConectada = False
@@ -2653,6 +2795,7 @@ Sub imprime_abonopagare
TAMANO = 0
ESPACIO = 22
BLANCO = " "
Printer1.Justify = 0
Dim bmp As Bitmap
bmp.InitializeResize(File.DirAssets, "logo-guna-18.jpg", 192, 192, True) 'ignore
Dim myimage As AnImage = Printer1.ImageToBWIMage(bmp)
@@ -2671,7 +2814,7 @@ Sub imprime_abonopagare
c7.Close
Printer1.WriteString(" " & CRLF)
Printer1.WriteString("DISTRIBUIDORA ROCHA TULA PACHUCA" & CRLF)
' Printer1.WriteString(sucursal & CRLF)
Printer1.WriteString(sDate & CRLF)
@@ -2686,9 +2829,20 @@ Sub imprime_abonopagare
Dim notaabono As String
Dim saldopendiente As Double
Dim saldopendiente2 As Double
' Items.Add("TRANSFERENCIA")
' Items.Add("EFECTIVO")
' Items.Add("CHEQUE")
Dim tipopagotick As String = ""
If itemselect = "TRANSFERENCIA" Then
tipopagotick = "T"
Else If itemselect = "EFECTIVO" Then
tipopagotick = "E"
Else If itemselect = "CHEQUE" Then
tipopagotick = "C"
End If
If tipo_abonox = "abono" Then
Log("AQUI ABONO")
c = Starter.skmt.ExecQuery($"select distinct hvd_num_ticket from hist_ventas where hvd_cliente = '${la_cuenta.Text}' and HVD_PRONOMBRE <> 'Cobranza Pendiente' "$)
If c.RowCount > 0 Then
@@ -2754,21 +2908,76 @@ Sub imprime_abonopagare
End If
' bc.Initialize
' c = Starter.skmt.ExecQuery("SELECT NOTA FROM ABONOSP WHERE CLIENTE IN (SELECT CUENTA FROM CUENTAA)")
' If c.RowCount > 0 Then
' c.Position = 0
' notaabono = c.GetString("NOTA")
' End If
DateTime.DateFormat = "ddMMyyyy"
sDate=DateTime.Date(DateTime.Now)
Dim numpago As Int = c5.RowCount + 1
'' codigo de barras
' ImageView1.Bitmap = barcode.CODE128(notaabono&sDate&tipopagotick&numpago)
'' codigo de qr
B4XImageView1.SetBitmap(qr.Create(notaabono&sDate&tipopagotick&numpago))
Dim Dirp As String = File.DirInternal
Dim Dir As String
Dim Dir2 As String
Try
File.MakeDir(Dirp,"/md")
Dir = "/md"
Log("creado en promotoria " & Dirp & Dir)
Catch
Dir = ""
Log("creado en raiz")
End Try
Try
File.MakeDir(Dirp & Dir,"/reduccion")
Dir2 = "/reduccion"
Log("creado en promotoria " & Dirp & Dir & Dir2)
Catch
Dir = ""
Log("creado en raiz")
End Try
'' codigo de barras
' Dim Out As OutputStream
' Out = File.OpenOutput(File.DirInternal & Dir & Dir2, "Test.png", False)
' barcode.CODE128(notaabono&sDate&tipopagotick&numpago).WriteToStream(Out, 100, "PNG")
' Out.Close
'' codigo de qr
Dim Out As OutputStream
Out = File.OpenOutput(File.DirInternal & Dir & Dir2, "qr.png", False)
qr.Create(notaabono&sDate&tipopagotick&numpago).WriteToStream(Out, 100, "PNG")
Out.Close
Log(notaabono)
Log(et_abono.Text)
Printer1.WriteString("Comprobante de pago del pagare" & CRLF)
Printer1.WriteString("Folio: " & Folio &"-"&(numpago)& CRLF)
Printer1.WriteString("Monto deuda: " & (NumberFormat(saldopendiente2 - saldopendiente3,0,2)) & CRLF)
If tipo_abonox = "abono" Then
Printer1.WriteString("Monto deuda: " & (NumberFormat(saldopendiente - saldopendiente1,0,2)) & CRLF)
Else
Printer1.WriteString("Monto deuda: " & (NumberFormat(saldopendiente2 - saldopendiente3,0,2)) & CRLF)
End If
Printer1.WriteString("Monto abono: " & (NumberFormat(et_abono.Text,0,2)) & CRLF)
Printer1.WriteString("Restante "&Folio&": " &(NumberFormat(saldopendiente2-et_abono.Text - saldopendiente3,0,2)) & CRLF)
If tipo_abonox = "abono" Then
Printer1.WriteString("Restante "&Folio&": " &(NumberFormat(saldopendiente-et_abono.Text ,0,2)) & CRLF)
Else
Printer1.WriteString("Restante "&Folio&": " &(NumberFormat(saldopendiente2-et_abono.Text - saldopendiente3,0,2)) & CRLF)
End If
DateTime.DateFormat = "MM/dd/yyyy"
sDate=DateTime.Date(DateTime.Now)
Printer1.WriteString("Restante pagares: " &(NumberFormat(saldopendiente-et_abono.Text - saldopendiente1,0,2)) & CRLF)
Printer1.WriteString("Fecha Abono: " & sDate & CRLF)
Printer1.WriteString(" " & CRLF)
@@ -2780,36 +2989,37 @@ Sub imprime_abonopagare
Printer1.WriteString(" " & CRLF)
Printer1.WriteString("------------------------------" & CRLF)
Printer1.WriteString("-------------FIRMA------------" & CRLF)
Printer1.WriteString(" " & CRLF)
Printer1.WriteString(" " & CRLF)
Printer1.WriteString(" " & CRLF)
DateTime.DateFormat = "ddMMyyyy"
sDate=DateTime.Date(DateTime.Now)
' Items.Add("TRANSFERENCIA")
' Items.Add("EFECTIVO")
' Items.Add("CHEQUE")
Dim tipopagotick As String = ""
If itemselect = "TRANSFERENCIA" Then
tipopagotick = "T"
Else If itemselect = "EFECTIVO" Then
tipopagotick = "E"
Else If itemselect = "CHEQUE" Then
tipopagotick = "C"
End If
Printer1.WriteBarCode("I",notaabono&sDate&tipopagotick&numpago)
' Dim bmp As Bitmap
'' bmp.InitializeResize(File.DirAssets, "logo-guna-18.jpg", 192, 192, True) 'ignore
Dim bmp2 As Bitmap
bmp2.InitializeResize(File.DirInternal & Dir & Dir2, "qr.png", 192, 192, True) 'ignore
' bmp.Initialize(File.DirInternal & Dir & Dir2, "qr.png") 'ignore
Dim myimage2 As AnImage = Printer1.ImageToBWIMage(bmp2)
myimage2 = Printer1.DitherImage2D(myimage2, 128)
myimage2= Printer1.PackImage(myimage2)
Printer1.WriteString(CRLF) ' nudge the printer to show the user something is happening
Printer1.WriteString(Printer1.REVERSE)
Printer1.PrintImage(myimage2)
Printer1.WriteString(Printer1.UNREVERSE)
' Printer1.WriteBarCode("I",notaabono&sDate&tipopagotick&numpago)
Printer1.WriteString(" " & CRLF)
Printer1.WriteString(" " & CRLF)
Printer1.WriteString(" " & CRLF)
Sleep(1000)
Sleep(2000)
Printer1.DisConnect
ProgressDialogHide
If Subs.traeAlmacen = "92" Then
''mayoreo
''mayoreo
If tipo_abonox = "abono" Then
Msgbox2Async("Deseas imprimir de nuevo el ticket?", "ATENCION","SI","", "NO",LoadBitmap(File.DirAssets,"alert2.png"), False)
@@ -2950,7 +3160,7 @@ Sub imprime_abonopagare
End If
End If
''mayoreo
''mayoreo
Else
If tipo_abonox = "abono" Then
@@ -3101,7 +3311,8 @@ Sub imprime_pagare
c=Starter.skmt.ExecQuery("select USUARIO from usuarioa")
c.Position=0
usuario = c.GetString("USUARIO")
DateTime.DateFormat = "MM/dd/yyyy"
' DateTime.DateFormat = "MM/dd/yyyy"
DateTime.DateFormat = "dd/MM/yyyy"
sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now)
c.Close
@@ -3192,6 +3403,7 @@ Sub imprime_pagare
' Ticket = c6.GetString("HVD_NUM_TICKET")
' End If
' c6.Close
DateTime.DateFormat = "dd/MM/yyyy"
DateTime.TimeFormat = "HH:mm:ss"
sDate=DateTime.Date(DateTime.Now)
@@ -3290,7 +3502,7 @@ Sub imprime_pagare
Printer1.Justify = 0
s.Close
Printer1.WriteString(" " & CRLF)
s=Starter.skmt.ExecQuery($"select HVD_PRONOMBRE, HVD_CANT, length(HVD_CANT) as L_CANT, HVD_COSTO_TOT, length(HVD_COSTO_TOT) as L_COSTOU,HVD_PROID, HVD_CODPROMO,IFNULL(HVD_RECHAZOCANT,0) AS HVD_RECHAZOCANT FROM HIST_VENTAS WHERE HVD_CLIENTE IN (Select CUENTA from cuentaa) AND HVD_RECHAZO = 0 AND HVD_CODPROMO <> '${Subs.traeAlmacen}' order by HVD_CODPROMO, ESPROMO DESC, HVD_PROID"$)
s=Starter.skmt.ExecQuery($"select HVD_PRONOMBRE, HVD_CANT, length(HVD_CANT) as L_CANT, HVD_COSTO_TOT, length(HVD_COSTO_TOT) as L_COSTOU,HVD_PROID, HVD_CODPROMO,IFNULL(HVD_RECHAZOCANT,0) AS HVD_RECHAZOCANT FROM HIST_VENTAS WHERE HVD_CLIENTE IN (Select CUENTA from cuentaa) AND HVD_RECHAZO = 0 and HVD_PRONOMBRE <> 'Cobranza Pendiente' AND HVD_CODPROMO <> '${Subs.traeAlmacen}' order by HVD_CODPROMO, ESPROMO DESC, HVD_PROID"$)
If S.RowCount>0 Then
Printer1.WriteString("-------PROMOS ENTREGA--------" & CRLF)
Printer1.WriteString("Cant. Precio Importe" & CRLF)
@@ -3353,13 +3565,70 @@ Sub imprime_pagare
Printer1.WriteString("" & CRLF)
Printer1.WriteString("______________________________" & CRLF)
Printer1.WriteString(" " & CRLF)
Printer1.WriteString(" " & CRLF)
Printer1.WriteString(" " & CRLF)
DateTime.DateFormat = "ddMMyyyy"
sDate=DateTime.Date(DateTime.Now)
' Printer1.WriteString("JHGHGH " & CRLF)
Printer1.WriteBarCode("I",la_cuenta.Text&sDate)
'' codigo de barras
' ImageView1.Bitmap = barcode.CODE128(notaabono&sDate&tipopagotick&numpago)
'' codigo de qr
B4XImageView1.SetBitmap(qr.Create(la_cuenta.Text&sDate))
Dim Dirp As String = File.DirInternal
Dim Dir As String
Dim Dir2 As String
Try
File.MakeDir(Dirp,"/md")
Dir = "/md"
Log("creado en promotoria " & Dirp & Dir)
Catch
Dir = ""
Log("creado en raiz")
End Try
Try
File.MakeDir(Dirp & Dir,"/reduccion")
Dir2 = "/reduccion"
Log("creado en promotoria " & Dirp & Dir & Dir2)
Catch
Dir = ""
Log("creado en raiz")
End Try
'' codigo de barras
' Dim Out As OutputStream
' Out = File.OpenOutput(File.DirInternal & Dir & Dir2, "Test.png", False)
' barcode.CODE128(la_cuenta.Text&sDate).WriteToStream(Out, 100, "PNG")
' Out.Close
'' codigo de qr
Dim Out As OutputStream
Out = File.OpenOutput(File.DirInternal & Dir & Dir2, "qr.png", False)
qr.Create(la_cuenta.Text&sDate).WriteToStream(Out, 100, "PNG")
Out.Close
Dim bmp2 As Bitmap
bmp2.InitializeResize(File.DirInternal & Dir & Dir2, "qr.png", 192, 192, True) 'ignore
' bmp.Initialize(File.DirInternal & Dir & Dir2, "qr.png") 'ignore
Dim myimage2 As AnImage = Printer1.ImageToBWIMage(bmp2)
myimage2 = Printer1.DitherImage2D(myimage2, 128)
myimage2= Printer1.PackImage(myimage2)
Printer1.WriteString(CRLF) ' nudge the printer to show the user something is happening
Printer1.WriteString(Printer1.REVERSE)
Printer1.PrintImage(myimage2)
Printer1.WriteString(Printer1.UNREVERSE)
' Printer1.WriteBarCode("I",la_cuenta.Text&sDate)
Printer1.WriteString(" " & CRLF)
Printer1.WriteString(" " & CRLF)
@@ -3393,6 +3662,19 @@ End Sub
Private Sub b_cancel_pagare_Click
tipo_abonox = "abono"
Dim Items As List
Items.Initialize
Items.Add("SELECCIONA UNA OPCION")
Items.Add("TRANSFERENCIA")
Items.Add("EFECTIVO")
Items.Add("CHEQUE")
cb_tipopago.SetItems(Items)
itemselect= "SELECCIONA UNA OPCION"
' Msgbox2Async($"¿Que deseas realizar?"$,"Atención", "","", "Abono pagare", Null, True)
' Wait For Msgbox_Result (resultado As Int)
' If resultado = DialogResponse.POSITIVE Then
@@ -3516,7 +3798,8 @@ Sub imprime_cancelarpagare
c=Starter.skmt.ExecQuery("select USUARIO from usuarioa")
c.Position=0
usuario = c.GetString("USUARIO")
DateTime.DateFormat = "MM/dd/yyyy"
' DateTime.DateFormat = "MM/dd/yyyy"
DateTime.DateFormat = "dd/MM/yyyy"
sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now)
c.Close
@@ -4215,7 +4498,8 @@ Private Sub HIST_LongClick
c=Starter.skmt.ExecQuery("select USUARIO from usuarioa")
c.Position=0
usuario = c.GetString("USUARIO")
DateTime.DateFormat = "MM/dd/yyyy"
' DateTime.DateFormat = "MM/dd/yyyy"
DateTime.DateFormat = "dd/MM/yyyy"
sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now)
c.Close
@@ -4309,11 +4593,12 @@ Private Sub HIST_LongClick
For i=0 To S.RowCount -1
S.Position=i
Log(s.GetString("HVD_RECHAZO"))
If s.GetString("HVD_CANT") - s.GetString("HVD_RECHAZOCANT") > 0 Then
If s.GetString("HVD_CODPROMO") = Subs.traeAlmacen Then
Printer1.Justify = 0
Printer1.WriteString((s.GetString("HVD_CANT") - s.GetString("HVD_RECHAZOCANT") )&" "&s.GetString("HVD_PRONOMBRE") & CRLF)
Printer1.WriteString(" " & CRLF)
' Dim punit As String = NumberFormat2((s.GETSTRING("HVD_COSTO_TOT")/s.GetString("HVD_CANT")),0,2,2,False)
' TAMANO = punit.Length + TAMANO
@@ -4339,7 +4624,7 @@ Private Sub HIST_LongClick
Else If s.GetString("HVD_RECHAZO") = 1 Then
Printer1.Justify = 0
Printer1.WriteString((s.GetString("HVD_CANT") - s.GetString("HVD_RECHAZOCANT")) &" "&s.GetString("HVD_PRONOMBRE") & CRLF)
Printer1.WriteString(" " & CRLF)
' Private vc5 As Cursor = Starter.skmt.ExecQuery($"select iFNULL(CAT_GP_PRECIO,0) AS CAT_GP_PRECIO from CAT_GUNAPROD where CAT_GP_ID = '${s.GetString("HVD_PROID")}'"$)
' vc5.Position = 0
' Dim punit As String = NumberFormat2((vc5.GetString("CAT_GP_PRECIO")),0,2,2,False)
@@ -4388,6 +4673,7 @@ Private Sub HIST_LongClick
Printer1.WriteString("* "&s.GetString("HVD_PRONOMBRE") & CRLF)
Else
Printer1.WriteString((s.GetString("HVD_CANT") - s.GetString("HVD_RECHAZOCANT"))&" "&s.GetString("HVD_PRONOMBRE") & CRLF)
Printer1.WriteString(" " & CRLF)
End If
' Dim punit As String =NumberFormat2((s.GETSTRING("HVD_COSTO_TOT")/s.GetString("HVD_CANT")),0,2,2,False)
' TAMANO = punit.Length + TAMANO
@@ -4427,4 +4713,5 @@ Private Sub HIST_LongClick
Printer1.DisConnect
ProgressDialogHide
' Guardado
End Sub
End Sub

View File

@@ -86,6 +86,9 @@ End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
Sub B4XPage_Appear
Subs.centraPanel(p_principal, Root.Width)
' b_guardar.Visible = False
' Titulo.Left = Round(p_principal.Width/2)-(Titulo.Width/2)
@@ -308,6 +311,8 @@ Sub B4XPage_Appear
Else
L_CANT.Text = NumberFormat2((arti + arti1 +arti2 + arti3),0,0,0,True)
End If
End Sub
Sub GPS_LocationChanged (Location1 As Location)
@@ -503,6 +508,20 @@ Sub CreateListItem2(Text As String, precioU As String, inv As Int, inv2 As Int,
End Sub
Sub b_prodMenos_Click
Dim x2 As Cursor =Starter.skmt.ExecQuery("SELECT gestion FROM kmt_info where CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA)")
x2.Position = 0
If x2.GetString("gestion") = 2 Then
MsgboxAsync("Ya se gestiono el cliente, no se pueden hacer modificaciones","Atención")
' Wait For Msgbox_Result (result2 As Int)
' If result= DialogResponse.NEGATIVE Then
' B4XPages.ShowPage("Principal")
' End If
' b_prodMas.Enabled = False
' b_prodMenos.Enabled = False
Else
etCantHasFocus = False
Log("etCantHasFocus=" & etCantHasFocus)
LogColor("b_prodMenos_Click", Colors.Magenta)
@@ -637,9 +656,26 @@ Sub b_prodMenos_Click
' L_CANT.Text = cym.Get("cantidad")
' L_TOTAL.Text = Round2(cym.Get("monto"), 2)
' cuentaProds("-")
End If
End Sub
Sub b_prodMas_Click
Dim x2 As Cursor =Starter.skmt.ExecQuery("SELECT gestion FROM kmt_info where CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA)")
x2.Position = 0
If x2.GetString("gestion") = 2 Then
MsgboxAsync("Ya se gestiono el cliente, no se pueden hacer modificaciones","Atención")
' Wait For Msgbox_Result (result2 As Int)
' If result= DialogResponse.NEGATIVE Then
' B4XPages.ShowPage("Principal")
' End If
' b_prodMas.Enabled = False
' b_prodMenos.Enabled = False
Else
etCantHasFocus = False
' Log("etCantHasFocus=" & etCantHasFocus)
LogColor("b_prodMas_Click", Colors.Magenta)
@@ -728,6 +764,8 @@ Sub b_prodMas_Click
' If cantoriginal <= esteTag.Get(1) Then
' L_CANT.Text = L_CANT.Text + 1
' End If
End If
End Sub
Sub cuentaProds(accion As String)
@@ -1018,12 +1056,25 @@ Private Sub l_pCantC_Click
End Sub
Private Sub b_revversar_Click
Private c3 As Cursor = Starter.skmt.ExecQuery("SELECT * FROM PEDIDO WHERE PE_CLIENTEOR IN (SELECT CUENTA FROM CUENTAA)")
If c3.RowCount = 0 Then
Starter.skmt.ExecNonQuery($"update HIST_VENTAS set HVD_RECHAZO = 0, HVD_RECHAZOCANT = 0, BCAJAS = BCAJAS_OR, CANTC = CANTC_OR WHERE HVD_cliente in (Select CUENTA from cuentaa)"$)
B4XPage_Appear
Dim x2 As Cursor =Starter.skmt.ExecQuery("SELECT gestion FROM kmt_info where CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA)")
x2.Position = 0
If x2.GetString("gestion") = 2 Then
MsgboxAsync("Ya se gestiono el cliente, no se pueden hacer modificaciones","Atención")
' Wait For Msgbox_Result (result2 As Int)
' If result= DialogResponse.NEGATIVE Then
' B4XPages.ShowPage("Principal")
' End If
' b_prodMas.Enabled = False
' b_prodMenos.Enabled = False
Else
MsgboxAsync("Hay productos que ya se vendieron, no se puede regresar la venta","Atención")
Private c3 As Cursor = Starter.skmt.ExecQuery("SELECT * FROM PEDIDO WHERE PE_CLIENTEOR IN (SELECT CUENTA FROM CUENTAA)")
If c3.RowCount = 0 Then
Starter.skmt.ExecNonQuery($"update HIST_VENTAS set HVD_RECHAZO = 0, HVD_RECHAZOCANT = 0, BCAJAS = BCAJAS_OR, CANTC = CANTC_OR WHERE HVD_cliente in (Select CUENTA from cuentaa)"$)
B4XPage_Appear
Else
MsgboxAsync("Hay productos que ya se vendieron, no se puede regresar la venta","Atención")
End If
End If
End Sub

View File

@@ -136,6 +136,7 @@ Sub Class_Globals
Private PB_carga2 As ProgressBar
Private l_carga2 As Label
'fin carga
Private b_impresion_rec As Button
End Sub
'You can add more parameters here.
@@ -826,6 +827,7 @@ Sub Subir_Click
' envioinfo
' Else
envioinfo
imp_LIQUIDACION
' End If
' c.Close
@@ -1223,6 +1225,11 @@ Sub cargaGeneral
reqManager.ExecuteQuery(cmd , 0, "gunaprod")
Log($"Pedimos gunaprod - ${ALMACEN}, ${e_ruta.text}"$)
reqs.Add("gunaprod")
cmd.Initialize
cmd.Name = "select_GEOCERCA_GUNA_VN"
cmd.Parameters = Array As Object(ALMACEN)
reqManager.ExecuteQuery(cmd , 0, "GEOCERCA")
If ALMACEN = "81" Then
@@ -1322,6 +1329,17 @@ Sub JobDone(Job As HttpJob)
End If
End If
If Job.JobName = "DBRequest" Then
Dim result As DBResult = reqManager.HandleJob(Job)
If result.Tag = "GEOCERCA" Then 'query tag
Starter.skmt.ExecNonQuery("DELETE FROM GEOCERCA")
For Each records() As Object In result.Rows
Dim CAT_AL_GEOCERCA As String = records(result.Columns.Get("CAT_AL_GEOCERCA"))
Starter.skmt.ExecNonQuery2("INSERT INTO GEOCERCA(ACTIVA) VALUES (?)", Array As Object (CAT_AL_GEOCERCA))
Next
End If
End If
If Job.JobName = "DBRequest" Then
Dim result As DBResult = reqManager.HandleJob(Job)
If result.Tag = "select_abonosp" Then 'query tag
@@ -1994,6 +2012,7 @@ Sub e_ruta_EnterPressed
Starter.skmt.ExecNonQuery("delete from HIST_REPARTO_GEO")
Starter.skmt.ExecNonQuery("delete from pedido_cliente")
Starter.skmt.ExecNonQuery("delete from PAGARES")
Starter.skmt.ExecNonQuery("DELETE FROM GEOCERCA")
Starter.skmt.ExecNonQuery("delete from CHECADO_CHECK")
Starter.skmt.ExecNonQuery("delete from CHECKLIST2")
Starter.skmt.ExecNonQuery("delete from pedido")
@@ -2304,15 +2323,23 @@ End Sub
Private Sub b_rechazos_Click
Dim label1 As Label
label1 = lv_prod_Prin.SingleLineLayout.Label
label1.TextSize = 20
label1.TextSize = 18
label1.TextColor = Colors.White
p_prod.Width = Root.Width
p_prod.Height = Root.Height
lv_prod_Prin.Width = Root.Width
b_regreso.Left = (p_prod.Width - b_regreso.Width) / 2
' b_regreso.Left = (p_prod.Width - b_regreso.Width) / 2
b_regreso.Top = p_prod.Height - b_regreso.Height
b_impresion_rec.Top = p_prod.Height - b_impresion_rec.Height
' label1.TextSize = 20
label1.Typeface = Typeface.CreateNew(Typeface.DEFAULT_BOLD, Typeface.STYLE_BOLD)
If l_ctast.Text = "0" Then
b_impresion_rec.Enabled = True
Else If l_ctast.Text <> "0" Then
b_impresion_rec.Enabled = False
End If
' lv_prod_Prin.Left = p_prod.Width / 2
lv_prod_Prin.Width = Root.Width - (Root.Width * .10)
@@ -2320,7 +2347,7 @@ Private Sub b_rechazos_Click
Subs.centraListView(lv_prod_Prin,Root.Width)
p_prod.Visible = True
p_prod.BringToFront
Private c As Cursor = Starter.skmt.ExecQuery("select HVD_PRONOMBRE, IFNULL(SUM(HVD_RECHAZOCANT), 0) AS HVD_RECHAZOCANT, HVD_PROID from HIST_VENTAS WHERE hvd_rechazo <> 2 and HVD_RECHAZOCANT > 0 GROUP BY HVD_PROID order by HVD_PRONOMBRE asc")
Private c As Cursor = Starter.skmt.ExecQuery("select HVD_PRONOMBRE, IFNULL(SUM(HVD_RECHAZOCANT), 0) AS HVD_RECHAZOCANT, HVD_PROID from HIST_VENTAS WHERE hvd_rechazo <> 2 and HVD_RECHAZOCANT > 0 and HVD_PRONOMBRE <> 'Cobranza Pendiente' GROUP BY HVD_PROID order by HVD_PRONOMBRE asc")
lv_prod_Prin.SingleLineLayout.Label.TextColor = Colors.White
lv_prod_Prin.Clear
If c.RowCount > 0 Then
@@ -2339,8 +2366,10 @@ Private Sub b_rechazos_Click
If ( c.GetInt("HVD_RECHAZOCANT") - resta) <= 0 Then
Else
' If c.GetString("HVD_PRONOMBRE") <> "Cobranbra Pendiente" Then
itemText = $"${c.GetString("HVD_PRONOMBRE")} ${CRLF}Inventario: ${(c.GetInt("HVD_RECHAZOCANT") - resta)}"$
lv_prod_Prin.AddSingleLine(itemText)
' End If
End If
Next
Else
@@ -2883,4 +2912,275 @@ Private Sub ImageView1_LongClick
d.Position=0
cuantos_noventa = D.GetString("CUANTOS_NOVENTA")
d.Close
End Sub
Private Sub b_impresion_rec_Click
Dim totalentrega As Int
Dim totalrechazo As Int
Dim totalpiezas As Int
Dim sDate, sTime As String
c=Starter.skmt.ExecQuery("select USUARIO from usuarioa")
c.Position=0
usuario = c.GetString("USUARIO")
' DateTime.DateFormat = "MM/dd/yyyy"
DateTime.DateFormat = "dd/MM/yyyy"
DateTime.TimeFormat="HH:mm:ss"
sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now)
c.Close
' c=Starter.skmt.ExecQuery2("SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION =?", Array As String ("SUCURSAL"))
' c.Position = 0
' sucursal = c.GetString("CAT_VA_VALOR")
' c.Close
ProgressDialogShow("Imprimiendo, un momento ...")
Printer1.DisConnect
If Not(Printer1.IsConnected) Then
' Log("Conectando a impresora ...")
Printer1.Connect
Private cont As Int = 0
Do While Not(impresoraConectada)
Sleep(1000)
' Log("++++++ " & cont)
cont = cont + 1
If cont = 2 Then Printer1.Connect 'Tratamos de reconectar
If cont > 3 Then impresoraConectada = True
Loop
Sleep(500)
impresoraConectada = False
Else
' Log("conectando 2")
Printer1.Connect
Private cont As Int = 0
Do While Not(impresoraConectada) Or Not(Printer1.IsConnected)
Sleep(1000)
' Log("****** " & cont)
cont = cont + 1
If cont = 2 Then Printer1.Connect
If cont > 3 Then impresoraConectada = True
Loop
Sleep(500)
impresoraConectada = False
End If
TAMANO = 0
ESPACIO = 28
BLANCO = " "
Printer1.WriteString("gUNA Distribuciones" & CRLF)
Printer1.WriteString(sDate & " " &sTime & CRLF)
Printer1.WriteString(" " & CRLF)
Printer1.WriteString("------------RECHAZO-----------" & CRLF)
Private c As Cursor = Starter.skmt.ExecQuery("select HVD_PRONOMBRE, IFNULL(SUM(HVD_RECHAZOCANT), 0) AS HVD_RECHAZOCANT, IFNULL(SUM(HVD_CANT), 0) AS HVD_CANT, (IFNULL(SUM(HVD_CANT), 0) - IFNULL(SUM(HVD_RECHAZOCANT), 0)) as total, HVD_PROID from HIST_VENTAS where HVD_RECHAZO = 1 AND HVD_PRONOMBRE <> 'Cobranza Pendiente' GROUP BY HVD_PROID order by HVD_PRONOMBRE asc")
If c.RowCount > 0 Then
For i = 0 To c.RowCount - 1
c.Position = i
Printer1.WriteString(" " & CRLF)
Private c3 As Cursor=Starter.skmt.ExecQuery($"select Ifnull(sum(PE_CANT),0) AS PE_CANT from PEDIDO WHERE PE_PROID ='${c.GetString("HVD_PROID")}'"$)
Private resta As String = 0
If c3.RowCount > 0 Then
c3.Position = 0
resta = c3.GetString("PE_CANT")
Else
resta = 0
End If
Printer1.Justify = 0
Printer1.WriteString(c.GetString("HVD_PRONOMBRE") & CRLF)
' Printer1.Justify = 0
' Printer1.WriteString("TP: "& c.GetInt("HVD_CANT")&" ")
' Printer1.Justify = 1
' Printer1.WriteString(" TE: " & (c.GetInt("total") + resta)&" ")
' Printer1.Justify = 2
Printer1.WriteString("RECHAZO: " & (c.GetInt("HVD_RECHAZOCANT") - resta)&" ")
Printer1.Justify = 0
Printer1.WriteString(" " & CRLF)
' Printer1.WriteString(" " & CRLF)
' itemText2 = $"${c.GetString("HVD_PRONOMBRE")} ${CRLF} TP: ${(c.GetInt("HVD_CANT"))} TE: ${( c.GetInt("total") + resta)} TR: ${(c.GetInt("HVD_RECHAZOCANT") - resta)}"$
totalentrega = totalentrega + c.GetInt("total") + resta
totalrechazo = totalrechazo + c.GetInt("HVD_RECHAZOCANT") - resta
totalpiezas = totalpiezas + c.GetInt("HVD_CANT")
' Log(itemText2)
Next
End If
c.Close
Printer1.WriteString(" " & CRLF)
Printer1.WriteString(" " & CRLF)
Printer1.WriteString("------------------------------" & CRLF)
Printer1.WriteString(" " & CRLF)
' Printer1.WriteString("Total Piezas: "& totalpiezas & CRLF)
' Printer1.WriteString("Total Entrega: "& totalentrega & CRLF)
Printer1.WriteString("Total Rechazo: "& totalrechazo & CRLF)
Printer1.WriteString("------------------------------" & CRLF)
Printer1.WriteString("------------------------------" & CRLF)
Printer1.WriteString(" " & CRLF)
Printer1.WriteString(" " & CRLF)
Printer1.WriteString(" " & CRLF)
Sleep(1000)
Printer1.DisConnect
ProgressDialogHide
End Sub
Sub imp_LIQUIDACION
ProgressDialogShow("Imprimiendo, un momento ...")
Printer1.DisConnect
If Not(Printer1.IsConnected) Then
' If logger Then Log("conectando 1")
Printer1.Connect
Private cont As Int = 0
Do While Not(impresoraConectada)
Sleep(1000)
cont = cont + 1
If cont = 7 Then Printer1.Connect 'Tratamos de reconectar
If cont > 15 Then impresoraConectada = True
Loop
Sleep(500)
impresoraConectada = False
Else
' If logger Then Log("conectando 2")
Printer1.Connect
Private cont As Int = 0
Do While Not(impresoraConectada) Or Not(Printer1.IsConnected)
Sleep(1000)
cont = cont + 1
If cont = 2 Then Printer1.Connect
If cont > 4 Then impresoraConectada = True
Loop
Sleep(500)
impresoraConectada = False
End If
TAMANO = 0
ESPACIO = 29
BLANCO = " "
Printer1.Justify = 0
Dim sDate, sTime As String
DateTime.DateFormat = "dd/MM/yyyy"
DateTime.TimeFormat = "HH:mm:ss"
sDate = DateTime.Date(DateTime.Now)
sTime = DateTime.Time(DateTime.Now)
Printer1.WriteString("Fecha: " &sDate & CRLF)
Printer1.WriteString("Hora: " &sTime & CRLF)
Printer1.WriteString("Ruta: " & l_ruta.Text & CRLF)
Printer1.WriteString("Usuario: " & Subs.dameUsuarioDeDB & CRLF)
Printer1.WriteString("----------LIQUIDACION----------" & CRLF)
Printer1.WriteString("--------------------------------" & CRLF)
Printer1.WriteString("Monto entregado: $" & NumberFormat2(L_MONTOE.Text,0,2,2,True) & CRLF)
Printer1.WriteString(" " & CRLF)
Printer1.WriteString("Monto rechazado: $" & NumberFormat2(l_rechazo.Text,0,2,2,True) & CRLF)
Printer1.WriteString(" " & CRLF)
Printer1.WriteString("Pagares cobrados: $" & NumberFormat2(l_pagarescobrados.Text,0,2,2,True) & CRLF)
Printer1.WriteString(" " & CRLF)
If l_pagarescobrados.Text > 0 Then
Printer1.WriteString("--------------------------------" & CRLF)
Printer1.WriteString(" Cliente Abono" & CRLF)
Printer1.WriteString("--------------------------------" & CRLF)
' Printer1.WriteString( CRLF)
Dim abonoscreditos As Cursor = Starter.skmt.ExecQuery("SELECT a_abono, length(a_abono) as L_abono , length(a_cliente) as L_cliente , a_cliente FROM ABONOS ORDER BY a_cliente")
For g = 0 To abonoscreditos.RowCount -1
abonoscreditos.Position = g
TAMANO = abonoscreditos.GetInt("L_abono") + TAMANO
ESPACIO = (ESPACIO - TAMANO)/2
' Log(ESPACIO)
For j =0 To ESPACIO -1
BLANCO = " " & BLANCO
Next
Printer1.Justify = 0
Printer1.WriteString( abonoscreditos.GetString("a_cliente") & BLANCO)
Printer1.Justify = 1
Printer1.WriteString( NumberFormat2(abonoscreditos.GetString("a_abono"),0,2,2,True))
Printer1.WriteString( CRLF)
TAMANO = 0
ESPACIO = 29
BLANCO = " "
Printer1.Justify = 0
Next
Printer1.WriteString("--------------------------------" & CRLF)
Printer1.WriteString( CRLF)
End If
Printer1.WriteString(" " & CRLF)
Printer1.WriteString("Pagares nuevos: $" & NumberFormat2(l_pagaresnuevos.Text,0,2,2,True) & CRLF)
If l_pagaresnuevos.Text > 0 Then
Printer1.WriteString("--------------------------------" & CRLF)
Printer1.WriteString(" Cliente Pagare" & CRLF)
Printer1.WriteString("--------------------------------" & CRLF)
' Printer1.WriteString( CRLF)
Dim abonoscreditos As Cursor = Starter.skmt.ExecQuery("SELECT PA_MONTO, length(PA_MONTO) as L_PA_MONTO , length(PA_CLIENTE) as L_cliente , PA_CLIENTE FROM PAGARES ORDER BY PA_CLIENTE")
For g = 0 To abonoscreditos.RowCount -1
abonoscreditos.Position = g
TAMANO = abonoscreditos.GetInt("L_PA_MONTO") + TAMANO
ESPACIO = (ESPACIO - TAMANO)/2
' Log(ESPACIO)
For j =0 To ESPACIO -1
BLANCO = " " & BLANCO
Next
Printer1.Justify = 0
Printer1.WriteString( abonoscreditos.GetString("PA_CLIENTE") & BLANCO)
Printer1.Justify = 1
Printer1.WriteString( NumberFormat2(abonoscreditos.GetString("PA_MONTO"),0,2,2,True))
Printer1.WriteString( CRLF)
TAMANO = 0
ESPACIO = 29
BLANCO = " "
Printer1.Justify = 0
Next
Printer1.WriteString("--------------------------------" & CRLF)
Printer1.WriteString( CRLF)
End If
Printer1.WriteString(" " & CRLF)
Dim abonoscreditosefe As Cursor = Starter.skmt.ExecQuery("SELECT SUM(IFNULL(a_abono,0)) AS ABONO FROM ABONOS WHERE TIPO_PAGO = 'EFECTIVO' ORDER BY a_cliente")
abonoscreditosefe.Position = 0
Dim abonoscreditostrans As Cursor = Starter.skmt.ExecQuery("SELECT SUM(IFNULL(a_abono,0)) AS ABONO FROM ABONOS WHERE TIPO_PAGO = 'TRANSFERENCIA' ORDER BY a_cliente")
abonoscreditostrans.Position = 0
Dim abonoscreditosche As Cursor = Starter.skmt.ExecQuery("SELECT SUM(IFNULL(a_abono,0)) AS ABONO FROM ABONOS WHERE TIPO_PAGO = 'CHEQUE' ORDER BY a_cliente")
abonoscreditosche.Position = 0
Log(NumberFormat2(abonoscreditosefe.GetDouble("ABONO"),0,2,2,False) )
Printer1.WriteString("Monto efectivo: $" & NumberFormat2((l_montoaliquidar.Text - abonoscreditosche.GetDouble("ABONO") - abonoscreditostrans.GetDouble("ABONO")),0,2,2,True) & CRLF)
Printer1.WriteString(" " & CRLF)
Printer1.WriteString("Monto cheque: $" & NumberFormat2(abonoscreditosche.GetDouble("ABONO"),0,2,2,True) & CRLF)
Printer1.WriteString(" " & CRLF)
Printer1.WriteString("Monto transferencia: $" & NumberFormat2(abonoscreditostrans.GetDouble("ABONO"),0,2,2,True) & CRLF)
Printer1.WriteString(" " & CRLF)
Printer1.WriteString("Monto a liquidar: $" & NumberFormat2(l_montoaliquidar.Text,0,2,2,True) & CRLF)
' Dim sumainv As Cursor = Starter.skmt.ExecQuery("SELECT SUM(HVD_CANT) AS CANTIDAD FROM HIST_VENTAS WHERE HVD_CODPROMO <> HVD_PROID")
' sumainv.Position = 0
'
' Printer1.WriteString("------------------------------" & CRLF)
' Printer1.WriteString("Total piezas: " & sumainv.GetString("CANTIDAD")& CRLF)
Printer1.WriteString("------------------------------" & CRLF)
Printer1.Justify = 0
Printer1.WriteString(" " & CRLF)
Printer1.WriteString(" " & CRLF)
Printer1.WriteString(" " & CRLF)
Printer1.WriteString(" " & CRLF)
Sleep(1000)
Printer1.DisConnect
ProgressDialogHide
Msgbox2Async("Deseas imprimir de nuevo el ticket?", "ATENCION","SI","", "NO",LoadBitmap(File.DirAssets,"alert2.png"), False)
Wait For Msgbox_Result (resultado As Int)
If resultado = DialogResponse.POSITIVE Then
imp_LIQUIDACION
Else
End If
End Sub
Private Sub connecta_LongClick
imp_LIQUIDACION
End Sub

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -192,47 +192,116 @@ Public Sub StopFLP
End Sub
Sub flp_LocationChanged (Location1 As Location)
Starter.trackerActividad = Subs.fechaKMT(DateTime.Now)
UUGCoords = Location1
' If Main.logger Then Log("SmallestDisplacement="&actualLR.GetSmallestDisplacement)
CallSub2(Starter, "GPS_LocationChanged", Location1)
' CallSub2(gestion, "GPS_LocationChanged", Location1)
' CallSubDelayed2(gestion, "GPS_LocationChanged", Location1)
' Starter.trackerActividad = Subs.fechaKMT(DateTime.Now)
' UUGCoords = Location1
'' If Main.logger Then Log("SmallestDisplacement="&actualLR.GetSmallestDisplacement)
' CallSub2(Starter, "GPS_LocationChanged", Location1)
'' CallSub2(gestion, "GPS_LocationChanged", Location1)
'' CallSubDelayed2(gestion, "GPS_LocationChanged", Location1)
' B4XPages.MainPage.lat_gps = Location1.Latitude
' B4XPages.MainPage.lon_gps = Location1.Longitude
''/////// para la ultima ubicacion FL
' Dim sDate,sTime As String
' DateTime.DateFormat = "MM/dd/yyyy"
' sDate=DateTime.Date(DateTime.Now)
' sTime=DateTime.Time(DateTime.Now)
' Try
' Starter.skmt.ExecNonQuery("DELETE FROM HIST_GPS")
' Starter.skmt.ExecNonQuery2("INSERT INTO HIST_GPS (HGDATE, HGLAT, HGLON) VALUES(?,?,?) ", Array As Object (sDate & sTime, B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps))
' Catch
' If B4XPages.MainPage.logger Then Log("Error al borrar o insertar nuevas coordendas en HIST_GPS")
' End Try
''///////
' Dim coords As String = Location1.Latitude&","&Location1.Longitude&","&formatoFecha(Location1.Time)
' Log("Loc changed : "&Location1.Latitude&","&Location1.Longitude)
' If B4XPages.MainPage.logger Then Log("Mandamos Ubicacion")
' If B4XPages.MainPage.logger Then Log(locRequest)
' ' Solo mandamos la ubicacion si la precision es menor a XX mts
' If Location1.Accuracy < 100 Then
' Subs.guardaInfoEnBD(coords)'Escribimos coordenadas y fecha en BD
'' CallSubDelayed2(FirebaseMessaging,"mandamosLoc",coords)
' Subs.mandamosLoc(coords)
' End If
' Dim origFormat As String = DateTime.TimeFormat 'Guardamos formato de fecha
' DateTime.TimeFormat = "HHmmss" ' Modificamos formato de fecha
' Dim minsDif As Int = DateTime.Time(DateTime.Now) - B4XPages.MainPage.ultimaActualizacionGPS
'' If Main.logger Then Log("UltimaAct="&Main.ultimaActualizacionGPS&" MinsDif="&minsDif)
' If Location1.Accuracy < 100 And minsDif > 240 Then 'Si precision de 100 y 4 min transcurridos manda a web
' If B4XPages.MainPage.logger Then Log("actualizamos Ubicacion Web")
' CallSubDelayed(Starter, "ENVIA_ULTIMA_GPS")
' End If
' DateTime.TimeFormat = origFormat 'Regresamos formato de fecha original
' 'Revisamos servicios
' Subs.monitor
' ToastMessageShow("Loc changed", False)
' Log($"Loc changed:${Location1.Longitude},${Location1.Latitude}"$)
B4XPages.MainPage.lat_gps = Location1.Latitude
B4XPages.MainPage.lon_gps = Location1.Longitude
'/////// para la ultima ubicacion FL
UUGCoords = Location1
' Log("SmallestDisplacement="&actualLR.GetSmallestDisplacement)
' If DateTime.Now > LastUpdateTime + 10 * DateTime.TicksPerSecond Then
' Dim n As Notification = CreateNotification($"$2.5{Location1.Latitude} / $2.5{Location1.Longitude}"$)
' n.Notify(nid)
' LastUpdateTime = DateTime.Now
' End If
'/////// para la ultima localización FL
Dim sDate,sTime As String
DateTime.DateFormat = "MM/dd/yyyy"
sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now)
Try
Starter.skmt.ExecNonQuery("DELETE FROM HIST_GPS")
Starter.skmt.ExecNonQuery2("INSERT INTO HIST_GPS (HGDATE, HGLAT, HGLON) VALUES(?,?,?) ", Array As Object (sDate & sTime, B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps))
Catch
If B4XPages.MainPage.logger Then Log("Error al borrar o insertar nuevas coordendas en HIST_GPS")
End Try
'///////
' If Not(Starter.skmt.IsInitialized) Then Starter.skmt.Initialize(Starter.ruta,"kmt.db", True)
' Try
' B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO HIST_GPS (HGDATE, HGLAT, HGLON) VALUES(?,?,?) ", Array As Object (sDate & sTime, B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps))
' B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM HIST_GPS")
' Catch
' LogColor(LastException, Colors.Red)
' End Try
'///////
Dim coords As String = Location1.Latitude&","&Location1.Longitude&","&formatoFecha(Location1.Time)
Log("Loc changed : "&Location1.Latitude&","&Location1.Longitude)
If B4XPages.MainPage.logger Then Log("Mandamos Ubicacion")
If B4XPages.MainPage.logger Then Log(locRequest)
' Log("Loc changed : "&Location1.Latitude&","&Location1.Longitude&"|"&B4XPages.MainPage.usuario&"|")
' Log("Mandamos Ubicacion")
' Log(FirebaseMessaging.locRequest)
' Solo mandamos la ubicacion si la precision es menor a XX mts
If Location1.Accuracy < 100 Then
Subs.guardaInfoEnBD(coords)'Escribimos coordenadas y fecha en BD
' CallSubDelayed2(FirebaseMessaging,"mandamosLoc",coords)
Subs.mandamosLoc(coords)
End If
Dim origFormat As String = DateTime.TimeFormat 'Guardamos formato de fecha
DateTime.TimeFormat = "HHmmss" ' Modificamos formato de fecha
Dim minsDif As Int = DateTime.Time(DateTime.Now) - B4XPages.MainPage.ultimaActualizacionGPS
' If Main.logger Then Log("UltimaAct="&Main.ultimaActualizacionGPS&" MinsDif="&minsDif)
If Location1.Accuracy < 100 And minsDif > 240 Then 'Si precision de 100 y 4 min transcurridos manda a web
If B4XPages.MainPage.logger Then Log("actualizamos Ubicacion Web")
CallSubDelayed(Starter, "ENVIA_ULTIMA_GPS")
CallSub2(Starter, "GPS_LocationChanged", Location1)
CallSub2(B4XPages.MainPage.cliente, "GPS_LocationChanged", Location1)
' CallSub2(gestion, "GPS_LocationChanged", Location1)
If B4XPages.MainPage.cliente.IsInitialized Then
CallSub2(B4XPages.GetPage("Cliente"), "GPS_LocationChanged", Location1)
End If
DateTime.TimeFormat = origFormat 'Regresamos formato de fecha original
'Revisamos servicios
Subs.monitor
' CallSub2(nuevocliente, "GPS_LocationChanged", Location1)
End Sub
Public Sub StartFLP2
Private logger As Boolean = True
If logger Then Log("StartFLP2 - flpStarted="&flpStarted)
Do While FLP.IsConnected = False
Sleep(500)
If logger Then Log("kll - sleeping")
Loop
dameUltimaUbicacionConocida 'Regresamos ultima ubicacion conocida
FLP.RequestLocationUpdates(CreateLocationRequest2) 'Buscamos ubicacion 2 peticiones
If logger Then LogColor("Buscamos ubicacion (movimientoMinimo = "&actualLR.GetSmallestDisplacement&")", Colors.Magenta)
' If logger Then Log(actualLR.GetSmallestDisplacement)
End Sub
Private Sub CreateLocationRequest2 As LocationRequest
Private logger As Boolean = True
If logger Then Log("Iniciamos CreateLocationRequest2")
Dim lr As LocationRequest
lr.Initialize
lr.SetInterval(1000) 'Intervalo deseado para actualizaciones de ubicacion
lr.SetFastestInterval(lr.GetInterval / 2) 'Intervalo minimo para actualizaciones de ubicacion
lr.setNumUpdates(2) 'Solicitamos solo 2 actualizaciones con estos parametros
lr.SetSmallestDisplacement(1) 'Solo registra cambio de ubicacion si es mayor a XX mts
lr.SetPriority(lr.Priority.PRIORITY_HIGH_ACCURACY)
actualLR=lr
Return lr
End Sub
Sub CreateNotification (Body As String) As Notification 'ignore

710
B4A/barcodeGenerator.bas Normal file
View File

@@ -0,0 +1,710 @@
B4A=true
Group=Default Group
ModulesStructureVersion=1
Type=Class
Version=12.2
@EndOfDesignText@
'version 1.02
Sub Class_Globals
Private xui As XUI
Public cvs As B4XCanvas
Private xview As B4XView
End Sub
Public Sub Initialize
Dim xview As B4XView = xui.CreatePanel(Null)
xview.SetLayoutAnimated(0, 0, 0, 1050dip, 300dip)
xview.Color = xui.Color_White
End Sub
#Region EAN13
Public Sub EAN13(codigo As String) As B4XBitmap
cvs.Initialize(xview)
cvs.ClearRect(cvs.TargetRect)
If codigo.Length=12 Then codigo = "0" & codigo
If codigo.Length=13 Then
Dim novoCodigo As String = preparaEAN13(codigo)
If novoCodigo<>"" Then
'Dim canvas As B4XCanvas
Dim alturaPainel As Int = xview.Height
Dim larguraPainel As Int = xview.Width
Dim larguraCodigo As Int = xview.Width - 100dip
'Calcula as dimensões dos elementos do código de barras'
Dim alturaNumero As Int = 40dip 'altura dos números abaixo do código'
Dim larguraBarra As Int = larguraCodigo / 95 'largura de cada barra'
Dim alturaBarra As Int = alturaPainel - alturaNumero'altura das barras'
'Desenha as barras e os números do código de barras'
Dim rect As B4XRect
rect.Initialize(0, 0, larguraPainel, alturaPainel)
cvs.DrawRect(rect, xui.Color_White, True, 0) 'fundo branco'
Dim larguraAtual As Int = 50dip
For i=0 To novoCodigo.Length-1
Dim cor As Int = xui.Color_Black
If novoCodigo.CharAt(i) = "0" Then cor = xui.Color_White
If novoCodigo.CharAt(i) = "2" Then
cvs.DrawLine(larguraAtual, 0, larguraAtual, alturaBarra, cor, larguraBarra)
Else
cvs.DrawLine(larguraAtual, 0, larguraAtual, alturaBarra - alturaNumero, cor, larguraBarra)
End If
larguraAtual = larguraAtual + larguraBarra
Next
'Desenha o número abaixo do código de barras'
Dim fonte As B4XFont = xui.CreateFontAwesome(63)
Dim sb As StringBuilder
sb.Initialize
For i=1 To codigo.Length
Dim codigoCaracter As String = codigo.CharAt(i-1)
sb.Append(codigoCaracter)
If i=1 Then
sb.Append(" ")
Else If i=7 Then
sb.Append(" ")
Else If i=13 Then
'nao adiciona nada
Else
sb.Append(" ")
End If
Next
cvs.DrawText(sb.ToString, 1dip, alturaBarra+10dip, fonte, xui.Color_Black, "LEFT")
End If
End If
cvs.Invalidate
Dim res As B4XBitmap = cvs.CreateBitmap
cvs.Release
Return res
End Sub
Private Sub preparaEAN13(codigo As String) As String
Dim primeiroDigito As String = codigo.SubString2(0,1)
Dim primeiroGrupo As String = codigo.SubString2(1,7)
Dim segundoGrupo As String = codigo.SubString2(7,13)
Dim sequenciaNovo As String = ""
Dim codigoNovo As String = "-" & primeiroGrupo & "=" & segundoGrupo & "-"
If primeiroDigito="0" Then sequenciaNovo="-LLLLLL=RRRRRR-"
If primeiroDigito="1" Then sequenciaNovo="-LLGLGG=RRRRRR-"
If primeiroDigito="2" Then sequenciaNovo="-LLGGLG=RRRRRR-"
If primeiroDigito="3" Then sequenciaNovo="-LLGGGL=RRRRRR-"
If primeiroDigito="4" Then sequenciaNovo="-LGLLGG=RRRRRR-"
If primeiroDigito="5" Then sequenciaNovo="-LGGLLG=RRRRRR-"
If primeiroDigito="6" Then sequenciaNovo="-LGGGLL=RRRRRR-"
If primeiroDigito="7" Then sequenciaNovo="-LGLGLG=RRRRRR-"
If primeiroDigito="8" Then sequenciaNovo="-LGLGGL=RRRRRR-"
If primeiroDigito="9" Then sequenciaNovo="-LGGLGL=RRRRRR-"
Dim sb As StringBuilder
sb.Initialize
For i=0 To codigoNovo.Length-1
Dim digitoGrupo As String = codigoNovo.CharAt(i)
Dim sequenciaGrupo As String = sequenciaNovo.CharAt(i)
If sequenciaGrupo="L" Then
If digitoGrupo="0" Then sb.Append("0001101")
If digitoGrupo="1" Then sb.Append("0011001")
If digitoGrupo="2" Then sb.Append("0010011")
If digitoGrupo="3" Then sb.Append("0111101")
If digitoGrupo="4" Then sb.Append("0100011")
If digitoGrupo="5" Then sb.Append("0110001")
If digitoGrupo="6" Then sb.Append("0101111")
If digitoGrupo="7" Then sb.Append("0111011")
If digitoGrupo="8" Then sb.Append("0110111")
If digitoGrupo="9" Then sb.Append("0001011")
else If sequenciaGrupo="G" Then
If digitoGrupo="0" Then sb.Append("0100111")
If digitoGrupo="1" Then sb.Append("0110011")
If digitoGrupo="2" Then sb.Append("0011011")
If digitoGrupo="3" Then sb.Append("0100001")
If digitoGrupo="4" Then sb.Append("0011101")
If digitoGrupo="5" Then sb.Append("0111001")
If digitoGrupo="6" Then sb.Append("0000101")
If digitoGrupo="7" Then sb.Append("0010001")
If digitoGrupo="8" Then sb.Append("0001001")
If digitoGrupo="9" Then sb.Append("0010111")
Else If sequenciaGrupo="R" Then
If digitoGrupo="0" Then sb.Append("1110010")
If digitoGrupo="1" Then sb.Append("1100110")
If digitoGrupo="2" Then sb.Append("1101100")
If digitoGrupo="3" Then sb.Append("1000010")
If digitoGrupo="4" Then sb.Append("1011100")
If digitoGrupo="5" Then sb.Append("1001110")
If digitoGrupo="6" Then sb.Append("1010000")
If digitoGrupo="7" Then sb.Append("1000100")
If digitoGrupo="8" Then sb.Append("1001000")
If digitoGrupo="9" Then sb.Append("1110100")
Else If sequenciaGrupo="-" Then
sb.Append("202")
Else If sequenciaGrupo="=" Then
sb.Append("02020")
End If
Next
Return sb.ToString
End Sub
#End Region
#Region UPCA
Public Sub UPCA(codigo As String) As B4XBitmap
cvs.Initialize(xview)
cvs.ClearRect(cvs.TargetRect)
If codigo.Length=11 Then codigo = "0" & codigo
If codigo.Length=12 Then
Dim novoCodigo As String = preparaUPCA(codigo)
If novoCodigo<>"" Then
'Dim canvas As B4XCanvas
Dim alturaPainel As Int = xview.Height
Dim larguraPainel As Int = xview.Width
Dim larguraCodigo As Int = xview.Width - 100dip
'Calcula as dimensões dos elementos do código de barras'
Dim alturaNumero As Int = 40dip 'altura dos números abaixo do código'
Dim larguraBarra As Int = larguraCodigo / 95 'largura de cada barra'
Dim alturaBarra As Int = alturaPainel - alturaNumero'altura das barras'
'Desenha as barras e os números do código de barras'
Dim rect As B4XRect
rect.Initialize(0, 0, larguraPainel, alturaPainel)
cvs.DrawRect(rect, xui.Color_White, True, 0) 'fundo branco'
Dim larguraAtual As Int = 50dip
For i=0 To novoCodigo.Length-1
Dim cor As Int = xui.Color_Black
If novoCodigo.CharAt(i) = "0" Then cor = xui.Color_White
If novoCodigo.CharAt(i) = "2" Then
cvs.DrawLine(larguraAtual, 0, larguraAtual, alturaBarra, cor, larguraBarra)
Else
cvs.DrawLine(larguraAtual, 0, larguraAtual, alturaBarra - alturaNumero, cor, larguraBarra)
End If
larguraAtual = larguraAtual + larguraBarra
Next
'Desenha o número abaixo do código de barras'
Dim fonte As B4XFont = xui.CreateFontAwesome(63)
Dim sb As StringBuilder
sb.Initialize
For i=1 To codigo.Length
Dim codigoCaracter As String = codigo.CharAt(i-1)
sb.Append(codigoCaracter)
If i=1 Then
sb.Append(" ")
Else If i=6 Then
sb.Append(" ")
Else If i=11 Then
sb.Append(" ")
Else If i=12 Then
'nao adiciona nada
Else
sb.Append(" ")
End If
Next
cvs.DrawText(sb.ToString, 1dip, alturaBarra+10dip, fonte, xui.Color_Black, "LEFT")
End If
End If
cvs.Invalidate
Dim res As B4XBitmap = cvs.CreateBitmap
cvs.Release
Return res
End Sub
Private Sub preparaUPCA(codigo As String) As String
Dim primeiroGrupo As String = codigo.SubString2(0,6)
Dim segundoGrupo As String = codigo.SubString2(6,12)
Dim sequenciaNovo As String = "-JLLLLL=RRRRRS-"
Dim codigoNovo As String = "-" & primeiroGrupo & "=" & segundoGrupo & "-"
Dim sb As StringBuilder
sb.Initialize
For i=0 To codigoNovo.Length-1
Dim digitoGrupo As String = codigoNovo.CharAt(i)
Dim sequenciaGrupo As String = sequenciaNovo.CharAt(i)
If sequenciaGrupo="L" Then
If digitoGrupo="0" Then sb.Append("0001101")
If digitoGrupo="1" Then sb.Append("0011001")
If digitoGrupo="2" Then sb.Append("0010011")
If digitoGrupo="3" Then sb.Append("0111101")
If digitoGrupo="4" Then sb.Append("0100011")
If digitoGrupo="5" Then sb.Append("0110001")
If digitoGrupo="6" Then sb.Append("0101111")
If digitoGrupo="7" Then sb.Append("0111011")
If digitoGrupo="8" Then sb.Append("0110111")
If digitoGrupo="9" Then sb.Append("0001011")
Else If sequenciaGrupo="J" Then
If digitoGrupo="0" Then sb.Append("0001101".Replace("1","2"))
If digitoGrupo="1" Then sb.Append("0011001".Replace("1","2"))
If digitoGrupo="2" Then sb.Append("0010011".Replace("1","2"))
If digitoGrupo="3" Then sb.Append("0111101".Replace("1","2"))
If digitoGrupo="4" Then sb.Append("0100011".Replace("1","2"))
If digitoGrupo="5" Then sb.Append("0110001".Replace("1","2"))
If digitoGrupo="6" Then sb.Append("0101111".Replace("1","2"))
If digitoGrupo="7" Then sb.Append("0111011".Replace("1","2"))
If digitoGrupo="8" Then sb.Append("0110111".Replace("1","2"))
If digitoGrupo="9" Then sb.Append("0001011".Replace("1","2"))
Else If sequenciaGrupo="R" Then
If digitoGrupo="0" Then sb.Append("1110010")
If digitoGrupo="1" Then sb.Append("1100110")
If digitoGrupo="2" Then sb.Append("1101100")
If digitoGrupo="3" Then sb.Append("1000010")
If digitoGrupo="4" Then sb.Append("1011100")
If digitoGrupo="5" Then sb.Append("1001110")
If digitoGrupo="6" Then sb.Append("1010000")
If digitoGrupo="7" Then sb.Append("1000100")
If digitoGrupo="8" Then sb.Append("1001000")
If digitoGrupo="9" Then sb.Append("1110100")
Else If sequenciaGrupo="S" Then
If digitoGrupo="0" Then sb.Append("1110010".Replace("1","2"))
If digitoGrupo="1" Then sb.Append("1100110".Replace("1","2"))
If digitoGrupo="2" Then sb.Append("1101100".Replace("1","2"))
If digitoGrupo="3" Then sb.Append("1000010".Replace("1","2"))
If digitoGrupo="4" Then sb.Append("1011100".Replace("1","2"))
If digitoGrupo="5" Then sb.Append("1001110".Replace("1","2"))
If digitoGrupo="6" Then sb.Append("1010000".Replace("1","2"))
If digitoGrupo="7" Then sb.Append("1000100".Replace("1","2"))
If digitoGrupo="8" Then sb.Append("1001000".Replace("1","2"))
If digitoGrupo="9" Then sb.Append("1110100".Replace("1","2"))
Else If sequenciaGrupo="-" Then
sb.Append("202")
Else If sequenciaGrupo="=" Then
sb.Append("02020")
End If
Next
Return sb.ToString
End Sub
#End Region
#Region CODE128
Public Sub CODE128(codigo As String) As B4XBitmap
cvs.Initialize(xview)
cvs.ClearRect(cvs.TargetRect)
Dim novoCodigo As String = preparaCODE128(codigo)
If novoCodigo<>"" Then
'Dim canvas As B4XCanvas
Dim alturaPainel As Int = xview.Height
Dim larguraPainel As Int = xview.Width
Dim larguraCodigo As Int = xview.Width - 100dip
'Calcula as dimensões dos elementos do código de barras'
Dim alturaNumero As Int = 40dip 'altura dos números abaixo do código'
Dim larguraBarra As Int = larguraCodigo / ((codigo.Length*11)+11+11+13) 'largura de cada barra'
Dim alturaBarra As Int = alturaPainel - alturaNumero'altura das barras'
'Desenha as barras e os números do código de barras'
Dim rect As B4XRect
rect.Initialize(0, 0, larguraPainel, alturaPainel)
cvs.DrawRect(rect, xui.Color_White, True, 0) 'fundo branco'
Dim larguraAtual As Int = 50dip
For i=0 To novoCodigo.Length-1
Dim cor As Int = xui.Color_Black
If novoCodigo.CharAt(i) = "0" Then cor = xui.Color_White
If novoCodigo.CharAt(i) = "2" Then
cvs.DrawLine(larguraAtual, 0, larguraAtual, alturaBarra, cor, larguraBarra)
Else If novoCodigo.CharAt(i) = "3" Then
cvs.DrawLine(larguraAtual, 0, larguraAtual, alturaBarra, xui.Color_Blue, larguraBarra)
Else
cvs.DrawLine(larguraAtual, 0, larguraAtual, alturaBarra - alturaNumero, cor, larguraBarra)
End If
larguraAtual = larguraAtual + larguraBarra
Next
'Desenha o número abaixo do código de barras'
Dim fonte As B4XFont = xui.CreateFontAwesome(63)
cvs.DrawText(codigo, cvs.TargetRect.CenterX, alturaBarra+10dip, fonte, xui.Color_Black, "CENTER")
End If
cvs.Invalidate
Dim res As B4XBitmap = cvs.CreateBitmap
cvs.Release
Return res
End Sub
Private Sub preparaCODE128(codigo As String) As String
Dim codigoNovo As String = codigo
Dim sb As StringBuilder
sb.Initialize
sb.Append("11010010000") ' iniciar codigo b
Dim somatoria As Int = 104 ' valor do inicio
For i=0 To codigoNovo.Length-1
Dim digitoGrupo As String = codigoNovo.CharAt(i)
Dim multiplicador As Int = (i+1)
Dim valorDigito As Int = valorDigitoCODE128(digitoGrupo)
Dim valorDigitoMultiplicado As Int = (multiplicador*valorDigito)
somatoria = (somatoria + valorDigitoMultiplicado)
sb.Append(sequenciaDigitoCODE128(digitoGrupo))
Next
Dim checksum As Int = (somatoria Mod 103)
Dim checksumDigito As String = codigoDigitoCODE128(checksum)
sb.Append(sequenciaDigitoCODE128(checksumDigito))
sb.Append("1100011101011") 'fim do codigo
Return sb.ToString
End Sub
Private Sub sequenciaDigitoCODE128(digitoGrupo As String) As String
If digitoGrupo=" " Then Return "11011001100"
If digitoGrupo="!" Then Return "11001101100"
If digitoGrupo=$"""$ Then Return "11001100110"
If digitoGrupo="#" Then Return "10010011000"
If digitoGrupo="$" Then Return "10010001100"
If digitoGrupo="%" Then Return "10001001100"
If digitoGrupo="&" Then Return "10011001000"
If digitoGrupo="'" Then Return "10011000100"
If digitoGrupo="(" Then Return "10001100100"
If digitoGrupo=")" Then Return "11001001000"
If digitoGrupo="*" Then Return "11001000100"
If digitoGrupo="+" Then Return "11000100100"
If digitoGrupo="," Then Return "10110011100"
If digitoGrupo="-" Then Return "10011011100"
If digitoGrupo="." Then Return "10011001110"
If digitoGrupo="/" Then Return "10111001100"
If digitoGrupo="0" Then Return "10011101100"
If digitoGrupo="1" Then Return "10011100110"
If digitoGrupo="2" Then Return "11001110010"
If digitoGrupo="3" Then Return "11001011100"
If digitoGrupo="4" Then Return "11001001110"
If digitoGrupo="5" Then Return "11011100100"
If digitoGrupo="6" Then Return "11001110100"
If digitoGrupo="7" Then Return "11101101110"
If digitoGrupo="8" Then Return "11101001100"
If digitoGrupo="9" Then Return "11100101100"
If digitoGrupo=":" Then Return "11100100110"
If digitoGrupo=";" Then Return "11101100100"
If digitoGrupo="<" Then Return "11100110100"
If digitoGrupo="=" Then Return "11100110010"
If digitoGrupo=">" Then Return "11011011000"
If digitoGrupo="?" Then Return "11011000110"
If digitoGrupo="@" Then Return "11000110110"
If digitoGrupo="A" Then Return "10100011000"
If digitoGrupo="B" Then Return "10001011000"
If digitoGrupo="C" Then Return "10001000110"
If digitoGrupo="D" Then Return "10110001000"
If digitoGrupo="E" Then Return "10001101000"
If digitoGrupo="F" Then Return "10001100010"
If digitoGrupo="G" Then Return "11010001000"
If digitoGrupo="H" Then Return "11000101000"
If digitoGrupo="I" Then Return "11000100010"
If digitoGrupo="J" Then Return "10110111000"
If digitoGrupo="K" Then Return "10110001110"
If digitoGrupo="L" Then Return "10001101110"
If digitoGrupo="M" Then Return "10111011000"
If digitoGrupo="N" Then Return "10111000110"
If digitoGrupo="O" Then Return "10001110110"
If digitoGrupo="P" Then Return "11101110110"
If digitoGrupo="Q" Then Return "11010001110"
If digitoGrupo="R" Then Return "11000101110"
If digitoGrupo="S" Then Return "11011101000"
If digitoGrupo="T" Then Return "11011100010"
If digitoGrupo="U" Then Return "11011101110"
If digitoGrupo="V" Then Return "11101011000"
If digitoGrupo="W" Then Return "11101000110"
If digitoGrupo="X" Then Return "11100010110"
If digitoGrupo="Y" Then Return "11101101000"
If digitoGrupo="Z" Then Return "11101100010"
If digitoGrupo="[" Then Return "11100011010"
If digitoGrupo="\" Then Return "11101111010"
If digitoGrupo="]" Then Return "11001000010"
If digitoGrupo="^" Then Return "11110001010"
If digitoGrupo="_" Then Return "10100110000"
If digitoGrupo="`" Then Return "10100001100"
If digitoGrupo="a" Then Return "10010110000"
If digitoGrupo="b" Then Return "10010000110"
If digitoGrupo="c" Then Return "10000101100"
If digitoGrupo="d" Then Return "10000100110"
If digitoGrupo="e" Then Return "10110010000"
If digitoGrupo="f" Then Return "10110000100"
If digitoGrupo="g" Then Return "10011010000"
If digitoGrupo="h" Then Return "10011000010"
If digitoGrupo="i" Then Return "10000110100"
If digitoGrupo="j" Then Return "10000110010"
If digitoGrupo="k" Then Return "11000010010"
If digitoGrupo="l" Then Return "11001010000"
If digitoGrupo="m" Then Return "11110111010"
If digitoGrupo="n" Then Return "11000010100"
If digitoGrupo="o" Then Return "10001111010"
If digitoGrupo="p" Then Return "10100111100"
If digitoGrupo="q" Then Return "10010111100"
If digitoGrupo="r" Then Return "10010011110"
If digitoGrupo="s" Then Return "10111100100"
If digitoGrupo="t" Then Return "10011110100"
If digitoGrupo="u" Then Return "10011110010"
If digitoGrupo="v" Then Return "11110100100"
If digitoGrupo="w" Then Return "11110010100"
If digitoGrupo="x" Then Return "11110010010"
If digitoGrupo="y" Then Return "11011011110"
If digitoGrupo="z" Then Return "11011110110"
If digitoGrupo="{" Then Return "11110110110"
If digitoGrupo="|" Then Return "10101111000"
If digitoGrupo="}" Then Return "10100011110"
If digitoGrupo="~" Then Return "10001011110"
Return ""
End Sub
Private Sub valorDigitoCODE128(digitoGrupo As String) As Int
If digitoGrupo=" " Then Return 0
If digitoGrupo="!" Then Return 1
If digitoGrupo=$"""$ Then Return 2
If digitoGrupo="#" Then Return 3
If digitoGrupo="$" Then Return 4
If digitoGrupo="%" Then Return 5
If digitoGrupo="&" Then Return 6
If digitoGrupo="'" Then Return 7
If digitoGrupo="(" Then Return 8
If digitoGrupo=")" Then Return 9
If digitoGrupo="*" Then Return 10
If digitoGrupo="+" Then Return 11
If digitoGrupo="," Then Return 12
If digitoGrupo="-" Then Return 13
If digitoGrupo="." Then Return 14
If digitoGrupo="/" Then Return 15
If digitoGrupo="0" Then Return 16
If digitoGrupo="1" Then Return 17
If digitoGrupo="2" Then Return 18
If digitoGrupo="3" Then Return 19
If digitoGrupo="4" Then Return 20
If digitoGrupo="5" Then Return 21
If digitoGrupo="6" Then Return 22
If digitoGrupo="7" Then Return 23
If digitoGrupo="8" Then Return 24
If digitoGrupo="9" Then Return 25
If digitoGrupo=":" Then Return 26
If digitoGrupo=";" Then Return 27
If digitoGrupo="<" Then Return 28
If digitoGrupo="=" Then Return 29
If digitoGrupo=">" Then Return 30
If digitoGrupo="?" Then Return 31
If digitoGrupo="@" Then Return 32
If digitoGrupo="A" Then Return 33
If digitoGrupo="B" Then Return 34
If digitoGrupo="C" Then Return 35
If digitoGrupo="D" Then Return 36
If digitoGrupo="E" Then Return 37
If digitoGrupo="F" Then Return 38
If digitoGrupo="G" Then Return 39
If digitoGrupo="H" Then Return 40
If digitoGrupo="I" Then Return 41
If digitoGrupo="J" Then Return 42
If digitoGrupo="K" Then Return 43
If digitoGrupo="L" Then Return 44
If digitoGrupo="M" Then Return 45
If digitoGrupo="N" Then Return 46
If digitoGrupo="O" Then Return 47
If digitoGrupo="P" Then Return 48
If digitoGrupo="Q" Then Return 49
If digitoGrupo="R" Then Return 50
If digitoGrupo="S" Then Return 51
If digitoGrupo="T" Then Return 52
If digitoGrupo="U" Then Return 53
If digitoGrupo="V" Then Return 54
If digitoGrupo="W" Then Return 55
If digitoGrupo="X" Then Return 56
If digitoGrupo="Y" Then Return 57
If digitoGrupo="Z" Then Return 58
If digitoGrupo="[" Then Return 59
If digitoGrupo="\" Then Return 60
If digitoGrupo="]" Then Return 61
If digitoGrupo="^" Then Return 62
If digitoGrupo="_" Then Return 63
If digitoGrupo="`" Then Return 64
If digitoGrupo="a" Then Return 65
If digitoGrupo="b" Then Return 66
If digitoGrupo="c" Then Return 67
If digitoGrupo="d" Then Return 68
If digitoGrupo="e" Then Return 69
If digitoGrupo="f" Then Return 70
If digitoGrupo="g" Then Return 71
If digitoGrupo="h" Then Return 72
If digitoGrupo="i" Then Return 73
If digitoGrupo="j" Then Return 74
If digitoGrupo="k" Then Return 75
If digitoGrupo="l" Then Return 76
If digitoGrupo="m" Then Return 77
If digitoGrupo="n" Then Return 78
If digitoGrupo="o" Then Return 79
If digitoGrupo="p" Then Return 80
If digitoGrupo="q" Then Return 81
If digitoGrupo="r" Then Return 82
If digitoGrupo="s" Then Return 83
If digitoGrupo="t" Then Return 84
If digitoGrupo="u" Then Return 85
If digitoGrupo="v" Then Return 86
If digitoGrupo="w" Then Return 87
If digitoGrupo="x" Then Return 88
If digitoGrupo="y" Then Return 89
If digitoGrupo="z" Then Return 90
If digitoGrupo="{" Then Return 91
If digitoGrupo="|" Then Return 92
If digitoGrupo="}" Then Return 93
If digitoGrupo="~" Then Return 94
Return 0
End Sub
Private Sub codigoDigitoCODE128(digitoGrupo As Int) As String
If digitoGrupo=0 Then Return " "
If digitoGrupo=1 Then Return "!"
If digitoGrupo=2 Then Return $"""$
If digitoGrupo=3 Then Return "#"
If digitoGrupo=4 Then Return "$"
If digitoGrupo=5 Then Return "%"
If digitoGrupo=6 Then Return "&"
If digitoGrupo=7 Then Return "'"
If digitoGrupo=8 Then Return "("
If digitoGrupo=9 Then Return ")"
If digitoGrupo=10 Then Return "*"
If digitoGrupo=11 Then Return "+"
If digitoGrupo=12 Then Return ","
If digitoGrupo=13 Then Return "-"
If digitoGrupo=14 Then Return "."
If digitoGrupo=15 Then Return "/"
If digitoGrupo=16 Then Return "0"
If digitoGrupo=17 Then Return "1"
If digitoGrupo=18 Then Return "2"
If digitoGrupo=19 Then Return "3"
If digitoGrupo=20 Then Return "4"
If digitoGrupo=21 Then Return "5"
If digitoGrupo=22 Then Return "6"
If digitoGrupo=23 Then Return "7"
If digitoGrupo=24 Then Return "8"
If digitoGrupo=25 Then Return "9"
If digitoGrupo=26 Then Return ":"
If digitoGrupo=27 Then Return ";"
If digitoGrupo=28 Then Return "<"
If digitoGrupo=29 Then Return "="
If digitoGrupo=30 Then Return ">"
If digitoGrupo=31 Then Return "?"
If digitoGrupo=32 Then Return "@"
If digitoGrupo=33 Then Return "A"
If digitoGrupo=34 Then Return "B"
If digitoGrupo=35 Then Return "C"
If digitoGrupo=36 Then Return "D"
If digitoGrupo=37 Then Return "E"
If digitoGrupo=38 Then Return "F"
If digitoGrupo=39 Then Return "G"
If digitoGrupo=40 Then Return "H"
If digitoGrupo=41 Then Return "I"
If digitoGrupo=42 Then Return "J"
If digitoGrupo=43 Then Return "K"
If digitoGrupo=44 Then Return "L"
If digitoGrupo=45 Then Return "M"
If digitoGrupo=46 Then Return "N"
If digitoGrupo=47 Then Return "O"
If digitoGrupo=48 Then Return "P"
If digitoGrupo=49 Then Return "Q"
If digitoGrupo=50 Then Return "R"
If digitoGrupo=51 Then Return "S"
If digitoGrupo=52 Then Return "T"
If digitoGrupo=53 Then Return "U"
If digitoGrupo=54 Then Return "V"
If digitoGrupo=55 Then Return "W"
If digitoGrupo=56 Then Return "X"
If digitoGrupo=57 Then Return "Y"
If digitoGrupo=58 Then Return "Z"
If digitoGrupo=59 Then Return "["
If digitoGrupo=60 Then Return "\"
If digitoGrupo=61 Then Return "]"
If digitoGrupo=62 Then Return "^"
If digitoGrupo=63 Then Return "_"
If digitoGrupo=64 Then Return "`"
If digitoGrupo=65 Then Return "a"
If digitoGrupo=66 Then Return "b"
If digitoGrupo=67 Then Return "c"
If digitoGrupo=68 Then Return "d"
If digitoGrupo=69 Then Return "e"
If digitoGrupo=70 Then Return "f"
If digitoGrupo=71 Then Return "g"
If digitoGrupo=72 Then Return "h"
If digitoGrupo=73 Then Return "i"
If digitoGrupo=74 Then Return "j"
If digitoGrupo=75 Then Return "k"
If digitoGrupo=76 Then Return "l"
If digitoGrupo=77 Then Return "m"
If digitoGrupo=78 Then Return "n"
If digitoGrupo=79 Then Return "o"
If digitoGrupo=80 Then Return "p"
If digitoGrupo=81 Then Return "q"
If digitoGrupo=82 Then Return "r"
If digitoGrupo=83 Then Return "s"
If digitoGrupo=84 Then Return "t"
If digitoGrupo=85 Then Return "u"
If digitoGrupo=86 Then Return "v"
If digitoGrupo=87 Then Return "w"
If digitoGrupo=88 Then Return "x"
If digitoGrupo=89 Then Return "y"
If digitoGrupo=90 Then Return "z"
If digitoGrupo=91 Then Return "{"
If digitoGrupo=92 Then Return "|"
If digitoGrupo=93 Then Return "}"
If digitoGrupo=94 Then Return "~"
Return " "
End Sub
#End Region

File diff suppressed because one or more lines are too long

View File

@@ -24,6 +24,7 @@ ModuleBookmarks29=
ModuleBookmarks3=
ModuleBookmarks30=
ModuleBookmarks31=
ModuleBookmarks32=
ModuleBookmarks4=
ModuleBookmarks5=
ModuleBookmarks6=
@@ -56,6 +57,7 @@ ModuleBreakpoints29=
ModuleBreakpoints3=
ModuleBreakpoints30=
ModuleBreakpoints31=
ModuleBreakpoints32=
ModuleBreakpoints4=
ModuleBreakpoints5=
ModuleBreakpoints6=
@@ -88,12 +90,13 @@ ModuleClosedNodes29=
ModuleClosedNodes3=
ModuleClosedNodes30=
ModuleClosedNodes31=
ModuleClosedNodes32=
ModuleClosedNodes4=
ModuleClosedNodes5=
ModuleClosedNodes6=
ModuleClosedNodes7=
ModuleClosedNodes8=
ModuleClosedNodes9=
NavigationStack=C_Cliente,CheckBox1_CheckedChange,2000,6,Diseñador Visual,principal.bal,-100,1,C_Cliente,gest_Click,567,2,C_Principal,JobDone,1765,0,C_Principal,B4XPage_CloseRequest,1922,0,C_Principal,B_carga_Click,1918,0,C_Principal,connecta_Click,1938,0,B4XMainPage,i_engrane_Click,1742,1,appUpdater,Process_Globals,74,1,C_Clientes,caculaRutaGPS,719,2,C_Cliente,imprime_pagare,3355,1
NavigationStack=C_Cliente,imprime_abonopagare2,2376,1,C_Cliente,imprime_cancelarpagare,3793,0,C_Cliente,imprime_pagare,3306,0,C_Principal,JobDone,1268,0,C_Principal,inventario_Click,2749,0,C_Principal,b_rechazos_Click,2316,0,Diseñador Visual,principal.bal,-100,1,C_Principal,imp_LIQUIDACION,3022,0,C_Principal,b_impresion_rec_Click,2910,0,C_Cliente,B_IMP_Click,1139,0,C_Cliente,HIST_LongClick,4490,0
SelectedBuild=0
VisibleModules=2,16,4,5,6,7,9,30,29,27
VisibleModules=2,17,5,6,7,8,10,31,30,28