- VERSION 5.02.05

- Se agregó que una vez impresa la venta, ya no se pueda modificar, y si se quiere modificar, es necesario pedir al supervisor una clave de autorización.
- Se agregó a "Cliente" un boton de "Enviar Ticket", que genera un PDF con el ticket y lo envia por WhatsApp o correo
This commit is contained in:
2025-02-06 22:24:11 -06:00
parent af1491b254
commit 0904b9b121
13 changed files with 1494 additions and 159 deletions

View File

@@ -179,7 +179,8 @@ Private Sub B4XPage_Created (Root1 As B4XView)
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_PRO3054(H_IDCLIENTE TEXT)") skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_PRO3054(H_IDCLIENTE TEXT)")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_PRO3055(H_IDCLIENTE TEXT)") skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_PRO3055(H_IDCLIENTE TEXT)")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS RUTA_SUPLENCIA(RS_RUTA TEXT)") skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS RUTA_SUPLENCIA(RS_RUTA TEXT)")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_GUNAPROD2 (CAT_GP_INICIATIVA TEXT, CAT_GP_TIPOPROD TEXT, CAT_GP_DEV TEXT, CAT_GP_ALMACEN NUMERIC, CAT_GP_ID TEXT, CAT_GP_NOMBRE TEXT, CAT_GP_IMP1 TEXT, CAT_GP_IMP2 TEXT, CAT_GP_PRECIO TEXT, CAT_GP_CLASIF TEXT, CAT_GP_STS TEXT, CAT_GP_TIPO TEXT, CAT_GP_SUBTIPO TEXT, CAT_GP_IMG BLOB, CAT_GP_CODPROMO TEXT)") skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS RUTA_SUPLENCIA(RS_RUTA TEXT)")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS TICKET_IMPRESO (idCliente TEXT)")
' skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_VARIABLES (CAT_VA_DESCRIPCION TEXT, CAT_VA_VALOR TEXT)") ' skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_VARIABLES (CAT_VA_DESCRIPCION TEXT, CAT_VA_VALOR TEXT)")
Subs.agregaColumna("HIST_ENCUESTA", "HE_LAT", "TEXT") Subs.agregaColumna("HIST_ENCUESTA", "HE_LAT", "TEXT")
Subs.agregaColumna("HIST_ENCUESTA", "HE_FOTO", "BLOB") Subs.agregaColumna("HIST_ENCUESTA", "HE_FOTO", "BLOB")

View File

@@ -431,6 +431,13 @@ Sub Class_Globals
Private b_preventa As Button Private b_preventa As Button
Dim bitacora As C_Bitacora Dim bitacora As C_Bitacora
Dim p_transparenteTicketImpreso As Panel
Private et_codigoAutorizacion As EditText
Private b_codigoAutorizacion As Button
Private b_cancelarCodigoAutorizacion As Button
Private p_ticketImpreso As Panel
Private b_enviarTicket As Button
Dim archivoTicketPDF As String
End Sub End Sub
'You can add more parameters here. 'You can add more parameters here.
@@ -473,6 +480,7 @@ Private Sub B4XPage_Created (Root1 As B4XView)
End If End If
c.Close c.Close
s.Close s.Close
File.Copy(File.DirAssets,"guna-fondo.jpg",xui.DefaultFolder,"guna-fondo.jpg")
TOMAR_FOTO = 0 TOMAR_FOTO = 0
btAdmin.Initialize("BlueTeeth") btAdmin.Initialize("BlueTeeth")
cmp20.Initialize("Printer") cmp20.Initialize("Printer")
@@ -480,6 +488,9 @@ Private Sub B4XPage_Created (Root1 As B4XView)
SV_ENCUESTA.Width = Root.Height SV_ENCUESTA.Width = Root.Height
p_pregunta1.Height = Root.Height p_pregunta1.Height = Root.Height
p_pregunta1.Width = Root.Height p_pregunta1.Width = Root.Height
p_transparenteTicketImpreso.Left = 0 : p_transparenteTicketImpreso.top = 0
p_transparenteTicketImpreso.Width = Root.Width : p_transparenteTicketImpreso.Height = Root.Height
Subs.centraPanel(p_ticketImpreso, p_transparenteTicketImpreso.Width)
Tels.Visible = False Tels.Visible = False
gest.Visible = False gest.Visible = False
l_version.Left = Root.Width - (l_version.Width + 10) l_version.Left = Root.Width - (l_version.Width + 10)
@@ -498,14 +509,14 @@ Sub B4XPage_Appear
indicePregunta = 0 indicePregunta = 0
If TOMAR_FOTO <> 0 Then Cuestionario If TOMAR_FOTO <> 0 Then Cuestionario
Starter.idCliente = Subs.traeCliente Starter.idCliente = Subs.traeCliente
Log(Subs.traeCliente) ' Log(Subs.traeCliente)
If Subs.traeCliente = "0" Then If Subs.traeCliente = "0" Then
tipo_venta = "ABORDO" tipo_venta = "ABORDO"
Log(1) Log(1)
Log("ABORDO") Log("ABORDO")
Else Else
tipo_venta = Subs.traeTipoVentaDeBD tipo_venta = Subs.traeTipoVentaDeBD
Log(2) ' Log(2)
Log(Subs.traeTipoVentaDeBD) Log(Subs.traeTipoVentaDeBD)
End If End If
B4XPages.MainPage.tipo_venta = tipo_venta B4XPages.MainPage.tipo_venta = tipo_venta
@@ -979,7 +990,7 @@ Sub GPS_LocationChanged (Location1 As Location)
gest.Visible = False gest.Visible = False
Tels.Visible = False Tels.Visible = False
' p_transparenteInicioFin.Visible = False ' p_transparenteInicioFin.Visible = False
Log(999) ' Log(999)
' b_Inicio_Fin_venta.Visible = False ' b_Inicio_Fin_venta.Visible = False
End If End If
End If End If
@@ -1230,7 +1241,44 @@ Sub JobDone(Job As HttpJob)
End If End If
Next Next
End If End If
If result1.Tag = "codigoAutorizacion" Then
If result1.Rows.Size > 0 Then
Log("Si hay codigo de autorizaion")
For Each records() As Object In result1.Rows
For Each k As String In result1.Columns.Keys
Log(k & ": " & records(result1.Columns.Get(k)))
Next
Next
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "delete_codigoAutorizacion"
cmd.Parameters = Array As Object(et_codigoAutorizacion.Text.Trim, Subs.traeRuta, Subs.traeAlmacen)
reqManager.ExecuteCommand(cmd , "deleteCodigoAutorizacion")
DateTime.DateFormat = "YYYY/MM/dd HH:mm:ss"
cmd.Initialize
cmd.Name = "update_codigoAutorizacion"
' Log($"(${DateTime.Date(DateTime.Now)}, ${Subs.traeUsuarioDeBD}, ${et_codigoAutorizacion.Text.Trim}, ${Subs.traeRuta}, ${Subs.traeAlmacen}"$)
cmd.Parameters = Array As Object(DateTime.Date(DateTime.Now), Subs.traeUsuarioDeBD, et_codigoAutorizacion.Text.Trim, Subs.traeRuta, Subs.traeAlmacen)
reqManager.ExecuteCommand(cmd , "updateCodigoAutorizacion")
Starter.skmt.ExecNonQuery("delete from ticket_impreso where idCliente in (select cuenta from cuentaa)")
p_transparenteTicketImpreso.Visible = False
et_codigoAutorizacion.Text = ""
teclado.HideKeyboard
ToastMessageShow("Listo, ya se puede modificar la venta.", True)
Else
ToastMessageShow("El codigo es incorrecto, por favor revise y vuelva a intentar!!", True)
End If End If
End If
If result1.Tag = "delete_codigoAutorizacion" Then
Log("Codigo Borrado!!")
End If
If result1.Tag = "updateCodigoAutorizacion" Then
Log("Codigo Actualizado")
End If
End If
' If Job.JobName = "DBRequest" Then ' If Job.JobName = "DBRequest" Then
' Dim result1 As DBResult = reqManager.HandleJob(Job) ' Dim result1 As DBResult = reqManager.HandleJob(Job)
@@ -1260,7 +1308,7 @@ Sub ListView1_ItemLongClick (Position As Int, Value As Object)
End Sub End Sub
Sub gest_Click Sub gest_Click
If Not(Subs.revisaImpreso) Then
c=B4XPages.MainPage.skmt.ExecQuery("select IFNULL(encuesta,0) AS encuesta from kmt_info2 where CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA)") c=B4XPages.MainPage.skmt.ExecQuery("select IFNULL(encuesta,0) AS encuesta from kmt_info2 where CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA)")
c.Position = 0 c.Position = 0
If c.GetString("encuesta") = "0" Then If c.GetString("encuesta") = "0" Then
@@ -1270,25 +1318,13 @@ Sub gest_Click
Intent1.Initialize(Intent1.ACTION_VIEW, enviorutas) Intent1.Initialize(Intent1.ACTION_VIEW, enviorutas)
Try Try
Starter.encuesta = 1 Starter.encuesta = 1
Dim cmd As DBCommand Dim cmd As DBCommand
skmt.ExecNonQuery2("UPDATE kmt_info2 SET encuesta = (?) WHERE CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA)",Array As Object(1)) skmt.ExecNonQuery2("UPDATE kmt_info2 SET encuesta = (?) WHERE CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA)",Array As Object(1))
StartActivity(Intent1) StartActivity(Intent1)
compra compra
Catch Catch
Starter.encuesta = 0 Starter.encuesta = 0
Dim cmd As DBCommand Dim cmd As DBCommand
skmt.ExecNonQuery2("UPDATE kmt_info2 SET encuesta = (?) WHERE CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA)",Array As Object(2)) skmt.ExecNonQuery2("UPDATE kmt_info2 SET encuesta = (?) WHERE CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA)",Array As Object(2))
ToastMessageShow("La aplicación Tienda 360 no está instalada o no puede manejar la URL.", True) ToastMessageShow("La aplicación Tienda 360 no está instalada o no puede manejar la URL.", True)
compra compra
@@ -1297,15 +1333,15 @@ Sub gest_Click
cmd.Name = "SELECT_TMP_DROP_ENCUESTA_GUNA" cmd.Name = "SELECT_TMP_DROP_ENCUESTA_GUNA"
cmd.Parameters = Array As Object(usuario, B4XPages.MainPage.principal.e_ruta.text, ALMACEN, "ENCUESTA") cmd.Parameters = Array As Object(usuario, B4XPages.MainPage.principal.e_ruta.text, ALMACEN, "ENCUESTA")
B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "CHECAENCUESTA") B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "CHECAENCUESTA")
Else Else
compra compra
End If End If
Else
p_transparenteTicketImpreso.Visible = True
End If
End Sub End Sub
Sub compra Sub compra
' If ALMACEN = "4" Or ALMACEN = "36" Then ' If ALMACEN = "4" Or ALMACEN = "36" Then
' Log(Subs.traeAlmacen) ' Log(Subs.traeAlmacen)
@@ -1320,7 +1356,6 @@ Sub compra
' IZTAPALAPA- 43-- ' IZTAPALAPA- 43--
' CEDA- 54-- ' CEDA- 54--
' PACHUCA- 15-- ' PACHUCA- 15--
Private rutasEncuesta As List Private rutasEncuesta As List
rutasEncuesta.Initialize2(Array As Int(702, 703, 707, 718, 730, 732, 733, 734)) rutasEncuesta.Initialize2(Array As Int(702, 703, 707, 718, 730, 732, 733, 734))
Private alamcenesEncuesta As List Private alamcenesEncuesta As List
@@ -2076,7 +2111,7 @@ Sub Guardar_Click
'AQUI CAMBIAR 'AQUI CAMBIAR
Private s3 As Cursor=B4XPages.MainPage.skmt.ExecQuery2("select * FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) and PE_RECALCULO <> ? AND PE_RECALCULO <> ? AND PE_RECALCULO <> ?",Array As String("","null",Null)) Private s3 As Cursor=B4XPages.MainPage.skmt.ExecQuery2("select * FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) and PE_RECALCULO <> ? AND PE_RECALCULO <> ? AND PE_RECALCULO <> ?",Array As String("","null",Null))
LogColor(s3.RowCount,Colors.Yellow) ' LogColor(s3.RowCount,Colors.Yellow)
If s3.RowCount > 0 Then If s3.RowCount > 0 Then
Private s As Cursor=B4XPages.MainPage.skmt.ExecQuery2("select iFNULL(sum(pe_costo_tot),0) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) and PE_RECALCULO = ? AND PE_RECALCULO = ? AND PE_RECALCULO = ?",Array As String("","null",Null)) Private s As Cursor=B4XPages.MainPage.skmt.ExecQuery2("select iFNULL(sum(pe_costo_tot),0) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) and PE_RECALCULO = ? AND PE_RECALCULO = ? AND PE_RECALCULO = ?",Array As String("","null",Null))
s.Position = 0 s.Position = 0
@@ -2096,6 +2131,8 @@ Sub Guardar_Click
B4XPages.MainPage.skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)") B4XPages.MainPage.skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)")
B4XPages.MainPage.skmt.ExecNonQuery2("insert into pedido_cliente(PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT) VALUES (?,?,?,?,?,?,?)", Array As Object(clie_id, sDate & sTime, usuario, c.GetString("CANT_CLIE"),NumberFormat2(suma,0,2,2,False), B4XPages.MainPage.lon_gps, B4XPages.MainPage.lat_gps)) B4XPages.MainPage.skmt.ExecNonQuery2("insert into pedido_cliente(PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT) VALUES (?,?,?,?,?,?,?)", Array As Object(clie_id, sDate & sTime, usuario, c.GetString("CANT_CLIE"),NumberFormat2(suma,0,2,2,False), B4XPages.MainPage.lon_gps, B4XPages.MainPage.lat_gps))
B4XPages.MainPage.skmt.ExecNonQuery("UPDATE kmt_info2 set gestion = 2 where CAT_CL_CODIGO In (select cuenta from cuentaa)") B4XPages.MainPage.skmt.ExecNonQuery("UPDATE kmt_info2 set gestion = 2 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
B4XPages.MainPage.skmt.ExecNonQuery("delete from TICKET_IMPRESO where idCliente In (select cuenta from cuentaa)")
B4XPages.MainPage.skmt.ExecNonQuery($"insert into TICKET_IMPRESO (idCliente) values ('${Subs.traeCliente}')"$)
End If End If
c.Close c.Close
DateTime.TimeFormat = "HHmmss" DateTime.TimeFormat = "HHmmss"
@@ -4886,3 +4923,257 @@ End Sub
Private Sub b_preventa_Click Private Sub b_preventa_Click
End Sub End Sub
Private Sub p_transparenteTicketImpreso_Click
End Sub
Private Sub b_codigoAutorizacion_Click
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "select_codigoAutorizacion"
cmd.Parameters = Array As Object(et_codigoAutorizacion.Text.Trim, Subs.traeRuta, Subs.traeAlmacen)
reqManager.ExecuteQuery(cmd , 0, "codigoAutorizacion")
' p_transparenteTicketImpreso.Visible = False
End Sub
Private Sub b_cancelarCodigoAutorizacion_Click
p_transparenteTicketImpreso.Visible = False
End Sub
Private Sub PDFGENERAR
ESPACIO = 0
DateTime.DateFormat = "MM/dd/yyyy"
DateTime.TimeFormat = "HH:mm:ss"
sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now)
Dim PDF As cPDF
'initialize with mm unit
PDF.Initialize("mm")
'set properties
PDF.sProperty(PDF.PropertyAuthor,"Keymonsoft"). _
sProperty(PDF.PropertyTitle,"Ticket"). _
sProperty(PDF.PropertyKeywords,"B4X,PDF,Cross platform")
'add a page
Dim s56 As Cursor=skmt.ExecQuery2("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU,PE_CANT * PE_COSTOU AS PE_COSTO_TOT, length(PE_CANT * PE_COSTOU) as L_COSTO_TOT,PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_FOLIO = ? AND LENGTH(PE_CEDIS) < 4 AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_PROID", Array As String("PREVENTA"))
Dim s57 As Cursor = skmt.ExecQuery2("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU,PE_CANT * PE_COSTOU AS PE_COSTO_TOT, length(PE_CANT * PE_COSTOU) as L_COSTO_TOT,PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_FOLIO = ? AND LENGTH(PE_CEDIS) > 3 AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_CEDIS, PE_COSTOU", Array As String("PREVENTA"))
Dim pagina As Double = ((18 + (s56.RowCount*2) + (s57.RowCount*2)) * (6)) + 18
' Dim pagina As Double = ((18 + s56.RowCount + s57.RowCount +2) * (6)) + 18
Dim multiplicador As Int = 0
PDF.pageAdd(-300,pagina)
' pdf.pageAdd(-350,-1900)
PDF.sFont(PDF.fontHelvetica,0,10,PDF.colorBlack)
PDF.outImage(xui.DefaultFolder,"guna-fondo.jpg",1,pagina-45,45,0)
multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6,"GUNA")
multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6,sDate& " " & sTime)
multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6,"Vendedor:" & Subs.traeUsuarioDeBD)
multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6,"Tienda: " & La_nombre.Text)
multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6,"ID.Cliente: " & la_cuenta.Text)
multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6,"Calle: " & la_Calle.Text)
multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6,"Colonia: " & la_col.Text)
multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6," ")
multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6," ")
c = skmt.ExecQuery2("SELECT * FROM PEDIDO WHERE PE_FOLIO = ?",Array As String("PREVENTA"))
If c.RowCount > 0 Then
multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6,"------------------------------------PREVENTA-----------------------------------------")
multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6,"Cant. Precio Importe")
multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6,"-----------------------------------------------------------------------------------------")
s=skmt.ExecQuery2("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU,PE_CANT * PE_COSTOU AS PE_COSTO_TOT, length(PE_CANT * PE_COSTOU) as L_COSTO_TOT,PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_FOLIO = ? AND LENGTH(PE_CEDIS) < 4 AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_PROID", Array As String("PREVENTA"))
If S.RowCount>0 Then
For i=0 To S.RowCount -1
S.Position=i
If s.GetString("PE_CEDIS") = s.GetString("PE_PROID") Then
multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6,s.GetString("PE_PRONOMBRE") )
Else
PDF.sFont(PDF.fontHelvetica,0,7,PDF.colorBlack)
multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6,s.GetString("PE_PRONOMBRE"))
' LogColor(s.GetLong("L_CANT"),Colors.Magenta)
' LogColor(s.GetLong("L_COSTOU"),Colors.Magenta)
' LogColor(s.GetLong("L_COSTO_TOT"),Colors.Magenta)
TAMANO = s.GetLong("L_CANT") + s.GetLong("L_COSTOU") + s.GetLong("L_COSTO_TOT")
ESPACIO = 92
BLANCO = " "
ESPACIO = ESPACIO - TAMANO
ESPACIO = ESPACIO / 2
For E=0 To ESPACIO -1
BLANCO = " " & BLANCO
Next
PDF.sFont(PDF.fontHelvetica,0,10,PDF.colorBlack)
multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6, s.GETSTRING("PE_CANT") & BLANCO & s.GETSTRING("PE_COSTOU") & BLANCO & s.GETSTRING("PE_COSTO_TOT"))
' pdf.outtext(1,108-9*6,s.GETSTRING("PE_COSTOU"))
' pdf.outtext(1,108-9*6,s.GETSTRING("PE_COSTO_TOT") )
End If
Next
End If
s.Close
PDF.outtext(1,108-9*6," " )
s=skmt.ExecQuery2("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU,PE_CANT * PE_COSTOU AS PE_COSTO_TOT, length(PE_CANT * PE_COSTOU) as L_COSTO_TOT,PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_FOLIO = ? AND LENGTH(PE_CEDIS) > 3 AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_CEDIS, PE_COSTOU", Array As String("PREVENTA"))
If S.RowCount>0 Then
multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6,"--------------------------PROMOS PREVENTA-------------------------------------")
multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6,"Cant. Precio Importe")
multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6,"-----------------------------------------------------------------------------------------")
For i=0 To S.RowCount -1
S.Position=i
If s.GetString("PE_CEDIS") = s.GetString("PE_PROID") Then
multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6,s.GetString("PE_PRONOMBRE") )
Else
PDF.sFont(PDF.fontHelvetica,0,7,PDF.colorBlack)
multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6,s.GetString("PE_PRONOMBRE"))
LogColor(s.GetLong("L_CANT"),Colors.Magenta)
LogColor(s.GetLong("L_COSTOU"),Colors.Magenta)
LogColor(s.GetLong("L_COSTO_TOT"),Colors.Magenta)
TAMANO = s.GetLong("L_CANT") + s.GetLong("L_COSTOU") + s.GetLong("L_COSTO_TOT")
ESPACIO = 92
BLANCO = " "
ESPACIO = ESPACIO - TAMANO
ESPACIO = ESPACIO / 2
For E=0 To ESPACIO -1
BLANCO = " " & BLANCO
Next
PDF.sFont(PDF.fontHelvetica,0,10,PDF.colorBlack)
multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6, s.GETSTRING("PE_CANT") & BLANCO & s.GETSTRING("PE_COSTOU") & BLANCO & s.GETSTRING("PE_COSTO_TOT"))
End If
Next
End If
s.Close
' multiplicador = multiplicador +1
' pdf.outtext(1,pagina-multiplicador*6," " )
multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6," " )
multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6,"-----------------------------------------------------------------------------------------")
s=skmt.ExecQuery2("select SUM(PE_COSTO_TOT) AS TOTAL FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) AND PE_FOLIO = ?", Array As String("PREVENTA"))
s.Position =0
multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6,"Total preventa: $" & s.GetString("TOTAL") )
s.Close
c= skmt.ExecQuery2("select sum(PE_CANT) as PC_NOART from PEDIDO where PE_CLIENTE in (Select CUENTA from cuentaa) AND PE_PROID NOT IN (SELECT CAT_PA_ID FROM PROMOS_COMP ) AND PE_FOLIO = ?", Array As String("PREVENTA"))
C.Position=0
multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6,"Total articulos preventa: " & c.GetString("PC_NOART") )
c.Close
End If
' multiplicador = multiplicador +1
' pdf.outtext(1,pagina-multiplicador*6," " )
multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6,"-----------------------------------------------------------------------------------------" )
multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6,"--------------------------ESTE TICKET NO ES UN ---------------------------" )
multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6,"-------------------COMPROBANTE FISCAL, SOLO ES--------------------" )
multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6,"---------------------------------INFORMATIVO-----------------------------------" )
multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6,"-----------------------------------------------------------------------------------------" )
multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6," " )
multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6," " )
multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6," " )
multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6,"-----------------------------------------------------------------------------------------" )
' 'all combinations of font normal, bold,italic,underline and strikethrough
' For i=0 To 15
' 'select a font
' pdf.sFont(pdf.fontHelvetica,s,30,pdf.colorBlack)
' 'draw a text at position 20 (from left) and 277 (from bottom)
' pdf.outtext(20,277-i*15,"Hello world!")
' Next
DateTime.DateFormat = "ddmmyyyy"
DateTime.TimeFormat = "HHmmss"
sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now)
archivoTicketPDF = sDate&sTime&".pdf"
'save to file with compression if data compressed are smaller
savePDF(PDF, archivoTicketPDF, PDF.CompressAlways)
'open with default viewer
' openPDF(sDate&sTime&".pdf")
End Sub
private Sub savePDF(apdf As cPDF,afile As String,acompress As Int)
Dim folder As String
#if B4J
folder=xui.DefaultFolder
#End If
#if B4A
folder = Starter.fFileProvider.SharedFolder
#End If
#if B4I
'......
#End If
' Log("aaa:" & folder)
' Log("bbb:" & B4XPages.MainPage.Provider.SharedFolder)
apdf.saveToFile(folder, afile, acompress)
End Sub
private Sub openPDF(afile As String)
#if B4J
fx.ShowExternalDocument(File.GetUri(xui.DefaultFolder,afile))
#end if
#if B4A
Dim in As Intent
in.Initialize(in.ACTION_VIEW, "")
Starter.ffileProvider.SetFileUriAsIntentData(in, afile)
in.SetComponent("android/com.android.internal.app.ResolverActivity")
in.SetType("application/pdf")
StartActivity(in)
#end if
#if B4I
'......
#End If
End Sub
Private Sub b_enviarTicket_Click
ProgressDialogShow("Enviando ticket, un momento por favor.")
Log("Progress 1")
PDFGENERAR
enviaTicket
Sleep(1500)
Guardar_Click
ProgressDialogHide
Log("Progress 2")
End Sub
Private Sub b_enviarTicket_LongClick
' deleteFolder(Starter.fFileProvider.SharedFolder)
End Sub
Sub enviaTicket
'copy the shared file to the shared folder
' Log("xxxxxx:"&Starter.fFileProvider)
Sleep(1000)
Dim email As Email
email.To.Add("cheveguerra@gmail.com")
email.Subject = "subject"
email.Attachments.Add(Starter.fFileProvider.GetFileUri(archivoTicketPDF))
Dim in As Intent = email.GetIntent
in.Flags = 1 'FLAG_GRANT_READ_URI_PERMISSION
StartActivity(in)
End Sub

View File

@@ -159,6 +159,7 @@ Private Sub B4XPage_CloseRequest As ResumableSub
End Sub End Sub
Sub borra_Click Sub borra_Click
If Not(Subs.revisaImpreso) Then
If folio <> "" Then If folio <> "" Then
result = Msgbox2("Seguro que desa borrar el pedido?","Cancelar pedido", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) 'ignore result = Msgbox2("Seguro que desa borrar el pedido?","Cancelar pedido", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) 'ignore
If result = DialogResponse.POSITIVE Then If result = DialogResponse.POSITIVE Then
@@ -178,9 +179,15 @@ Sub borra_Click
Else Else
Msgbox("CLIENTE YA SE TRANSMITIO, FAVOR DE LLAMAR A SOPORTE PARA ASISTENCIA","AVISO") 'ignore Msgbox("CLIENTE YA SE TRANSMITIO, FAVOR DE LLAMAR A SOPORTE PARA ASISTENCIA","AVISO") 'ignore
End If End If
Else
ToastMessageShow("La venta ya esta impresa, no se puede modificar!!", True)
B4XPages.MainPage.cliente.p_transparenteTicketImpreso.Visible = True
B4XPages.ShowPage("cliente")
End If
End Sub End Sub
Sub ListView1_ItemLongClick (Position As Int, Value As Object) Sub ListView1_ItemLongClick (Position As Int, Value As Object)
If Not(Subs.revisaImpreso) Then
result = Msgbox2("Seguro que desea borrar este articulo?","Borrar Articulo", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) 'ignore result = Msgbox2("Seguro que desea borrar este articulo?","Borrar Articulo", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) 'ignore
If result = DialogResponse.POSITIVE Then If result = DialogResponse.POSITIVE Then
Private X() As String = Regex.Split(" ", Value) Private X() As String = Regex.Split(" ", Value)
@@ -222,7 +229,7 @@ Sub ListView1_ItemLongClick (Position As Int, Value As Object)
Log("Soy promo") Log("Soy promo")
' For j = 0 To c.RowCount -1 ' For j = 0 To c.RowCount -1
' Log("aqui tronare?") ' Log("aqui tronare?")
'' c.Position = j '' c.Position = j
B4XPages.MainPage.skmt.ExecNonQuery($"update ${Subs.traeTablaProds(tipo_venta)} set cat_gp_almacen = cat_gp_almacen + ${c.GetString("PE_CANT")} where cat_gp_id = '${c.GetString("PE_PROID")}'"$) B4XPages.MainPage.skmt.ExecNonQuery($"update ${Subs.traeTablaProds(tipo_venta)} set cat_gp_almacen = cat_gp_almacen + ${c.GetString("PE_CANT")} where cat_gp_id = '${c.GetString("PE_PROID")}'"$)
B4XPages.MainPage.skmt.ExecNonQuery2("delete from pedido where pe_cedis= ? and pe_cliente in (Select CUENTA from cuentaa) AND PE_FOLIO = ?", Array As Object(cedis, c.GetString("PE_FOLIO"))) B4XPages.MainPage.skmt.ExecNonQuery2("delete from pedido where pe_cedis= ? and pe_cliente in (Select CUENTA from cuentaa) AND PE_FOLIO = ?", Array As Object(cedis, c.GetString("PE_FOLIO")))
' Next ' Next
@@ -255,6 +262,11 @@ Sub ListView1_ItemLongClick (Position As Int, Value As Object)
End If End If
B4XPage_Appear B4XPage_Appear
End If End If
Else
B4XPages.MainPage.cliente.p_transparenteTicketImpreso.Visible = True
B4XPages.ShowPage("cliente")
ToastMessageShow("La venta ya esta impresa, no se puede modificar!!", True)
End If
End Sub End Sub
Sub b_desc_Click Sub b_desc_Click

View File

@@ -2231,6 +2231,7 @@ Sub t2_tick
B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM ENCUESTA_MODULO5") B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM ENCUESTA_MODULO5")
B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM BITACORAGPS") B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM BITACORAGPS")
B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM RUTA_SUPLENCIA") B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM RUTA_SUPLENCIA")
B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM TICKET_IMPRESO")
B4XPages.MainPage.skmt.ExecNonQuery2("DELETE FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("CARGA_DIA")) B4XPages.MainPage.skmt.ExecNonQuery2("DELETE FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("CARGA_DIA"))
B4XPages.MainPage.skmt.ExecNonQuery2("DELETE FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("pasword")) B4XPages.MainPage.skmt.ExecNonQuery2("DELETE FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("pasword"))
B4XPages.MainPage.skmt.ExecNonQuery2("DELETE FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("LATITUD")) B4XPages.MainPage.skmt.ExecNonQuery2("DELETE FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("LATITUD"))
@@ -2239,6 +2240,7 @@ Sub t2_tick
' B4XPages.MainPage.skmt.ExecNonQuery2("DELETE FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("FORZAR_ACTUALIZACION")) ' B4XPages.MainPage.skmt.ExecNonQuery2("DELETE FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("FORZAR_ACTUALIZACION"))
' B4XPages.MainPage.skmt.ExecNonQuery2("DELETE FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("VERSION_NUEVA")) ' B4XPages.MainPage.skmt.ExecNonQuery2("DELETE FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("VERSION_NUEVA"))
B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE GPS SET HABILITADO = (?)",Array As Object(0)) B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE GPS SET HABILITADO = (?)",Array As Object(0))
Subs.deleteFolder(Starter.fFileProvider.SharedFolder)
' B4XPage_Appear ' B4XPage_Appear
E_RUTA2.Visible = False E_RUTA2.Visible = False
E_RUTA2.Text = "" E_RUTA2.Text = ""

Binary file not shown.

BIN
B4A/Files/guna-fondo.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

BIN
B4A/Files/guna_192x192.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

File diff suppressed because one or more lines are too long

View File

@@ -18,6 +18,7 @@ ModuleBookmarks23=
ModuleBookmarks24= ModuleBookmarks24=
ModuleBookmarks25= ModuleBookmarks25=
ModuleBookmarks26= ModuleBookmarks26=
ModuleBookmarks27=
ModuleBookmarks3= ModuleBookmarks3=
ModuleBookmarks4= ModuleBookmarks4=
ModuleBookmarks5= ModuleBookmarks5=
@@ -45,6 +46,7 @@ ModuleBreakpoints23=
ModuleBreakpoints24= ModuleBreakpoints24=
ModuleBreakpoints25= ModuleBreakpoints25=
ModuleBreakpoints26= ModuleBreakpoints26=
ModuleBreakpoints27=
ModuleBreakpoints3= ModuleBreakpoints3=
ModuleBreakpoints4= ModuleBreakpoints4=
ModuleBreakpoints5= ModuleBreakpoints5=
@@ -68,17 +70,18 @@ ModuleClosedNodes2=
ModuleClosedNodes20= ModuleClosedNodes20=
ModuleClosedNodes21= ModuleClosedNodes21=
ModuleClosedNodes22= ModuleClosedNodes22=
ModuleClosedNodes23=3,4 ModuleClosedNodes23=
ModuleClosedNodes24=4,6,7,8,9 ModuleClosedNodes24=3,4
ModuleClosedNodes25= ModuleClosedNodes25=4,6,7,8,9
ModuleClosedNodes26= ModuleClosedNodes26=
ModuleClosedNodes27=
ModuleClosedNodes3= ModuleClosedNodes3=
ModuleClosedNodes4=5,6,7,8,9,10,11,12,13 ModuleClosedNodes4=5,8,9,10,11,12,13
ModuleClosedNodes5=1,3 ModuleClosedNodes5=
ModuleClosedNodes6= ModuleClosedNodes6=
ModuleClosedNodes7=5,6,8,9,10,11 ModuleClosedNodes7=5,6,8,9,10,11
ModuleClosedNodes8= ModuleClosedNodes8=
ModuleClosedNodes9= ModuleClosedNodes9=
NavigationStack=DBRequestManager,HandleJob,250,0,C_Principal,JobDone,1230,0,C_Principal,Class_Globals,44,0,C_Principal,B4XPage_Created,273,0,B4XMainPage,B4XPage_Created,100,2,B4XMainPage,JobDone,525,4,Starter,Process_Globals,34,0,C_Cliente,JobDone,1236,6,Starter,ENVIA_ULTIMA_GPS,107,0,C_Cliente,gest_Click,1261,6 NavigationStack=C_Cliente,enviaTicket,5164,6,C_Cliente,savePDF,5124,5,C_Cliente,openPDF,5141,0,C_Cliente,b_enviarTicket_LongClick,5156,1,C_Cliente,Guardar_Click,2107,0,C_Cliente,B4XPage_Appear,512,0,C_Cliente,GPS_LocationChanged,989,0,C_Cliente,b_enviarTicket_Click,5146,6,C_Cliente,PDFGENERAR,4965,1,B4XMainPage,JobDone,484,0,Main,Process_Globals,21,0
SelectedBuild=0 SelectedBuild=0
VisibleModules=24,2,14,25,4,5,7,6,15,12,20 VisibleModules=25,2,14,26,5,10,15,20,4

View File

@@ -39,6 +39,7 @@ Sub Process_Globals
Dim nuevoLink As String Dim nuevoLink As String
Dim idCliente As String = "" Dim idCliente As String = ""
Dim encuesta As String = 0 Dim encuesta As String = 0
Public fFileProvider As FileProvider
End Sub End Sub
Sub Service_Create Sub Service_Create
@@ -54,6 +55,7 @@ Sub Service_Create
logcat.LogCatStart(Array As String("-v","raw","*:F","B4A:v"), "logcat") logcat.LogCatStart(Array As String("-v","raw","*:F","B4A:v"), "logcat")
#end if #end if
logs.Initialize logs.Initialize
fFileProvider.Initialize
CallSubDelayed(FirebaseMessaging, "SubscribeToTopics") 'Para Push FirebaseMessaging CallSubDelayed(FirebaseMessaging, "SubscribeToTopics") 'Para Push FirebaseMessaging
ubicacionActual.Initialize ubicacionActual.Initialize
If File.Exists(File.DirInternal, "kmt.db") = False Then If File.Exists(File.DirInternal, "kmt.db") = False Then

View File

@@ -674,17 +674,17 @@ Sub traeRuta As String 'ignore
idCliente = elCc.GetString("CUENTA") idCliente = elCc.GetString("CUENTA")
Log("|"&elCc.GetString("CUENTA")&"|") Log("|"&elCc.GetString("CUENTA")&"|")
End If End If
Log($"#########################${CRLF}HAY USUARIO EN CUENTAA: ${elCc.RowCount}${CRLF}#########################"$) ' Log($"#########################${CRLF}HAY USUARIO EN CUENTAA: ${elCc.RowCount}${CRLF}#########################"$)
If idCliente <> "" Then If idCliente <> "" Then
Log(1) ' Log(1)
c = B4XPages.MainPage.skmt.ExecQuery($"select distinct CAT_CL_RUTA from kmt_info2 where CAT_CL_CODIGO = '${idCliente}'"$) c = B4XPages.MainPage.skmt.ExecQuery($"select distinct CAT_CL_RUTA from kmt_info2 where CAT_CL_CODIGO = '${idCliente}'"$)
Else Else
Log(2) ' Log(2)
c = B4XPages.MainPage.skmt.ExecQuery("select distinct CAT_CL_RUTA from kmt_info2 where CAT_CL_RUTA not in (select * from ruta_suplencia)") c = B4XPages.MainPage.skmt.ExecQuery("select distinct CAT_CL_RUTA from kmt_info2 where CAT_CL_RUTA not in (select * from ruta_suplencia)")
End If End If
Log($"#########################${CRLF}ENCONTRAMOS RUTA EN KMT_INFO2: ${c.RowCount}${CRLF}#########################"$) ' Log($"#########################${CRLF}ENCONTRAMOS RUTA EN KMT_INFO2: ${c.RowCount}${CRLF}#########################"$)
If c.RowCount > 0 Then If c.RowCount > 0 Then
Log(3) ' Log(3)
c.Position=0 c.Position=0
r = c.GetString("CAT_CL_RUTA") r = c.GetString("CAT_CL_RUTA")
End If End If
@@ -692,7 +692,7 @@ Sub traeRuta As String 'ignore
Catch Catch
Log(LastException) Log(LastException)
End Try End Try
Log($"#########################${CRLF}RUTA ENCONTRADA: |${r}|${CRLF}#########################"$) ' Log($"#########################${CRLF}RUTA ENCONTRADA: |${r}|${CRLF}#########################"$)
Return r Return r
End Sub End Sub
@@ -1740,3 +1740,22 @@ Sub traeVariable(nombre As String) As String
End If End If
Return valor Return valor
End Sub End Sub
Sub revisaImpreso As Boolean 'ignore
Private impreso As Boolean = False
Private c As Cursor = Starter.skmt.ExecQuery("select idCliente from ticket_impreso where idCliente in (select cuenta from cuentaa)")
If c.RowCount > 0 Then impreso = True
Return impreso
End Sub
Sub deleteFolder(folder As String)
Log("Borrando " & folder)
For Each f As String In File.ListFiles(folder)
Log(f)
If File.IsDirectory(folder, f) Then
deleteFolder(File.Combine(folder, f))
Log($"Borramos ${File.Combine(folder, f)}"$)
End If
File.Delete(folder, f)
Next
End Sub

1004
B4A/cPDF.bas Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -24,7 +24,7 @@ Public Sub Initialize (vCallback As Object, vEventName As String, vRoot As B4XVi
Root2 = vRoot Root2 = vRoot
reqManager = DBReq reqManager = DBReq
db.ExecNonQuery("CREATE TABLE IF NOT EXISTS BITACORAGPS(fechab TEXT, usuariob TEXT, almacenb TEXT, rutab TEXT, eventob TEXT, clienteb TEXT, iniciob TEXT, finb TEXT, latitudb TEXT, longitudb TEXT, precision TEXT, motivonoventa TEXT, motivonovisita TEXT, BAN_GEOB TEXT)") db.ExecNonQuery("CREATE TABLE IF NOT EXISTS BITACORAGPS(fechab TEXT, usuariob TEXT, almacenb TEXT, rutab TEXT, eventob TEXT, clienteb TEXT, iniciob TEXT, finb TEXT, latitudb TEXT, longitudb TEXT, precision TEXT, motivonoventa TEXT, motivonovisita TEXT, BAN_GEOB TEXT)")
' agregaColumna("BITACORAGPS", "BAN_GEOB", "TEXT") agregaColumna("BITACORAGPS", "BAN_GEOB", "TEXT")
contadorIniciarVenta = 0 contadorIniciarVenta = 0
cargamosPanel cargamosPanel
Return Me Return Me