From 3f2359129499918fd2f4dec0c72f0524f100d5e3 Mon Sep 17 00:00:00 2001 From: Javier Date: Tue, 4 Nov 2025 10:25:09 -0600 Subject: [PATCH] ... --- B4A/B4XMainPage.bas | 25 +- B4A/C_Cliente.bas | 578 ++++++++++++++++++++++++++-------- B4A/C_Historico.bas | 10 +- B4A/C_Principal.bas | 7 +- B4A/Files/cliente.bal | Bin 64392 -> 64392 bytes B4A/Files/principal.bal | Bin 58145 -> 58152 bytes B4A/Guna Vistas V3.1.b4a | 5 +- B4A/Guna Vistas V3.1.b4a.meta | 4 +- B4A/Tracker.bas | 29 +- B4A/appUpdater.bas | 2 +- 10 files changed, 501 insertions(+), 159 deletions(-) diff --git a/B4A/B4XMainPage.bas b/B4A/B4XMainPage.bas index 79a15c3..29f0cc6 100644 --- a/B4A/B4XMainPage.bas +++ b/B4A/B4XMainPage.bas @@ -200,6 +200,7 @@ Private Sub B4XPage_Created (Root1 As B4XView) Subs.agregaColumna("PEDIDO", "PE_RECCEDIS", "TEXT") Subs.agregaColumna("PEDIDO", "PE_RECALCULOTOT", "TEXT") Subs.agregaColumna("HIST_ENCUESTA", "HE_LON", "TEXT") + Subs.agregaColumna("HIST_VENTAS", "HVD_FECHA", "TEXT") Subs.agregaColumna("kmt_info3", "encuesta", "TEXT") Subs.agregaColumna("kmt_info3", "CAT_CL_TIPOCLIENTE", "TEXT") Subs.agregaColumna("kmt_info3", "CAT_CL_LIMITECREDITO", "TEXT") @@ -366,7 +367,7 @@ Sub B4XPage_Appear B4XSwitch2.Value = False End If Else - B4XSwitch1.Value = False + B4XSwitch2.Value = False End If Subs.guardaAppInfo @@ -992,7 +993,7 @@ Sub revisaActualizacion 'Parte de la funcionalidad "appUpdater" '## Hay que actualizar la version en el archivo "gunaPreventa.ver" ## '################################################ LogColor("Buscarmos archivo Ver", Colors.red) - Private link As String = "https://keymon.lat/movil/guna/gunaPreventa.ver" + Private link As String = "https://keymon.net/movil/guna/gunaPreventa.ver" Wait For (traeArchivoVer(Me, link)) JobDone (j As HttpJob) If j.Success Then LogColor("Archivo .VER encontrado.", Colors.red) @@ -1079,13 +1080,13 @@ Private Sub cb_importarBDWA_CheckedChange(Checked As Boolean) End Sub -Private Sub i_engrane_LongClick - Dim Intent1 As Intent - Intent1.Initialize(Intent1.ACTION_VIEW, "guna://tienda360/config?clienteId=12&almacen=45&ruta=143") - Try - StartActivity(Intent1) - Catch -' Log(LastException) - ToastMessageShow("La aplicación Tienda 360 no está instalada o no puede manejar la URL.", True) - End Try -End Sub +'Private Sub i_engrane_LongClick +'' Dim Intent1 As Intent +'' Intent1.Initialize(Intent1.ACTION_VIEW, "guna://tienda360/config?clienteId=12&almacen=45&ruta=143") +'' Try +'' StartActivity(Intent1) +'' Catch +''' Log(LastException) +'' ToastMessageShow("La aplicación Tienda 360 no está instalada o no puede manejar la URL.", True) +'' End Try +'End Sub diff --git a/B4A/C_Cliente.bas b/B4A/C_Cliente.bas index 893f674..5e7f7a1 100644 --- a/B4A/C_Cliente.bas +++ b/B4A/C_Cliente.bas @@ -402,6 +402,7 @@ Sub Class_Globals Private l_titEncuesta As Label Private ImageView11 As ImageView Dim distance As Long + Dim distancealm As Long Private p_pideGeoPass As Panel Private b_geopass As Button Private et_geopass As EditText @@ -535,6 +536,16 @@ End Sub 'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage. Sub B4XPage_Appear + Tels.Visible = False + gest.Visible = False +' Tels.Enabled = True +' gest.Enabled = True + + MejorarPrecisionGPS +' +' ' Al aparecer la página del cliente +' InicializarLocalizacionMejorada + TraeCantProd ImageView4.Bitmap = LoadBitmap(File.DirAssets,"images.png") btnPlanLealtad.Visible = False @@ -713,6 +724,7 @@ Sub B4XPage_Appear End If CallSubDelayed(Tracker, "Track") CallSubDelayed(Tracker, "StartFLPSmall") + CallSubDelayed(Tracker, "StartFLP2") If Tracker.FLP.GetLastKnownLocation.IsInitialized Then 'Si tenemos "UltimaUbicaccionConocida" la usamos. B4XPages.MainPage.lat_gps = Tracker.FLP.GetLastKnownLocation.Latitude B4XPages.MainPage.lon_gps = Tracker.FLP.GetLastKnownLocation.Longitude @@ -1206,10 +1218,36 @@ Sub B4XPage_Appear l_credito.Visible = False l_limite.Visible = False End If -' End If +' End + + Tels.Visible = False + gest.Visible = False End Sub +Sub MejorarPrecisionGPS As ResumableSub + If g.IsInitialized Then + g.Stop + Sleep(500) + End If + + g.Initialize("GPS") + g.Start(0, 0) ' Máxima frecuencia + + ' Esperar hasta 10 segundos por mejor precisión + For i = 1 To 10 + Sleep(1000) + If Tracker.FLP.GetLastKnownLocation.IsInitialized Then + Dim loc As Location = Tracker.FLP.GetLastKnownLocation + If loc.Accuracy < 25 Then ' Buena precisión + Return True + End If + End If + Next + + Return False ' No se logró buena precisión +End Sub + Sub TraeCantProd As Boolean @@ -1221,17 +1259,24 @@ Sub TraeCantProd As Boolean Dim rangosel As Cursor= B4XPages.MainPage.skmt.ExecQuery2("SELECT * FROM CAT_PROMOS_DESCUENTOS WHERE CAT_PD_PRODUCTO = ? AND CAT_PD_RANGO <= ? AND CAT_PD_RANGO2 >= ?",Array As String(c.GetString("PE_PROID"),c.GetInt("PE_CANT"),c.GetInt("PE_CANT"))) If rangosel.RowCount > 0 Then - - rangosel.Position = 0 + For hjh = 0 To rangosel.RowCount-1 + + rangosel.Position = hjh - If rangosel.GetString("CAT_PD_TIER").Contains(Subs.traeTipoCliente) Then - Log(c.GetString("PE_COSTOU")) - Log(rangosel.GetString("CAT_PD_DESCUENTO")) - Private recalculo As Float = c.GetString("PE_COSTOU") - NumberFormat2(((c.GetString("PE_COSTOU") * rangosel.GetString("CAT_PD_DESCUENTO"))/100),0,2,2,False) - LogColor(recalculo,Colors.Blue) - Private recalculototal As Float =c.GetString("PE_CANT") * recalculo - skmt.ExecNonQuery2("UPDATE PEDIDO set PE_RECALCULO = ?, PE_RECALCULOTOT = ?, PE_RECCEDIS = ? WHERE PE_PROID = ? AND PE_CLIENTE IN (SELECT CUENTA FROM CUENTAA) ",Array As String(NumberFormat2(recalculo,0,2,2,False) ,NumberFormat2(recalculototal,0,2,2,False), rangosel.GetString("CAT_PD_COD_PROMO"),c.GetString("PE_PROID"))) - End If + If rangosel.GetString("CAT_PD_TIER").Contains(Subs.traeTipoCliente) Then + Log(c.GetString("PE_COSTOU")) + Log(rangosel.GetString("CAT_PD_DESCUENTO")) + Private recalculo As Float = c.GetString("PE_COSTOU") - NumberFormat2(((c.GetString("PE_COSTOU") * rangosel.GetString("CAT_PD_DESCUENTO"))/100),0,2,2,False) + LogColor(recalculo,Colors.Blue) + Log(c.GetString("PE_COSTOU")) + Log(NumberFormat2(((c.GetString("PE_COSTOU") * rangosel.GetString("CAT_PD_DESCUENTO"))/100),0,2,2,False)) + Log(rangosel.GetString("CAT_PD_DESCUENTO")) + Private recalculototal As Float =c.GetString("PE_CANT") * recalculo + skmt.ExecNonQuery2("UPDATE PEDIDO set PE_RECALCULO = ?, PE_RECALCULOTOT = ?, PE_RECCEDIS = ? WHERE PE_PROID = ? AND PE_CLIENTE IN (SELECT CUENTA FROM CUENTAA) ",Array As String(NumberFormat2(recalculo,0,2,2,False) ,NumberFormat2(recalculototal,0,2,2,False), rangosel.GetString("CAT_PD_COD_PROMO"),c.GetString("PE_PROID"))) + End If + + Next + Else skmt.ExecNonQuery2("UPDATE PEDIDO set PE_RECALCULO = NULL, PE_RECALCULOTOT = NULL, PE_RECCEDIS = NULL WHERE PE_PROID = ? AND PE_CLIENTE IN (SELECT CUENTA FROM CUENTAA) ",Array As String(c.GetString("PE_PROID"))) End If @@ -1241,7 +1286,70 @@ Sub TraeCantProd As Boolean End Sub +Private Sub LA_GPS_Click + ' Cuando el usuario toca el label de GPS + MejorarPrecisionGPS + ToastMessageShow("Mejorando precisión GPS...", False) +End Sub + + +' En lugar de 100m y 50m, usar valores más amplios temporalmente +Private Sub RevisarGeocerca +' Dim distanciaAlmacen As Int = distancealm ' Tu cálculo actual +' Dim distanciaCliente As Int = distance ' Tu cálculo al cliente + Log(distancealm) + Log(distance) + ' Usar umbrales más amplios (ej: 150m y 80m) + + + If distancealm > 0 Or distance > 50 Then + + If distancealm < 100 Or distance < 50 Then + HabilitarBotones(True) + Else + HabilitarBotones(True) + End If + End If + +End Sub + +Sub HabilitarBotones(dentroDeRango As Boolean) + If dentroDeRango Then + If Tels.IsInitialized Then + + Tels.Visible = True + gest.Visible = True + Tels.Enabled = True + gest.Enabled = True +' ToastMessageShow("DENTRO de rango GPS - Botones habilitados", False) + End If + Else + If Tels.IsInitialized Then + + Tels.Visible = False + gest.Visible = False +' ToastMessageShow("FUERA de rango GPS - Botones deshabilitados", False) + End If + End If +End Sub + +Sub InicializarLocalizacionMejorada + ' Usar tanto GPS como red para mejor precisión + Dim LocationManager As JavaObject + LocationManager.InitializeStatic("android.location.LocationManager") + + ' Solicitar ubicaciones de GPS y red + g.Start(0, 0) ' GPS + ' También podrías usar la ubicación por red para casos interiores +End Sub + +'Sub GPS_LocationChanged (Location1 As Location) +' +'End Sub +' Sub GPS_LocationChanged (Location1 As Location) + + LogColor($"Entrando a Cliente.GPS_LocationChanged"$, Colors.red) If Tracker.FLP.GetLastKnownLocation.IsInitialized And Tracker.FLP.GetLastKnownLocation.Latitude <> 0 Then B4XPages.MainPage.lat_gps = Tracker.FLP.GetLastKnownLocation.Latitude @@ -1249,6 +1357,68 @@ Sub GPS_LocationChanged (Location1 As Location) ' Log("Coords set to: " & B4XPages.MainPage.lat_gps & " and " & B4XPages.MainPage.lon_gps) End If Log(m_lat &" " & m_lon) + + + + + ' Si la precisión es mala, intentar mejorarla + If Location1.Accuracy > 50 Then ' Mayor a 50 metros de error + MejorarPrecisionGPS + Return ' Esperar siguiente lectura + End If + + + ' Filtrar ubicaciones con baja precisión + If Location1.Accuracy > 50 Then ' Si la precisión es mayor a 50 metros, descartar + Return + End If + + ' Usar promedio de varias lecturas + Dim ultimasUbicaciones As List + If ultimasUbicaciones.IsInitialized = False Then + ultimasUbicaciones.Initialize + End If + + ultimasUbicaciones.Add(Location1) + If ultimasUbicaciones.Size > 5 Then + ultimasUbicaciones.RemoveAt(0) + End If + + ' Calcular promedio + Dim latPromedio, lonPromedio As Double + For Each loc As Location In ultimasUbicaciones + latPromedio = latPromedio + loc.Latitude + lonPromedio = lonPromedio + loc.Longitude + Next + latPromedio = latPromedio / ultimasUbicaciones.Size + lonPromedio = lonPromedio / ultimasUbicaciones.Size + + ' Usar ubicación promediada + B4XPages.MainPage.lat_gps = latPromedio + B4XPages.MainPage.lon_gps = lonPromedio + + If Tels.IsInitialized Then + c = skmt.ExecQuery2("SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("LATITUD")) + If c.RowCount > 0 Then + c.Position = 0 + Dim al_latitud As String = c.GetString("CAT_VA_VALOR") + End If + c.Close + c = skmt.ExecQuery2("SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("LONGITUD")) + If c.RowCount > 0 Then + c.Position = 0 + Dim al_longitud As String = c.GetString("CAT_VA_VALOR") + End If + c.Close + Dim ubi1, ubi2 As Location + ubi1.Initialize2(B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps) + ubi2.Initialize2(al_latitud, al_longitud) + + distancealm = ubi1.DistanceTo(ubi2) + End If + + + If m_lat.Length > 0 And B4XPages.MainPage.lat_gps <> "0" Then Dim l1, l2 As Location l1.Initialize2(B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps) @@ -1289,7 +1459,7 @@ Sub GPS_LocationChanged (Location1 As Location) End If End If If geo = "1" Then - If distance < 10000000000000000000000000000000000000000000000000000000000 Then + If distance < 100 Then LA_GEO.TextColor = Colors.Blue Tels.Visible = True gest.Visible = True @@ -1297,25 +1467,11 @@ Sub GPS_LocationChanged (Location1 As Location) precision = "1" ' b_geo = "0" bitacora.banderaGeoCerca = "0" - ToastMessageShow("DENTRO de rango GPS", False) +' ToastMessageShow("DENTRO de rango GPS", False) Else If habi = "1" Then - c = skmt.ExecQuery2("SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("LATITUD")) - If c.RowCount > 0 Then - c.Position = 0 - Dim al_latitud As String = c.GetString("CAT_VA_VALOR") - End If - c.Close - c = skmt.ExecQuery2("SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("LONGITUD")) - If c.RowCount > 0 Then - c.Position = 0 - Dim al_longitud As String = c.GetString("CAT_VA_VALOR") - End If - c.Close - Dim ubi1, ubi2 As Location - ubi1.Initialize2(B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps) - ubi2.Initialize2(al_latitud, al_longitud) - Dim distancealm As Long - distancealm = ubi1.DistanceTo(ubi2) + + + If distancealm < 50 Then precision = "0" LA_GEO.TextColor = Colors.Blue @@ -1324,7 +1480,7 @@ Sub GPS_LocationChanged (Location1 As Location) ' b_geo = "1" bitacora.banderaGeoCerca = "1" iniciofin - ToastMessageShow("DENTRO de rango GPS", False) +' ToastMessageShow("DENTRO de rango GPS", False) Else If distancealm > 50 Then Tels.Visible = False gest.Visible = False @@ -1434,7 +1590,39 @@ Sub GPS_LocationChanged (Location1 As Location) End If End If End If + + ' Mostrar la precisión actual + If LA_GPS.IsInitialized Then + LA_GPS.Text = $"UBICACIÓN - Precisión: ${NumberFormat2(Location1.Accuracy, 0, 1, 1, False)}m"$ + + End If + + + ' Solo usar ubicaciones con buena precisión + If Location1.Accuracy < 30 Then ' Menos de 30 metros de error + ' Tu lógica actual aquí + B4XPages.MainPage.lat_gps = Location1.Latitude + B4XPages.MainPage.lon_gps = Location1.Longitude + RevisarGeocerca + Else + If LA_GPS.IsInitialized Then +' LA_GPS.Text = $"UBICACIÓN - Precisión: ${NumberFormat2(Location1.Accuracy, 0, 1, 1, False)}m"$ + LA_GPS.Text = $"BAJA PRECISIÓN (${NumberFormat2(Location1.Accuracy, 0, 1, 1, False)}m)"$ + + LA_GPS.TextColor = Colors.Red + End If + End If + If cuenta.StartsWith("N") Then + precision = "0" + LA_GEO.TextColor = Colors.Blue + Tels.Visible = True + gest.Visible = True +' b_geo = "1" + bitacora.banderaGeoCerca = "1" + iniciofin +' ToastMessageShow("DENTRO de rango GPS", False) + End If ' 19.4846431, -99.1458691 -> Keymon If LA_GEO.IsInitialized Then LA_GEO.Text= $"$1.2{distance/1000} kms"$ @@ -1643,6 +1831,10 @@ End Sub Sub gest_Click + ' Mejorar precisión antes de procesar la venta + MejorarPrecisionGPS + Sleep(1000) ' Esperar un poco para que el GPS se estabilice + Dim pagarepen As Cursor = B4XPages.MainPage.skmt.ExecQuery("select FECHA, SALDO_PENDIENTE FROM ABONOSP WHERE CLIENTE IN (SELECT CUENTA FROM CUENTAA)") If pagarepen.RowCount > 0 Then pagarepen.Position = 0 @@ -1698,15 +1890,15 @@ Sub gestionar compra Catch Starter.encuesta = 0 - Dim cmd As DBCommand - skmt.ExecNonQuery2("UPDATE kmt_info3 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) +' Dim cmd As DBCommand +' skmt.ExecNonQuery2("UPDATE kmt_info3 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) compra End Try - cmd.Initialize - cmd.Name = "SELECT_TMP_DROP_ENCUESTA_GUNA" - cmd.Parameters = Array As Object(usuario, B4XPages.MainPage.principal.e_ruta.text, ALMACEN, "ENCUESTA") - B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "CHECAENCUESTA") +' cmd.Initialize +' cmd.Name = "SELECT_TMP_DROP_ENCUESTA_GUNA" +' cmd.Parameters = Array As Object(usuario, B4XPages.MainPage.principal.e_ruta.text, ALMACEN, "ENCUESTA") +' B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "CHECAENCUESTA") Else compra End If @@ -1729,15 +1921,15 @@ Sub gestionar compra Catch Starter.encuesta = 0 - Dim cmd As DBCommand - skmt.ExecNonQuery2("UPDATE kmt_info3 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) +' Dim cmd As DBCommand +' skmt.ExecNonQuery2("UPDATE kmt_info3 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) compra End Try - cmd.Initialize - cmd.Name = "SELECT_TMP_DROP_ENCUESTA_GUNA" - cmd.Parameters = Array As Object(usuario, B4XPages.MainPage.principal.e_ruta.text, ALMACEN, "ENCUESTA") - B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "CHECAENCUESTA") +' cmd.Initialize +' cmd.Name = "SELECT_TMP_DROP_ENCUESTA_GUNA" +' cmd.Parameters = Array As Object(usuario, B4XPages.MainPage.principal.e_ruta.text, ALMACEN, "ENCUESTA") +' B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "CHECAENCUESTA") Else compra End If @@ -2682,7 +2874,7 @@ Sub B_IMP_Click Else Impresion End If - Else If ALMACEN = 88 OR ALMACEN = 92 Then + Else If ALMACEN = 88 Or ALMACEN = 92 Then Impresion3 Else @@ -2697,7 +2889,8 @@ Sub Impresion3 c=skmt.ExecQuery("select USUARIO from usuarioa") c.Position=0 usuario = c.GetString("USUARIO") - DateTime.DateFormat = "MM/dd/yyyy" +' DateTime.DateFormat = "MM/dd/yyyy" + DateTime.DateFormat = "dd/MM/yyyy" sDate=DateTime.Date(DateTime.Now) sTime=DateTime.Time(DateTime.Now) c.Close @@ -2850,20 +3043,25 @@ Sub Impresion3 ' Printer1.WriteString("Descuento: $" & (s.GetString("TOTAL2") - s.GetString("TOTAL"))) ' End If Printer1.WriteString("Subtotal Preventa: $" & s.GetString("TOTAL") & CRLF) - s.Close + c= skmt.ExecQuery("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 )") C.Position=0 Printer1.WriteString("Total Articulos: " & c.GetString("PC_NOART") & CRLF) c.Close - s=skmt.ExecQuery("select IFNULL(SUM(PE_COSTO_TOT),0) AS TOTAL FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) and IFNULL(PE_RECALCULO,0) = 0") - s.Position =0 + Dim s3 As Cursor =skmt.ExecQuery("select IFNULL(SUM(PE_COSTO_TOT),0) AS TOTAL FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) and IFNULL(PE_RECALCULO,0) = 0") + s3.Position =0 S2=skmt.ExecQuery("select IFNULL(SUM(PE_RECALCULOTOT),0) AS TOTAL FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) and IFNULL(PE_RECALCULO,0) <> 0") S2.Position =0 + + If NumberFormat2((s3.GetString("TOTAL") + S2.GetString("TOTAL")),0,2,2,False) <> s.GetString("TOTAL") Then + + Printer1.WriteString("Descuento: $" & NumberFormat2( s.GetString("TOTAL")-(s3.GetString("TOTAL") + S2.GetString("TOTAL")),0,2,2,False)& CRLF) + End If ' If s.GetString("TOTAL") - s.GetString("TOTAL2") <> 0 Then ' Printer1.WriteString("Descuento: $" & (s.GetString("TOTAL2") - s.GetString("TOTAL"))) ' End If ' Printer1.WriteString("Descuento: $" & 150 & CRLF) - Printer1.WriteString("Total Preventa: $" & NumberFormat2((s.GetString("TOTAL") + S2.GetString("TOTAL")),0,2,2,False)& CRLF) + Printer1.WriteString("Total Preventa: $" & NumberFormat2((s3.GetString("TOTAL") + S2.GetString("TOTAL")),0,2,2,False)& CRLF) Printer1.WriteString(" " & CRLF) Printer1.WriteString("------------------------------" & CRLF) @@ -2887,7 +3085,8 @@ Sub Impresion2 c=skmt.ExecQuery("select USUARIO from usuarioa") c.Position=0 usuario = c.GetString("USUARIO") - DateTime.DateFormat = "MM/dd/yyyy" + DateTime.DateFormat = "dd/MM/yyyy" +' DateTime.DateFormat = "MM/dd/yyyy" sDate=DateTime.Date(DateTime.Now) sTime=DateTime.Time(DateTime.Now) c.Close @@ -3057,7 +3256,8 @@ Sub Impresion c=skmt.ExecQuery("select USUARIO from usuarioa") c.Position=0 usuario = c.GetString("USUARIO") - DateTime.DateFormat = "MM/dd/yyyy" +' DateTime.DateFormat = "MM/dd/yyyy" + DateTime.DateFormat = "dd/MM/yyyy" sDate=DateTime.Date(DateTime.Now) sTime=DateTime.Time(DateTime.Now) c.Close @@ -5542,7 +5742,8 @@ End Sub Private Sub PDFGENERAR ESPACIO = 0 - DateTime.DateFormat = "MM/dd/yyyy" +' DateTime.DateFormat = "MM/dd/yyyy" + DateTime.DateFormat = "dd/MM/yyyy" DateTime.TimeFormat = "HH:mm:ss" sDate=DateTime.Date(DateTime.Now) sTime=DateTime.Time(DateTime.Now) @@ -5555,10 +5756,12 @@ Private Sub PDFGENERAR 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)) + 12 +' s=skmt.ExecQuery2("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU,IFNULL(PE_RECALCULO,0) AS PE_RECALCULO, length(PE_COSTOU) as L_COSTOU, length(Ifnull(PE_RECALCULO,0)) as L_COSTOREC,PE_CANT * PE_COSTOU AS PE_COSTO_TOT,PE_CANT * IFNULL(PE_RECALCULO,0) AS PE_COSTO_TOTREC, length(PE_CANT * PE_COSTOU) as L_COSTO_TOT,length(PE_CANT * IFNULL(PE_RECALCULO,0)) as L_COSTO_TOTREC,PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_CEDIS = ? AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_PROID", Array As String(Subs.traeAlmacen)) + Dim s56 As Cursor=skmt.ExecQuery2("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU,IFNULL(PE_RECALCULO,0) AS PE_RECALCULO, length(PE_COSTOU) as L_COSTOU, length(Ifnull(PE_RECALCULO,0)) as L_COSTOREC,PE_CANT * PE_COSTOU AS PE_COSTO_TOT,PE_CANT * IFNULL(PE_RECALCULO,0) AS PE_COSTO_TOTREC, length(PE_CANT * PE_COSTOU) as L_COSTO_TOT,length(PE_CANT * IFNULL(PE_RECALCULO,0)) as L_COSTO_TOTREC,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,IFNULL(PE_RECALCULO,0) AS PE_RECALCULO, length(PE_COSTOU) as L_COSTOU, length(Ifnull(PE_RECALCULO,0)) as L_COSTOREC,PE_CANT * PE_COSTOU AS PE_COSTO_TOT,PE_CANT * IFNULL(PE_RECALCULO,0) AS PE_COSTO_TOTREC, length(PE_CANT * PE_COSTOU) as L_COSTO_TOT,length(PE_CANT * IFNULL(PE_RECALCULO,0)) as L_COSTO_TOTREC,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)) + 25 ' Dim pagina As Double = ((18 + s56.RowCount + s57.RowCount +2) * (6)) + 18 Dim multiplicador As Int = 0 PDF.pageAdd(-300,pagina) @@ -5587,79 +5790,156 @@ Private Sub PDFGENERAR PDF.outtext(1,pagina-multiplicador*6," ") c = skmt.ExecQuery2("SELECT * FROM PEDIDO WHERE PE_FOLIO = ?",Array As String("PREVENTA")) If c.RowCount > 0 Then - 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 - 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,"-----------------------------------------------------------------------------------------") - 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")) + + + If ALMACEN = 88 Then + + s=skmt.ExecQuery2("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU,IFNULL(PE_RECALCULO,0) AS PE_RECALCULO, length(PE_COSTOU) as L_COSTOU, length(Ifnull(PE_RECALCULO,0)) as L_COSTOREC,PE_CANT * PE_COSTOU AS PE_COSTO_TOT,PE_CANT * IFNULL(PE_RECALCULO,0) AS PE_COSTO_TOTREC, length(PE_CANT * PE_COSTOU) as L_COSTO_TOT,length(PE_CANT * IFNULL(PE_RECALCULO,0)) as L_COSTO_TOTREC,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 + 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,"-----------------------------------------------------------------------------------------") + For i=0 To S.RowCount -1 + S.Position=i + + If s.GetDouble("PE_RECALCULO") = 0 Then + 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")) + 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 - PDF.outtext(1,108-9*6," " ) - End If - s.Close - 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 + Else + 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_COSTOREC") + s.GetLong("L_COSTO_TOTREC") + 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_RECALCULO") & BLANCO & s.GETSTRING("PE_COSTO_TOTREC")) +' pdf.outtext(1,108-9*6,s.GETSTRING("PE_COSTOU")) + +' pdf.outtext(1,108-9*6,s.GETSTRING("PE_COSTO_TOT") ) + End If + End If + + Next + PDF.outtext(1,108-9*6," " ) + End If + s.Close + Else + + 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 + 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,"-----------------------------------------------------------------------------------------") + 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 + PDF.outtext(1,108-9*6," " ) + End If + s.Close + 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 End If + s.Close ' multiplicador = multiplicador +1 ' pdf.outtext(1,pagina-multiplicador*6," " ) @@ -5667,16 +5947,41 @@ Private Sub PDFGENERAR 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=skmt.ExecQuery("select SUM(PE_COSTO_TOT) AS TOTAL FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)") s.Position =0 multiplicador = multiplicador +1 - PDF.outtext(1,pagina-multiplicador*6,"Total preventa: $" & s.GetString("TOTAL") ) - s.Close + PDF.outtext(1,pagina-multiplicador*6,"Subtotal 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 +' c.Close + + Dim s3 As Cursor =skmt.ExecQuery("select IFNULL(SUM(PE_COSTO_TOT),0) AS TOTAL FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) and IFNULL(PE_RECALCULO,0) = 0") + s3.Position =0 + S2=skmt.ExecQuery("select IFNULL(SUM(PE_RECALCULOTOT),0) AS TOTAL FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) and IFNULL(PE_RECALCULO,0) <> 0") + S2.Position =0 + + If NumberFormat2((s3.GetString("TOTAL") + S2.GetString("TOTAL")),0,2,2,False) <> s.GetString("TOTAL") Then + multiplicador = multiplicador +1 + PDF.outtext(1,pagina-multiplicador*6,"Descuento: $" & NumberFormat2( s.GetString("TOTAL")-(s3.GetString("TOTAL") + S2.GetString("TOTAL")),0,2,2,False) ) +' Printer1.WriteString("Descuento: $" & NumberFormat2( s.GetString("TOTAL")-(s3.GetString("TOTAL") + S2.GetString("TOTAL")),0,2,2,False)& CRLF) + End If + multiplicador = multiplicador +1 + PDF.outtext(1,pagina-multiplicador*6,"Total Preventa: $" & NumberFormat2((s3.GetString("TOTAL") + S2.GetString("TOTAL")),0,2,2,False) ) +' Printer1.WriteString("Total Preventa: $" & NumberFormat2((s3.GetString("TOTAL") + S2.GetString("TOTAL")),0,2,2,False)& CRLF) + + + End If ' multiplicador = multiplicador +1 ' pdf.outtext(1,pagina-multiplicador*6," " ) @@ -5694,10 +5999,14 @@ Private Sub PDFGENERAR 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," " ) + 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 @@ -5981,7 +6290,7 @@ Sub EnviarPDFWhatsAppNumero(NumeroTelefono As String) fd.Dir = Starter.fFileProvider.SharedFolder fd.FileName = archivoTicketPDF fd.ContentType = "application/pdf" - Private link As String = "http://keymon.lat:9000/v1/ticketpdf" + Private link As String = "http://keymon.net: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") @@ -6084,6 +6393,9 @@ Private Sub b_envioPDF_Click Else PDFGENERAR End If + + + Sleep(3000) EnviarPDFWhatsAppNumero(et_numeroPDF.Text) B4XPages.MainPage.skmt.ExecNonQuery("delete from TICKET_IMPRESO where idCliente In (select cuenta from cuentaa)") @@ -6158,7 +6470,7 @@ Sub mandaWAMsgCredito(numTel As String, monto As String) Private ALMACEN As String = Subs.traeAlmacen '"1" ' CON POST - Private link As String = "http://keymon.lat:9000/v1/messages" + Private link As String = "http://keymon.net: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)", diff --git a/B4A/C_Historico.bas b/B4A/C_Historico.bas index 96b581e..42fdef6 100644 --- a/B4A/C_Historico.bas +++ b/B4A/C_Historico.bas @@ -70,7 +70,7 @@ Sub B4XPage_Appear C.Position=0 Existe = C.GetString("EXISTE") C.Close - c=B4XPages.MainPage.skmt.ExecQuery("select HVD_CLIENTE,HVD_PRONOMBRE,HVD_CANT,HVD_COSTO_TOT from HIST_VENTAS WHERE HVD_CLIENTE IN (Select CUENTA from cuentaa) order by HVD_PRONOMBRE asc") + c=B4XPages.MainPage.skmt.ExecQuery("select HVD_CLIENTE,HVD_PRONOMBRE,HVD_CANT,HVD_COSTO_TOT, HVD_FECHA from HIST_VENTAS WHERE HVD_CLIENTE IN (Select CUENTA from cuentaa) order by HVD_FECHA asc") ListView1.Clear If c.RowCount>0 Then For i=0 To c.RowCount -1 @@ -78,12 +78,12 @@ Sub B4XPage_Appear Dim label1 As Label label1 = ListView1.TwoLinesLayout.Label label1.TextSize = 15 - label1.TextColor = Colors.Black + label1.TextColor = Colors.White Dim label2 As Label label2 = ListView1.TwoLinesLayout.SecondLabel - label2.TextSize = 10 - label2.TextColor = Colors.Blue - ListView1.AddTwoLines(c.GetString("HVD_PRONOMBRE"),"Cantidad #"& c.GetString("HVD_CANT")& " SubTotal $"& c.GetString("HVD_COSTO_TOT")) + label2.TextSize = 15 + label2.TextColor = Colors.White + ListView1.AddTwoLines(c.GetString("HVD_PRONOMBRE"),"Cantidad #"& c.GetString("HVD_CANT")& " SubTotal $"& c.GetString("HVD_COSTO_TOT")&" Fecha: "& c.GetString("HVD_FECHA")) Next End If If Existe <> 0 Then diff --git a/B4A/C_Principal.bas b/B4A/C_Principal.bas index 31e449c..a7f28c9 100644 --- a/B4A/C_Principal.bas +++ b/B4A/C_Principal.bas @@ -881,7 +881,7 @@ Sub Subir_Click Private x As Cursor = B4XPages.MainPage.skmt.ExecQuery("Select CLIENTE, ALMACEN, P1, P2, P3, P4, P5, P6, P7, P8, P9 from ENCUESTA_MODULO1") If x.RowCount>0 Then - For i=0 To x.RowCount -1 + For i=0 To x.RowCount -1 x.Position=i Dim cmd As DBCommand cmd.Initialize @@ -2015,8 +2015,9 @@ Sub JobDone(Job As HttpJob) Dim HVD_PRONOMBRE As String = records(RESULT.Columns.Get("HVD_PRONOMBRE")) Dim HVD_CANT As String = records(RESULT.Columns.Get("HVD_CANT")) Dim HVD_COSTO_TOT As String = records(RESULT.Columns.Get("HVD_COSTO_TOT")) + Dim HVD_FECHA As String = records(RESULT.Columns.Get("HVD_FECHA")) ' Log(cont &" " &HVD_CLIENTE&"--"&HVD_PRONOMBRE&"--"&HVD_CANT&"--"&HVD_COSTO_TOT) - B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO HIST_VENTAS(HVD_CLIENTE,HVD_PRONOMBRE,HVD_CANT,HVD_COSTO_TOT) VALUES (?,?,?,?)", Array As Object (HVD_CLIENTE,HVD_PRONOMBRE,HVD_CANT,HVD_COSTO_TOT)) + B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO HIST_VENTAS(HVD_CLIENTE,HVD_PRONOMBRE,HVD_CANT,HVD_COSTO_TOT, HVD_FECHA) VALUES (?,?,?,?,?)", Array As Object (HVD_CLIENTE,HVD_PRONOMBRE,HVD_CANT,HVD_COSTO_TOT,HVD_FECHA)) Next Listo3 =1 If PB1.Progress = 0 Then @@ -2325,7 +2326,7 @@ Sub connecta_Click l_forzarActualizacion.Text = "Hay una nueva actualización para la aplicación, por favor revise que tenga DATOS y espere mientras se descarga." p_transparenteActualizacion.Visible = True p_transparenteActualizacion.BringToFront - Starter.nuevoLink = $"https://keymon.lat/movil/guna/GP_${revisaActualizacion.Get("nuevaVersion")}.apk"$ + Starter.nuevoLink = $"https://keymon.net/movil/guna/GP_${revisaActualizacion.Get("nuevaVersion")}.apk"$ Log("Descargar: GP_" & Starter.newApp.appLink) CallSubDelayed(appUpdater, "download_newApk") else if revisaActualizacion.Get("forzar") = 2 Then ' No hay datos, regresamos al login y borramos usuario par que traiga los datos. diff --git a/B4A/Files/cliente.bal b/B4A/Files/cliente.bal index bde55b3857b1c01a28d755e9dd00d0e2f9d804ca..9bfbac906d98e14cdc0bf8866449757d9f11743e 100644 GIT binary patch delta 71 zcmeD9&fM{xc|nBmS_TFNX&`3Y3M6De4ED(h&Ki>)G;1gCh!C0VuVFixGqRg81}tj- UifgjMZR^Pmm3KGak6O6^0M_*v?*IS* delta 82 zcmeD9&fM{xc|nBmECvP!X&`3Y3M6De45`Tp&Ki>)G;1gCh!B~4;2rzq2j7GyZ*UTt gq$@O;GqRiU5LkizE3U~3x2-2PRNmcuKWgOy04^>bIRF3v diff --git a/B4A/Files/principal.bal b/B4A/Files/principal.bal index 4b9c5127412577aa0e605b4b7d55fc6152eb3ef0..e0316172c3012324ccc1b65e00ac1b08ed473233 100644 GIT binary patch delta 24 gcmZ2@jCsW|<_$55jMkH56*VRcD6nsCRh)AW0CW5Z{r~^~ delta 20 ccmZ2+jCtWP<_$55j3$#~6*V^ZD9$+u09QH)Gynhq diff --git a/B4A/Guna Vistas V3.1.b4a b/B4A/Guna Vistas V3.1.b4a index 9079f83..01a339e 100644 --- a/B4A/Guna Vistas V3.1.b4a +++ b/B4A/Guna Vistas V3.1.b4a @@ -242,6 +242,7 @@ Library31=togglelibrary Library32=xcustomlistview Library33=xui Library34=xui views +Library35=locationmanager Library4=batteryprogressview Library5=bitmapcreator Library6=byteconverter @@ -277,14 +278,14 @@ Module7=C_Cuestionario Module8=C_Historico Module9=C_Mapas NumberOfFiles=107 -NumberOfLibraries=34 +NumberOfLibraries=35 NumberOfModules=27 Version=12.8 @EndOfDesignText@ #Region Project Attributes #ApplicationLabel: Guna Preventa #VersionCode: 1 - #VersionName: 5.09.15 + #VersionName: 5.10.16 '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 ad48e52..37e8a72 100644 --- a/B4A/Guna Vistas V3.1.b4a.meta +++ b/B4A/Guna Vistas V3.1.b4a.meta @@ -82,6 +82,6 @@ ModuleClosedNodes6= ModuleClosedNodes7=6,8,9,10,11 ModuleClosedNodes8= ModuleClosedNodes9= -NavigationStack=C_Cliente,B4XPage_CloseRequest,2446,0,C_Cliente,JobDone,1597,0,C_Cliente,Class_Globals,407,0,C_Cliente,Camera1_PictureTaken,6331,0,C_Cliente,B4XPage_Appear,1091,5,Tracker,CreateNotification,502,1,C_Cliente,GPS_LocationChanged,1248,6,Tracker,flp_LocationChanged,472,0,Tracker,Service_Destroy,513,0,Tracker,revisaUUG,579,0 +NavigationStack=C_Cliente,HabilitarBotones,1319,0,C_Cliente,MejorarPrecisionGPS,1234,0,C_Cliente,B4XPage_Appear,1217,0,C_Cliente,GPS_LocationChanged,1617,0,C_Cliente,RevisarGeocerca,1303,4,C_Cliente,TraeCantProd,1276,0,C_Cliente,B_IMP_Click,2866,1,C_Cliente,Impresion,3252,0,C_Cliente,Impresion2,3076,0,C_Cliente,Impresion3,2881,0,C_Cliente,PDFGENERAR,5738,0 SelectedBuild=0 -VisibleModules=25,2,14,26,5,10,11,20,19,16,27 +VisibleModules=25,2,14,26,5,10,11,20,19,16 diff --git a/B4A/Tracker.bas b/B4A/Tracker.bas index 53e85df..e7e4734 100644 --- a/B4A/Tracker.bas +++ b/B4A/Tracker.bas @@ -462,6 +462,33 @@ Public Sub StopFLP End If End Sub +Public Sub StartFLP2 + Private logger As Boolean = True + If logger Then Log("StartFLP2 - flpStarted="&flpStarted) + Do While FLP.IsConnected = False + Sleep(500) + If logger Then Log("kll - sleeping") + Loop + dameUltimaUbicacionConocida 'Regresamos ultima ubicacion conocida + FLP.RequestLocationUpdates(CreateLocationRequest2) 'Buscamos ubicacion 2 peticiones + If logger Then LogColor("Buscamos ubicacion (movimientoMinimo = "&actualLR.GetSmallestDisplacement&")", Colors.Magenta) +' If logger Then Log(actualLR.GetSmallestDisplacement) +End Sub + +Private Sub CreateLocationRequest2 As LocationRequest + Private logger As Boolean = True + If logger Then Log("Iniciamos CreateLocationRequest2") + Dim lr As LocationRequest + lr.Initialize + lr.SetInterval(1000) 'Intervalo deseado para actualizaciones de ubicacion + lr.SetFastestInterval(lr.GetInterval / 2) 'Intervalo minimo para actualizaciones de ubicacion + lr.setNumUpdates(2) 'Solicitamos solo 2 actualizaciones con estos parametros + lr.SetSmallestDisplacement(1) 'Solo registra cambio de ubicacion si es mayor a XX mts + lr.SetPriority(lr.Priority.PRIORITY_HIGH_ACCURACY) + actualLR=lr + Return lr +End Sub + Sub flp_LocationChanged (Location1 As Location) ' ToastMessageShow("Loc changed", False) ' Log($"Loc changed:${Location1.Longitude},${Location1.Latitude}"$) @@ -497,7 +524,7 @@ Sub flp_LocationChanged (Location1 As Location) End If CallSub2(Starter, "GPS_LocationChanged", Location1) -' CallSub2(B4XPages.MainPage.cliente, "GPS_LocationChanged", Location1) + CallSub2(B4XPages.MainPage.cliente, "GPS_LocationChanged", Location1) ' CallSub2(gestion, "GPS_LocationChanged", Location1) If B4XPages.MainPage.cliente.IsInitialized Then CallSub2(B4XPages.GetPage("Cliente"), "GPS_LocationChanged", Location1) diff --git a/B4A/appUpdater.bas b/B4A/appUpdater.bas index 7c2a0d4..0f69699 100644 --- a/B4A/appUpdater.bas +++ b/B4A/appUpdater.bas @@ -78,7 +78,7 @@ Sub Process_Globals 'These variables can be accessed from all modules. 'Aqui va la liga al archivo .ver en el servidor que contiene la información de la aplicacion - Public lnk As String = "https://keymon.lat/movil/guna/gunaPreventa.ver" + Public lnk As String = "https://keymon.net/movil/guna/gunaPreventa.ver" ' Public lnk As String = "https://10.0.0.205/Movil/Guna/cedex.ver" '########################################## '## La ruta en el servidor es: ##