- VERSION 4.10.09.EP_d

- Se corrige el error de que a veces cuando se mete producto, no lo agrega al pedido (normalmente para Chong), basicamente si se buscaba un producto y se escribia muy rapido, duplicaba los resultados y al agregar el producto, se agregaba en blanco.
- Se hicieron cambios en la clase del cuestionario para que no se amontonen las preguntas y se vean mejor en algunas pantallas.
This commit is contained in:
Jose Alberto Guerra Ugalde
2024-10-10 19:41:44 -06:00
parent 0692b7cb25
commit b7c9be5201
8 changed files with 55 additions and 101 deletions

View File

@@ -481,34 +481,39 @@ End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
Sub B4XPage_Appear
que_modulo = 1
dentroDeGeocerca = False
indicePregunta = 0
If TOMAR_FOTO <> 0 Then Cuestionario
B4XPages.MainPage.tipo_venta = tipo_venta
encuentasmapa.Initialize
Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_CAMERA)
Wait For B4XPage_PermissionResult (Permission As String, resultC As Boolean)
Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_WRITE_EXTERNAL_STORAGE)
Wait For B4XPage_PermissionResult (Permission As String, resultC As Boolean)
LA_GPS.TextColor = Colors.Red
LA_GPS.Text = "SIN UBICACION GPS"
cercavalor = 0
b_Inicio_Fin_venta.Text = "INICIAR VENTA"
b_Inicio_Fin_venta.BringToFront
' LogColor(">>>>>> EN VENTA: " & Starter.enVenta, Colors.red)
If Not(Starter.enVenta) And la_cuenta.Text <> "0" Then
b_Inicio_Fin_venta.Visible = True
Log("EnVenta Visible")
Else
Log("EnVenta NO Visible")
b_Inicio_Fin_venta.Visible = False
End If
If Not(Starter.gps.GPSEnabled) Then
ToastMessageShow("Es necesario tener el GPS encendido", True)
StartActivity(Starter.gps.LocationSettingsIntent)
End If
skmt.Initialize(ruta,"kmt.db", True)
reqManager.Initialize(Me, Starter.server)
p_camara.Width = Root.Width
p_camara.Height = Root.Height
S2=B4XPages.MainPage.skmt.ExecQuery("select count(*) AS CUANTOS from HIST_VENTAS WHERE HVD_CLIENTE IN (Select CUENTA from cuentaa)")
S2.Position =0
CUANTOS = S2.GetString("CUANTOS")
@@ -521,7 +526,6 @@ Sub B4XPage_Appear
Else
MONTO_COMPRA = "0"
End If
la_saldotot.Text = MONTO_COMPRA
If MONTO_COMPRA <> "0" Then
META2 = 300 - MONTO_COMPRA
@@ -567,12 +571,10 @@ Sub B4XPage_Appear
Tels.Visible = True
gest.Visible = True
End If
c = skmt.ExecQuery("SELECT PC_CLIENTE FROM PEDIDO_CLIENTE WHERE PC_CLIENTE IN (Select CUENTA from cuentaa)")
If c.RowCount > 0 Then
Tels.Visible = True
gest.Visible = True
Else If c.RowCount = 0 Then
Tels.Visible = False
gest.Visible = False
@@ -589,14 +591,11 @@ Sub B4XPage_Appear
gest.Visible = True
End If
End If
LA_GEO.TextColor = Colors.Red
If ALMACEN = "1" Then
Tels.Visible = False
gest.Visible = True
End If
End If
CallSubDelayed(Tracker, "Track")
CallSubDelayed(Tracker, "StartFLPSmall")
@@ -650,7 +649,6 @@ Sub B4XPage_Appear
Printer1.Connect
Log("2")
End If
c = skmt.ExecQuery("SELECT HABILITADA FROM IMPRESORA")
If c.RowCount > 0 Then
c.Position = 0
@@ -663,21 +661,7 @@ Sub B4XPage_Appear
B_IMP.Visible = False
End If
' Log(distance)
b_Inicio_Fin_venta.Text = "INICIAR VENTA"
b_Inicio_Fin_venta.BringToFront
' LogColor(">>>>>> EN VENTA: " & Starter.enVenta, Colors.red)
If Not(Starter.enVenta) And la_cuenta.Text <> "0" Then
b_Inicio_Fin_venta.Visible = True
Log("EnVenta Visible")
Else
Log("EnVenta NO Visible")
b_Inicio_Fin_venta.Visible = False
End If
' LogColor(">>>>>> EN VENTA: " & Starter.enVenta, Colors.red)
' Log(Subs.InvSuficientePromoEsp)
' Log(Subs.traemontoprod)
If ALMACEN = 32 Then
@@ -691,7 +675,6 @@ Sub B4XPage_Appear
End If
If Not(Subs.traemontoprod) And Subs.vendidoPromoEsp Then
Private j3 As Cursor
Log("SI PROMO")
j3 = B4XPages.MainPage.skmt.ExecQuery2("SELECT PE_CEDIS, PE_CANT,PE_PROID, PE_PRONOMBRE FROM PEDIDO WHERE PE_CEDIS IN (SELECT PE_CEDIS FROM PEDIDO WHERE PE_PROID = ?)",Array As String("PROUNI01"))
Log(j3.RowCount)
@@ -708,27 +691,21 @@ Sub B4XPage_Appear
Else
End If
End If
If ALMACEN = 87 Or ALMACEN = 6 Then
If Subs.traemontoprod Then
Msgbox2Async("El cliente tiene derecho a un descuento de 150 pesos por la compra de mas de $500 en productos Productos participantes" , "Descuento disponible", "Aceptar", "", "", LoadBitmap(File.DirAssets,"alert2.png"), False)
Wait For Msgbox_Result (resultado As Int)
If resultado = DialogResponse.POSITIVE Then
Private c As Cursor = B4XPages.MainPage.skmt.ExecQuery("SELECT SUM(PE_CANT) AS PIEZAS FROM PEDIDO JOIN CAT_PROMO_ESP ON CAT_PE_ID = PE_PROID WHERE PE_CLIENTE IN (Select CUENTA FROM CUENTAA)")
If c.RowCount > 0 Then
c.Position = 0
Private des As Float = NumberFormat2(150/c.GetString("PIEZAS"),0,2,2,False)
Log( NumberFormat2(des,0,2,2,False))
Private c2 As Cursor = B4XPages.MainPage.skmt.ExecQuery2("SELECT Ifnull(SUM(PE_CANT),0) AS PE_CANT FROM PEDIDO JOIN CAT_PROMO_ESP ON CAT_PE_ID = PE_PROID WHERE PE_CLIENTE IN (Select CUENTA FROM CUENTAA) AND PE_COSTOU < ?",Array As String(des))
If c2.RowCount > 0 Then
c2.Position = 0
Log(c2.GetString("PE_CANT"))
End If
Private c3 As Cursor = B4XPages.MainPage.skmt.ExecQuery2("SELECT SUM(PE_CANT) AS PE_CANT FROM PEDIDO JOIN CAT_PROMO_ESP ON CAT_PE_ID = PE_PROID WHERE PE_CLIENTE IN (Select CUENTA FROM CUENTAA) AND PE_COSTOU >= ?",Array As String(des))
If c3.RowCount > 0 Then
c3.Position = 0
@@ -737,16 +714,11 @@ Sub B4XPage_Appear
Log( NumberFormat2(rec,0,2,2,False))
Private cantres As Float = des + rec
Log( NumberFormat2(cantres,0,2,2,False))
Private c5 As Cursor = B4XPages.MainPage.skmt.ExecQuery2("SELECT Ifnull(SUM(PE_CANT),0) AS PE_CANT FROM PEDIDO JOIN CAT_PROMO_ESP ON CAT_PE_ID = PE_PROID WHERE PE_CLIENTE IN (Select CUENTA FROM CUENTAA) AND PE_COSTOU > ? and PE_COSTOU < ?",Array As String(des, cantres))
If c5.RowCount > 0 Then
c5.Position = 0
Log(c5.GetString("PE_CANT"))
If c5.GetString("PE_CANT") = "0" Then
Private c4 As Cursor = B4XPages.MainPage.skmt.ExecQuery2("SELECT * FROM PEDIDO JOIN CAT_PROMO_ESP ON CAT_PE_ID = PE_PROID WHERE PE_CLIENTE IN (Select CUENTA FROM CUENTAA) AND PE_COSTOU >= ?",Array As String(NumberFormat2(cantres,0,2,2,False)))
If c4.RowCount > 0 Then
For i = 0 To c4.RowCount -1
@@ -754,17 +726,12 @@ Sub B4XPage_Appear
Private recalculo As Float = c4.GetString("PE_COSTOU") - NumberFormat2(cantres,0,2,2,False)
LogColor(recalculo,Colors.Blue)
Private recalculototal As Float = c4.GetString("PE_CANT") * NumberFormat2(recalculo,0,2,2,False)
' Log(recalculo&"|||||"&recalculototal)
B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE PEDIDO set PE_RECALCULO = ?, PE_RECALCULOTOT = ? WHERE PE_CLIENTE IN (SELECT CUENTA FROM CUENTAA) AND PE_PROID = ? ",Array As String(NumberFormat2(recalculo,0,2,2,False) ,NumberFormat2(recalculototal,0,2,2,False), c4.GetString("PE_PROID")))
Next
End If
c4.Close
Else
Private c6 As Cursor = B4XPages.MainPage.skmt.ExecQuery2("SELECT SUM(PE_CANT) AS PE_CANT FROM PEDIDO JOIN CAT_PROMO_ESP ON CAT_PE_ID = PE_PROID WHERE PE_CLIENTE IN (Select CUENTA FROM CUENTAA) AND PE_COSTOU >= ?",Array As String(cantres))
If c6.RowCount > 0 Then
c6.Position = 0
@@ -773,8 +740,6 @@ Sub B4XPage_Appear
Log( NumberFormat2(rec1,0,2,2,False))
Private cantres1 As Float = cantres + rec1
Log( NumberFormat2(cantres1,0,2,2,False))
Private c4 As Cursor = B4XPages.MainPage.skmt.ExecQuery2("SELECT * FROM PEDIDO JOIN CAT_PROMO_ESP ON CAT_PE_ID = PE_PROID WHERE PE_CLIENTE IN (Select CUENTA FROM CUENTAA) AND PE_COSTOU >= ?",Array As String(NumberFormat2(cantres1,0,2,2,False)))
If c4.RowCount > 0 Then
For i = 0 To c4.RowCount -1
@@ -782,35 +747,22 @@ Sub B4XPage_Appear
Private recalculo As Float = c4.GetString("PE_COSTOU") - NumberFormat2(cantres1,0,2,2,False)
LogColor(recalculo,Colors.Blue)
Private recalculototal As Float = c4.GetString("PE_CANT") * NumberFormat2(recalculo,0,2,2,False)
' Log(recalculo&"|||||"&recalculototal)
B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE PEDIDO set PE_RECALCULO = ?, PE_RECALCULOTOT = ? WHERE PE_CLIENTE IN (SELECT CUENTA FROM CUENTAA) AND PE_PROID = ? ",Array As String(NumberFormat2(recalculo,0,2,2,False) ,NumberFormat2(recalculototal,0,2,2,False), c4.GetString("PE_PROID")))
Next
End If
c4.Close
End If
End If
End If
End If
End If
End If
c.Close
c2.Close
c3.Close
End If
If Not(Subs.traemontoprod) Then
Private c4 As Cursor = B4XPages.MainPage.skmt.ExecQuery2("SELECT * FROM PEDIDO JOIN CAT_PROMO_ESP ON CAT_PE_ID = PE_PROID WHERE PE_CLIENTE IN (Select CUENTA FROM CUENTAA) AND (PE_RECALCULO <> ? OR PE_RECALCULO IS NOT NULL)",Array As String("null"))
If c4.RowCount > 0 Then
For i = 0 To c4.RowCount -1
@@ -819,22 +771,16 @@ Sub B4XPage_Appear
' Private recalculototal As Float = c4.GetString("PE_CANT") * NumberFormat2(recalculo,0,2,2,False)
' Log(recalculo&"|||||"&recalculototal)
B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE PEDIDO set PE_RECALCULO = ?, PE_RECALCULOTOT = ? WHERE PE_CLIENTE IN (SELECT CUENTA FROM CUENTAA) AND PE_PROID = ? ",Array As String("","",c4.GetString("PE_PROID")))
Next
End If
' Log("AQUI ESTOY")
Else
End If
End If
'AQUI CAMBIAR
Private s3 As Cursor=B4XPages.MainPage.skmt.ExecQuery2("select * FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) and PE_RECALCULO <> ? OR PE_RECALCULO <> ? OR PE_RECALCULO IS NOT NULL",Array As String("","null"))
' LogColor(s3.RowCount,Colors.Yellow)
If s3.RowCount > 0 Then
c=B4XPages.MainPage.skmt.ExecQuery("select CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO from kmt_info2 where CAT_CL_CODIGO In (Select cuenta from cuentaa)")
s=B4XPages.MainPage.skmt.ExecQuery2("select iFNULL(sum(pe_costo_tot),0) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) and (PE_RECALCULO = ? or PE_RECALCULO = ? or PE_RECALCULO IS NULL)",Array As String("","null"))
s.Position=0
Private s5 As Cursor = B4XPages.MainPage.skmt.ExecQuery2("select iFNULL(sum(PE_RECALCULOTOT),0) as TOTAL_CLIE FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) and (PE_RECALCULO <> ? or PE_RECALCULO <> ? OR PE_RECALCULO IS NOT NULL)",Array As String("","null"))
@@ -879,8 +825,6 @@ Sub B4XPage_Appear
End If
c.Close
s.Close
Else If s3.RowCount = 0 Then
c=B4XPages.MainPage.skmt.ExecQuery("select CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO from kmt_info2 where CAT_CL_CODIGO In (Select cuenta from cuentaa)")
s=B4XPages.MainPage.skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
@@ -898,7 +842,7 @@ Sub B4XPage_Appear
l_atiende.Text = c.GetString("CAT_CL_ATIENDE1")
l_atiende2.Text = c.GetString("CAT_CL_ATIENTE2")
TELEFONO = c.GetString("CAT_CL_TELEFONO")
Log(s.GetString("TOTAL_CLIE"))
' Log(s.GetString("TOTAL_CLIE"))
If s.GetString("TOTAL_CLIE") = Null Then
l_total.Text = 0
Else
@@ -928,15 +872,13 @@ Sub B4XPage_Appear
s.Close
End If
'AQUI TERMINA
c = skmt.ExecQuery("SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = 'GEOCERCA'")
If c.RowCount > 0 Then
c.Position = 0
Dim geo As String = c.GetString("CAT_VA_VALOR")
End If
c.Close
Log(geo)
' Log(geo)
If geo = "0" Then
gest.Visible = True
Tels.Visible = True
@@ -949,8 +891,7 @@ Sub B4XPage_Appear
b_Inicio_Fin_venta.Visible = False
' ToastMessageShow("aaa", False)
End If
Log($"ALMACEN: ${ALMACEN}${CRLF}RUTA:${LA_RUTA}"$)
' Log($"ALMACEN: ${ALMACEN}${CRLF}RUTA:${LA_RUTA}"$)
End Sub
Sub GPS_LocationChanged (Location1 As Location)
@@ -1130,11 +1071,10 @@ Private Sub p_pideGeoPass_Click
End Sub
Private Sub iniciofin
If Starter.VarX = 0 Then
If Starter.enVenta = False Then
b_Inicio_Fin_venta.Visible = True
Log("Hacemos visible el boton de Inicio Venta2")
' Log("Hacemos visible el boton de Inicio Venta2")
Else
b_Inicio_Fin_venta.Visible = False
End If
End Sub
@@ -1227,10 +1167,10 @@ Sub gest_Click
Private rutasEncuesta As List
rutasEncuesta.Initialize2(Array As Int(702, 703, 707, 718, 730, 732, 733, 734))
' ALMACEN = 79
' LA_RUTA = 732
If (ALMACEN = 6 And LA_RUTA = 3) Or (ALMACEN = 79 And rutasEncuesta.IndexOf(LA_RUTA.As(Int)) > -1) Then
Log($"${cuest.encuestaIniciada} - ${cuest.clienteConCuestionario(Subs.traeCliente)}"$)
If Not(cuest.encuestaIniciada) And Not(cuest.clienteConCuestionario(Subs.traeCliente)) Then
@@ -4794,7 +4734,6 @@ Private Sub b_Inicio_Fin_venta_Click
Starter.enVenta = False
' LogColor($">>>>>> TERMINA VENTA: ${Starter.enVenta} - ${Subs.traeCliente}"$, Colors.red)
B4XPages.ShowPageAndRemovePreviousPages("Principal")
Starter.VarX = 0
guardadoventa
Else if b_Inicio_Fin_venta.Text = "INICIAR VENTA" Then
contadorIniciarVenta = 0
@@ -4802,13 +4741,11 @@ Private Sub b_Inicio_Fin_venta_Click
contadorIniciarVenta = contadorIniciarVenta + 1
If contadorIniciarVenta = 1 And IniVenNO = False And motivoNoVenta <> "NO VENTA" Then
IniVenNO = True
Starter.VarX = 1
Subs.bitacora(Subs.fechanormal(DateTime.Now), Subs.traeUsuarioDeBD, Subs.traeAlmacen, Subs.traeRutaBitacora, "Inicia Venta", Subs.traeCliente, Subs.fechanormal(DateTime.Now), "", B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, precision, "", "")
Starter.enVenta = True
' LogColor($">>>>>> INICIA VENTA: ${Starter.enVenta} - ${Subs.traeCliente}"$, Colors.red)
Else If contadorIniciarVenta = 1 And IniVenNO = False And motivoNoVenta = "NO VENTA" Then
IniVenNO = True
Starter.VarX = 1
Subs.bitacora(Subs.fechanormal(DateTime.Now), Subs.traeUsuarioDeBD, Subs.traeAlmacen, Subs.traeRutaBitacora, "Inicia Venta", Subs.traeCliente, Subs.fechanormal(DateTime.Now), "", B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, precision, motivoNoVenta, "")
Starter.enVenta = True
Else If contadorIniciarVenta > 1 Then