This commit is contained in:
Javier
2025-11-04 10:25:09 -06:00
parent 5fc486d742
commit 3f23591294
10 changed files with 501 additions and 159 deletions

View File

@@ -200,6 +200,7 @@ Private Sub B4XPage_Created (Root1 As B4XView)
Subs.agregaColumna("PEDIDO", "PE_RECCEDIS", "TEXT") Subs.agregaColumna("PEDIDO", "PE_RECCEDIS", "TEXT")
Subs.agregaColumna("PEDIDO", "PE_RECALCULOTOT", "TEXT") Subs.agregaColumna("PEDIDO", "PE_RECALCULOTOT", "TEXT")
Subs.agregaColumna("HIST_ENCUESTA", "HE_LON", "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", "encuesta", "TEXT")
Subs.agregaColumna("kmt_info3", "CAT_CL_TIPOCLIENTE", "TEXT") Subs.agregaColumna("kmt_info3", "CAT_CL_TIPOCLIENTE", "TEXT")
Subs.agregaColumna("kmt_info3", "CAT_CL_LIMITECREDITO", "TEXT") Subs.agregaColumna("kmt_info3", "CAT_CL_LIMITECREDITO", "TEXT")
@@ -366,7 +367,7 @@ Sub B4XPage_Appear
B4XSwitch2.Value = False B4XSwitch2.Value = False
End If End If
Else Else
B4XSwitch1.Value = False B4XSwitch2.Value = False
End If End If
Subs.guardaAppInfo Subs.guardaAppInfo
@@ -992,7 +993,7 @@ Sub revisaActualizacion 'Parte de la funcionalidad "appUpdater"
'## Hay que actualizar la version en el archivo "gunaPreventa.ver" ## '## Hay que actualizar la version en el archivo "gunaPreventa.ver" ##
'################################################ '################################################
LogColor("Buscarmos archivo Ver", Colors.red) 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) Wait For (traeArchivoVer(Me, link)) JobDone (j As HttpJob)
If j.Success Then If j.Success Then
LogColor("Archivo .VER encontrado.", Colors.red) LogColor("Archivo .VER encontrado.", Colors.red)
@@ -1079,13 +1080,13 @@ Private Sub cb_importarBDWA_CheckedChange(Checked As Boolean)
End Sub End Sub
Private Sub i_engrane_LongClick 'Private Sub i_engrane_LongClick
Dim Intent1 As Intent '' Dim Intent1 As Intent
Intent1.Initialize(Intent1.ACTION_VIEW, "guna://tienda360/config?clienteId=12&almacen=45&ruta=143") '' Intent1.Initialize(Intent1.ACTION_VIEW, "guna://tienda360/config?clienteId=12&almacen=45&ruta=143")
Try '' Try
StartActivity(Intent1) '' StartActivity(Intent1)
Catch '' Catch
' Log(LastException) ''' Log(LastException)
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)
End Try '' End Try
End Sub 'End Sub

View File

@@ -402,6 +402,7 @@ Sub Class_Globals
Private l_titEncuesta As Label Private l_titEncuesta As Label
Private ImageView11 As ImageView Private ImageView11 As ImageView
Dim distance As Long Dim distance As Long
Dim distancealm As Long
Private p_pideGeoPass As Panel Private p_pideGeoPass As Panel
Private b_geopass As Button Private b_geopass As Button
Private et_geopass As EditText 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. 'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
Sub B4XPage_Appear 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 TraeCantProd
ImageView4.Bitmap = LoadBitmap(File.DirAssets,"images.png") ImageView4.Bitmap = LoadBitmap(File.DirAssets,"images.png")
btnPlanLealtad.Visible = False btnPlanLealtad.Visible = False
@@ -713,6 +724,7 @@ Sub B4XPage_Appear
End If End If
CallSubDelayed(Tracker, "Track") CallSubDelayed(Tracker, "Track")
CallSubDelayed(Tracker, "StartFLPSmall") CallSubDelayed(Tracker, "StartFLPSmall")
CallSubDelayed(Tracker, "StartFLP2")
If Tracker.FLP.GetLastKnownLocation.IsInitialized Then 'Si tenemos "UltimaUbicaccionConocida" la usamos. If Tracker.FLP.GetLastKnownLocation.IsInitialized Then 'Si tenemos "UltimaUbicaccionConocida" la usamos.
B4XPages.MainPage.lat_gps = Tracker.FLP.GetLastKnownLocation.Latitude B4XPages.MainPage.lat_gps = Tracker.FLP.GetLastKnownLocation.Latitude
B4XPages.MainPage.lon_gps = Tracker.FLP.GetLastKnownLocation.Longitude B4XPages.MainPage.lon_gps = Tracker.FLP.GetLastKnownLocation.Longitude
@@ -1206,8 +1218,34 @@ Sub B4XPage_Appear
l_credito.Visible = False l_credito.Visible = False
l_limite.Visible = False l_limite.Visible = False
End If 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 End Sub
@@ -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"))) 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 If rangosel.RowCount > 0 Then
For hjh = 0 To rangosel.RowCount-1
rangosel.Position = 0 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)
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
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
Else 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"))) 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 End If
@@ -1241,7 +1286,70 @@ Sub TraeCantProd As Boolean
End Sub 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) Sub GPS_LocationChanged (Location1 As Location)
LogColor($"Entrando a Cliente.GPS_LocationChanged"$, Colors.red) LogColor($"Entrando a Cliente.GPS_LocationChanged"$, Colors.red)
If Tracker.FLP.GetLastKnownLocation.IsInitialized And Tracker.FLP.GetLastKnownLocation.Latitude <> 0 Then If Tracker.FLP.GetLastKnownLocation.IsInitialized And Tracker.FLP.GetLastKnownLocation.Latitude <> 0 Then
B4XPages.MainPage.lat_gps = Tracker.FLP.GetLastKnownLocation.Latitude 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) ' Log("Coords set to: " & B4XPages.MainPage.lat_gps & " and " & B4XPages.MainPage.lon_gps)
End If End If
Log(m_lat &" " & m_lon) 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 If m_lat.Length > 0 And B4XPages.MainPage.lat_gps <> "0" Then
Dim l1, l2 As Location Dim l1, l2 As Location
l1.Initialize2(B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps) l1.Initialize2(B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps)
@@ -1289,7 +1459,7 @@ Sub GPS_LocationChanged (Location1 As Location)
End If End If
End If End If
If geo = "1" Then If geo = "1" Then
If distance < 10000000000000000000000000000000000000000000000000000000000 Then If distance < 100 Then
LA_GEO.TextColor = Colors.Blue LA_GEO.TextColor = Colors.Blue
Tels.Visible = True Tels.Visible = True
gest.Visible = True gest.Visible = True
@@ -1297,25 +1467,11 @@ Sub GPS_LocationChanged (Location1 As Location)
precision = "1" precision = "1"
' b_geo = "0" ' b_geo = "0"
bitacora.banderaGeoCerca = "0" bitacora.banderaGeoCerca = "0"
ToastMessageShow("DENTRO de rango GPS", False) ' ToastMessageShow("DENTRO de rango GPS", False)
Else If habi = "1" Then 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 If distancealm < 50 Then
precision = "0" precision = "0"
LA_GEO.TextColor = Colors.Blue LA_GEO.TextColor = Colors.Blue
@@ -1324,7 +1480,7 @@ Sub GPS_LocationChanged (Location1 As Location)
' b_geo = "1" ' b_geo = "1"
bitacora.banderaGeoCerca = "1" bitacora.banderaGeoCerca = "1"
iniciofin iniciofin
ToastMessageShow("DENTRO de rango GPS", False) ' ToastMessageShow("DENTRO de rango GPS", False)
Else If distancealm > 50 Then Else If distancealm > 50 Then
Tels.Visible = False Tels.Visible = False
gest.Visible = False gest.Visible = False
@@ -1435,6 +1591,38 @@ Sub GPS_LocationChanged (Location1 As Location)
End If 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 ' 19.4846431, -99.1458691 -> Keymon
If LA_GEO.IsInitialized Then LA_GEO.Text= $"$1.2{distance/1000} kms"$ If LA_GEO.IsInitialized Then LA_GEO.Text= $"$1.2{distance/1000} kms"$
@@ -1643,6 +1831,10 @@ End Sub
Sub gest_Click 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)") 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 If pagarepen.RowCount > 0 Then
pagarepen.Position = 0 pagarepen.Position = 0
@@ -1698,15 +1890,15 @@ Sub gestionar
compra compra
Catch Catch
Starter.encuesta = 0 Starter.encuesta = 0
Dim cmd As DBCommand ' Dim cmd As DBCommand
skmt.ExecNonQuery2("UPDATE kmt_info3 SET encuesta = (?) WHERE CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA)",Array As Object(2)) ' 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) ' ToastMessageShow("La aplicación Tienda 360 no está instalada o no puede manejar la URL.", True)
compra compra
End Try End Try
cmd.Initialize ' cmd.Initialize
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
@@ -1729,15 +1921,15 @@ Sub gestionar
compra compra
Catch Catch
Starter.encuesta = 0 Starter.encuesta = 0
Dim cmd As DBCommand ' Dim cmd As DBCommand
skmt.ExecNonQuery2("UPDATE kmt_info3 SET encuesta = (?) WHERE CAT_CL_CODIGO IN (SELECT CUENTA FROM CUENTAA)",Array As Object(2)) ' 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) ' ToastMessageShow("La aplicación Tienda 360 no está instalada o no puede manejar la URL.", True)
compra compra
End Try End Try
cmd.Initialize ' cmd.Initialize
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
@@ -2682,7 +2874,7 @@ Sub B_IMP_Click
Else Else
Impresion Impresion
End If End If
Else If ALMACEN = 88 OR ALMACEN = 92 Then Else If ALMACEN = 88 Or ALMACEN = 92 Then
Impresion3 Impresion3
Else Else
@@ -2697,7 +2889,8 @@ Sub Impresion3
c=skmt.ExecQuery("select USUARIO from usuarioa") c=skmt.ExecQuery("select USUARIO from usuarioa")
c.Position=0 c.Position=0
usuario = c.GetString("USUARIO") usuario = c.GetString("USUARIO")
DateTime.DateFormat = "MM/dd/yyyy" ' DateTime.DateFormat = "MM/dd/yyyy"
DateTime.DateFormat = "dd/MM/yyyy"
sDate=DateTime.Date(DateTime.Now) sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now) sTime=DateTime.Time(DateTime.Now)
c.Close c.Close
@@ -2850,20 +3043,25 @@ Sub Impresion3
' Printer1.WriteString("Descuento: $" & (s.GetString("TOTAL2") - s.GetString("TOTAL"))) ' Printer1.WriteString("Descuento: $" & (s.GetString("TOTAL2") - s.GetString("TOTAL")))
' End If ' End If
Printer1.WriteString("Subtotal Preventa: $" & s.GetString("TOTAL") & CRLF) 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= 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 C.Position=0
Printer1.WriteString("Total Articulos: " & c.GetString("PC_NOART") & CRLF) Printer1.WriteString("Total Articulos: " & c.GetString("PC_NOART") & CRLF)
c.Close 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") 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")
s.Position =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=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 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 ' If s.GetString("TOTAL") - s.GetString("TOTAL2") <> 0 Then
' Printer1.WriteString("Descuento: $" & (s.GetString("TOTAL2") - s.GetString("TOTAL"))) ' Printer1.WriteString("Descuento: $" & (s.GetString("TOTAL2") - s.GetString("TOTAL")))
' End If ' End If
' Printer1.WriteString("Descuento: $" & 150 & CRLF) ' 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)
Printer1.WriteString("------------------------------" & CRLF) Printer1.WriteString("------------------------------" & CRLF)
@@ -2887,7 +3085,8 @@ Sub Impresion2
c=skmt.ExecQuery("select USUARIO from usuarioa") c=skmt.ExecQuery("select USUARIO from usuarioa")
c.Position=0 c.Position=0
usuario = c.GetString("USUARIO") usuario = c.GetString("USUARIO")
DateTime.DateFormat = "MM/dd/yyyy" DateTime.DateFormat = "dd/MM/yyyy"
' DateTime.DateFormat = "MM/dd/yyyy"
sDate=DateTime.Date(DateTime.Now) sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now) sTime=DateTime.Time(DateTime.Now)
c.Close c.Close
@@ -3057,7 +3256,8 @@ Sub Impresion
c=skmt.ExecQuery("select USUARIO from usuarioa") c=skmt.ExecQuery("select USUARIO from usuarioa")
c.Position=0 c.Position=0
usuario = c.GetString("USUARIO") usuario = c.GetString("USUARIO")
DateTime.DateFormat = "MM/dd/yyyy" ' DateTime.DateFormat = "MM/dd/yyyy"
DateTime.DateFormat = "dd/MM/yyyy"
sDate=DateTime.Date(DateTime.Now) sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now) sTime=DateTime.Time(DateTime.Now)
c.Close c.Close
@@ -5542,7 +5742,8 @@ End Sub
Private Sub PDFGENERAR Private Sub PDFGENERAR
ESPACIO = 0 ESPACIO = 0
DateTime.DateFormat = "MM/dd/yyyy" ' DateTime.DateFormat = "MM/dd/yyyy"
DateTime.DateFormat = "dd/MM/yyyy"
DateTime.TimeFormat = "HH:mm:ss" DateTime.TimeFormat = "HH:mm:ss"
sDate=DateTime.Date(DateTime.Now) sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now) sTime=DateTime.Time(DateTime.Now)
@@ -5555,10 +5756,12 @@ Private Sub PDFGENERAR
sProperty(PDF.PropertyKeywords,"B4X,PDF,Cross platform") sProperty(PDF.PropertyKeywords,"B4X,PDF,Cross platform")
'add a page '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 pagina As Double = ((18 + s56.RowCount + s57.RowCount +2) * (6)) + 18
Dim multiplicador As Int = 0 Dim multiplicador As Int = 0
PDF.pageAdd(-300,pagina) PDF.pageAdd(-300,pagina)
@@ -5587,79 +5790,156 @@ Private Sub PDFGENERAR
PDF.outtext(1,pagina-multiplicador*6," ") PDF.outtext(1,pagina-multiplicador*6," ")
c = skmt.ExecQuery2("SELECT * FROM PEDIDO WHERE PE_FOLIO = ?",Array As String("PREVENTA")) c = skmt.ExecQuery2("SELECT * FROM PEDIDO WHERE PE_FOLIO = ?",Array As String("PREVENTA"))
If c.RowCount > 0 Then 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 If ALMACEN = 88 Then
PDF.outtext(1,pagina-multiplicador*6,"------------------------------------PREVENTA-----------------------------------------")
multiplicador = multiplicador +1 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"))
PDF.outtext(1,pagina-multiplicador*6,"Cant. Precio Importe") If S.RowCount>0 Then
multiplicador = multiplicador +1 multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6,"-----------------------------------------------------------------------------------------") PDF.outtext(1,pagina-multiplicador*6,"------------------------------------PREVENTA-----------------------------------------")
For i=0 To S.RowCount -1 multiplicador = multiplicador +1
S.Position=i PDF.outtext(1,pagina-multiplicador*6,"Cant. Precio Importe")
If s.GetString("PE_CEDIS") = s.GetString("PE_PROID") Then multiplicador = multiplicador +1
multiplicador = multiplicador +1 PDF.outtext(1,pagina-multiplicador*6,"-----------------------------------------------------------------------------------------")
PDF.outtext(1,pagina-multiplicador*6,s.GetString("PE_PRONOMBRE") ) For i=0 To S.RowCount -1
Else S.Position=i
PDF.sFont(PDF.fontHelvetica,0,7,PDF.colorBlack)
multiplicador = multiplicador +1 If s.GetDouble("PE_RECALCULO") = 0 Then
PDF.outtext(1,pagina-multiplicador*6,s.GetString("PE_PRONOMBRE")) 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_CANT"),Colors.Magenta)
' LogColor(s.GetLong("L_COSTOU"),Colors.Magenta) ' LogColor(s.GetLong("L_COSTOU"),Colors.Magenta)
' LogColor(s.GetLong("L_COSTO_TOT"),Colors.Magenta) ' LogColor(s.GetLong("L_COSTO_TOT"),Colors.Magenta)
TAMANO = s.GetLong("L_CANT") + s.GetLong("L_COSTOU") + s.GetLong("L_COSTO_TOT") TAMANO = s.GetLong("L_CANT") + s.GetLong("L_COSTOU") + s.GetLong("L_COSTO_TOT")
ESPACIO = 92 ESPACIO = 92
BLANCO = " " BLANCO = " "
ESPACIO = ESPACIO - TAMANO ESPACIO = ESPACIO - TAMANO
ESPACIO = ESPACIO / 2 ESPACIO = ESPACIO / 2
For E=0 To ESPACIO -1 For E=0 To ESPACIO -1
BLANCO = " " & BLANCO BLANCO = " " & BLANCO
Next Next
PDF.sFont(PDF.fontHelvetica,0,10,PDF.colorBlack) PDF.sFont(PDF.fontHelvetica,0,10,PDF.colorBlack)
multiplicador = multiplicador +1 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,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_COSTOU"))
' pdf.outtext(1,108-9*6,s.GETSTRING("PE_COSTO_TOT") ) ' pdf.outtext(1,108-9*6,s.GETSTRING("PE_COSTO_TOT") )
End If End If
Next Else
PDF.outtext(1,108-9*6," " ) If s.GetString("PE_CEDIS") = s.GetString("PE_PROID") Then
End If multiplicador = multiplicador +1
s.Close PDF.outtext(1,pagina-multiplicador*6,s.GetString("PE_PRONOMBRE") )
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")) Else
If S.RowCount>0 Then PDF.sFont(PDF.fontHelvetica,0,7,PDF.colorBlack)
multiplicador = multiplicador +1 multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6,"--------------------------PROMOS PREVENTA-------------------------------------") PDF.outtext(1,pagina-multiplicador*6,s.GetString("PE_PRONOMBRE"))
multiplicador = multiplicador +1 ' LogColor(s.GetLong("L_CANT"),Colors.Magenta)
PDF.outtext(1,pagina-multiplicador*6,"Cant. Precio Importe") ' LogColor(s.GetLong("L_COSTOU"),Colors.Magenta)
multiplicador = multiplicador +1 ' LogColor(s.GetLong("L_COSTO_TOT"),Colors.Magenta)
PDF.outtext(1,pagina-multiplicador*6,"-----------------------------------------------------------------------------------------") TAMANO = s.GetLong("L_CANT") + s.GetLong("L_COSTOREC") + s.GetLong("L_COSTO_TOTREC")
For i=0 To S.RowCount -1 ESPACIO = 92
S.Position=i BLANCO = " "
If s.GetString("PE_CEDIS") = s.GetString("PE_PROID") Then ESPACIO = ESPACIO - TAMANO
multiplicador = multiplicador +1 ESPACIO = ESPACIO / 2
PDF.outtext(1,pagina-multiplicador*6,s.GetString("PE_PRONOMBRE") ) For E=0 To ESPACIO -1
Else BLANCO = " " & BLANCO
PDF.sFont(PDF.fontHelvetica,0,7,PDF.colorBlack) Next
multiplicador = multiplicador +1 PDF.sFont(PDF.fontHelvetica,0,10,PDF.colorBlack)
PDF.outtext(1,pagina-multiplicador*6,s.GetString("PE_PRONOMBRE")) multiplicador = multiplicador +1
LogColor(s.GetLong("L_CANT"),Colors.Magenta) PDF.outtext(1,pagina-multiplicador*6, s.GETSTRING("PE_CANT") & BLANCO & s.GETSTRING("PE_RECALCULO") & BLANCO & s.GETSTRING("PE_COSTO_TOTREC"))
LogColor(s.GetLong("L_COSTOU"),Colors.Magenta) ' pdf.outtext(1,108-9*6,s.GETSTRING("PE_COSTOU"))
LogColor(s.GetLong("L_COSTO_TOT"),Colors.Magenta)
TAMANO = s.GetLong("L_CANT") + s.GetLong("L_COSTOU") + s.GetLong("L_COSTO_TOT") ' pdf.outtext(1,108-9*6,s.GETSTRING("PE_COSTO_TOT") )
ESPACIO = 92 End If
BLANCO = " " End If
ESPACIO = ESPACIO - TAMANO
ESPACIO = ESPACIO / 2 Next
For E=0 To ESPACIO -1 PDF.outtext(1,108-9*6," " )
BLANCO = " " & BLANCO End If
Next s.Close
PDF.sFont(PDF.fontHelvetica,0,10,PDF.colorBlack) Else
multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6, s.GETSTRING("PE_CANT") & BLANCO & s.GETSTRING("PE_COSTOU") & BLANCO & s.GETSTRING("PE_COSTO_TOT")) 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"))
End If If S.RowCount>0 Then
Next 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 End If
s.Close s.Close
' multiplicador = multiplicador +1 ' multiplicador = multiplicador +1
' pdf.outtext(1,pagina-multiplicador*6," " ) ' pdf.outtext(1,pagina-multiplicador*6," " )
@@ -5667,16 +5947,41 @@ Private Sub PDFGENERAR
PDF.outtext(1,pagina-multiplicador*6," " ) PDF.outtext(1,pagina-multiplicador*6," " )
multiplicador = multiplicador +1 multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6,"-----------------------------------------------------------------------------------------") 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 s.Position =0
multiplicador = multiplicador +1 multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6,"Total preventa: $" & s.GetString("TOTAL") ) PDF.outtext(1,pagina-multiplicador*6,"Subtotal preventa: $" & s.GetString("TOTAL") )
s.Close ' 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= 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 C.Position=0
multiplicador = multiplicador +1 multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6,"Total articulos preventa: " & c.GetString("PC_NOART") ) 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 End If
' multiplicador = multiplicador +1 ' multiplicador = multiplicador +1
' pdf.outtext(1,pagina-multiplicador*6," " ) ' pdf.outtext(1,pagina-multiplicador*6," " )
@@ -5694,10 +5999,14 @@ Private Sub PDFGENERAR
PDF.outtext(1,pagina-multiplicador*6," " ) PDF.outtext(1,pagina-multiplicador*6," " )
multiplicador = multiplicador +1 multiplicador = multiplicador +1
PDF.outtext(1,pagina-multiplicador*6," " ) PDF.outtext(1,pagina-multiplicador*6," " )
' multiplicador = multiplicador +1 multiplicador = multiplicador +1
' PDF.outtext(1,pagina-multiplicador*6," " ) PDF.outtext(1,pagina-multiplicador*6," " )
' multiplicador = multiplicador +1 multiplicador = multiplicador +1
' PDF.outtext(1,pagina-multiplicador*6," " ) 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 ' multiplicador = multiplicador +1
' PDF.outtext(1,pagina-multiplicador*6,"-----------------------------------------------------------------------------------------" ) ' PDF.outtext(1,pagina-multiplicador*6,"-----------------------------------------------------------------------------------------" )
' 'all combinations of font normal, bold,italic,underline and strikethrough ' '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.Dir = Starter.fFileProvider.SharedFolder
fd.FileName = archivoTicketPDF fd.FileName = archivoTicketPDF
fd.ContentType = "application/pdf" 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)") 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("number", NumeroTelefono)
campos.Put("message","Tu recibo") campos.Put("message","Tu recibo")
@@ -6084,6 +6393,9 @@ Private Sub b_envioPDF_Click
Else Else
PDFGENERAR PDFGENERAR
End If End If
Sleep(3000)
EnviarPDFWhatsAppNumero(et_numeroPDF.Text) EnviarPDFWhatsAppNumero(et_numeroPDF.Text)
B4XPages.MainPage.skmt.ExecNonQuery("delete from TICKET_IMPRESO where idCliente In (select cuenta from cuentaa)") 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" Private ALMACEN As String = Subs.traeAlmacen '"1"
' CON POST ' 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 = $"{ Private elJSON As String = $"{
"number":"${numTel}", "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)", "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)",

View File

@@ -70,7 +70,7 @@ Sub B4XPage_Appear
C.Position=0 C.Position=0
Existe = C.GetString("EXISTE") Existe = C.GetString("EXISTE")
C.Close 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 ListView1.Clear
If c.RowCount>0 Then If c.RowCount>0 Then
For i=0 To c.RowCount -1 For i=0 To c.RowCount -1
@@ -78,12 +78,12 @@ Sub B4XPage_Appear
Dim label1 As Label Dim label1 As Label
label1 = ListView1.TwoLinesLayout.Label label1 = ListView1.TwoLinesLayout.Label
label1.TextSize = 15 label1.TextSize = 15
label1.TextColor = Colors.Black label1.TextColor = Colors.White
Dim label2 As Label Dim label2 As Label
label2 = ListView1.TwoLinesLayout.SecondLabel label2 = ListView1.TwoLinesLayout.SecondLabel
label2.TextSize = 10 label2.TextSize = 15
label2.TextColor = Colors.Blue label2.TextColor = Colors.White
ListView1.AddTwoLines(c.GetString("HVD_PRONOMBRE"),"Cantidad #"& c.GetString("HVD_CANT")& " SubTotal $"& c.GetString("HVD_COSTO_TOT")) ListView1.AddTwoLines(c.GetString("HVD_PRONOMBRE"),"Cantidad #"& c.GetString("HVD_CANT")& " SubTotal $"& c.GetString("HVD_COSTO_TOT")&" Fecha: "& c.GetString("HVD_FECHA"))
Next Next
End If End If
If Existe <> 0 Then If Existe <> 0 Then

View File

@@ -2015,8 +2015,9 @@ Sub JobDone(Job As HttpJob)
Dim HVD_PRONOMBRE As String = records(RESULT.Columns.Get("HVD_PRONOMBRE")) Dim HVD_PRONOMBRE As String = records(RESULT.Columns.Get("HVD_PRONOMBRE"))
Dim HVD_CANT As String = records(RESULT.Columns.Get("HVD_CANT")) 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_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) ' 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 Next
Listo3 =1 Listo3 =1
If PB1.Progress = 0 Then 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." 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.Visible = True
p_transparenteActualizacion.BringToFront 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) Log("Descargar: GP_" & Starter.newApp.appLink)
CallSubDelayed(appUpdater, "download_newApk") 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. else if revisaActualizacion.Get("forzar") = 2 Then ' No hay datos, regresamos al login y borramos usuario par que traiga los datos.

Binary file not shown.

Binary file not shown.

View File

@@ -242,6 +242,7 @@ Library31=togglelibrary
Library32=xcustomlistview Library32=xcustomlistview
Library33=xui Library33=xui
Library34=xui views Library34=xui views
Library35=locationmanager
Library4=batteryprogressview Library4=batteryprogressview
Library5=bitmapcreator Library5=bitmapcreator
Library6=byteconverter Library6=byteconverter
@@ -277,14 +278,14 @@ Module7=C_Cuestionario
Module8=C_Historico Module8=C_Historico
Module9=C_Mapas Module9=C_Mapas
NumberOfFiles=107 NumberOfFiles=107
NumberOfLibraries=34 NumberOfLibraries=35
NumberOfModules=27 NumberOfModules=27
Version=12.8 Version=12.8
@EndOfDesignText@ @EndOfDesignText@
#Region Project Attributes #Region Project Attributes
#ApplicationLabel: Guna Preventa #ApplicationLabel: Guna Preventa
#VersionCode: 1 #VersionCode: 1
#VersionName: 5.09.15 #VersionName: 5.10.16
'SupportedOrientations possible values: unspecified, landscape or portrait. 'SupportedOrientations possible values: unspecified, landscape or portrait.
#SupportedOrientations: portrait #SupportedOrientations: portrait
#CanInstallToExternalStorage: False #CanInstallToExternalStorage: False

View File

@@ -82,6 +82,6 @@ ModuleClosedNodes6=
ModuleClosedNodes7=6,8,9,10,11 ModuleClosedNodes7=6,8,9,10,11
ModuleClosedNodes8= ModuleClosedNodes8=
ModuleClosedNodes9= 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 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

View File

@@ -462,6 +462,33 @@ Public Sub StopFLP
End If End If
End Sub 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) Sub flp_LocationChanged (Location1 As Location)
' ToastMessageShow("Loc changed", False) ' ToastMessageShow("Loc changed", False)
' Log($"Loc changed:${Location1.Longitude},${Location1.Latitude}"$) ' Log($"Loc changed:${Location1.Longitude},${Location1.Latitude}"$)
@@ -497,7 +524,7 @@ Sub flp_LocationChanged (Location1 As Location)
End If End If
CallSub2(Starter, "GPS_LocationChanged", Location1) CallSub2(Starter, "GPS_LocationChanged", Location1)
' CallSub2(B4XPages.MainPage.cliente, "GPS_LocationChanged", Location1) CallSub2(B4XPages.MainPage.cliente, "GPS_LocationChanged", Location1)
' CallSub2(gestion, "GPS_LocationChanged", Location1) ' CallSub2(gestion, "GPS_LocationChanged", Location1)
If B4XPages.MainPage.cliente.IsInitialized Then If B4XPages.MainPage.cliente.IsInitialized Then
CallSub2(B4XPages.GetPage("Cliente"), "GPS_LocationChanged", Location1) CallSub2(B4XPages.GetPage("Cliente"), "GPS_LocationChanged", Location1)

View File

@@ -78,7 +78,7 @@ Sub Process_Globals
'These variables can be accessed from all modules. '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 '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" ' Public lnk As String = "https://10.0.0.205/Movil/Guna/cedex.ver"
'########################################## '##########################################
'## La ruta en el servidor es: ## '## La ruta en el servidor es: ##