From 0596d33b744b18a18e00cf0b3d9e8d89e997e68b Mon Sep 17 00:00:00 2001 From: Jose Alberto Guerra Ugalde Date: Wed, 26 Mar 2025 16:31:09 -0600 Subject: [PATCH] - 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. --- B4A/B4XMainPage.bas | 45 ++------- B4A/C_Cliente.bas | 166 ++++++++++++++++++++++++++-------- B4A/C_Principal.bas | 50 ++++++++-- B4A/Files/principal.bal | Bin 51666 -> 51666 bytes B4A/Guna Vistas V3.1.b4a | 38 ++++---- B4A/Guna Vistas V3.1.b4a.meta | 6 +- 6 files changed, 200 insertions(+), 105 deletions(-) diff --git a/B4A/B4XMainPage.bas b/B4A/B4XMainPage.bas index a32ad8d..114f56b 100644 --- a/B4A/B4XMainPage.bas +++ b/B4A/B4XMainPage.bas @@ -188,6 +188,12 @@ Private Sub B4XPage_Created (Root1 As B4XView) Subs.agregaColumna("PEDIDO", "PE_RECALCULOTOT", "TEXT") Subs.agregaColumna("HIST_ENCUESTA", "HE_LON", "TEXT") Subs.agregaColumna("kmt_info3", "encuesta", "TEXT") + Subs.agregaColumna("kmt_info3", "CAT_CL_TIPOCLIENTE", "TEXT") + Subs.agregaColumna("kmt_info3", "CAT_CL_BCREDITO", "TEXT") '########################## CODIGO PARA CREDITOS #################### + Subs.agregaColumna("CAT_GUNAPROD", "CAT_PA_BSEGMENTA", "TEXT") + Subs.agregaColumna("CAT_GUNAPROD", "CAT_PA_SEGMENTAV", "TEXT") + Subs.agregaColumna("CAT_GUNAPROD2", "CAT_PA_BSEGMENTA", "TEXT") + Subs.agregaColumna("CAT_GUNAPROD2", "CAT_PA_SEGMENTAV", "TEXT") Try 'Intentamos usar "pragma_table_info" para revisar si existe la columna "P10" en la tabla c=skmt.ExecQuery("SELECT COUNT(*) AS fCol FROM pragma_table_info('ENCUESTA_MODULO3') WHERE name='P10'") c.Position = 0 @@ -1064,42 +1070,3 @@ Private Sub i_engrane_LongClick ToastMessageShow("La aplicación Tienda 360 no está instalada o no puede manejar la URL.", True) End Try End Sub - -Sub l_version_longClick - DateTime.DateFormat="MM/dd/yyyy HH:mm:ss" - Private Fecha As String=DateTime.Date(DateTime.now) - Private telefono As String = "5215554192439" - Private monto As String = "1500" - Private idCliente As String = "10748" - Private ruta As String = "333" - Private almacen As String = "1" - -' CON POST - Private link As String = "http://keymon.lat:9000/v1/messages" - Private elJSON As String = $"{ - "number":"${telefono}", - "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=${telefono}&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 \ No newline at end of file diff --git a/B4A/C_Cliente.bas b/B4A/C_Cliente.bas index 0c57281..9945e5d 100644 --- a/B4A/C_Cliente.bas +++ b/B4A/C_Cliente.bas @@ -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 \ No newline at end of file +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 #################### diff --git a/B4A/C_Principal.bas b/B4A/C_Principal.bas index 6272256..8fb8373 100644 --- a/B4A/C_Principal.bas +++ b/B4A/C_Principal.bas @@ -930,6 +930,7 @@ Sub cargar_Click B4XPages.MainPage.skmt.ExecNonQuery("delete from cod_result") B4XPages.MainPage.skmt.ExecNonQuery("delete from hist_gest") B4XPages.MainPage.skmt.ExecNonQuery("delete from cat_gunaprod") + B4XPages.MainPage.skmt.ExecNonQuery("delete from cat_gunaprod2") B4XPages.MainPage.skmt.ExecNonQuery("delete from CAT_DETALLES_PAQ") B4XPages.MainPage.skmt.ExecNonQuery("delete from telefonos") B4XPages.MainPage.skmt.ExecNonQuery("delete from HIST_VENTAS") @@ -1033,7 +1034,7 @@ Sub cargar_Click B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "detallepaq") cmd.Initialize - cmd.Name = "select_cat_clientes_guna_GV2" + cmd.Name = "select_cat_clientes2_guna_GV2" '########################## CODIGO PARA CREDITOS #################### cmd.Parameters = Array As Object(e_ruta.text, ALMACEN) B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "kmt_datos") @@ -1103,7 +1104,7 @@ Sub cargar_Click p_ruta2.Visible = False cmd.Initialize - cmd.Name = "select_cat_clientes_guna_GV2" + cmd.Name = "select_cat_clientes2_guna_GV2" '########################## CODIGO PARA CREDITOS #################### cmd.Parameters = Array As Object(E_RUTA2.text, ALMACEN) B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "kmt_datos2") @@ -1283,7 +1284,11 @@ Sub JobDone(Job As HttpJob) Dim CAT_CL_LAT As String = records(RESULT.Columns.Get("CAT_CL_LAT")) Dim CAT_CL_MTOCOMPRA As String = records(RESULT.Columns.Get("CAT_CL_MTOCOMPRA")) Dim CAT_CL_NUM_SERIEFISICO As String = records(RESULT.Columns.Get("CAT_CL_NUM_SERIEFISICO")) - B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO kmt_info3(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, gestion) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0)", Array As Object (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)) + Dim CAT_CL_TIPOCLIENTE As String = records(RESULT.Columns.Get("CAT_CL_TIPOCLIENTE")) + '########################## INICIA CODIGO PARA CREDITOS #################### + Dim CAT_CL_BCREDITO As String = records(RESULT.Columns.Get("CAT_CL_BCREDITO")) + B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO kmt_info3(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, gestion,CAT_CL_BCREDITO,CAT_CL_TIPOCLIENTE) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,?,?)", Array As Object (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,CAT_CL_TIPOCLIENTE)) + '########################## TERMINA CODIGO PARA CREDITOS #################### B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO HIST_STAY_STORE(HSS_CODIGO, HSS_IN , HSS_OUT , HSS_TOT) VALUES (?,0,0,0)", Array As Object (CAT_CL_CODIGO)) Next B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO kmt_info3(CAT_CL_CODIGO, CAT_CL_RUTA, CAT_CL_NOMBRE, CAT_CL_LONG, CAT_CL_LAT, CAT_CL_NUM_SERIEFISICO) VALUES (?,?,?,0,0,0)", Array As Object ("0", e_ruta.Text, "ABORDO")) @@ -1323,7 +1328,11 @@ Sub JobDone(Job As HttpJob) Dim CAT_CL_LAT As String = records(RESULT.Columns.Get("CAT_CL_LAT")) Dim CAT_CL_MTOCOMPRA As String = records(RESULT.Columns.Get("CAT_CL_MTOCOMPRA")) Dim CAT_CL_NUM_SERIEFISICO As String = records(RESULT.Columns.Get("CAT_CL_NUM_SERIEFISICO")) - B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO kmt_info3(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, gestion) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0)", Array As Object (CAT_CL_CODIGO,E_RUTA2.Text,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)) + Dim CAT_CL_TIPOCLIENTE As String = records(RESULT.Columns.Get("CAT_CL_TIPOCLIENTE")) + '########################## INICIA CODIGO PARA CREDITOS #################### + Dim CAT_CL_BCREDITO As String = records(RESULT.Columns.Get("CAT_CL_BCREDITO")) + B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO kmt_info3(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, gestion,CAT_CL_BCREDITO,CAT_CL_TIPOCLIENTE) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,?,?)", Array As Object (CAT_CL_CODIGO,E_RUTA2.Text,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,CAT_CL_TIPOCLIENTE)) + '########################## TERMINA CODIGO PARA CREDITOS #################### ' Subs.bitacora(Subs.fechanormal(DateTime.Now),usuario,Subs.traeAlmacen, e_ruta.Text, "Suplencia", "",Subs.fechanormal(DateTime.Now),Subs.fechanormal(DateTime.Now),B4XPages.MainPage.lat_gps,B4XPages.MainPage.lon_gps,"2","","") B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO HIST_STAY_STORE(HSS_CODIGO, HSS_IN , HSS_OUT , HSS_TOT) VALUES (?,0,0,0)", Array As Object (CAT_CL_CODIGO)) Next @@ -1724,15 +1733,17 @@ Sub JobDone(Job As HttpJob) Dim CAT_GP_IMG() As Byte = records(RESULT.Columns.Get("CAT_GP_IMG")) Dim CAT_GP_ALMACEN As Int = records(RESULT.Columns.Get("CAT_GP_ALMACEN")) Dim CAT_GP_TIPOPROD As Int = records(RESULT.Columns.Get("CAT_GP_TIPOPROD")) + Dim CAT_PA_BSEGMENTA As String = records(RESULT.Columns.Get("CAT_PA_BSEGMENTA")) + Dim CAT_PA_SEGMENTAV As String = records(RESULT.Columns.Get("CAT_PA_SEGMENTAV")) CAT_GP_TIPOPROD = "5" If CAT_GP_ID = "PAQUNI003" Then CAT_GP_ALMACEN = 60 End If - B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO CAT_GUNAPROD(CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_IMP1,CAT_GP_IMP2,CAT_GP_PRECIO,CAT_GP_CLASIF,CAT_GP_STS,CAT_GP_TIPO,CAT_GP_SUBTIPO,CAT_GP_IMG,CAT_GP_ALMACEN,CAT_GP_TIPOPROD) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)", Array As Object (CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_IMP1,CAT_GP_IMP2,CAT_GP_PRECIO,CAT_GP_CLASIF,CAT_GP_STS,CAT_GP_TIPO,CAT_GP_SUBTIPO,CAT_GP_IMG, CAT_GP_ALMACEN,CAT_GP_TIPOPROD)) + B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO CAT_GUNAPROD(CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_IMP1,CAT_GP_IMP2,CAT_GP_PRECIO,CAT_GP_CLASIF,CAT_GP_STS,CAT_GP_TIPO,CAT_GP_SUBTIPO,CAT_GP_IMG,CAT_GP_ALMACEN,CAT_GP_TIPOPROD,CAT_PA_BSEGMENTA,CAT_PA_SEGMENTAV) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?)", Array As Object (CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_IMP1,CAT_GP_IMP2,CAT_GP_PRECIO,CAT_GP_CLASIF,CAT_GP_STS,CAT_GP_TIPO,CAT_GP_SUBTIPO,CAT_GP_IMG, CAT_GP_ALMACEN,CAT_GP_TIPOPROD,CAT_PA_BSEGMENTA,CAT_PA_SEGMENTAV)) ' If CAT_GP_ID.StartsWith("PRO") Then LogColor($"Metemos promo a gunaprod - ${CAT_GP_ID}, |${CAT_GP_TIPO}|"$, Colors.red) ' If CAT_GP_TIPO = "PROMOS" Then ' LogColor($"Agregamos Promo a gunaprod2 - ${CAT_GP_ID}, ${CAT_GP_NOMBRE}"$, Colors.Red) - B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO CAT_GUNAPROD2(CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_IMP1,CAT_GP_IMP2,CAT_GP_PRECIO,CAT_GP_CLASIF,CAT_GP_STS,CAT_GP_TIPO,CAT_GP_SUBTIPO,CAT_GP_IMG,CAT_GP_ALMACEN,CAT_GP_TIPOPROD) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)", Array As Object (CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_IMP1,CAT_GP_IMP2,CAT_GP_PRECIO,CAT_GP_CLASIF,CAT_GP_STS,CAT_GP_TIPO,CAT_GP_SUBTIPO,CAT_GP_IMG, CAT_GP_ALMACEN,CAT_GP_TIPOPROD)) + B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO CAT_GUNAPROD2(CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_IMP1,CAT_GP_IMP2,CAT_GP_PRECIO,CAT_GP_CLASIF,CAT_GP_STS,CAT_GP_TIPO,CAT_GP_SUBTIPO,CAT_GP_IMG,CAT_GP_ALMACEN,CAT_GP_TIPOPROD,CAT_PA_BSEGMENTA,CAT_PA_SEGMENTAV) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?)", Array As Object (CAT_GP_ID,CAT_GP_NOMBRE,CAT_GP_IMP1,CAT_GP_IMP2,CAT_GP_PRECIO,CAT_GP_CLASIF,CAT_GP_STS,CAT_GP_TIPO,CAT_GP_SUBTIPO,CAT_GP_IMG, CAT_GP_ALMACEN,CAT_GP_TIPOPROD,CAT_PA_BSEGMENTA,CAT_PA_SEGMENTAV)) ' End If Next If PB2.Progress = 0 Then @@ -2224,6 +2235,7 @@ End Sub Sub t2_tick ' e_ruta.Text = "" +Log("--------> BORRAMOS") If B4XPages.MainPage.productos.lv_catalogos.IsInitialized Then B4XPages.MainPage.productos.lv_catalogos.Clear B4XPages.MainPage.skmt.ExecNonQuery("delete from pedido_cliente") B4XPages.MainPage.skmt.ExecNonQuery("delete from pedido") @@ -2424,6 +2436,32 @@ Sub B_OK_PAS_Click Else bitacora.mandaBitacora(Subs.fechanormal(DateTime.Now),usuario,Subs.traeAlmacen, Subs.traeRuta,"Carga día", "",Subs.fechanormal(DateTime.Now),Subs.fechanormal(DateTime.Now),B4XPages.MainPage.lat_gps,B4XPages.MainPage.lon_gps,"2","","", "") End If + Dim c11 As Cursor = Starter.skmt.ExecQuery("Select PE_PRONOMBRE, PE_PROID, PE_CANT FROM PEDIDO WHERE PE_FOLIO = 'PREVENTA'") + If c11.RowCount > 0 Then + For i = 0 To c11.RowCount - 1 + c11.Position = i + Starter.skmt.ExecNonQuery($"UPDATE CAT_GUNAPROD SET CAT_GP_ALMACEN = CAT_GP_ALMACEN - ${c11.GetString("PE_CANT")} WHERE CAT_GP_ID = '${c11.GetString("PE_PROID")}'"$) + Next + End If + c11.Close + + Dim c12 As Cursor = Starter.skmt.ExecQuery("Select PE_PRONOMBRE, PE_PROID, PE_CANT FROM PEDIDO WHERE PE_FOLIO = 'ABORDO'") + If c12.RowCount > 0 Then + For i = 0 To c12.RowCount - 1 + c12.Position = i + Starter.skmt.ExecNonQuery($"UPDATE CAT_GUNAPROD SET CAT_GP_ALMACEN = CAT_GP_ALMACEN - ${c12.GetString("PE_CANT")} WHERE CAT_GP_ID = '${c12.GetString("PE_PROID")}'"$) + Next + End If + c12.Close + + Dim c13 As Cursor = Starter.skmt.ExecQuery("Select PE_PRONOMBRE, PE_PROID, PE_CANT FROM PEDIDO WHERE PE_FOLIO = 'VENTA'") + If c13.RowCount > 0 Then + For i = 0 To c13.RowCount - 1 + c13.Position = i + Starter.skmt.ExecNonQuery($"UPDATE CAT_GUNAPROD2 SET CAT_GP_ALMACEN = CAT_GP_ALMACEN - ${c13.GetString("PE_CANT")} WHERE CAT_GP_ID = '${c13.GetString("PE_PROID")}'"$) + Next + End If + c13.Close Else if CARGA = "CARGAR" And (S_CP.Text <> "LISTO" Or S_CC.Text <> "LISTO" Or S_CH.Text <> "LISTO") Then RES = Msgbox2("Seguro que desa abortar el proceso","Cierre", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) 'ignore If RES = DialogResponse.POSITIVE Then diff --git a/B4A/Files/principal.bal b/B4A/Files/principal.bal index 1505aeb1722badaa1c4e049c1ad84d1ababce6aa..4d0c349924a609bdbacf7d2f702ff40e103c2354 100644 GIT binary patch delta 28 mcmV+%0OSAClLOL|1F+a34VnP}02u%P00G$l|Npb)A?>H2oD5z7 delta 18 acmcaKnfcOW<_$L#C;w9u+WboK#c}{xtO<|+ diff --git a/B4A/Guna Vistas V3.1.b4a b/B4A/Guna Vistas V3.1.b4a index 3d45693..311fb6c 100644 --- a/B4A/Guna Vistas V3.1.b4a +++ b/B4A/Guna Vistas V3.1.b4a @@ -78,23 +78,24 @@ File78=promociones.bal File79=qr.bal File8=celltitle.bal File80=qr_gallina.jpg -File81=resdia.bal -File82=ResDia.jpg -File83=resdia20.png -File84=rojo.png -File85=salma.jpg -File86=salma.png -File87=seleccion.bal -File88=senial.jpg -File89=sync.png +File81=QRPlanLealtad.png +File82=resdia.bal +File83=ResDia.jpg +File84=resdia20.png +File85=rojo.png +File86=salma.jpg +File87=salma.png +File88=seleccion.bal +File89=senial.jpg File9=cliente.bal -File90=tache_rojo.png -File91=telefonos.bal -File92=Ticket dia.jpg -File93=ticketdia20.png -File94=ticketsdia.bal -File95=Tiendita.jpg -File96=verde.png +File90=sync.png +File91=tache_rojo.png +File92=telefonos.bal +File93=Ticket dia.jpg +File94=ticketdia20.png +File95=ticketsdia.bal +File96=Tiendita.jpg +File97=verde.png FileGroup1=Default Group FileGroup10=Default Group FileGroup11=Default Group @@ -191,6 +192,7 @@ FileGroup93=Default Group FileGroup94=Default Group FileGroup95=Default Group FileGroup96=Default Group +FileGroup97=Default Group Group=Default Group Library1=appupdating Library10=fileprovider @@ -253,7 +255,7 @@ Module6=C_Clientes Module7=C_Cuestionario Module8=C_Historico Module9=C_Mapas -NumberOfFiles=96 +NumberOfFiles=97 NumberOfLibraries=33 NumberOfModules=27 Version=12.8 @@ -261,7 +263,7 @@ Version=12.8 #Region Project Attributes #ApplicationLabel: Guna Preventa #VersionCode: 1 - #VersionName: 5.03.22 + #VersionName: 5.03.23 'SupportedOrientations possible values: unspecified, landscape or portrait. #SupportedOrientations: portrait #CanInstallToExternalStorage: False diff --git a/B4A/Guna Vistas V3.1.b4a.meta b/B4A/Guna Vistas V3.1.b4a.meta index 48fb417..559883d 100644 --- a/B4A/Guna Vistas V3.1.b4a.meta +++ b/B4A/Guna Vistas V3.1.b4a.meta @@ -60,7 +60,7 @@ ModuleClosedNodes10= ModuleClosedNodes11= ModuleClosedNodes12= ModuleClosedNodes13= -ModuleClosedNodes14=14,17,18,28,29,30 +ModuleClosedNodes14= ModuleClosedNodes15=3,17 ModuleClosedNodes16= ModuleClosedNodes17= @@ -82,6 +82,6 @@ ModuleClosedNodes6= ModuleClosedNodes7=5,6,8,9,10,11 ModuleClosedNodes8= ModuleClosedNodes9= -NavigationStack=Subs,centraEditText,579,0,Subs,centraProgressBar,573,0,Subs,panelVisible,556,0,B4XMainPage,b_envioBD_Click,855,0,Diseñador Visual,login.bal,-100,6,Subs,fechaKMT,70,0,Subs,deleteFolder,1787,0,Subs,enviaWhatsappMsg,1788,6,B4XMainPage,l_version_longClick,1074,6,B4XMainPage,i_engrane_LongClick,1060,0 +NavigationStack=C_Principal,cargar_Click,1030,0,C_Principal,b_mapa_Click,2225,0,C_Principal,t2_tick,2235,4,C_Principal,inv_Click,2315,0,Diseñador Visual,cliente.bal,-100,1,C_Nota,ListView1_ItemLongClick,270,0,Diseñador Visual,principal.bal,-100,2,C_Principal,B_OK_PAS_Click,2438,0,C_Principal,JobDone,1316,0,B4XMainPage,B4XPage_Created,183,2 SelectedBuild=0 -VisibleModules=25,2,14,26,5,10,15,11 +VisibleModules=25,2,14,26,5,10,15,11,20