Version: 5.05.20

Esta version tiene el conteo de tickets y las letras de los productos ya son de color negro en lugar de grises.
This commit is contained in:
IsR0d
2025-05-26 10:45:04 -06:00
parent b180ded7db
commit 174bb9e2a9
12 changed files with 304 additions and 92 deletions

View File

@@ -15,7 +15,7 @@ Sub Class_Globals
Dim reqManager As DBRequestManager
Dim cmd As DBCommand
Dim ime As IME
Dim Var As String
Dim g As GPS
Dim ruta As String
Dim skmt As SQL
@@ -173,7 +173,6 @@ Sub Class_Globals
Dim siimprimio As String = 0
Private p_transparenteInicioFin As Panel
End Sub
'You can add more parameters here.
@@ -250,7 +249,9 @@ Private Sub B4XPage_Created (Root1 As B4XView)
' End If
' h.Close
' j.Close
p_transparenteInicioFin.Top = 0 : p_transparenteInicioFin.Left = 0
End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
@@ -544,7 +545,7 @@ Sub GPS_LocationChanged (Location1 As Location)
'now we need the distance between our location and the target location
distance = l1.DistanceTo(l2) 'the result is in meter
gest.Visible = True
If distance < 500000000000 Then
If distance < 500000000000000 Then
LA_GEO.TextColor = Colors.Blue
Tels.Visible = True
gest.Visible = True
@@ -872,7 +873,9 @@ Sub GuardaVenta
Else
comprarar = l_total.Text
End If
LogColor(comprarar,Colors.Green)
LogColor(comprarar, Colors.Green)
' Verificar si el monto de la venta es igual al monto anterior
If comprarar = Starter.pre_viejo Then
If bitacora.enVenta Then
bitacora.b_Inicio_Fin_venta2.Text = "TERMINAR VENTA"
@@ -886,7 +889,6 @@ Sub GuardaVenta
banderaimp = 0
Log("2.2")
End If
Else
Dim minimocompra As Int
Dim mini As Cursor = Starter.skmt.ExecQuery("SELECT CAT_VA_VALOR FROM CAT_VARIABLES where CAT_VA_DESCRIPCION = 'minimoventa'")
@@ -894,29 +896,25 @@ Sub GuardaVenta
mini.Position = 0
minimocompra = mini.GetString("CAT_VA_VALOR")
Else
minimocompra = 0
minimocompra = 0
End If
If minimocompra > 0 Then
If minimocompra > 0 Then
If comprarar < minimocompra Then
Msgbox2Async("La venta es menor al monto minimo permitido."&CRLF& "La venta se eliminara."&CRLF&"¿Deseas continuar?", "ATENCION","SI","", "NO",LoadBitmap(File.DirAssets,"alert2.png"), False)
Msgbox2Async("La venta es menor al monto minimo permitido." & CRLF & "La venta se eliminara." & CRLF & "¿Deseas continuar?", "ATENCION", "SI", "", "NO", LoadBitmap(File.DirAssets, "alert2.png"), False)
Wait For Msgbox_Result (resultado As Int)
If resultado = DialogResponse.POSITIVE Then
DateTime.DateFormat = "MM/dd/yyyy"
sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now)
sDate = DateTime.Date(DateTime.Now)
sTime = DateTime.Time(DateTime.Now)
Subs.borraPedidoClienteActual
B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO NOVENTA (NV_CLIENTE,NV_FECHA,NV_USER,NV_MOTIVO,NV_COMM,NV_LAT,NV_LON) VALUES(?,?,?,?,?,?,?) ", Array As Object (cuenta,sDate & sTime, usuario, "Monto de venta menor a 190","", B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps))
B4XPages.MainPage.skmt.ExecNonQuery("UPDATE kmt_info set gestion = 3 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
bitacora.mandaBitacora(Subs.fechanormal(DateTime.Now), usuario, Subs.traeAlmacen, Subs.traeRutaBitacora, "NO VENTA", Subs.traeCliente,Subs.fechanormal(DateTime.Now), Subs.fechanormal(DateTime.Now), B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, 2, "Monto de venta menor a 190", "")
B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO NOVENTA (NV_CLIENTE, NV_FECHA, NV_USER, NV_MOTIVO, NV_COMM, NV_LAT, NV_LON) VALUES(?,?,?,?,?,?,?) ", Array As Object(cuenta, sDate & sTime, usuario, "Monto de venta menor a 190", "", B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps))
B4XPages.MainPage.skmt.ExecNonQuery("UPDATE kmt_info set gestion = 3 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
bitacora.mandaBitacora(Subs.fechanormal(DateTime.Now), usuario, Subs.traeAlmacen, Subs.traeRutaBitacora, "NO VENTA", Subs.traeCliente, Subs.fechanormal(DateTime.Now), Subs.fechanormal(DateTime.Now), B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, 2, "Monto de venta menor a 190", "")
B4XPages.ShowPage("Principal")
Log("si entre")
End If
Else If comprarar >= minimocompra Then
Log("1.2")
Log(pre_act)
If comprarar <> Starter.pre_viejo Then
@@ -939,14 +937,11 @@ Sub GuardaVenta
B_IMP_Click
Else
Log("1.6")
GUADAVENTA2
End If
End If
End If
Else If minimocompra = 0 Then
Log("1.2")
If comprarar <> Starter.pre_viejo Then
Log("1.3")
@@ -968,15 +963,93 @@ Sub GuardaVenta
B_IMP_Click
Else
Log("1.6")
GUADAVENTA2
End If
End If
End If
End If
End Sub
Sub InsertarTicketTELCEDIS(XXX As String)
Dim c As Cursor = 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)")
If c.RowCount > 0 Then
c.Position = 0
Dim ClieSel As String = c.GetString("CAT_CL_CODIGO")
Dim c2 As Cursor = skmt.ExecQuery("SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = 'TEL_CEDIS'")
Dim TEL_CEDIS As String = ""
If c2.RowCount > 0 Then
c2.Position = 0
TEL_CEDIS = c2.GetString("CAT_VA_VALOR")
End If
c2.Close
Dim c4 As Cursor = skmt.ExecQuery("SELECT IFNULL(MAX(TTC_NUM_TICKET), 0) AS MaxTicket FROM TICKET_TEL_CEDIS")
Dim SigNumero As Int = 0
If c4.RowCount > 0 Then
c4.Position = 0
SigNumero = c4.GetInt("MaxTicket") + 1
Log("Lo sume--------------------->")
End If
c4.Close
Dim cur As Cursor = B4XPages.MainPage.skmt.ExecQuery2("SELECT DISTINCT PE_FOLIO FROM PEDIDO WHERE PE_CLIENTE = ? AND PE_FOLIO = ?", Array As String(ClieSel, XXX))
If cur.RowCount > 0 Then
cur.Position = 0
Do While cur.Position < cur.RowCount
Dim PE_FOLIO As String = cur.GetString("PE_FOLIO")
Log("------------------> Folio de pedido seleccionado: " & PE_FOLIO & " <--------------")
Dim cur2 As Cursor = B4XPages.MainPage.skmt.ExecQuery2("SELECT SUM(PE_COSTO_TOT) AS PE_COSTO_TOT FROM PEDIDO WHERE PE_CLIENTE = ? AND PE_FOLIO = ?", Array As String(ClieSel, PE_FOLIO))
Dim montoTotal As Double = 0
If cur2.RowCount > 0 Then
cur2.Position = 0
montoTotal = cur2.GetDouble("PE_COSTO_TOT")
End If
cur2.Close
DateTime.DateFormat = "dd/MM/yyyy"
DateTime.TimeFormat = "HH:mm:ss"
Dim TTC_TELEFONO As String = TEL_CEDIS
Dim TTC_ID_ALMACEN As String = ALMACEN
Dim TTC_ID_CLIENTE As String = ClieSel
Dim TTC_RUTA As String = Subs.traeRuta(la_cuenta.Text)
Dim TTC_FECHA As String = DateTime.Date(DateTime.Now)&" "&DateTime.Time(DateTime.Now)
Dim TTC_MONTO As String = NumberFormat2(montoTotal, 0, 2, 2, False)
Dim TTC_FOLIO As String = cur.GetString("PE_FOLIO")
Dim TTC_USUARIO As String = Subs.traeUsuarioDeBD
Dim c5 As Cursor = skmt.ExecQuery2("SELECT IFNULL(MAX(TTC_FOLIO_UNICO), 0) AS FolioUnico FROM TICKET_TEL_CEDIS WHERE TTC_ID_CLIENTE = ? AND TTC_FOLIO = ?", Array As String(ClieSel,TTC_FOLIO))
Dim Foliosig As Int = 0
If c5.RowCount > 0 Then
c5.Position = 0
Foliosig = c5.GetInt("FolioUnico")
If Foliosig = 0 Then
Dim cMaxFolio As Cursor = skmt.ExecQuery("SELECT IFNULL(MAX(TTC_FOLIO_UNICO), 0) AS MaxFolio FROM TICKET_TEL_CEDIS")
If cMaxFolio.RowCount > 0 Then
cMaxFolio.Position = 0
Foliosig = cMaxFolio.GetInt("MaxFolio") + 1
End If
cMaxFolio.Close
End If
End If
c5.Close
skmt.ExecNonQuery2("INSERT INTO TICKET_TEL_CEDIS(TTC_TELEFONO, TTC_ID_ALMACEN, TTC_NUM_TICKET, TTC_ID_CLIENTE, TTC_RUTA, TTC_FECHA, TTC_MONTO, TTC_FOLIO, TTC_USUARIO, TTC_FOLIO_UNICO) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", _
Array As Object(TTC_TELEFONO, TTC_ID_ALMACEN, SigNumero, TTC_ID_CLIENTE, TTC_RUTA, TTC_FECHA, TTC_MONTO, TTC_FOLIO, TTC_USUARIO, Foliosig))
Log("------->" & TTC_TELEFONO & " " & TTC_ID_ALMACEN & " " & SigNumero & " " & TTC_ID_CLIENTE & " " & TTC_RUTA & " " & TTC_FECHA & " " & TTC_MONTO & " " & TTC_FOLIO)
Log("Nuevo registro insertado en TICKET_TEL_CEDIS para el cliente " & ClieSel & ". Número de ticket: " & SigNumero & ", Folio de pedido: " & PE_FOLIO & ", Folio de pedido: " & PE_FOLIO & "<------------")
SigNumero = SigNumero + 1
cur.Position = cur.Position + 1
Loop
Else
Log("No se encontraron folios de pedido para el cliente " & ClieSel & ".")
End If
cur.Close
Else
Log("No se encontraron datos en kmt_info para los clientes seleccionados.")
End If
c.Close
End Sub
Sub GUADAVENTA2
@@ -1115,7 +1188,6 @@ Sub GUADAVENTA2
' B4XPages.ShowPage("login")
B4XPages.MainPage.recarga = "0"
imprimirsolo = 0
End If
End Sub
@@ -1196,16 +1268,18 @@ Sub B_IMP_Click
Log(imprimirsolo)
c = skmt.ExecQuery2("SELECT * FROM PEDIDO WHERE PE_FOLIO = ? AND PE_CLIENTE IN (SELECT CUENTA FROM CUENTAA)",Array As String("PREVENTA_48"))
If c.RowCount > 0 Then
' InsertarTicketTELCEDIS
imprime_venta
t1.Initialize("T1", 3000) ' 1000 = 1 second
t1.Initialize("T1", 4000) ' 1000 = 1 second
t1.Enabled = True
Else If c.RowCount = 0 Then
s = skmt.ExecQuery2("SELECT * FROM PEDIDO WHERE PE_FOLIO = ? AND PE_CLIENTE IN (SELECT CUENTA FROM CUENTAA)",Array As String("PREVENTA_24"))
If s.RowCount > 0 Then
' InsertarTicketTELCEDIS
imprime_preventa
End If
End If
End Sub
Sub t1_tick
@@ -1216,6 +1290,76 @@ Sub t1_tick
t1.Enabled = False
End Sub
Sub traeNumeroTicket(FOLIO As String) As Int 'ignore
Private cTicket As Cursor
Private TTC_NUM_TICKET As Int = 0
cTicket = skmt.ExecQuery2("SELECT IFNULL(MAX(TTC_NUM_TICKET),0) AS TTC_NUM_TICKET FROM TICKET_TEL_CEDIS WHERE TTC_ID_CLIENTE IN (SELECT CUENTA FROM CUENTAA) AND TTC_FOLIO = ?", Array As String (FOLIO))
If cTicket.RowCount > 0 Then
cTicket.Position = 0
TTC_NUM_TICKET = cTicket.GetString("TTC_NUM_TICKET")
End If
cTicket.Close
Return TTC_NUM_TICKET
End Sub
Sub traeNumeroFolioUnico(FOLIO As String, Cliente As String) As Int
Private cTicket As Cursor
Private TTC_FOLIO_UNICO As Int = 0
Log("Llamando a la consulta con FOLIO: " & FOLIO & " y Cliente: " & Cliente)
cTicket = skmt.ExecQuery2("SELECT DISTINCT TTC_FOLIO_UNICO FROM TICKET_TEL_CEDIS WHERE TTC_ID_CLIENTE = ? AND TTC_FOLIO = ?", Array As String(Cliente, FOLIO))
If cTicket.RowCount > 0 Then
cTicket.Position = 0
TTC_FOLIO_UNICO = cTicket.GetInt("TTC_FOLIO_UNICO")
Log("Se encontró el TTC_FOLIO_UNICO: " & TTC_FOLIO_UNICO)
Else
Log("No se encontró ningún TTC_FOLIO_UNICO para el FOLIO: " & FOLIO & " y Cliente: " & Cliente)
End If
cTicket.Close
Return TTC_FOLIO_UNICO
End Sub
Sub traeTelCedis As String 'ignore
Private t As Cursor
Private TEL_CEDIS As String = ""
t = B4XPages.MainPage.skmt.ExecQuery("SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = 'TEL_CEDIS'")
If t.RowCount > 0 Then
t.Position = 0
TEL_CEDIS = t.GetString("CAT_VA_VALOR")
End If
t.Close
Return TEL_CEDIS
End Sub
Sub TraeNumVendedor As String
Private np As Cursor
Private Tel_Preventa As String = ""
np = B4XPages.MainPage.skmt.ExecQuery("SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = 'TELEFONO'")
If np.RowCount > 0 Then
np.Position = 0
Tel_Preventa = np.GetString("CAT_VA_VALOR")
End If
np.Close
Return Tel_Preventa
End Sub
Sub TraeVendedor As String
Private pv As Cursor
Private Preventa As String = ""
pv = B4XPages.MainPage.skmt.ExecQuery("SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = 'nom_usuario'")
If pv.RowCount > 0 Then
pv.Position = 0
Preventa = pv.GetString("CAT_VA_VALOR")
End If
pv.Close
Return Preventa
End Sub
Sub imprime_preventa
c=skmt.ExecQuery("select USUARIO from usuarioa")
c.Position=0
@@ -1235,7 +1379,7 @@ Sub imprime_preventa
Dim IMEI_BASE As String = Starter.IMEI_BASE
Log("IMEI_BASE desde otra clase: " & IMEI_BASE)
Var = "PREVENTA_24"
ProgressDialogShow("Imprimiendo, un momento ...")
Printer1.DisConnect
If Not(Printer1.IsConnected) Then
@@ -1268,10 +1412,12 @@ Sub imprime_preventa
ESPACIO = 22
BLANCO = " "
Printer1.WriteString("Compania Logistica Mazapa." & eLINEFEED)
Printer1.WriteString("Tel CEDIS:" & traeTelCedis & eLINEFEED)
Printer1.WriteString(sDate & eLINEFEED)
Printer1.WriteString(sTime & eLINEFEED)
Printer1.WriteString("Vendedor:" & usuario & eLINEFEED)
Printer1.WriteString("Tel vendedor:" & tel & eLINEFEED)
Printer1.WriteString("Vendedor: " & TraeVendedor & eLINEFEED)
Printer1.WriteString("Numero de Vendedor: " & TraeNumVendedor & eLINEFEED)
Printer1.WriteString("Numero de Ticket: " & traeNumeroFolioUnico("PREVENTA_24", la_cuenta.Text) & eLINEFEED)
Printer1.WriteString("Ruta:" & Subs.traeRuta(la_cuenta.Text) & eLINEFEED)
Printer1.WriteString("Tienda: " & La_nombre.Text & eLINEFEED)
Printer1.WriteString("ID.Cliente: " & la_cuenta.Text & eLINEFEED)
@@ -1342,11 +1488,11 @@ Sub imprime_preventa
s.Position=i
If s.GetString("PE_CEDIS") = s.GetString("PE_PROID") Then
Printer1.WriteString("* "& s.GetString("PE_PRONOMBRE") & eLINEFEED)
Log("promo")
Log("promo")
Else
Printer1.WriteString(s.GetString("PE_PRONOMBRE") & eLINEFEED)
k1 = NumberFormat(s.GETSTRING("PE_COSTOU"),0,2)
k2 = NumberFormat(s.GETSTRING("PE_COSTO_TOT"),0,2)
k2 = NumberFormat(s.GETSTRING("PE_COSTO_TOT"),0,2)
TAMANO = s.GetLong("L_CANT") + k1.Length + k2.Length
ESPACIO = 23
BLANCO = " "
@@ -1398,7 +1544,7 @@ Sub imprime_preventa
Printer1.WriteString("Total art. preventa: " & NumberFormat(c.GetDouble("PC_NOART"), 0, 0) & eLINEFEED)
c.Close
End If
End If
Dim siesacredi As Cursor = skmt.ExecQuery("SELECT * FROM PAGARES WHERE PA_CLIENTE IN (SELECT CUENTA FROM CUENTAA)")
If siesacredi.RowCount > 0 Then
siesacredi.Position = 0
@@ -1409,7 +1555,7 @@ Sub imprime_preventa
Printer1.WriteString("Total a contado: $" & NumberFormat( (s.GetString("TOTAL")-siesacredi.GetString("PA_MONTO")),0,2) & eLINEFEED)
End If
s.Close
End If
End If
Printer1.WriteString(" " & eLINEFEED)
Printer1.WriteString("------------------------------" & eLINEFEED)
Printer1.WriteString("----ESTE TICKET NO ES UN -----" & eLINEFEED)
@@ -1463,7 +1609,7 @@ Sub imprime_venta
' c.Position = 0
' sucursal = c.GetString("CAT_VA_VALOR")
' c.Close
Var = "PREVENTA_48"
ProgressDialogShow("Imprimiendo, un momento ...")
Printer1.DisConnect
If Not(Printer1.IsConnected) Then
@@ -1514,11 +1660,14 @@ Sub imprime_venta
'printer.Initialize(cmp20.OutputStream)
' Printer1.WriteString("DISTRIBUIDORA ROCHA TULA PACHUCA" & CRLF)
Printer1.WriteString("Compania Logistica Mazapa." & eLINEFEED)
Printer1.WriteString("Tel CEDIS:" & traeTelCedis & eLINEFEED)
' Printer1.WriteString(sucursal & eLINEFEED)
Printer1.WriteString(sDate & eLINEFEED)
Printer1.WriteString(sTime & eLINEFEED)
Printer1.WriteString("Vendedor:" & usuario & eLINEFEED)
Printer1.WriteString("Tel vendedor:" & tel & eLINEFEED)
Printer1.WriteString("Vendedor: " & TraeVendedor & eLINEFEED)
Printer1.WriteString("Numero de Vendedor: " & TraeNumVendedor & eLINEFEED)
Printer1.WriteString("Numero de Ticket: " & traeNumeroFolioUnico("PREVENTA_48", la_cuenta.Text) & eLINEFEED)
Printer1.WriteString("Ruta:" & Subs.traeRuta(la_cuenta.Text) & eLINEFEED)
Printer1.WriteString("Tienda: " & La_nombre.Text & eLINEFEED)
Printer1.WriteString("ID.Cliente: " & la_cuenta.Text & eLINEFEED)
Printer1.WriteString("Calle: " & la_Calle.Text & eLINEFEED)
@@ -1853,6 +2002,7 @@ Sub Printer1_Connected (Success As Boolean)
skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("MACIMP",Starter.mac_impresora))
LogColor("Impresora conectada", Colors.Green)
' B_IMP2.Enabled = True
InsertarTicketTELCEDIS(var)
impresoraConectada = True
siimprimio = 1
Else
@@ -2248,9 +2398,12 @@ Sub JobDone(Job As HttpJob)
' For Each k As String In resultado.Columns.Keys
' Log(resultado.Tag & ": " & k & ": " & records(resultado.Columns.Get(k)))
' Next
Next
End If
Next
End If
End If
Dim resultado As DBResult = reqManager.HandleJob(Job)
Log("JobDone: '" & resultado.Tag & "' - Registros: " & resultado.Rows.Size)
If Job.JobName = "DBRequest" Then
Dim resultado As DBResult = reqManager.HandleJob(Job)