- VERSION 5.03.23

- Se puso codigo para envio de WhatsApp del ticket PDF
- Se puso codigo para el envio de mensaje de WhatsApp cuando la venta es a credito
- Se puso codigo para descragar los datos de las promos segmentadas paltinum, oro y bronze
- Se puso codigo para que se guarde en web el telefono al que se  manda el ticketPdf
- Se puso codigo para que cuando se carga dia, si ya hay venta, se reste de cat_gunaprod y cat_gunaprod2 lo que haya en pedido.
This commit is contained in:
2025-03-26 16:31:09 -06:00
parent d4346a65e5
commit 0596d33b74
6 changed files with 200 additions and 105 deletions

View File

@@ -104,7 +104,7 @@ Sub Class_Globals
Private HR_RES2 As String
Private HR_RES3 As String
Private EXISTE As String
Private TELEFONO As String
Private telefono As String
Private RB1 As RadioButton
@@ -449,6 +449,7 @@ Sub Class_Globals
Private imgPlanLealtad As ImageView
Private btnAceptaPlanLealtad As Button
Private btnCancelarPlanLealtad As Button
Private BCREDITO As String
End Sub
'You can add more parameters here.
@@ -621,7 +622,7 @@ Sub B4XPage_Appear
DD=B4XPages.MainPage.skmt.ExecQuery2("SELECT COUNT(*) AS CUANTOS FROM HIST_VENTAS WHERE HVD_CLIENTE IN (Select cuenta from cuentaa) AND HVD_PRONOMBRE =?", Array As String("KNORR RINDE MAS 70 GR"))
DD.Position =0
If DD.GetString("CUANTOS") = 0 Then
c=B4XPages.MainPage.skmt.ExecQuery2("SELECT COUNT(*) AS CUANTOS FROM PEDIDO WHERE PE_CLIENTE IN (Select cuenta from cuentaa) AND PE_PRONOMBRE =?", Array As String("KNORR RINDE MAS 70 GR"))
c=B4XPages.MainPage.skmt.ExecQuery2("SELECT COUNT(*) AS CUANTOS FROM PEDIDO WHERE PE_CLIENTE IN (Select cuenta from cuentaa) AND PE_PRONOMBRE =?", Array As String("KNORR RINDE MAS 70 GR"))
c.Position =0
If c.GetString("CUANTOS") = 0 Then
b_like.Visible = False
@@ -921,14 +922,13 @@ Sub B4XPage_Appear
End If
End If
'AQUI CAMBIAR
Private s3 As Cursor=B4XPages.MainPage.skmt.ExecQuery2("select * FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) and PE_RECALCULO <> ? OR PE_RECALCULO <> ? OR PE_RECALCULO IS NOT NULL",Array As String("","null"))
' LogColor(s3.RowCount,Colors.Yellow)
If s3.RowCount > 0 Then
c=B4XPages.MainPage.skmt.ExecQuery("select CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO from kmt_info3 where CAT_CL_CODIGO In (Select cuenta from cuentaa)")
'########################## CODIGO PARA CREDITOS ####################
c=B4XPages.MainPage.skmt.ExecQuery("select CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO,CAT_CL_BCREDITO from kmt_info3 where CAT_CL_CODIGO In (Select cuenta from cuentaa)")
s=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 = ? or PE_RECALCULO = ? or PE_RECALCULO IS NULL)",Array As String("","null"))
s.Position=0
Private s5 As Cursor = B4XPages.MainPage.skmt.ExecQuery2("select iFNULL(sum(PE_RECALCULOTOT),0) as TOTAL_CLIE FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) and (PE_RECALCULO <> ? or PE_RECALCULO <> ? OR PE_RECALCULO IS NOT NULL)",Array As String("","null"))
@@ -946,7 +946,9 @@ Sub B4XPage_Appear
l_entre2.Text = c.GetString("CAT_CL_CALLE2")
l_atiende.Text = c.GetString("CAT_CL_ATIENDE1")
l_atiende2.Text = c.GetString("CAT_CL_ATIENTE2")
TELEFONO = c.GetString("CAT_CL_TELEFONO")
telefono = c.GetString("CAT_CL_TELEFONO")
BCREDITO = c.GetString("CAT_CL_BCREDITO") '########################## CODIGO PARA CREDITOS ####################
If s.GetString("TOTAL_CLIE") = Null Then
l_total.Text = 0
Else
@@ -975,7 +977,8 @@ Sub B4XPage_Appear
c.Close
s.Close
Else If s3.RowCount = 0 Then
c=B4XPages.MainPage.skmt.ExecQuery("select CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO from kmt_info3 where CAT_CL_CODIGO In (Select cuenta from cuentaa)")
'########################## CODIGO PARA CREDITOS ####################
c=B4XPages.MainPage.skmt.ExecQuery("select CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO,CAT_CL_BCREDITO from kmt_info3 where CAT_CL_CODIGO In (Select cuenta from cuentaa)")
s=B4XPages.MainPage.skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
s.Position=0
If c.RowCount > 0 Then
@@ -990,7 +993,9 @@ Sub B4XPage_Appear
l_entre2.Text = c.GetString("CAT_CL_CALLE2")
l_atiende.Text = c.GetString("CAT_CL_ATIENDE1")
l_atiende2.Text = c.GetString("CAT_CL_ATIENTE2")
TELEFONO = c.GetString("CAT_CL_TELEFONO")
telefono = c.GetString("CAT_CL_TELEFONO")
BCREDITO = c.GetString("CAT_CL_BCREDITO") '########################## CODIGO PARA CREDITOS ####################
' Log(s.GetString("TOTAL_CLIE"))
If s.GetString("TOTAL_CLIE") = Null Then
l_total.Text = 0
@@ -1020,6 +1025,7 @@ Sub B4XPage_Appear
c.Close
s.Close
End If
' ToastMessageShow(BCREDITO, False)
'AQUI TERMINA
Starter.idCliente = la_cuenta.text
c = skmt.ExecQuery("SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = 'GEOCERCA'")
@@ -2265,7 +2271,7 @@ Sub Guardar_Click
c.Close
c=B4XPages.MainPage.skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, COUNT(*) AS CUANTOS FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
c.Position=0
'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))
' LogColor(s3.RowCount,Colors.Yellow)
@@ -2314,6 +2320,19 @@ Sub Guardar_Click
ToastMessageShow(".",True)
End Try
DateTime.TimeFormat = "HH:mm:ss"
'########################## INICIA CODIGO PARA CREDITOS ####################
If BCREDITO = 1 And suma > 0 Then
Msgbox2Async("¿La venta va a ser a crédito o contado?" , "AVISO", "Crédito", "", "Efectivo", LoadBitmap(File.DirAssets,"alert2.png"), False)
Wait For Msgbox_Result (resultado As Int)
If resultado = DialogResponse.POSITIVE Then
' ToastMessageShow("Positivo", False)
mandaWAMsgCredito(telefono.Trim, suma)
Else
' ToastMessageShow("Efectivo", False)
End If
' ToastMessageShow("ENVIAR MSG WA POR MONTO $XXX", False)
End If
'########################## TERMINA CODIGO PARA CREDITOS ####################
' B4XPages.ShowPage("Principal")
End Sub
@@ -5316,7 +5335,7 @@ private Sub openPDF(afile As String)
End Sub
Private Sub b_enviarTicket_Click
et_numeroPDF.Text = TELEFONO.trim
et_numeroPDF.Text = telefono.trim
p_transparentePDF.Visible = True
' ProgressDialogShow("Enviando ticket, un momento por favor.")
' Log("Progress 1")
@@ -5353,34 +5372,53 @@ Sub EnviarPDFWhatsAppNumero(NumeroTelefono As String)
' Ruta del archivo PDF
' Dim RutaArchivo As String = Starter.fFileProvider.SharedFolder & "/" & archivoTicketPDF
' Log(RutaArchivo)
' Verificar si el archivo existe
If File.Exists(Starter.fFileProvider.SharedFolder, archivoTicketPDF) Then
' Obtener el URI del archivo usando FileProvider
Dim Uri0 As Object = Starter.fFileProvider.GetFileUri(archivoTicketPDF)
' Crear un Intent para compartir el archivo
Dim Intent1 As Intent
Intent1.Initialize(Intent1.ACTION_SEND, "")
' Establecer el tipo MIME del archivo (PDF)
Intent1.SetType("application/pdf")
' Agregar el URI del archivo al Intent
Intent1.PutExtra("android.intent.extra.STREAM", Uri0)
' Establecer permisos de lectura para la aplicación que recibe el archivo
Intent1.Flags = 1 ' FLAG_GRANT_READ_URI_PERMISSION
' Especificar el número de teléfono en el Intent
Intent1.PutExtra("jid", NumeroTelefono & "@s.whatsapp.net") ' Formato de WhatsApp
' Especificar que se abra directamente en WhatsApp
Intent1.SetPackage("com.whatsapp")
' Iniciar el Intent para compartir el archivo
Log("Intent para compartir archivo")
StartActivity(Intent1)
Dim fd As MultipartFileData
fd.Initialize
fd.KeyName = "file"
fd.Dir = Starter.fFileProvider.SharedFolder
fd.FileName = archivoTicketPDF
fd.ContentType = "application/pdf"
Private link As String = "http://keymon.lat:9000/v1/ticketpdf"
Private campos As Map = CreateMap( "message":"Tu compra de Guna va ser a *crédito* por el monto de $${NumberFormat2(monto, 1, 2, 2, True)}\n\nManda *1* para confirmar\nManda *0* para rechazar\n\n*Nota:* Si este mensaje no se contesta, se considerará que el pago es en *EFECTIVO*.\n\n(Solo el *número* por favor)")
campos.Put("number", NumeroTelefono)
campos.Put("message","Tu recibo")
Log(campos)
Private job As HttpJob
job.Initialize("", Me)
job.PostMultipart(link, campos, Array(fd))
' job.GetRequest.SetContentType("application/json")
Log(5555)
Wait For (job) JobDone(job As HttpJob)
' ' Obtener el URI del archivo usando FileProvider
' Dim Uri0 As Object = Starter.fFileProvider.GetFileUri(archivoTicketPDF)
'
' ' Crear un Intent para compartir el archivo
' Dim Intent1 As Intent
' Intent1.Initialize(Intent1.ACTION_SEND, "")
'
' ' Establecer el tipo MIME del archivo (PDF)
' Intent1.SetType("application/pdf")
'
' ' Agregar el URI del archivo al Intent
' Intent1.PutExtra("android.intent.extra.STREAM", Uri0)
'
' ' Establecer permisos de lectura para la aplicación que recibe el archivo
' Intent1.Flags = 1 ' FLAG_GRANT_READ_URI_PERMISSION
'
' ' Especificar el número de teléfono en el Intent
' Intent1.PutExtra("jid", NumeroTelefono & "@s.whatsapp.net") ' Formato de WhatsApp
'
' ' Especificar que se abra directamente en WhatsApp
' Intent1.SetPackage("com.whatsapp")
'
' ' Iniciar el Intent para compartir el archivo
' Log("Intent para compartir archivo")
' StartActivity(Intent1)
Else
ToastMessageShow("El archivo PDF no existe.", True)
End If
@@ -5440,9 +5478,10 @@ End Sub
Private Sub b_envioPDF_Click
PDFGENERAR
EnviarPDFWhatsAppNumero(et_numeroPDF.Text)
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}')"$)
DateTime.DateFormat = "YYYY/MM/dd HH:mm:ss"
Dim cmd As DBCommand
cmd.Initialize
@@ -5450,6 +5489,13 @@ Private Sub b_envioPDF_Click
Log(DateTime.Date(DateTime.Now))
cmd.Parameters = Array As Object(Subs.traeCliente, Subs.traeUsuarioDeBD, et_numeroPDF.text, DateTime.Date(DateTime.Now))
reqManager.ExecuteCommand(cmd , "insertEnvioTicketPDF")
cmd.Initialize
cmd.Name = "insertaTelefonoTicketPDF"
Log(DateTime.Date(DateTime.Now))
cmd.Parameters = Array As Object(Subs.traeAlmacen, Subs.traeRuta, Subs.traeCliente, et_numeroPDF.text)
reqManager.ExecuteCommand(cmd , "insertTelefonoTicketPDF")
Guardar_Click
p_transparentePDF.Visible = False
End Sub
@@ -5491,4 +5537,46 @@ Private Sub btnAceptaPlanLealtad_Click
Log("AQUI2")
B4XPage_Appear
End If
End Sub
End Sub
'########################## INICIA CODIGO PARA CREDITOS ####################
Sub mandaWAMsgCredito(numTel As String, monto As String)
DateTime.DateFormat="MM/dd/yyyy HH:mm:ss"
Private Fecha As String=DateTime.Date(DateTime.now)
numTel = "521" & numTel
Private numTel As String = "5215554192439"
' Private monto As String = "1500"
Private idCliente As String = Subs.traeCliente '"10748"
Private ruta As String = Subs.traeRuta '"333"
Private ALMACEN As String = Subs.traeAlmacen '"1"
' CON POST
Private link As String = "http://keymon.lat:9000/v1/messages"
Private elJSON As String = $"{
"number":"${numTel}",
"message":"Tu compra de Guna va ser a *crédito* por el monto de $${NumberFormat2(monto, 1, 2, 2, True)}\n\nManda *1* para confirmar\nManda *0* para rechazar\n\n*Nota:* Si este mensaje no se contesta, se considerará que el pago es en *EFECTIVO*.\n\n(Solo el *número* por favor)",
"monto":"${monto}",
"idcliente":"${idCliente}",
"almacen":"${ALMACEN}",
"ruta": "${ruta}",
"fecha":"${Fecha}"
}"$
Private job As HttpJob
job.Initialize("", Me)
job.PostString(link, elJSON)
job.GetRequest.SetContentType("application/json")
Wait For (job) JobDone(job As HttpJob)
' CON GET
' Private retorno As String = "%0D%0A"
' Private link As String = $"http://keymon.lat:9000/v1/messages?number=${numTel}&message=Tu compra de Guna va ser a crédito por el monto de $${NumberFormat2(monto, 1, 2, 2, True)}${retorno}${retorno}Manda *1* para confirmar${retorno}Manda *0* para rechazar${retorno}${retorno}*Nota: Si este mensaje no se contesta, se considerará que el pago es en EFECTIVO*${retorno}${retorno}(Solo el *número* por favor)&monto=${monto}&idcliente=${idCliente}&almacen=1&ruta=333&fecha=${Fecha}"$
' Private job As HttpJob
' job.Initialize("", Me)
'' job.PostString(link, elJSON)
' job.Download(link)
'' job.GetRequest.SetContentType("application/json")
' Wait For (job) JobDone(job As HttpJob)
Log("Whatsapp enviado con exito: " & job.Success)
End Sub
'########################## TERMINA CODIGO PARA CREDITOS ####################