mirror of
https://github.com/KeymonSoft/Guna_Reparto_Imp.git
synced 2026-04-17 12:56:18 +00:00
- VERSION 5.03.08
- Se agregó codigo para la confirmacion de pagares mediante WhatsApp en Cliente. - Se agregaron 270 segundos (4.5 minutos) al tiempo calculado en el ruteo de Clientes. - Se hicieorn mas pequeños los números de los globitos en MAPAS_RUTAS, de 20 a 15. - Se puso un toastMessage cuando las coordenadas del CEDIS están en CERO.
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -31,6 +31,7 @@ Sub Class_Globals
|
||||
Private b_limpiarRuta As Button
|
||||
Dim rutaGenerada As Boolean = False
|
||||
Dim rutaacambiar As String
|
||||
Dim mostrarProgressDialog As Boolean
|
||||
End Sub
|
||||
|
||||
'You can add more parameters here.
|
||||
@@ -100,7 +101,7 @@ Sub B4XPage_Appear
|
||||
Subs.centraEtiqueta(l_rutaInfo, Root.Width)
|
||||
Subs.centraListView(ListView1, p_colonia.Width)
|
||||
ListView1.Height = p_colonia.Height * 0.70
|
||||
Subs.centraEtiqueta(lfila, Root.Width)
|
||||
Subs.centraEtiqueta(lfila, Root.Width + (b_getRutaInfo.Width / 2))
|
||||
b_getRutaInfo.Visible = True
|
||||
b_getRutaInfo.BringToFront
|
||||
If Starter.cedisLocation.Latitude = "0" Then
|
||||
@@ -113,9 +114,12 @@ Sub B4XPage_Appear
|
||||
End If
|
||||
End If
|
||||
Log(Starter.cedisLocation)
|
||||
If mostrarProgressDialog = True Then
|
||||
ProgressDialogShow2("Calculando distancia y tiempo, un momento por favor.", False)
|
||||
mostrarProgressDialog = False
|
||||
End If
|
||||
End Sub
|
||||
|
||||
|
||||
Private Sub B4XPage_CloseRequest As ResumableSub
|
||||
' BACK key pressed
|
||||
'Return True to close, False to cancel
|
||||
@@ -244,7 +248,7 @@ End Sub
|
||||
|
||||
Sub BUSCA_TextChanged (Old As String, New As String)
|
||||
q_buscar = "%" & busca.Text & "%"
|
||||
c2=Starter.skmt.ExecQuery2("select CAT_CL_NOMBRE, CAT_CL_CALLE, CAT_CL_CODIGO from kmt_info where CAT_CL_NOMBRE like ? and gestion = 0 AND CAT_CL_RUTA <> 1000 order by CAT_CL_CODIGO ", Array As String(q_buscar))
|
||||
c2=Starter.skmt.ExecQuery2("select CAT_CL_NOMBRE, CAT_CL_CALLE, CAT_CL_CODIGO from kmt_info where CAT_CL_NOMBRE like ? and gestion = 0 AND CAT_CL_RUTA <> 1000 order by CAT_CL_CODIGO ", Array As String(q_buscar))
|
||||
ListView1.Clear
|
||||
lfila.text = "Nombre y Calle"
|
||||
Subs.SetDivider(ListView1, Colors.Blue, 2)
|
||||
@@ -278,6 +282,7 @@ Sub distanciaEntreCoords(id As String, coords1 As String, coords2 As String) As
|
||||
Dim j As HttpJob
|
||||
j.Initialize("", Me)
|
||||
j.Download("https://router.project-osrm.org/route/v1/driving/"&coords1&";"&coords2&"?overview=false")
|
||||
Log(("https://router.project-osrm.org/route/v1/driving/"&coords1&";"&coords2&"?overview=false"))
|
||||
Wait For (j) JobDone(j As HttpJob)
|
||||
If j.Success Then
|
||||
Dim jp As JSONParser
|
||||
@@ -646,7 +651,7 @@ Sub caculaRutaGPS(coords As List, agregarActual As Boolean)
|
||||
For i = 0 To coords.Size - 1
|
||||
Private ti As Map = coords.Get(i)
|
||||
Starter.skmt.ExecNonQuery($"update kmt_info set SECUENCIA = ${ti.Get("pos")} where CAT_CL_CODIGO = '${ti.Get("id").As(String).SubString(1)}'"$) ' Ponemos la secuencia con el orden del ruteo para poder verla en el mapa.
|
||||
Starter.skmt.ExecNonQuery($"insert into waypoints (codigo, indice) values ('${ti.Get("id").As(String).SubString(1)}', '${ti.Get("pos")}')"$)
|
||||
Starter.skmt.ExecNonQuery($"insert into waypoints (codigo, indice) values ('${ti.Get("id").As(String).SubString(1)}', '${ti.Get("pos")}')"$)
|
||||
Next
|
||||
c = Starter.skmt.ExecQuery("select codigo, indice, CAT_CL_NOMBRE, CAT_CL_CALLE, CAT_CL_NOEXT, CAT_CL_LAT, CAT_CL_LONG from waypoints inner join kmt_info on waypoints.codigo = kmt_info.CAT_CL_CODIGO where gestion = 0 AND CAT_CL_RUTA <> 1000 order by indice")
|
||||
If c.RowCount > 0 Then 'Ya hay waypoints en la base de datos.
|
||||
@@ -674,6 +679,9 @@ Sub caculaRutaGPS(coords As List, agregarActual As Boolean)
|
||||
Private pri As String = $"${primerLon},${primerLat}"$
|
||||
Private ult As String = $"${ultimaLon},${ultimaLat}"$
|
||||
Private ced As String = Starter.cedisLocation.Longitude & "," & Starter.cedisLocation.Latitude
|
||||
If Starter.cedisLocation.Longitude = 0 Or Starter.cedisLocation.Latitude = 0 Then
|
||||
ToastMessageShow("Las coordenadas del CEDIS NO deben estar en CERO", True)
|
||||
End If
|
||||
Private ubiActual As String = Starter.inicioLon & "," & Starter.inicioLat
|
||||
Wait For(distanciaEntreCoords("aaaa", pri, ubiActual)) Complete (r As List)
|
||||
Log("DistToPrimero: " & r)
|
||||
@@ -681,12 +689,13 @@ Sub caculaRutaGPS(coords As List, agregarActual As Boolean)
|
||||
Wait For(distanciaEntreCoords("aaaa", ult, ced)) Complete (r As List)
|
||||
Log("DistToUltimo: " & r)
|
||||
Private DistToUltimo As String = NumberFormat2((r.Get(1)/1000), 1, 2, 0, True)
|
||||
duration = duration + (270 * puntos) ' Agregamoms 4.5 minutos por parada/tienda - 270 segundos = 4.5 minutos
|
||||
Log($"Distancia total: $1.1{distance/1000} kms, tiempo aprox: $1.1{duration/60} mins. ($1.1{duration/60/60} hrs)"$)
|
||||
l_rutaInfo.Text = $"Actual a primer tienda: ${distToPrimero} kms
|
||||
Distancia: $1.1{distance/1000} kms, tiempo aprox: 5.8 hrs${CRLF}Visitas restantes: ${puntos + 1}
|
||||
Última tienda a CEDIS: 1.2 kms"$
|
||||
Distancia: $1.1{distance/1000} kms, tiempo aprox: $1.1{duration/60/60} hrs${CRLF}Visitas restantes: ${puntos + 1}
|
||||
Última tienda a CEDIS: ${DistToUltimo} kms"$
|
||||
' Distancia: $1.1{distance/1000} kms, tiempo aprox: $1.1{duration/60/60} hrs${CRLF}Visitas restantes: ${puntos - 1}
|
||||
' Última tienda a CEDIS: ${DistToUltimo} kms"$
|
||||
Log($"Última tienda a CEDIS: ${DistToUltimo} kms"$)
|
||||
l_rutaInfo.Width = Root.Width * 0.9
|
||||
Subs.centraEtiqueta(l_rutaInfo, Root.Width)
|
||||
l_rutaInfo.Visible = True
|
||||
|
||||
@@ -88,7 +88,6 @@ End Sub
|
||||
Sub B4XPage_Appear
|
||||
Subs.centraPanel(p_principal, Root.Width)
|
||||
' b_guardar.Visible = False
|
||||
|
||||
' Titulo.Left = Round(p_principal.Width/2)-(Titulo.Width/2)
|
||||
L_CANT.Text =""
|
||||
L_TOTAL.Text=""
|
||||
@@ -107,10 +106,8 @@ Sub B4XPage_Appear
|
||||
' Log("RC1:"&c.RowCount)
|
||||
If c.RowCount>0 Then
|
||||
' Log("Usamos HV")
|
||||
|
||||
For i=0 To c.RowCount -1
|
||||
c.Position=i
|
||||
|
||||
Private c4 As Cursor = Starter.skmt.ExecQuery($"SELECT IFNULL(PE_CANT,0) AS PE_CANT FROM PEDIDO WHERE PE_PROID = '${c.GetString("HVD_PROID")}' AND PE_CLIENTEOR IN (SELECT CUENTA FROM CUENTAA) AND CONSECUTIVO = '${c.GetString("CONSECUTIVO")}'"$)
|
||||
If c4.RowCount > 0 Then
|
||||
c4.Position = 0
|
||||
@@ -118,7 +115,6 @@ Sub B4XPage_Appear
|
||||
Else
|
||||
cantres = 0
|
||||
End If
|
||||
|
||||
If c.GetString("BCAJAS") = "0" Then
|
||||
If c.GetString("HVD_CANT") <> c.GetString("HVD_RECHAZOCANT") Then
|
||||
'Traemos cantidad de hvd2
|
||||
@@ -180,10 +176,8 @@ Sub B4XPage_Appear
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
|
||||
' cuentaProds("")
|
||||
End If
|
||||
|
||||
Private c3 As Cursor=Starter.skmt.ExecQuery("Select * from PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
|
||||
If c3.RowCount>0 Then
|
||||
For i= 0 To c3.RowCount -1
|
||||
@@ -203,10 +197,7 @@ Sub B4XPage_Appear
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
|
||||
|
||||
Private vc As Cursor = Starter.skmt.ExecQuery($"select HVD_PROID, HVD_CANT,HVD_COSTO_TOT, IFNULL(HVD_RECHAZOCANT, 0) AS HVD_RECHAZOCANT from HIST_VENTAS where BCAJAS = 0 and HVD_CODPROMO ='${Subs.traealmacen}' and HVD_CLIENTE in (select cuenta from cuentaa)"$)
|
||||
|
||||
Private Cuenta As String = 0
|
||||
Private arti As String = 0
|
||||
If vc.RowCount > 0 Then
|
||||
@@ -231,7 +222,6 @@ Sub B4XPage_Appear
|
||||
Next
|
||||
End If
|
||||
' Log(Cuenta)
|
||||
|
||||
Private vc2 As Cursor = Starter.skmt.ExecQuery("select HVD_PROID, HVD_CANT, IFNULL(HVD_RECHAZOCANT, 0) AS HVD_RECHAZOCANT, CANTC,HVD_COSTO_TOT from HIST_VENTAS where HVD_CLIENTE in (select cuenta from cuentaa) AND BCAJAS = 1")
|
||||
Private Cuenta1 As String = 0
|
||||
Private arti1 As String = 0
|
||||
@@ -248,14 +238,10 @@ Sub B4XPage_Appear
|
||||
Next
|
||||
End If
|
||||
' Log(Cuenta1)
|
||||
|
||||
|
||||
|
||||
Private vc4 As Cursor = Starter.skmt.ExecQuery($"select HVD_PROID, HVD_CANT, IFNULL(HVD_RECHAZOCANT, 0) AS HVD_RECHAZOCANT, CANTC,HVD_COSTO_TOT, HVD_RECHAZO, HVD_CODPROMO from HIST_VENTAS where HVD_CLIENTE in (select cuenta from cuentaa) AND BCAJAS = 0 and HVD_CODPROMO <> '${Subs.traeAlmacen}'"$)
|
||||
Private Cuenta2 As String = 0
|
||||
Private arti2 As String = 0
|
||||
If vc4.RowCount > 0 Then
|
||||
|
||||
For i = 0 To vc4.RowCount - 1
|
||||
vc4.Position = i
|
||||
If vc4.GetString("HVD_PROID") <> vc4.GetString("HVD_CODPROMO") Then
|
||||
@@ -275,10 +261,6 @@ Sub B4XPage_Appear
|
||||
|
||||
Next
|
||||
End If
|
||||
|
||||
|
||||
|
||||
|
||||
Private c4 As Cursor = Starter.skmt.ExecQuery($"SELECT IFNULL(PE_CANT,0) AS PE_CANT, iFNULL(PE_COSTO_TOT,0) AS PE_COSTO_TOT FROM PEDIDO WHERE PE_CLIENTE IN (SELECT CUENTA FROM CUENTAA)"$)
|
||||
Private Cuenta3 As String = 0
|
||||
Private arti3 As String = 0
|
||||
@@ -289,7 +271,6 @@ Sub B4XPage_Appear
|
||||
Cuenta3 = Cuenta3 + c4.GetString("PE_COSTO_TOT")
|
||||
Next
|
||||
End If
|
||||
|
||||
If Cuenta < 0 Then
|
||||
Cuenta = 0
|
||||
End If
|
||||
@@ -302,7 +283,6 @@ Sub B4XPage_Appear
|
||||
If Cuenta3 < 0 Then
|
||||
Cuenta = 0
|
||||
End If
|
||||
|
||||
If arti < 0 Then
|
||||
arti = 0
|
||||
End If
|
||||
@@ -315,7 +295,6 @@ Sub B4XPage_Appear
|
||||
If arti3 < 0 Then
|
||||
arti = 0
|
||||
End If
|
||||
|
||||
Log(Cuenta&","&Cuenta1&","&Cuenta2&","&Cuenta3)
|
||||
Log(arti&","&arti1&","&arti2&","&arti3)
|
||||
If Cuenta + Cuenta1 + Cuenta2 + Cuenta3 < 0 Then
|
||||
@@ -328,8 +307,6 @@ Sub B4XPage_Appear
|
||||
Else
|
||||
L_CANT.Text = NumberFormat2((arti + arti1 +arti2 + arti3),0,0,0,True)
|
||||
End If
|
||||
|
||||
|
||||
End Sub
|
||||
|
||||
Sub GPS_LocationChanged (Location1 As Location)
|
||||
@@ -485,7 +462,6 @@ Sub CreateListItem(Text As String, precioU As String, inv As Int, inv2 As Int, W
|
||||
l_pCant.Text = inv
|
||||
' et_pCant.Text = inv
|
||||
' et_pCant.BringToFront
|
||||
|
||||
l_pCant.BringToFront
|
||||
et_pCant.SendToBack
|
||||
p_botMasMenC.Visible = False
|
||||
@@ -517,7 +493,6 @@ Sub CreateListItem2(Text As String, precioU As String, inv As Int, inv2 As Int,
|
||||
l_pCantC.Text = NumberFormat2(inv/Subs.traeConversion(prodId),0,0,0,False)
|
||||
' et_pCant.Text = inv
|
||||
' et_pCant.BringToFront
|
||||
|
||||
l_pCantC.BringToFront
|
||||
et_pCantC.SendToBack
|
||||
p_botMasMen.Visible = False
|
||||
@@ -571,21 +546,15 @@ Sub b_prodMenos_Click
|
||||
Starter.skmt.ExecNonQuery($"delete from PEDIDO where PE_PROID = '${esteTag.Get(2)}' and PE_CLIENTE in (Select CUENTA from cuentaa) AND CONSECUTIVO = '${esteTag.Get(8)}'"$)
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
|
||||
End If
|
||||
B4XPage_Appear
|
||||
Else
|
||||
|
||||
If esteTag.Get(5) = esteTag.Get(6) Then
|
||||
If laCant.Text > 0 Then
|
||||
If esteTag.Get(3) <> Subs.traeAlmacen Then 'Si es PROMO entonces ...
|
||||
Private c2 As Cursor =Starter.skmt.ExecQuery($"select HVD_RECHAZO FROM HIST_VENTAS WHERE HVD_PROID = '${esteTag.Get(2)}' AND HVD_CLIENTE IN (Select CUENTA from cuentaa) AND CONSECUTIVO = '${esteTag.Get(8)}'"$)
|
||||
c2.Position = 0
|
||||
If c2.GetString("HVD_RECHAZO") = "0" Then
|
||||
|
||||
|
||||
Log("ES PROMO")
|
||||
Log(esteTag.Get(3))
|
||||
result = Msgbox2("Si se modifica una promoción, la promoción se rompe y solo quedarán los productos sueltos, ¿seguro que desea continuar?","Modificar Promoción", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) 'ignore
|
||||
@@ -627,7 +596,6 @@ Sub b_prodMenos_Click
|
||||
End If
|
||||
End If
|
||||
Else
|
||||
|
||||
If laCant.Text = "" Then laCant.Text = 0
|
||||
laCant.Text = $"$1.0{laCant.Text-1}"$
|
||||
If laCant.Text < 0 Then laCant.Text = 0
|
||||
@@ -684,7 +652,6 @@ Sub b_prodMas_Click
|
||||
Dim esteTag As List = Regex.Split("\|", laCant.Tag)
|
||||
Log("LC_TEXT:"&laCant.Text&"|LC_TAG:"&laCant.Tag&"|ET:"&esteTag)
|
||||
If laCant.Text = "" Then laCant.Text = 0
|
||||
|
||||
Private maxProds = esteTag.Get(1) + esteTag.Get(4) 'Prods disponibles + prods comprados
|
||||
|
||||
LogColor($"++++++++++++++++++++++++++ ${esteTag}"$, Colors.Green)
|
||||
@@ -702,18 +669,13 @@ Sub b_prodMas_Click
|
||||
'*'${minimoadesc}')
|
||||
minimoadesc = "1"
|
||||
If esteTag.Get(7) <> "1" Then
|
||||
|
||||
|
||||
If esteTag.Get(5) = esteTag.Get(6) Then
|
||||
|
||||
If laCant.Text + 1 <= maxProds Then
|
||||
Log($"NuevaCant = ${laCant.Text + 1}"$)
|
||||
laCant.Text = $"$1.0{laCant.Text + 1}"$
|
||||
Starter.skmt.ExecNonQuery2("update cat_gunaprod set cat_gp_almacen = cat_gp_almacen - 1 where cat_gp_id = ?", Array As Object(esteTag.Get(2)))
|
||||
|
||||
'checar este por si las dudas
|
||||
Starter.skmt.ExecNonQuery($"update HIST_VENTAS set HVD_RECHAZO = 1, HVD_RECHAZOCANT = HVD_RECHAZOCANT - (1*'${minimoadesc}') WHERE HVD_PROID = '${esteTag.Get(2)}' and HVD_cliente in (Select CUENTA from cuentaa) AND CONSECUTIVO = '${esteTag.Get(8)}'"$)
|
||||
|
||||
Subs.prodVenta(esteTag.Get(5), esteTag.Get(2))
|
||||
' Private cym As Map = Subs.traemosCantYMonto(clv_pedido)
|
||||
' L_CANT.Text = cym.Get("cantidad")
|
||||
@@ -722,7 +684,6 @@ Sub b_prodMas_Click
|
||||
B4XPage_Appear
|
||||
End If
|
||||
Else
|
||||
|
||||
If laCant.Text + 1 <= maxProds Then
|
||||
Log($"NuevaCant = ${laCant.Text + 1}"$)
|
||||
laCant.Text = $"$1.0{laCant.Text + 1}"$
|
||||
@@ -743,8 +704,6 @@ Sub b_prodMas_Click
|
||||
Starter.skmt.ExecNonQuery2("INSERT INTO PEDIDO(PE_PROID,PE_PRONOMBRE,PE_CANT,PE_CLIENTEOR,PE_CLIENTE,PE_COSTOU,PE_COSTO_TOT,PE_CAJAS,PE_BCAJAS,CONSECUTIVO) VALUES (?,?,?,?,?,?,?,0,0,?)", Array As String(esteTag.Get(2),c2.GetString("CAT_GP_NOMBRE"),1*minimoadesc,esteTag.Get(5),Subs.traeCliente,c2.GetString("CAT_GP_PRECIO"),c2.GetString("CAT_GP_PRECIO"),esteTag.Get(8)))
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
Subs.prodVenta(esteTag.Get(5), esteTag.Get(2))
|
||||
' Private cym As Map = Subs.traemosCantYMonto(clv_pedido)
|
||||
' L_CANT.Text = cym.Get("cantidad")
|
||||
@@ -752,7 +711,6 @@ Sub b_prodMas_Click
|
||||
' cuentaProds("+")
|
||||
B4XPage_Appear
|
||||
End If
|
||||
|
||||
End If
|
||||
End If
|
||||
' Dim preciou As Float = esteTag.Get(0)/esteTag.Get(1)
|
||||
@@ -930,16 +888,12 @@ Sub cuentaProds(accion As String)
|
||||
'
|
||||
' End If
|
||||
' End If
|
||||
'
|
||||
'
|
||||
'
|
||||
End Sub
|
||||
|
||||
Private Sub b_guardar_Click
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
Private Sub l_pCant_Click
|
||||
|
||||
End Sub
|
||||
@@ -972,16 +926,12 @@ Private Sub b_prodMasC_Click
|
||||
|
||||
' l_pCantC.Tag = Round2(precioU,2)&"|"&inv&"|"&prodId&"|"&promo&"|"&inv2&"|"&cliente_original
|
||||
If esteTag.Get(7) <> "1" Then
|
||||
|
||||
|
||||
If laCantc.Text + 1 <= maxProds Then
|
||||
Log($"NuevaCant = ${laCantc.Text + 1}"$)
|
||||
laCantc.Text = $"$1.0{laCantc.Text + 1}"$
|
||||
|
||||
Log(laCantc.Text)
|
||||
Starter.skmt.ExecNonQuery($"update HIST_VENTAS set HVD_RECHAZO = 1, HVD_RECHAZOCANT = IFNULL(HVD_RECHAZOCANT,0) -(1 * ${Subs.traeConversion(esteTag.Get(2))}) WHERE HVD_PROID = '${esteTag.Get(2)}' and HVD_cliente in (Select CUENTA from cuentaa) AND CONSECUTIVO = '${esteTag.Get(8)}'"$)
|
||||
' Starter.skmt.ExecNonQuery($"update HIST_VENTAS set HVD_RECHAZO = 1, HVD_RECHAZOCANT = HVD_RECHAZOCANT - 1 WHERE HVD_PROID = '${esteTag.Get(2)}' and HVD_cliente in (Select CUENTA from cuentaa)"$)
|
||||
|
||||
' Subs.prodVenta(esteTag.Get(5), esteTag.Get(2))
|
||||
' Private cym As Map = Subs.traemosCantYMonto(clv_pedido)
|
||||
' L_CANT.Text = cym.Get("cantidad")
|
||||
@@ -1023,12 +973,8 @@ Private Sub b_prodMenosC_Click
|
||||
laCantc.Text = laCantc.Text - 1
|
||||
If laCantc.Text < 0 Then laCantc.Text = 0
|
||||
B4XPage_Appear
|
||||
|
||||
Else
|
||||
|
||||
|
||||
If esteTag.Get(5) = esteTag.Get(6) Then
|
||||
|
||||
If laCantc.Text > 0 Then
|
||||
Log("entre al if o algo asi ")
|
||||
If laCantc.Text = "" Then laCantc.Text = 0
|
||||
@@ -1038,13 +984,9 @@ Private Sub b_prodMenosC_Click
|
||||
Starter.skmt.ExecNonQuery2("update cat_gunaprod set cat_gp_almacen = (cat_gp_almacen + (1 * ?)) where cat_gp_id = ?", Array As Object(esteTag.Get(2), Subs.traeConversion(esteTag.Get(2))))
|
||||
B4XPage_Appear
|
||||
Else If laCantc.Text = 0 Then
|
||||
|
||||
End If
|
||||
|
||||
Else
|
||||
|
||||
If laCantc.Text > 0 Then
|
||||
|
||||
' Starter.skmt.ExecNonQuery($"update HIST_VENTAS set HVD_RECHAZO = 1, HVD_RECHAZOCANT = (IFNULL(HVD_RECHAZOCANT,0) +(1 * ${Subs.traeConversion(esteTag.Get(2))})) WHERE HVD_PROID = '${esteTag.Get(2)}' and HVD_cliente = '${esteTag.Get(6)}'"$)
|
||||
Private c3 As Cursor = Starter.skmt.ExecQuery2("SELECT PE_CAJAS FROM PEDIDO WHERE PE_PROID = ? AND PE_CLIENTE IN (SELECT CUENTA FROM CUENTAA) and CONSECUTIVO = ? ", Array As String(esteTag.Get(2),esteTag.Get(8)))
|
||||
If c3.RowCount > 0 Then
|
||||
@@ -1063,9 +1005,7 @@ Private Sub b_prodMenosC_Click
|
||||
B4XPage_Appear
|
||||
' Starter.skmt.ExecNonQuery2("update cat_gunaprod set cat_gp_almacen = (cat_gp_almacen + (1 * ?)) where cat_gp_id = ?", Array As Object(esteTag.Get(2), Subs.traeConversion(esteTag.Get(2))))
|
||||
Else If laCantc.Text = 0 Then
|
||||
|
||||
End If
|
||||
|
||||
End If
|
||||
End If
|
||||
Dim preciou As Float = esteTag.Get(0)/esteTag.Get(1)
|
||||
@@ -1084,8 +1024,6 @@ Private Sub b_revversar_Click
|
||||
Else
|
||||
MsgboxAsync("Hay productos que ya se vendieron, no se puede regresar la venta","Atención")
|
||||
End If
|
||||
|
||||
|
||||
End Sub
|
||||
|
||||
Sub Printer1_Connected (Success As Boolean)
|
||||
@@ -1161,8 +1099,6 @@ Sub StartPrinter
|
||||
End Sub
|
||||
|
||||
Private Sub B_IMP_Click
|
||||
|
||||
|
||||
c=Starter.skmt.ExecQuery("select USUARIO from usuarioa")
|
||||
c.Position=0
|
||||
usuario = c.GetString("USUARIO")
|
||||
@@ -1170,8 +1106,6 @@ Private Sub B_IMP_Click
|
||||
sDate=DateTime.Date(DateTime.Now)
|
||||
sTime=DateTime.Time(DateTime.Now)
|
||||
c.Close
|
||||
|
||||
|
||||
ProgressDialogShow("Imprimiendo, un momento ...")
|
||||
Printer1.DisConnect
|
||||
If Not(Printer1.IsConnected) Then
|
||||
@@ -1201,7 +1135,6 @@ Private Sub B_IMP_Click
|
||||
Sleep(500)
|
||||
impresoraConectada = False
|
||||
End If
|
||||
|
||||
TAMANO = 0
|
||||
ESPACIO = 28
|
||||
BLANCO = " "
|
||||
@@ -1225,10 +1158,7 @@ Private Sub B_IMP_Click
|
||||
c = Starter.skmt.ExecQuery("SELECT * FROM HIST_VENTAS WHERE HVD_CLIENTE IN (SELECT CUENTA FROM CUENTAA)")
|
||||
If c.RowCount > 0 Then
|
||||
Printer1.WriteString("------------Picking------------" & CRLF)
|
||||
|
||||
Printer1.WriteString("" & CRLF)
|
||||
|
||||
|
||||
Printer1.WriteString("------------------------------" & CRLF)
|
||||
' aqui es donde esta el pedo de julieta de los descuentos quitar el precio2 pero meter un if para saber si es ruta especial o es normal o que show.
|
||||
s=Starter.skmt.ExecQuery($"select HVD_PRONOMBRE, HVD_CANT, length(HVD_CANT) as L_CANT, HVD_COSTO_TOT, length(HVD_COSTO_TOT) as L_COSTOU,HVD_PROID, HVD_CODPROMO,IFNULL(HVD_RECHAZOCANT,0) AS HVD_RECHAZOCANT, HVD_RECHAZO FROM HIST_VENTAS WHERE HVD_CLIENTE IN (Select CUENTA from cuentaa) order by HVD_PROID"$)
|
||||
@@ -1237,10 +1167,7 @@ Private Sub B_IMP_Click
|
||||
S.Position=i
|
||||
Log(s.GetString("HVD_RECHAZO"))
|
||||
If s.GetString("HVD_CANT") - s.GetString("HVD_RECHAZOCANT") > 0 Then
|
||||
|
||||
|
||||
If s.GetString("HVD_CODPROMO") = Subs.traeAlmacen Then
|
||||
|
||||
Printer1.Justify = 0
|
||||
Printer1.WriteString((s.GetString("HVD_CANT") - s.GetString("HVD_RECHAZOCANT") )&" "&s.GetString("HVD_PRONOMBRE") & CRLF)
|
||||
|
||||
@@ -1266,9 +1193,7 @@ Private Sub B_IMP_Click
|
||||
' TAMANO = 0
|
||||
' ESPACIO = 29
|
||||
' BLANCO = " "
|
||||
|
||||
Else If s.GetString("HVD_RECHAZO") = 1 Then
|
||||
|
||||
Printer1.Justify = 0
|
||||
Printer1.WriteString((s.GetString("HVD_CANT") - s.GetString("HVD_RECHAZOCANT")) &" "&s.GetString("HVD_PRONOMBRE") & CRLF)
|
||||
|
||||
@@ -1314,26 +1239,18 @@ Private Sub B_IMP_Click
|
||||
For i=0 To S.RowCount -1
|
||||
S.Position=i
|
||||
If s.GetString("HVD_CANT") - s.GetString("HVD_RECHAZOCANT") > 0 Then
|
||||
|
||||
|
||||
If s.GetString("HVD_CODPROMO") <> Subs.traeAlmacen Then
|
||||
|
||||
Printer1.Justify = 0
|
||||
If s.GetString("HVD_CODPROMO") = s.GetString("HVD_PROID") Then
|
||||
Printer1.WriteString("* "&s.GetString("HVD_PRONOMBRE") & CRLF)
|
||||
Else
|
||||
Printer1.WriteString((s.GetString("HVD_CANT") - s.GetString("HVD_RECHAZOCANT"))&" "&s.GetString("HVD_PRONOMBRE") & CRLF)
|
||||
End If
|
||||
|
||||
|
||||
' Dim punit As String =NumberFormat2((s.GETSTRING("HVD_COSTO_TOT")/s.GetString("HVD_CANT")),0,2,2,False)
|
||||
' TAMANO = punit.Length + TAMANO
|
||||
'
|
||||
'
|
||||
' Private ptot As String = NumberFormat2((punit*s.GetString("HVD_CANT")),0,2,2,False)
|
||||
' TAMANO = ptot.Length + TAMANO
|
||||
'
|
||||
'
|
||||
' ESPACIO = (ESPACIO - TAMANO)/2
|
||||
' Log(ESPACIO)
|
||||
' For E=0 To ESPACIO -1
|
||||
@@ -1350,7 +1267,6 @@ Private Sub B_IMP_Click
|
||||
' BLANCO = " "
|
||||
Printer1.Justify = 0
|
||||
Else
|
||||
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
@@ -1361,11 +1277,7 @@ Private Sub B_IMP_Click
|
||||
Printer1.WriteString(" " & CRLF)
|
||||
Sleep(1000)
|
||||
Printer1.DisConnect
|
||||
|
||||
ProgressDialogHide
|
||||
|
||||
|
||||
|
||||
' Guardado
|
||||
|
||||
End Sub
|
||||
@@ -84,7 +84,6 @@ Sub Class_Globals
|
||||
Private p_principal As Panel
|
||||
Dim ime As IME
|
||||
Private b_tabulador As Button
|
||||
|
||||
Private l_rutasP As Label
|
||||
Private l_rechazo As Label
|
||||
Private Label9 As Label
|
||||
@@ -95,7 +94,6 @@ Sub Class_Globals
|
||||
Private b_regreso As Button
|
||||
Private lv_prod_Prin As ListView
|
||||
Private b_venta_emp As Button
|
||||
|
||||
Private ListView2 As ListView
|
||||
Private Button1 As Button
|
||||
Private P_PAGARES As Panel
|
||||
@@ -146,10 +144,10 @@ Private Sub B4XPage_Created (Root1 As B4XView)
|
||||
' l_aLiquidar.Text = c.GetString("MONTO_DIA")
|
||||
' l_cuantosc.Text = c.GetString("CLIENTES_DIA")
|
||||
' l_cuantosn.Text = b.GetString("CUANTOS")
|
||||
'' drop = c.GetString("MONTO_DIA") / c.GetString("CLIENTES_DIA")
|
||||
'' drop = c.GetString("MONTO_DIA") / c.GetString("CLIENTES_DIA")
|
||||
'' l_montoSalida.Text = Round2(drop,2)
|
||||
'' efectiva = c.GetString("CLIENTES_DIA") / e.GetString("POR_VISITAR")
|
||||
'' l_efectiva.text = Round2(efectiva * 100, 2)
|
||||
'' efectiva = c.GetString("CLIENTES_DIA") / e.GetString("POR_VISITAR")
|
||||
'' l_efectiva.text = Round2(efectiva * 100, 2)
|
||||
' l_ctast.Text = d.GetString("TOTAL_VISITAR")
|
||||
' l_porvisitar.Text = e.GetString("POR_VISITAR")
|
||||
' b.Close
|
||||
@@ -284,7 +282,7 @@ Sub B4XPage_Appear
|
||||
' If F4.GetString("CUANTOS") > 0 Then
|
||||
' f3=Starter.skmt.execqUery("select sum(pe_costo_tot) as MONTO_VENTA FROM PEDIDO")
|
||||
' f3.Position=0
|
||||
'' Log(MONTO_REC_DIA & " - " & f3.GetString("MONTO_VENTA"))
|
||||
'' Log(MONTO_REC_DIA & " - " & f3.GetString("MONTO_VENTA"))
|
||||
' l_efectiva.text = to_number_vb(MONTO_REC_DIA - f3.GetString("MONTO_VENTA")) & "..."
|
||||
' f3.Close
|
||||
' Else
|
||||
@@ -315,11 +313,11 @@ Sub B4XPage_Appear
|
||||
' c=Starter.skmt.ExecQuery2("select count(*) as CUANTOS from CAT_VARIABLES where CAT_VA_DESCRIPCION = ? ", Array As String("CAMBIOS"))
|
||||
' c.Position = 0
|
||||
' If c.GetString("CUANTOS") = 0 Then
|
||||
'' cambios.Text = 0
|
||||
'' cambios.Text = 0
|
||||
' Else
|
||||
' B=Starter.skmt.ExecQuery("select CAT_VA_VALOR from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'CAMBIOS'")
|
||||
' B.Position = 0
|
||||
'' cambios.Text = b.GetString("CAT_VA_VALOR")
|
||||
'' cambios.Text = b.GetString("CAT_VA_VALOR")
|
||||
' b.Close
|
||||
' End If
|
||||
c.Close
|
||||
@@ -398,8 +396,7 @@ Sub B4XPage_Appear
|
||||
Next
|
||||
End If
|
||||
cancelrecha.Close
|
||||
|
||||
|
||||
|
||||
''' RECHAZO - VENTA
|
||||
Private r5 As Cursor = Starter.skmt.ExecQuery($"select IFNULL(HVD_COSTO_TOT,0) AS HVD_COSTO_TOT, IFNULL(HVD_CANT,0) AS HVD_CANT, IFNULL(HVD_RECHAZOCANT,0) AS HVD_RECHAZOCANT, HVD_PROID, HVD_CLIENTE, CONSECUTIVO from HIST_VENTAS where HVD_RECHAZO = '1' and BCAJAS = '0' ORDER BY HVD_PROID "$)
|
||||
|
||||
@@ -410,13 +407,11 @@ Sub B4XPage_Appear
|
||||
Private r6 As Cursor = Starter.skmt.ExecQuery($"select IFNULL(SUM(PE_CANT),0) AS PE_CANT from PEDIDO where PE_CLIENTEOR = '${r5.GetString("HVD_CLIENTE")}' AND PE_PROID = '${r5.GetString("HVD_PROID")}' AND CONSECUTIVO = '${r5.GetString("CONSECUTIVO")}' "$)
|
||||
Dim totalcantped As String
|
||||
If r6.RowCount > 0 Then
|
||||
r6.Position = 0
|
||||
r6.Position = 0
|
||||
totalcantped = r6.GetString("PE_CANT")
|
||||
Else
|
||||
|
||||
totalcantped = 0
|
||||
End If
|
||||
|
||||
Log(r5.GetString("HVD_RECHAZOCANT") &" - "& totalcantped)
|
||||
rescant = rescant + ((r5.GetString("HVD_COSTO_TOT")/(r5.GetString("HVD_CANT")))*((r5.GetString("HVD_RECHAZOCANT") - totalcantped)))
|
||||
' Log(rescant)
|
||||
@@ -424,13 +419,10 @@ Sub B4XPage_Appear
|
||||
Next
|
||||
End If
|
||||
If rescant = "NaN" Then rescant = 0
|
||||
LogColor(rescant,Colors.Red)
|
||||
' LogColor(rescant,Colors.Red)
|
||||
r5.Close
|
||||
|
||||
|
||||
|
||||
Private r5 As Cursor = Starter.skmt.ExecQuery($"select IFNULL(HVD_COSTO_TOT,0) AS HVD_COSTO_TOT, IFNULL(HVD_CANT,0) AS HVD_CANT,IFNULL(CANTC,0) AS CANTC, IFNULL(HVD_RECHAZOCANT,0) AS HVD_RECHAZOCANT, HVD_PROID, HVD_CLIENTE, CONSECUTIVO from HIST_VENTAS where HVD_RECHAZO = '1' and BCAJAS = '1' "$)
|
||||
|
||||
' Private r5 As Cursor = Starter.skmt.ExecQuery($"select * from HIST_VENTAS where HVD_RECHAZO = '1' and BCAJAS = '1' "$)
|
||||
|
||||
Private rescant2 As Double = 0
|
||||
@@ -449,11 +441,9 @@ Sub B4XPage_Appear
|
||||
Log(rescant2)
|
||||
r5.Close
|
||||
'''FIN RECHAZO - VENTA
|
||||
|
||||
|
||||
|
||||
'''RECHAZO
|
||||
Private r5r As Cursor = Starter.skmt.ExecQuery($"select IFNULL(HVD_COSTO_TOT,0) AS HVD_COSTO_TOT, IFNULL(HVD_CANT,0) AS HVD_CANT, IFNULL(HVD_RECHAZOCANT,0) AS HVD_RECHAZOCANT, HVD_PROID, HVD_CLIENTE, CONSECUTIVO from HIST_VENTAS where HVD_RECHAZO = '1' and BCAJAS = '0' "$)
|
||||
|
||||
Private rescantr As String = 0
|
||||
If r5r.RowCount > 0 Then
|
||||
For j4r = 0 To r5r.RowCount -1
|
||||
@@ -470,12 +460,11 @@ Sub B4XPage_Appear
|
||||
' LogColor(rescant,Colors.Red)
|
||||
r5r.Close
|
||||
|
||||
Log(rescantr)
|
||||
|
||||
' Log(rescantr)
|
||||
|
||||
Private r5r As Cursor = Starter.skmt.ExecQuery($"select IFNULL(HVD_COSTO_TOT,0) AS HVD_COSTO_TOT, IFNULL(HVD_CANT,0) AS HVD_CANT,IFNULL(CANTC,0) AS CANTC, IFNULL(HVD_RECHAZOCANT,0) AS HVD_RECHAZOCANT, HVD_PROID, HVD_CLIENTE, CONSECUTIVO from HIST_VENTAS where HVD_RECHAZO = '1' and BCAJAS = '1' "$)
|
||||
|
||||
' Private r5 As Cursor = Starter.skmt.ExecQuery($"select * from HIST_VENTAS where HVD_RECHAZO = '1' and BCAJAS = '1' "$)
|
||||
|
||||
Private rescant2r As String = 0
|
||||
If r5r.RowCount > 0 Then
|
||||
For j5r = 0 To r5r.RowCount -1
|
||||
@@ -496,7 +485,6 @@ Sub B4XPage_Appear
|
||||
'''' FIN RECHAZO
|
||||
|
||||
'''''
|
||||
|
||||
' Private r5 As Cursor = Starter.skmt.ExecQuery($"select IFNULL(SUM(HVD_COSTO_TOT),0) AS HVD_COSTO_TOT from HIST_VENTAS where HVD_RECHAZO = '0' and BCAJAS = '0' "$)
|
||||
' Private rescant3 As Double = 0
|
||||
' If r5.RowCount > 0 Then
|
||||
@@ -508,25 +496,21 @@ Sub B4XPage_Appear
|
||||
' r5.Close
|
||||
|
||||
Private r55 As Cursor = Starter.skmt.ExecQuery($"select HVD_COSTO_TOT from HIST_VENTAS where HVD_RECHAZO = '0' and BCAJAS = '0' "$)
|
||||
Private rescant3 As Double
|
||||
Private rescant3 As Double
|
||||
If r55.RowCount > 0 Then
|
||||
For r75 = 0 To r55.RowCount -1
|
||||
r55.Position = r75
|
||||
rescant3 = rescant3 + r55.GetString("HVD_COSTO_TOT")
|
||||
rescant3 = NumberFormat2(rescant3, 0, 2, 2, False)
|
||||
|
||||
Next
|
||||
End If
|
||||
Log(rescant3)
|
||||
' Log(rescant3)
|
||||
r55.Close
|
||||
|
||||
|
||||
|
||||
|
||||
Private r5 As Cursor = Starter.skmt.ExecQuery($"select IFNULL(SUM(HVD_COSTO_TOT),0) AS HVD_COSTO_TOT from HIST_VENTAS where HVD_RECHAZO = '0' and BCAJAS = '1' "$)
|
||||
Private rescant4 As Double
|
||||
If r5.RowCount > 0 Then
|
||||
r5.Position = 0
|
||||
r5.Position = 0
|
||||
rescant4 = r5.GetString("HVD_COSTO_TOT")
|
||||
End If
|
||||
Log(rescant4)
|
||||
@@ -535,14 +519,11 @@ Sub B4XPage_Appear
|
||||
Private r5 As Cursor = Starter.skmt.ExecQuery($"select IFNULL(SUM(PE_COSTO_TOT),0) AS PE_COSTO_TOT from PEDIDO "$)
|
||||
Private rescant5 As Double
|
||||
If r5.RowCount > 0 Then
|
||||
r5.Position = 0
|
||||
r5.Position = 0
|
||||
rescant5 = r5.GetString("PE_COSTO_TOT")
|
||||
End If
|
||||
Log(rescant5)
|
||||
r5.Close
|
||||
|
||||
|
||||
|
||||
'''
|
||||
Private r5 As Cursor = Starter.skmt.ExecQuery($"select IFNULL(HVD_COSTO_TOT,0) AS HVD_COSTO_TOT, IFNULL(HVD_CANT,0) AS HVD_CANT, IFNULL(HVD_RECHAZOCANT,0) AS HVD_RECHAZOCANT, HVD_PROID, HVD_CLIENTE, CONSECUTIVO from HIST_VENTAS where HVD_RECHAZO = '1' and BCAJAS = '0' "$)
|
||||
Private rescant6 As Double
|
||||
@@ -577,12 +558,8 @@ Sub B4XPage_Appear
|
||||
If rescant7 = "NaN" Then rescant7 = 0
|
||||
Log(rescant7)
|
||||
r5.Close
|
||||
|
||||
|
||||
l_rechazo.text = NumberFormat2((rescant + rescant2),0,2,2,False)
|
||||
L_MONTOE.Text = NumberFormat2((rescant3 + rescant4 + rescant5 + rescant6 + rescant7),0,2,2,False)
|
||||
|
||||
|
||||
B4XPages.MainPage.clientesVisitados = L_MONTOE.Text
|
||||
B4XPages.MainPage.clientesVenta = l_cuantosc.Text
|
||||
B4XPages.MainPage.clientesRechazo = l_cuantosn.Text
|
||||
@@ -593,14 +570,12 @@ Sub B4XPage_Appear
|
||||
B4XPages.MainPage.rechazos = l_cuantosn.text
|
||||
B4XPages.MainPage.montoEntregado = L_MONTOE.text
|
||||
B4XPages.MainPage.montoRechazado = l_rechazo.text
|
||||
|
||||
reqManager.Initialize(Me, B4XPages.MainPage.server)
|
||||
' LogColor($"ReqServer = ${B4XPages.MainPage.server}"$, Colors.red)
|
||||
|
||||
If l_ctast.Text = 0 And l_porvisitar.Text <> 0 Then
|
||||
Label9.Visible = True
|
||||
L_MONTOE.Visible = True
|
||||
|
||||
'' hacer validacion su hay rechazo
|
||||
' c=Starter.skmt.ExecQuery("select * from HIST_VENTAS WHERE hvd_rechazo <> 2 and HVD_RECHAZOCANT > 0 order by HVD_CODPROMO desc, HVD_PRONOMBRE asc")
|
||||
' If c.RowCount > 0 Then
|
||||
@@ -616,21 +591,16 @@ Sub B4XPage_Appear
|
||||
End If
|
||||
' Label9.Visible = True
|
||||
' L_MONTOE.Visible = True
|
||||
|
||||
' If l_ctast.Text = 0 Then
|
||||
'
|
||||
' Else
|
||||
' StartActivity(MAPA_RUTAS)
|
||||
' End If
|
||||
|
||||
|
||||
|
||||
' checachek
|
||||
End Sub
|
||||
|
||||
Sub checachek
|
||||
b = Starter.skmt.ExecQuery("SELECT CHECADO FROM CHECADO_CHECK")
|
||||
If b.RowCount > 0 Then
|
||||
b = Starter.skmt.ExecQuery("SELECT CHECADO FROM CHECADO_CHECK")
|
||||
If b.RowCount > 0 Then
|
||||
b.Position = 0
|
||||
If b.GetString("CHECADO") = 0 Then
|
||||
b_check.Visible = True
|
||||
@@ -638,7 +608,7 @@ Sub checachek
|
||||
b_check.Visible =False
|
||||
End If
|
||||
b.Close
|
||||
End If
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Sub IsConnectedToInternet As Boolean 'ignore
|
||||
@@ -666,12 +636,10 @@ End Sub
|
||||
|
||||
Sub trabajar_Click
|
||||
If b_check.Visible = True Then
|
||||
MsgboxAsync("Favor de hacer el checklist.","Atención")
|
||||
MsgboxAsync("Favor de hacer el checklist.","Atención")
|
||||
Else
|
||||
|
||||
B4XPages.ShowPage("Clientes")
|
||||
B4XPages.ShowPage("Clientes")
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
Sub Subir_Click
|
||||
@@ -686,7 +654,7 @@ Sub Subir_Click
|
||||
' Starter.skmt.ExecNonQuery2("INSERT INTO BLOCKENVIO(ENVIADO) VALUES (?)", Array As Object (1))
|
||||
' envioinfo
|
||||
' Else
|
||||
envioinfo
|
||||
envioinfo
|
||||
' End If
|
||||
' c.Close
|
||||
|
||||
@@ -697,9 +665,6 @@ Sub Subir_Click
|
||||
End Sub
|
||||
|
||||
Sub envioinfo
|
||||
|
||||
|
||||
|
||||
' NOVENTA
|
||||
c = Starter.skmt.ExecQuery("SELECT NV_CLIENTE,NV_FECHA,NV_USER,NV_MOTIVO,NV_COMM,NV_LAT,NV_LON, NV_FOTO, NV_REPROGRAMAR FROM NOVENTA")
|
||||
D=Starter.skmt.ExecQuery("SELECT COUNT(*) AS CUANTOS_NOVENTA FROM NOVENTA")
|
||||
@@ -718,8 +683,7 @@ Sub envioinfo
|
||||
d.Position=0
|
||||
cuantos_noventa = D.GetString("CUANTOS_NOVENTA")
|
||||
d.Close
|
||||
|
||||
|
||||
|
||||
'PAGARES.
|
||||
Dim pa As Cursor =Starter.skmt.ExecQuery("select PA_ALMACEN,PA_RUTA_REP,PA_RUTAPREV,PA_FECHA_PREV,PA_CAPTURA,PA_MONTO,PA_USUARIO,PA_CLIENTE,IFNULL(PA_CANCELADO,0) AS PA_CANCELADO from PAGARES")
|
||||
If pa.RowCount > 0 Then
|
||||
@@ -736,19 +700,15 @@ Sub envioinfo
|
||||
Dim fechaano As String = fechaenvio1(2).SubString(2)
|
||||
Dim fechareal As String = fechaenvio1(0)&"/"&fechaenvio1(1)&"/"&fechaano
|
||||
' Log(fechareal)
|
||||
|
||||
Dim fechacap() As String
|
||||
fechacap = Regex.Split("/",pa.GetString("PA_CAPTURA"))
|
||||
Dim fechacapano As String = fechacap(2).SubString(2)
|
||||
Dim fechacapreal As String = fechacap(0)&"/"&fechacap(1)&"/"&fechacapano
|
||||
|
||||
If pa.GetString("PA_CANCELADO") = "2" Then
|
||||
cmd.Parameters = Array As Object(pa.GetString("PA_CLIENTE"),pa.GetString("PA_MONTO"),fechacapreal,pa.GetString("PA_ALMACEN"),pa.GetString("PA_RUTAPREV"),pa.GetString("PA_RUTA_REP"),fechareal,pa.GetString("PA_USUARIO"),2)
|
||||
Else
|
||||
cmd.Parameters = Array As Object(pa.GetString("PA_CLIENTE"),pa.GetString("PA_MONTO"),fechacapreal,pa.GetString("PA_ALMACEN"),pa.GetString("PA_RUTAPREV"),pa.GetString("PA_RUTA_REP"),fechareal,pa.GetString("PA_USUARIO"),"")
|
||||
End If
|
||||
|
||||
|
||||
reqManager.ExecuteCommand(cmd , "ins_pagares")
|
||||
Next
|
||||
End If
|
||||
@@ -762,10 +722,9 @@ Sub envioinfo
|
||||
If ab.RowCount > 0 Then
|
||||
For i=0 To ab.RowCount -1
|
||||
ab.Position = i
|
||||
|
||||
Dim ab1 As Cursor = Starter.skmt.ExecQuery($"SELECT SUM(a_abono) AS a_abono from ABONOS where a_cliente = '${ab.GetString("a_cliente")}'"$)
|
||||
ab1.Position = 0
|
||||
|
||||
|
||||
Dim cmd As DBCommand
|
||||
cmd.Initialize
|
||||
cmd.Name = "insert_abono_REP_GUNA_VN"
|
||||
@@ -817,8 +776,6 @@ Sub envioinfo
|
||||
b.Close
|
||||
f.Close
|
||||
End If
|
||||
|
||||
|
||||
c = Starter.skmt.ExecQuery("SELECT MIL, QUINIENTOS, DOCIENTOS, CIEN, CINCUENTA, VEINTE FROM TABULADOR_BILLETES")
|
||||
d = Starter.skmt.ExecQuery("SELECT RUTAA FROM RUTAA")
|
||||
b = Starter.skmt.ExecQuery("SELECT ID_ALMACEN FROM CAT_ALMACEN")
|
||||
@@ -831,7 +788,6 @@ Sub envioinfo
|
||||
c.Position=i
|
||||
Dim cmd As DBCommand
|
||||
Dim fechatabulador() As String = Regex.Split(" ", f.GetString("HVD_FECHA"))
|
||||
|
||||
Dim fechatabulador3 As String = fechatabulador(0)
|
||||
cmd.Initialize
|
||||
cmd.Name = "insert_tabulador_billetes_GUNA_VN"
|
||||
@@ -887,10 +843,6 @@ Sub envioinfo
|
||||
Next
|
||||
End If
|
||||
c.Close
|
||||
|
||||
|
||||
|
||||
|
||||
Dim cmd As DBCommand
|
||||
cmd.Initialize
|
||||
cmd.Name = "insert_drop_rep_GUNA_VN"
|
||||
@@ -1036,7 +988,6 @@ Sub cargar_Click
|
||||
' Next
|
||||
' End If
|
||||
' c.Close
|
||||
|
||||
D=Starter.skmt.ExecQuery("SELECT COUNT(*) AS CUANTOS_NOVENTA FROM NOVENTA")
|
||||
d.Position=0
|
||||
cuantos_noventa = D.GetString("CUANTOS_NOVENTA")
|
||||
@@ -1048,17 +999,12 @@ Sub cargar_Click
|
||||
ToastMessageShow("Se actualizarán los datos, este proceso podria tardar hasta un minuto, gracias" , True)
|
||||
ProgressDialogShow2("Descargando rutas, espere un momento.", False)
|
||||
If Not(IsConnectedToInternet) Then MsgboxAsync("No hay conexión a Internet", "Revisa tu conexión")
|
||||
|
||||
|
||||
Else
|
||||
Log("XXXX")
|
||||
MsgboxAsync("Para poder cargar día no puedes tener venta del día anterior. Por favor haz FIN DIA e intenta nuevamente.","Atención")
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
Sub JobDone(Job As HttpJob)
|
||||
' Private r As DBResult = reqManager.HandleJob(Job)
|
||||
If Job.Success = False Then
|
||||
@@ -1128,7 +1074,6 @@ Sub JobDone(Job As HttpJob)
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
If Job.JobName = "DBRequest" Then
|
||||
Dim result As DBResult = reqManager.HandleJob(Job)
|
||||
If result.Tag = "gunaprod3" Then 'query tag
|
||||
@@ -1362,7 +1307,7 @@ Sub JobDone(Job As HttpJob)
|
||||
If tc.RowCount = 0 Then
|
||||
Log($"Guardamos ${HVD_CLIENTE}"$)
|
||||
Starter.skmt.ExecNonQuery2("INSERT INTO HIST_VENTAS(HVD_CLIENTE,HVD_PRONOMBRE,HVD_CANT,HVD_COSTO_TOT, HVD_FECHA, HVD_CODPROMO, HVD_PROID,HVD_NUM_TICKET, HVD_NUM_REGISTRO, HVD_RECHAZO, HVD_ESTATUS, HVD_PARCIAL, BCAJAS,CANTC,CONSECUTIVO,BCAJAS_OR,CANTC_OR) VALUES (?,?,?,?,?,?,?,?,?,?,0,0,?,?,?,?,?)", Array As Object (HVD_CLIENTE,HVD_PRONOMBRE,HVD_CANT,HVD_COSTO_TOT,HVD_FECHA, HVD_CODPROMO, HVD_PROID,HVD_NUM_TICKET, HVD_NUM_REGISTRO, HVD_RECHAZO, bcajas,cantc,consecutivo,bcajas,cantc))
|
||||
Starter.skmt.ExecNonQuery2("INSERT INTO HIST_VENTAS2(HVD_CLIENTE,HVD_PRONOMBRE,HVD_CANT,HVD_COSTO_TOT, HVD_FECHA, HVD_CODPROMO, HVD_PROID,HVD_NUM_TICKET, HVD_NUM_REGISTRO, HVD_RECHAZO, HVD_ESTATUS, HVD_PARCIAL) VALUES (?,?,?,?,?,?,?,?,?,?,0,0)", Array As Object (HVD_CLIENTE,HVD_PRONOMBRE,HVD_CANT,HVD_COSTO_TOT,HVD_FECHA, HVD_CODPROMO, HVD_PROID,HVD_NUM_TICKET, HVD_NUM_REGISTRO, HVD_RECHAZO))
|
||||
Starter.skmt.ExecNonQuery2("INSERT INTO HIST_VENTAS2(HVD_CLIENTE,HVD_PRONOMBRE,HVD_CANT,HVD_COSTO_TOT, HVD_FECHA, HVD_CODPROMO, HVD_PROID,HVD_NUM_TICKET, HVD_NUM_REGISTRO, HVD_RECHAZO, HVD_ESTATUS, HVD_PARCIAL) VALUES (?,?,?,?,?,?,?,?,?,?,0,0)", Array As Object (HVD_CLIENTE,HVD_PRONOMBRE,HVD_CANT,HVD_COSTO_TOT,HVD_FECHA, HVD_CODPROMO, HVD_PROID,HVD_NUM_TICKET, HVD_NUM_REGISTRO, HVD_RECHAZO))
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
@@ -1403,8 +1348,7 @@ Sub JobDone(Job As HttpJob)
|
||||
Next
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
|
||||
If Job.JobName = "DBRequest" Then
|
||||
Dim result As DBResult = reqManager.HandleJob(Job)
|
||||
If result.Tag = "PAGARES" Then 'query tag
|
||||
@@ -1433,8 +1377,6 @@ Sub JobDone(Job As HttpJob)
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
|
||||
If Job.JobName = "DBRequest" Then
|
||||
Dim result As DBResult = reqManager.HandleJob(Job)
|
||||
If result.Tag = "valida_pedidoc" Then 'query tag
|
||||
@@ -1550,7 +1492,7 @@ Sub JobDone(Job As HttpJob)
|
||||
End If
|
||||
End If
|
||||
|
||||
If Job.JobName = "DBRequest" Then
|
||||
If Job.JobName = "DBRequest" Then
|
||||
Dim result As DBResult = reqManager.HandleJob(Job)
|
||||
If result.Tag = "ins_reparto" Then 'query tag
|
||||
For Each records() As Object In result.Rows
|
||||
@@ -1574,18 +1516,13 @@ Sub JobDone(Job As HttpJob)
|
||||
Job.Release
|
||||
End If
|
||||
If reqs.Size = 0 Then
|
||||
|
||||
|
||||
|
||||
ProgressDialogHide
|
||||
|
||||
c = Starter.skmt.ExecQuery("SELECT COUNT(*) AS CUANTOS FROM CHECADO_CHECK")
|
||||
c.Position = 0
|
||||
If c.GetString("CUANTOS") = 0 Then
|
||||
Starter.skmt.ExecNonQuery2("insert into CHECADO_CHECK (CHECADO) VALUES(?)", Array As String("0"))
|
||||
|
||||
Else If c.GetString("CUANTOS") = 1 Then
|
||||
|
||||
End If
|
||||
c.Close
|
||||
' Log(reqs.size)
|
||||
@@ -1636,7 +1573,7 @@ Sub BUSCA_Click
|
||||
MsgboxAsync("Favor de hacer el checklist.","Atención")
|
||||
Else
|
||||
' StartActivity(BUSCAR)
|
||||
B4XPages.ShowPage("Buscar")
|
||||
B4XPages.ShowPage("Buscar")
|
||||
End If
|
||||
End Sub
|
||||
|
||||
@@ -1710,36 +1647,34 @@ Sub B_CLIEPROD_Click
|
||||
Panel1.Width = Root.Width
|
||||
Panel1.Height = Root.Height
|
||||
' ListView1. = Panel1.Width / 2
|
||||
|
||||
B_REGRESA.Left = (Panel1.Width - B_REGRESA.Width) / 2
|
||||
B_REGRESA.Top = Panel1.Height - B_REGRESA.Height
|
||||
BUSCA.Visible = False
|
||||
connecta.Visible = False
|
||||
trabajar.Visible = False
|
||||
B_CLIEPROD.Visible = False
|
||||
Panel1.Visible = True
|
||||
Panel1.BringToFront
|
||||
Btn_Ubicar_Ru.Visible=False
|
||||
c=Starter.skmt.ExecQuery("select * from kmt_info WHERE gestion <> 0 order by HORAENT")
|
||||
Subs.SetDivider(ListView1, Colors.LightGray, 2)
|
||||
ListView1.Clear
|
||||
ListView1.TwoLinesLayout.ItemHeight = 120dip
|
||||
|
||||
Dim label1 As Label
|
||||
label1 = ListView1.TwoLinesLayout.Label
|
||||
label1.TextSize = 22
|
||||
label1.TextColor = Colors.White
|
||||
label1.Height = 60dip
|
||||
Dim label2 As Label
|
||||
label2 = ListView1.TwoLinesLayout.SecondLabel
|
||||
label2.TextSize = 22
|
||||
label2.TextColor = Colors.White
|
||||
label2.Top = 60dip
|
||||
BUSCA.Visible = False
|
||||
connecta.Visible = False
|
||||
trabajar.Visible = False
|
||||
B_CLIEPROD.Visible = False
|
||||
Panel1.Visible = True
|
||||
Panel1.BringToFront
|
||||
Btn_Ubicar_Ru.Visible=False
|
||||
c=Starter.skmt.ExecQuery("select * from kmt_info WHERE gestion <> 0 order by HORAENT")
|
||||
Subs.SetDivider(ListView1, Colors.LightGray, 2)
|
||||
ListView1.Clear
|
||||
ListView1.TwoLinesLayout.ItemHeight = 120dip
|
||||
Dim label1 As Label
|
||||
label1 = ListView1.TwoLinesLayout.Label
|
||||
label1.TextSize = 22
|
||||
label1.TextColor = Colors.White
|
||||
label1.Height = 60dip
|
||||
Dim label2 As Label
|
||||
label2 = ListView1.TwoLinesLayout.SecondLabel
|
||||
label2.TextSize = 22
|
||||
label2.TextColor = Colors.White
|
||||
label2.Top = 60dip
|
||||
label1.Typeface = Typeface.CreateNew(Typeface.DEFAULT_BOLD, Typeface.STYLE_BOLD)
|
||||
label2.Typeface = Typeface.CreateNew(Typeface.DEFAULT_BOLD, Typeface.STYLE_BOLD)
|
||||
If c.RowCount>0 Then
|
||||
For i=0 To c.RowCount -1
|
||||
c.Position=i
|
||||
If c.RowCount>0 Then
|
||||
For i=0 To c.RowCount -1
|
||||
c.Position=i
|
||||
If c.GetString("gestion") = "2" Then
|
||||
ESTATUS = "ENTREGADO"
|
||||
Log("entrega")
|
||||
@@ -1749,12 +1684,8 @@ Sub B_CLIEPROD_Click
|
||||
Else
|
||||
ESTATUS = "SIN ESTATUS"
|
||||
End If
|
||||
|
||||
|
||||
|
||||
If ESTATUS = "ENTREGADO" Then
|
||||
Private vc As Cursor = Starter.skmt.ExecQuery($"select HVD_PROID,HVD_COSTO_TOT, HVD_CANT, IFNULL(HVD_RECHAZOCANT, 0) AS HVD_RECHAZOCANT, CAT_GP_PRECIO from HIST_VENTAS LEFT JOIN CAT_GUNAPROD ON CAT_GP_ID = HVD_PROID where BCAJAS = 0 and HVD_CODPROMO ='${Subs.traealmacen}' and HVD_CLIENTE = '${c.GetString("CAT_CL_CODIGO")}'"$)
|
||||
|
||||
Private cuenta0 As String = 0
|
||||
Private arti As String = 0
|
||||
If vc.RowCount > 0 Then
|
||||
@@ -1766,7 +1697,6 @@ Sub B_CLIEPROD_Click
|
||||
Next
|
||||
End If
|
||||
' Log(cuenta0)
|
||||
|
||||
Private vc2 As Cursor = Starter.skmt.ExecQuery($"select HVD_PROID, HVD_CANT, IFNULL(HVD_RECHAZOCANT, 0) AS HVD_RECHAZOCANT, CANTC,HVD_COSTO_TOT from HIST_VENTAS where HVD_CLIENTE = '${c.GetString("CAT_CL_CODIGO")}' AND BCAJAS = 1"$)
|
||||
Private Cuenta1 As String = 0
|
||||
Private arti1 As String = 0
|
||||
@@ -1783,12 +1713,10 @@ Sub B_CLIEPROD_Click
|
||||
Next
|
||||
End If
|
||||
' Log(Cuenta1)
|
||||
|
||||
Private vc4 As Cursor = Starter.skmt.ExecQuery($"select HVD_PROID, HVD_CANT, IFNULL(HVD_RECHAZOCANT, 0) AS HVD_RECHAZOCANT, CANTC,HVD_COSTO_TOT, HVD_RECHAZO, HVD_CODPROMO from HIST_VENTAS where HVD_CLIENTE = '${c.GetString("CAT_CL_CODIGO")}' AND BCAJAS = 0 and HVD_CODPROMO <> '${Subs.traeAlmacen}'"$)
|
||||
Private Cuenta2 As String = 0
|
||||
Private arti2 As String = 0
|
||||
If vc4.RowCount > 0 Then
|
||||
|
||||
For k = 0 To vc4.RowCount - 1
|
||||
vc4.Position = k
|
||||
If vc4.GetString("HVD_PROID") <> vc4.GetString("HVD_CODPROMO") Then
|
||||
@@ -1805,11 +1733,9 @@ Sub B_CLIEPROD_Click
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
|
||||
Next
|
||||
End If
|
||||
' Log(arti2)
|
||||
|
||||
Private c4 As Cursor = Starter.skmt.ExecQuery($"SELECT IFNULL(PE_CANT,0) AS PE_CANT, iFNULL(PE_COSTO_TOT,0) AS PE_COSTO_TOT FROM PEDIDO WHERE PE_CLIENTE = '${c.GetString("CAT_CL_CODIGO")}'"$)
|
||||
Private Cuenta3 As String = 0
|
||||
Private arti3 As String = 0
|
||||
@@ -1820,18 +1746,12 @@ Sub B_CLIEPROD_Click
|
||||
Cuenta3 = Cuenta3 + c4.GetString("PE_COSTO_TOT")
|
||||
Next
|
||||
End If
|
||||
|
||||
|
||||
Private TOTALMONTO As String = cuenta0 + Cuenta1 + Cuenta2 + Cuenta3
|
||||
Private TOTALcantidad As String = arti + arti1 +arti2 + arti3
|
||||
|
||||
ListView1.AddTwoLines(c.GetString("CAT_CL_CODIGO")&" - " &c.GetString("CAT_CL_NOMBRE"), "Articulos :"& TOTALcantidad &" Monto :"& NumberFormat2(TOTALMONTO,0,2,2,True) & " " & ESTATUS )
|
||||
Log("si entre2")
|
||||
|
||||
Else If ESTATUS = "RECHAZADO" Then
|
||||
|
||||
Private vc As Cursor = Starter.skmt.ExecQuery($"select HVD_PROID, HVD_CANT, IFNULL(HVD_RECHAZOCANT, 0) AS HVD_RECHAZOCANT, CAT_GP_PRECIO, HVD_COSTO_TOT from HIST_VENTAS LEFT JOIN CAT_GUNAPROD ON CAT_GP_ID = HVD_PROID where BCAJAS = 0 and HVD_CODPROMO ='${Subs.traealmacen}' and HVD_CLIENTE = '${c.GetString("CAT_CL_CODIGO")}'"$)
|
||||
|
||||
Private cuenta0 As String = 0
|
||||
Private arti As String = 0
|
||||
If vc.RowCount > 0 Then
|
||||
@@ -1844,7 +1764,6 @@ Sub B_CLIEPROD_Click
|
||||
Next
|
||||
End If
|
||||
' Log(cuenta0)
|
||||
|
||||
Private vc2 As Cursor = Starter.skmt.ExecQuery($"select HVD_PROID, HVD_CANT, IFNULL(HVD_RECHAZOCANT, 0) AS HVD_RECHAZOCANT, CANTC,HVD_COSTO_TOT from HIST_VENTAS where HVD_CLIENTE = '${c.GetString("CAT_CL_CODIGO")}' AND BCAJAS = 1"$)
|
||||
Private Cuenta1 As String = 0
|
||||
Private arti1 As String = 0
|
||||
@@ -1861,12 +1780,10 @@ Sub B_CLIEPROD_Click
|
||||
Next
|
||||
End If
|
||||
' Log(Cuenta1)
|
||||
|
||||
Private vc4 As Cursor = Starter.skmt.ExecQuery($"select HVD_PROID, HVD_CANT, IFNULL(HVD_RECHAZOCANT, 0) AS HVD_RECHAZOCANT, CANTC,HVD_COSTO_TOT, HVD_RECHAZO, HVD_CODPROMO from HIST_VENTAS where HVD_CLIENTE = '${c.GetString("CAT_CL_CODIGO")}' AND BCAJAS = 0 and HVD_CODPROMO <> '${Subs.traeAlmacen}'"$)
|
||||
Private Cuenta2 As String = 0
|
||||
Private arti2 As String = 0
|
||||
If vc4.RowCount > 0 Then
|
||||
|
||||
For k = 0 To vc4.RowCount - 1
|
||||
vc4.Position = k
|
||||
If vc4.GetString("HVD_PROID") <> vc4.GetString("HVD_CODPROMO") Then
|
||||
@@ -1883,11 +1800,9 @@ Sub B_CLIEPROD_Click
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
|
||||
Next
|
||||
End If
|
||||
' Log(arti2)
|
||||
|
||||
Private c4 As Cursor = Starter.skmt.ExecQuery($"SELECT IFNULL(PE_CANT,0) AS PE_CANT, iFNULL(PE_COSTO_TOT,0) AS PE_COSTO_TOT FROM PEDIDO WHERE PE_CLIENTE = '${c.GetString("CAT_CL_CODIGO")}'"$)
|
||||
Private Cuenta3 As String = 0
|
||||
Private arti3 As String = 0
|
||||
@@ -1898,18 +1813,13 @@ Sub B_CLIEPROD_Click
|
||||
Cuenta3 = Cuenta3 + c4.GetString("PE_COSTO_TOT")
|
||||
Next
|
||||
End If
|
||||
|
||||
|
||||
Private TOTALMONTO As String = cuenta0 + Cuenta1 + Cuenta2 + Cuenta3
|
||||
Private TOTALcantidad As String = arti + arti1 +arti2 + arti3
|
||||
|
||||
Log("si entre")
|
||||
' Log("si entre")
|
||||
ListView1.AddTwoLines(c.GetString("CAT_CL_CODIGO")&" - " &c.GetString("CAT_CL_NOMBRE"), "Articulos :"& TOTALcantidad &" Monto :"& NumberFormat2(TOTALMONTO,0,2,2,True) & " " & ESTATUS )
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
|
||||
|
||||
Next
|
||||
End If
|
||||
|
||||
' c=skmt.ExecQuery("select HVD_CLIENTE, HVD_PRONOMBRE, HVD_CANT, HVD_ESTATUS from HIST_VENTAS ORDER BY HVD_PRONOMBRE")
|
||||
'
|
||||
@@ -1938,7 +1848,7 @@ Sub B_CLIEPROD_Click
|
||||
' ListView1.AddTwoLines(c.GetString("HVD_PRONOMBRE") & " " & c.GetString("HVD_CLIENTE") , c.GetString("HVD_CANT") & " " & ESTATUS )
|
||||
' Next
|
||||
' End If
|
||||
End If
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Sub B_REGRESA_Click
|
||||
@@ -1956,8 +1866,7 @@ Sub Btn_Ubicar_Ru_Click
|
||||
If b_check.Visible = True Then
|
||||
MsgboxAsync("Favor de hacer el checklist.","Atención")
|
||||
Else
|
||||
|
||||
StartActivity(MAPA_RUTAS)
|
||||
StartActivity(MAPA_RUTAS)
|
||||
End If
|
||||
End Sub
|
||||
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
|
||||
@@ -1966,22 +1875,18 @@ Private Sub b_tabulador_Click
|
||||
If b_check.Visible = True Then
|
||||
MsgboxAsync("Favor de hacer el checklist.","Atención")
|
||||
Else
|
||||
B4XPages.ShowPage("tabulador")
|
||||
B4XPages.ShowPage("tabulador")
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub b_check_Click
|
||||
|
||||
B4XPages.ShowPage("checklist")
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub ListView1_ItemClick (Position As Int, Value As Object)
|
||||
Log(Value)
|
||||
|
||||
' Log(Value)
|
||||
Dim clieasing() As String = Regex.Split(" ", Value)
|
||||
Log(clieasing(0))
|
||||
|
||||
Starter.skmt.ExecNonQuery("delete from CUENTAA")
|
||||
Starter.skmt.ExecNonQuery2("INSERT INTO CUENTAA VALUES (?)", Array As Object(clieasing(0)))
|
||||
B4XPages.ShowPage("Cliente")
|
||||
@@ -1999,7 +1904,6 @@ Private Sub b_rechazos_Click
|
||||
b_regreso.Top = p_prod.Height - b_regreso.Height
|
||||
' label1.TextSize = 20
|
||||
label1.Typeface = Typeface.CreateNew(Typeface.DEFAULT_BOLD, Typeface.STYLE_BOLD)
|
||||
|
||||
|
||||
' lv_prod_Prin.Left = p_prod.Width / 2
|
||||
lv_prod_Prin.Width = Root.Width - (Root.Width * .10)
|
||||
@@ -2007,19 +1911,13 @@ Private Sub b_rechazos_Click
|
||||
Subs.centraListView(lv_prod_Prin,Root.Width)
|
||||
p_prod.Visible = True
|
||||
p_prod.BringToFront
|
||||
|
||||
|
||||
|
||||
|
||||
Private c As Cursor = Starter.skmt.ExecQuery("select HVD_PRONOMBRE, IFNULL(SUM(HVD_RECHAZOCANT), 0) AS HVD_RECHAZOCANT, HVD_PROID from HIST_VENTAS WHERE hvd_rechazo <> 2 and HVD_RECHAZOCANT > 0 GROUP BY HVD_PROID order by HVD_PRONOMBRE asc")
|
||||
|
||||
lv_prod_Prin.SingleLineLayout.Label.TextColor = Colors.White
|
||||
lv_prod_Prin.Clear
|
||||
If c.RowCount > 0 Then
|
||||
For i = 0 To c.RowCount - 1
|
||||
c.Position = i
|
||||
Dim itemText As String
|
||||
|
||||
Private c3 As Cursor=Starter.skmt.ExecQuery($"select Ifnull(sum(PE_CANT),0) AS PE_CANT from PEDIDO WHERE PE_PROID ='${c.GetString("HVD_PROID")}'"$)
|
||||
Private resta As String = 0
|
||||
|
||||
@@ -2030,13 +1928,11 @@ Private Sub b_rechazos_Click
|
||||
resta = 0
|
||||
End If
|
||||
If ( c.GetInt("HVD_RECHAZOCANT") - resta) <= 0 Then
|
||||
|
||||
|
||||
Else
|
||||
itemText = $"${c.GetString("HVD_PRONOMBRE")} ${CRLF}Inventario: ${(c.GetInt("HVD_RECHAZOCANT") - resta)}"$
|
||||
lv_prod_Prin.AddSingleLine(itemText)
|
||||
End If
|
||||
|
||||
|
||||
Next
|
||||
Else
|
||||
lv_prod_Prin.AddSingleLine("No hay datos disponibles.")
|
||||
@@ -2100,12 +1996,8 @@ Private Sub B_PAGARES_Click
|
||||
For i = 0 To c.RowCount - 1
|
||||
c.Position = i
|
||||
Dim itemText As String
|
||||
|
||||
|
||||
itemText = $"NOMBRE.: ${c.GetString("NOMBRE")} ${CRLF}FOLIO: ${(c.GetInt("NOTA"))}, MONTO: $ ${(c.GetInt("SALDO_PENDIENTE"))}"$
|
||||
ListView2.AddSingleLine(itemText)
|
||||
|
||||
|
||||
Next
|
||||
Else
|
||||
ListView2.AddSingleLine("No hay datos disponibles.")
|
||||
@@ -2113,8 +2005,6 @@ Private Sub B_PAGARES_Click
|
||||
c.Close
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
Private Sub Button1_Click
|
||||
P_PAGARES.Visible = False
|
||||
End Sub
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -310,6 +310,7 @@ Sub InfoWindowLongClick_Event (MethodName As String, Args() As Object) As Object
|
||||
' B4XPages.ShowPage("clientes")
|
||||
B4XPages.MainPage.clientes.caculaRutaGPS(B4XPages.MainPage.clientes.todosAVisitar, False)
|
||||
Log("A VISITAR:" & B4XPages.MainPage.clientes.todosAVisitar)
|
||||
B4XPages.MainPage.clientes.mostrarProgressDialog= True
|
||||
B4XPages.ShowPage("clientes")
|
||||
Loop
|
||||
End If
|
||||
|
||||
491
B4A/QRGenerator.bas
Normal file
491
B4A/QRGenerator.bas
Normal file
@@ -0,0 +1,491 @@
|
||||
B4J=true
|
||||
Group=Default Group
|
||||
ModulesStructureVersion=1
|
||||
Type=Class
|
||||
Version=6.28
|
||||
@EndOfDesignText@
|
||||
'version 1.60
|
||||
Sub Class_Globals
|
||||
Private xui As XUI
|
||||
Public cvs As B4XCanvas
|
||||
Private ModuleSize As Int
|
||||
Private GFSize As Int = 256
|
||||
Private ExpTable(GFSize) As Int
|
||||
Private LogTable(GFSize) As Int
|
||||
Private PolyZero() As Int = Array As Int(0)
|
||||
Private Generator1L() As Int = Array As Int(1, 127, 122, 154, 164, 11, 68, 117)
|
||||
Private Generator4L() As Int = Array As Int(1, 152, 185, 240, 5, 111, 99, 6, 220, 112, 150, 69, 36, 187, 22, 228, 198, 121, 121, 165, 174) '4L
|
||||
Private Generator4H() As Int = Array As Int(1, 59, 13, 104, 189, 68, 209, 30, 8, 163, 65, 41, 229, 98, 50, 36, 59)
|
||||
Private Generator9L() As Int = Array As Int(1, 212, 246, 77, 73, 195, 192, 75, 98, 5, 70, 103, 177, 22, 217, 138, 51, 181, 246, 72, 25, 18, 46, 228, 74, 216, 195, 11, 106, 130, 150)
|
||||
Private TempBB As B4XBytesBuilder
|
||||
Private Matrix(0, 0) As Boolean
|
||||
Private Reserved(0, 0) As Boolean
|
||||
Private NumberOfModules As Int
|
||||
Private mBitmapSize As Int
|
||||
Type QRVersionData (Format() As Byte, Generator() As Int, MaxSize As Int, Version As Int, MaxUsableSize As Int, Alignments() As Int, _
|
||||
Group1Size As Int, Group2Size As Int, Block1Size As Int, Block2Size As Int, VersionName As String, VersionInformation() As Byte)
|
||||
Private versions As List
|
||||
End Sub
|
||||
|
||||
|
||||
Public Sub Initialize (BitmapSize As Int)
|
||||
TempBB.Initialize
|
||||
mBitmapSize = BitmapSize
|
||||
PrepareTables
|
||||
versions.Initialize
|
||||
Dim l0() As Byte = Array As Byte(1,1,1,0,1,1,1,1,1,0,0,0,1,0,0)
|
||||
Dim h0() As Byte = Array As Byte(0,0,1,0,1,1,0,1,0,0,0,1,0,0,1)
|
||||
versions.Add(CreateVersionData(1, "1L", Generator1L, l0, 19 * 8, 17, Array As Int(), 1, 0, 19, 0, Null))
|
||||
versions.Add(CreateVersionData(4, "4H", Generator4H, h0 , 36 * 8, 34, Array As Int(6, 26), 4, 0, 9, 0, Null))
|
||||
versions.Add(CreateVersionData(4, "4L", Generator4L, l0 , 80 * 8, 78, Array As Int(6, 26), 1, 0, 80, 0, Null))
|
||||
versions.Add(CreateVersionData(9, "9L", Generator9L, l0, 232 * 8, 230, Array As Int(6, 26, 46), 2, 0, 116, 0, Array As Byte(0,0,1,0,0,1,1,0,1,0,1,0,0,1,1,0,0,1)))
|
||||
versions.Add(CreateVersionData(23, "23H", Generator9L, h0, 464 * 8, 461, Array As Int(6, 30, 54, 78, 102), 16, 14, 15, 16, _
|
||||
Array As Byte(0,1,0,1,1,1,0,1,1,1,1,1,1,0,1,1,0,0)))
|
||||
versions.Add(CreateVersionData(40, "40H", Generator9L, h0, 1276 * 8, 1273, Array As Int(6, 30, 58, 86, 114, 142, 170), 20, 61, 15, 16, _
|
||||
Array As Byte(1,0,1,0,0,0,1,1,0,0,0,1,1,0,1,0,0,1)))
|
||||
versions.Add(CreateVersionData(40, "40L", Generator9L, l0, 2956 * 8, 2953, Array As Int(6, 30, 58, 86, 114, 142, 170), 19, 6, 118, 119, _
|
||||
Array As Byte(1,0,1,0,0,0,1,1,0,0,0,1,1,0,1,0,0,1)))
|
||||
End Sub
|
||||
|
||||
Private Sub CreateVersionData (Version As Int, Name As String, Generator() As Int, Format() As Byte, MaxSize As Int, MaxUsableSize As Int, Alignments() As Int, _
|
||||
Group1Size As Int, Group2Size As Int, Block1Size As Int, Block2Size As Int, VersionInformation() As Byte) As QRVersionData
|
||||
Dim v As QRVersionData
|
||||
v.Initialize
|
||||
v.Version = Version
|
||||
v.VersionName = Name
|
||||
v.Generator = Generator
|
||||
v.Format = Format
|
||||
v.MaxSize = MaxSize
|
||||
v.MaxUsableSize = MaxUsableSize
|
||||
v.Alignments = Alignments
|
||||
v.Group1Size = Group1Size
|
||||
v.Group2Size = Group2Size
|
||||
v.Block1Size = Block1Size
|
||||
v.Block2Size = Block2Size
|
||||
v.VersionInformation = VersionInformation
|
||||
Return v
|
||||
End Sub
|
||||
|
||||
Public Sub Create(Text As String) As B4XBitmap
|
||||
Dim Bytes() As Byte = Text.GetBytes("utf8") 'non-standard but still recommended
|
||||
Dim vd As QRVersionData
|
||||
For Each version As QRVersionData In versions
|
||||
If version.MaxUsableSize >= Bytes.Length Then
|
||||
vd = version
|
||||
Exit
|
||||
End If
|
||||
Next
|
||||
If vd.IsInitialized = False Then
|
||||
|
||||
Log("Too long!")
|
||||
Return Null
|
||||
End If
|
||||
Log(vd.VersionName & ", Size: " & Bytes.Length)
|
||||
|
||||
NumberOfModules = 17 + vd.Version * 4
|
||||
ModuleSize = mBitmapSize / (NumberOfModules + 8)
|
||||
|
||||
mBitmapSize = ModuleSize * (NumberOfModules + 8)
|
||||
Dim p As B4XView = xui.CreatePanel("")
|
||||
p.SetLayoutAnimated(0, 0, 0, mBitmapSize, mBitmapSize)
|
||||
cvs.Initialize(p)
|
||||
|
||||
|
||||
Dim Matrix(NumberOfModules, NumberOfModules) As Boolean
|
||||
Dim Reserved(NumberOfModules, NumberOfModules) As Boolean
|
||||
|
||||
Dim Mode() As Byte = Array As Byte(0, 1, 0, 0) 'byte mode
|
||||
Dim ContentCountIndicator() As Byte
|
||||
If vd.Version >= 10 Then
|
||||
ContentCountIndicator = IntTo16Bits(Bytes.Length)
|
||||
Else
|
||||
ContentCountIndicator = UnsignedByteToBits(Bytes.Length)
|
||||
End If
|
||||
Dim EncodedData As B4XBytesBuilder
|
||||
EncodedData.Initialize
|
||||
EncodedData.Append(Mode)
|
||||
EncodedData.Append(ContentCountIndicator)
|
||||
For Each b As Byte In Bytes
|
||||
EncodedData.Append(UnsignedByteToBits(Bit.And(0xff, b)))
|
||||
Next
|
||||
'add terminator
|
||||
Dim PadSize As Int = Min(4, vd.MaxSize - EncodedData.Length)
|
||||
Dim pad(PadSize) As Byte
|
||||
EncodedData.Append(pad)
|
||||
Do While EncodedData.Length Mod 8 <> 0
|
||||
EncodedData.Append(Array As Byte(0))
|
||||
Loop
|
||||
|
||||
Do While EncodedData.Length < vd.MaxSize
|
||||
EncodedData.Append(Array As Byte(1,1,1,0,1,1,0,0))
|
||||
If EncodedData.Length < vd.MaxSize Then EncodedData.Append(Array As Byte(0,0,0,1,0,0,0,1))
|
||||
Loop
|
||||
VersionWithTwoGroups(vd.Generator, vd.Group1Size, vd.Group2Size, vd.Block1Size, vd.Block2Size, EncodedData)
|
||||
AddFinders (vd)
|
||||
AddDataToMatrix(EncodedData.ToArray, vd)
|
||||
DrawMatrix
|
||||
cvs.Invalidate
|
||||
Dim bmp As B4XBitmap = cvs.CreateBitmap
|
||||
cvs.Release
|
||||
Return bmp
|
||||
End Sub
|
||||
|
||||
Private Sub VersionWithTwoGroups (generator() As Int, Group1Size As Int, Group2Size As Int, Block1Size As Int, Block2Size As Int, EncodedData As B4XBytesBuilder)
|
||||
Dim ecs As List
|
||||
ecs.Initialize
|
||||
Dim dataBlocks As List
|
||||
dataBlocks.Initialize
|
||||
Dim PrevIndex As Int
|
||||
For block1 = 0 To Group1Size + Group2Size - 1
|
||||
Dim BlockSize As Int
|
||||
If block1 < Group1Size Then BlockSize = Block1Size Else BlockSize = Block2Size
|
||||
Dim Data() As Byte = EncodedData.SubArray2(PrevIndex * 8, (PrevIndex + BlockSize) * 8)
|
||||
PrevIndex = PrevIndex + BlockSize
|
||||
Dim DataAsInts(Data.Length / 8) As Int
|
||||
Dim i As Int
|
||||
For i = 0 To Data.Length - 1 Step 8
|
||||
DataAsInts(i / 8) = BitsToUnsignedByte(Data, i)
|
||||
Next
|
||||
dataBlocks.Add(DataAsInts)
|
||||
Dim ec() As Int = CalcReedSolomon(DataAsInts, generator)
|
||||
If ec.Length < generator.Length - 1 Then
|
||||
Dim ec2(generator.Length - 1) As Int
|
||||
IntArrayCopy(ec, 0, ec2, generator.Length - 1 - ec.Length, ec.Length)
|
||||
ec = ec2
|
||||
End If
|
||||
ecs.Add(ec)
|
||||
Next
|
||||
Dim Interleaved As B4XBytesBuilder
|
||||
Interleaved.Initialize
|
||||
For i = 0 To Max(Block1Size, Block2Size) - 1
|
||||
For block1 = 0 To dataBlocks.Size - 1
|
||||
Dim ii() As Int = dataBlocks.Get(block1)
|
||||
If ii.Length > i Then
|
||||
Interleaved.Append(UnsignedByteToBits(ii(i)))
|
||||
End If
|
||||
Next
|
||||
Next
|
||||
For i = 0 To generator.Length - 2
|
||||
For block1 = 0 To dataBlocks.Size - 1
|
||||
Dim ii() As Int = ecs.Get(block1)
|
||||
Interleaved.Append(UnsignedByteToBits(ii(i)))
|
||||
Next
|
||||
Next
|
||||
EncodedData.Clear
|
||||
EncodedData.Append(Interleaved.ToArray)
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
Private Sub AddDataToMatrix (Encoded() As Byte, vd As QRVersionData)
|
||||
Dim format() As Byte = vd.Format
|
||||
Dim order As List = CreateOrder
|
||||
'mask 0: (row + column) mod 2 == 0
|
||||
For Each b As Byte In Encoded
|
||||
Dim xy() As Int = GetNextPosition(order)
|
||||
Matrix(xy(0), xy(1)) = (b = 1)
|
||||
If (xy(1) + xy(0)) Mod 2 = 0 Then Matrix(xy(0), xy(1)) = Not(Matrix(xy(0), xy(1)))
|
||||
Next
|
||||
For i = 0 To 5
|
||||
Matrix(i, 8) = format(i) = 1
|
||||
Matrix(8, NumberOfModules - 1 - i) = format(i) = 1
|
||||
Next
|
||||
Matrix(7, 8) = format(6) = 1
|
||||
Matrix(8, NumberOfModules - 1 - 6) = format(6) = 1
|
||||
Matrix(8, 8) = format(7) = 1
|
||||
Matrix(8, 7) = format(8) = 1
|
||||
For i = 0 To 5
|
||||
Matrix(8, 5 - i) = format(i + 9) = 1
|
||||
Next
|
||||
For i = 0 To 7
|
||||
Matrix(NumberOfModules - 1 - 7 + i, 8) = format(7 + i) = 1
|
||||
Next
|
||||
If vd.Version >= 7 Then
|
||||
Dim VersionInformation() As Byte = vd.VersionInformation
|
||||
Dim c As Int = 18
|
||||
For x = 0 To 5
|
||||
For y = 0 To 2
|
||||
c = c - 1
|
||||
Matrix(x, NumberOfModules - 11 + y) = VersionInformation(c) = 1
|
||||
Matrix(NumberOfModules - 11 + y, x) = VersionInformation(c) = 1
|
||||
Next
|
||||
Next
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub GetNextPosition (order As List) As Int()
|
||||
Do While True
|
||||
Dim xy() As Int = order.Get(0)
|
||||
order.RemoveAt(0)
|
||||
If Reserved(xy(0), xy(1)) = False Then Return xy
|
||||
Loop
|
||||
Return Null
|
||||
End Sub
|
||||
|
||||
Private Sub CreateOrder As List
|
||||
Dim Order As List
|
||||
Order.Initialize
|
||||
Dim x As Int = NumberOfModules - 1
|
||||
Dim y As Int = NumberOfModules - 1
|
||||
Dim dy As Int = -1
|
||||
Do While x >= 0 And y >= 0
|
||||
Order.Add(Array As Int(x, y))
|
||||
Order.Add(Array As Int(x - 1, y))
|
||||
y = y + dy
|
||||
If y = -1 Then
|
||||
x = x - 2
|
||||
y = 0
|
||||
dy = 1
|
||||
Else If y = NumberOfModules Then
|
||||
x = x - 2
|
||||
y = NumberOfModules - 1
|
||||
dy = -1
|
||||
End If
|
||||
If x = 6 Then x = x - 1
|
||||
Loop
|
||||
Return Order
|
||||
End Sub
|
||||
|
||||
Private Sub DrawMatrix
|
||||
cvs.DrawRect(cvs.TargetRect, xui.Color_White, True, 0)
|
||||
Dim r As B4XRect
|
||||
For y = 0 To NumberOfModules - 1
|
||||
For x = 0 To NumberOfModules - 1
|
||||
r.Initialize((x + 4) * ModuleSize, (y + 4) * ModuleSize, 0, 0)
|
||||
r.Width = ModuleSize
|
||||
r.Height = ModuleSize
|
||||
Dim clr As Int
|
||||
If Matrix(x, y) Then
|
||||
clr = xui.Color_Black
|
||||
'cvs.DrawCircle(r.CenterX, r.CenterY, r.Width / 2, clr, True, 0)
|
||||
cvs.DrawRect(r, clr, True, 0)
|
||||
End If
|
||||
Next
|
||||
Next
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
Private Sub BitsToUnsignedByte (b() As Byte, Offset As Int) As Int
|
||||
Dim res As Int
|
||||
For i = 0 To 7
|
||||
Dim x As Int = Bit.ShiftLeft(1, 7 - i)
|
||||
res = res + b(i + Offset) * x
|
||||
Next
|
||||
Return res
|
||||
End Sub
|
||||
|
||||
Private Sub UnsignedByteToBits (Value As Int) As Byte()
|
||||
TempBB.Clear
|
||||
For i = 7 To 0 Step - 1
|
||||
Dim x As Int = Bit.ShiftLeft(1, i)
|
||||
Dim ii As Int = Bit.And(Value, x)
|
||||
If ii <> 0 Then
|
||||
TempBB.Append(Array As Byte(1))
|
||||
Else
|
||||
TempBB.Append(Array As Byte(0))
|
||||
End If
|
||||
Next
|
||||
|
||||
Return TempBB.ToArray
|
||||
End Sub
|
||||
|
||||
Private Sub IntTo16Bits (Value As Int) As Byte()
|
||||
TempBB.Clear
|
||||
For i = 15 To 0 Step - 1
|
||||
Dim x As Int = Bit.ShiftLeft(1, i)
|
||||
Dim ii As Int = Bit.And(Value, x)
|
||||
If ii <> 0 Then
|
||||
TempBB.Append(Array As Byte(1))
|
||||
Else
|
||||
TempBB.Append(Array As Byte(0))
|
||||
End If
|
||||
Next
|
||||
|
||||
Return TempBB.ToArray
|
||||
End Sub
|
||||
|
||||
Private Sub AddFinders (vd As QRVersionData)
|
||||
AddFinder(0, 0, 6)
|
||||
AddFinder(NumberOfModules - 7, 0, 6)
|
||||
AddFinder(0, NumberOfModules - 7, 6)
|
||||
AddAlignments(vd.Alignments)
|
||||
If vd.Version >= 7 Then
|
||||
For x = 0 To 2
|
||||
For y = 0 To 5
|
||||
Reserved(y, NumberOfModules - 11 + x) = True
|
||||
Reserved(NumberOfModules - 11 + x, y) = True
|
||||
Next
|
||||
Next
|
||||
End If
|
||||
|
||||
For i = 8 To NumberOfModules - 8
|
||||
Matrix(i, 6) = (i Mod 2 = 0)
|
||||
Matrix(6, i) = (i Mod 2 = 0)
|
||||
Reserved(i, 6) = True
|
||||
Reserved(6, i) = True
|
||||
Next
|
||||
Matrix(8, NumberOfModules - 1 - 7) = True
|
||||
Reserved(8, NumberOfModules - 1 - 7) = True
|
||||
For i = 0 To 7
|
||||
Reserved(7, i) = True
|
||||
Reserved(7, NumberOfModules - 1 - i) = True
|
||||
Reserved(8, NumberOfModules - 1 - i) = True
|
||||
Reserved(NumberOfModules -1 - 7, i) = True
|
||||
Reserved(i, 7) = True
|
||||
Reserved(i,NumberOfModules -1 - 7) = True
|
||||
Reserved(NumberOfModules -1 - i, 7) = True
|
||||
Reserved(NumberOfModules -1 - i, 8) = True
|
||||
Next
|
||||
For i = 0 To 8
|
||||
Reserved(8, i) = True
|
||||
Reserved(i, 8) = True
|
||||
Next
|
||||
End Sub
|
||||
|
||||
Private Sub AddAlignments (Positions() As Int)
|
||||
For Each left As Int In Positions
|
||||
For Each top As Int In Positions
|
||||
AddFinder (left - 2, top - 2, 4)
|
||||
Next
|
||||
Next
|
||||
End Sub
|
||||
|
||||
Private Sub AddFinder (Left As Int, Top As Int, SizeMinOne As Int)
|
||||
For y = 0 To SizeMinOne
|
||||
For x = 0 To SizeMinOne
|
||||
If Reserved(Left + x, Top + y) Then
|
||||
Return
|
||||
End If
|
||||
Next
|
||||
Next
|
||||
For y = 0 To SizeMinOne
|
||||
For x = 0 To SizeMinOne
|
||||
Dim value As Boolean
|
||||
If x = 0 Or x = SizeMinOne Or y = 0 Or y = SizeMinOne Then
|
||||
value = True
|
||||
Else if x <> 1 And y <> 1 And x <> SizeMinOne - 1 And y <> SizeMinOne - 1 Then
|
||||
value = True
|
||||
End If
|
||||
Matrix(Left + x, Top + y) = value
|
||||
Reserved(Left + x, Top + y) = True
|
||||
Next
|
||||
Next
|
||||
End Sub
|
||||
|
||||
#Region ReedSolomon
|
||||
|
||||
Private Sub CalcReedSolomon (Input() As Int, Generator() As Int) As Int()
|
||||
Dim ecBytes As Int = Generator.Length - 1
|
||||
Dim InfoCoefficients(Input.Length) As Int
|
||||
IntArrayCopy(Input, 0, InfoCoefficients, 0, Input.Length)
|
||||
InfoCoefficients = CreateGFPoly(InfoCoefficients)
|
||||
InfoCoefficients = PolyMultiplyByMonomial(InfoCoefficients, ecBytes, 1)
|
||||
Dim remainder() As Int = PolyDivide(InfoCoefficients, Generator)
|
||||
Return remainder
|
||||
End Sub
|
||||
|
||||
|
||||
Private Sub PrepareTables
|
||||
Dim x = 1 As Int
|
||||
Dim Primitive As Int = 285
|
||||
For i = 0 To GFSize - 1
|
||||
ExpTable(i) = x
|
||||
x = x * 2
|
||||
If x >= GFSize Then
|
||||
x = Bit.Xor(Primitive, x)
|
||||
x = Bit.And(GFSize - 1, x)
|
||||
End If
|
||||
Next
|
||||
For i = 0 To GFSize - 2
|
||||
LogTable(ExpTable(i)) = i
|
||||
Next
|
||||
End Sub
|
||||
|
||||
Private Sub CreateGFPoly(Coefficients() As Int) As Int()
|
||||
If Coefficients.Length > 1 And Coefficients(0) = 0 Then
|
||||
Dim FirstNonZero As Int = 1
|
||||
Do While FirstNonZero < Coefficients.Length And Coefficients(FirstNonZero) = 0
|
||||
FirstNonZero = FirstNonZero + 1
|
||||
Loop
|
||||
If FirstNonZero = Coefficients.Length Then
|
||||
Return Array As Int(0)
|
||||
End If
|
||||
Dim res(Coefficients.Length - FirstNonZero) As Int
|
||||
IntArrayCopy(Coefficients, FirstNonZero, res, 0, res.Length)
|
||||
Return res
|
||||
End If
|
||||
Return Coefficients
|
||||
End Sub
|
||||
|
||||
Private Sub PolyAddOrSubtract(This() As Int, Other() As Int) As Int()
|
||||
If This(0) = 0 Then Return Other
|
||||
If Other(0) = 0 Then Return This
|
||||
Dim Small() As Int = This
|
||||
Dim Large() As Int = Other
|
||||
If Small.Length > Large.Length Then
|
||||
Dim temp() As Int = Small
|
||||
Small = Large
|
||||
Large = temp
|
||||
End If
|
||||
Dim SumDiff(Large.Length) As Int
|
||||
Dim LengthDiff As Int = Large.Length - Small.Length
|
||||
IntArrayCopy(Large, 0, SumDiff, 0, LengthDiff)
|
||||
For i = LengthDiff To Large.Length - 1
|
||||
SumDiff(i) = Bit.Xor(Small(i - LengthDiff), Large(i))
|
||||
Next
|
||||
Return CreateGFPoly(SumDiff)
|
||||
End Sub
|
||||
|
||||
Private Sub IntArrayCopy(Src() As Int, SrcOffset As Int, Dest() As Int, DestOffset As Int, Count As Int)
|
||||
For i = 0 To Count - 1
|
||||
Dest(DestOffset + i) = Src(SrcOffset + i)
|
||||
Next
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
Private Sub PolyMultiplyByMonomial (This() As Int, Degree As Int, Coefficient As Int) As Int()
|
||||
If Coefficient = 0 Then Return PolyZero
|
||||
Dim product(This.Length + Degree) As Int
|
||||
For i = 0 To This.Length - 1
|
||||
product(i) = GFMultiply(This(i), Coefficient)
|
||||
Next
|
||||
Return CreateGFPoly(product)
|
||||
End Sub
|
||||
|
||||
Private Sub PolyDivide (This() As Int, Other() As Int) As Int()
|
||||
Dim quotient() As Int = PolyZero
|
||||
Dim remainder() As Int = This
|
||||
Dim denominatorLeadingTerm As Int = Other(0)
|
||||
Dim inverseDenominatorLeadingTerm As Int = GFInverse(denominatorLeadingTerm)
|
||||
Do While remainder.Length >= Other.Length And remainder(0) <> 0
|
||||
Dim DegreeDifference As Int = remainder.Length - Other.Length
|
||||
Dim scale As Int = GFMultiply(remainder(0), inverseDenominatorLeadingTerm)
|
||||
Dim term() As Int = PolyMultiplyByMonomial(Other, DegreeDifference, scale)
|
||||
Dim iterationQuotient() As Int = GFBuildMonomial(DegreeDifference, scale)
|
||||
quotient = PolyAddOrSubtract(quotient, iterationQuotient)
|
||||
remainder = PolyAddOrSubtract(remainder, term)
|
||||
Loop
|
||||
Return remainder
|
||||
End Sub
|
||||
|
||||
Private Sub GFInverse(a As Int) As Int
|
||||
Return ExpTable(GFSize - LogTable(a) - 1)
|
||||
End Sub
|
||||
|
||||
Private Sub GFMultiply(a As Int, b As Int) As Int
|
||||
If a = 0 Or b = 0 Then
|
||||
Return 0
|
||||
End If
|
||||
Return ExpTable((LogTable(a) + LogTable(b)) Mod (GFSize - 1))
|
||||
End Sub
|
||||
|
||||
Private Sub GFBuildMonomial(Degree As Int, Coefficient As Int) As Int()
|
||||
If Coefficient = 0 Then Return PolyZero
|
||||
Dim c(Degree + 1) As Int
|
||||
c(0) = Coefficient
|
||||
Return c
|
||||
End Sub
|
||||
|
||||
#End Region
|
||||
@@ -71,8 +71,8 @@ Sub Service_Create
|
||||
cedisLocation.Initialize
|
||||
' cedisLocation.Latitude = "19.48118148992086"
|
||||
' cedisLocation.Longitude = "-99.15295579261536"
|
||||
cedisLocation.Latitude = "0"
|
||||
cedisLocation.Longitude = "0"
|
||||
cedisLocation.Latitude = "20.5879843"
|
||||
cedisLocation.Longitude = "-100.3897913"
|
||||
End Sub
|
||||
|
||||
Sub Service_Start (StartingIntent As Intent)
|
||||
|
||||
51
B4A/Subs.bas
51
B4A/Subs.bas
@@ -274,8 +274,8 @@ End Sub
|
||||
|
||||
'Mandamos "coords" en un mensaje a "Sprvsr"
|
||||
Sub mandamosLoc(coords As String) 'ignore
|
||||
'' Log("Iniciamos mandamosLoc "&coords)
|
||||
'' Log("locRequest="&Tracker.locRequest)
|
||||
'' Log("Iniciamos mandamosLoc "&coords)
|
||||
'' Log("locRequest="&Tracker.locRequest)
|
||||
' guardaInfoEnBD(coords)'Escribimos coordenadas y fecha a una bd
|
||||
' Dim t As String
|
||||
' If Tracker.locRequest="Activa" Then
|
||||
@@ -293,10 +293,10 @@ End Sub
|
||||
|
||||
'Regresa la fecha y hora de hoy a las 00:00 en el formato "yyMMddHHMMSS"
|
||||
Sub fechaInicioHoy As String 'ignore
|
||||
Dim OrigFormat As String = DateTime.DateFormat 'save orig date format
|
||||
DateTime.DateFormat="yyMMdd"
|
||||
Private h As String = DateTime.Date(DateTime.Now)&"000000"
|
||||
DateTime.DateFormat=OrigFormat 'return to orig date format
|
||||
Dim OrigFormat As String = DateTime.DateFormat 'save orig date format
|
||||
DateTime.DateFormat="yyMMdd"
|
||||
Private h As String = DateTime.Date(DateTime.Now)&"000000"
|
||||
DateTime.DateFormat=OrigFormat 'return to orig date format
|
||||
Log("Hoy="&h)
|
||||
Return h
|
||||
End Sub
|
||||
@@ -319,12 +319,12 @@ End Sub
|
||||
'Regresa verdadero si ya pasaron XX minutos de la fechaKMT dada
|
||||
Sub masDeXXMinsKMT(hora As String, mins As Int) As Boolean 'ignore
|
||||
Try
|
||||
' LogColor($"Hora=${fechaKMT(fechaKMT2Ticks(hora) + mins * DateTime.TicksPerMinute)}, Mins=${mins}, Actual=${fechaKMT(DateTime.Now)}"$,Colors.red)
|
||||
' LogColor($"Hora=${fechaKMT(fechaKMT2Ticks(hora) + mins * DateTime.TicksPerMinute)}, Mins=${mins}, Actual=${fechaKMT(DateTime.Now)}"$,Colors.red)
|
||||
If fechaKMT2Ticks(hora) + mins * DateTime.TicksPerMinute < DateTime.Now Then
|
||||
' Log("+++ +++ "&fechaKMT(fechaKMT2Ticks(hora) + mins * DateTime.TicksPerMinute) & " < " & fechaKMT(DateTime.Now))
|
||||
Return True
|
||||
Else
|
||||
' Log("+++ +++ "&fechaKMT(fechaKMT2Ticks(hora) + mins * DateTime.TicksPerMinute) & " > " & fechaKMT(DateTime.Now))
|
||||
' Log("+++ +++ "&fechaKMT(fechaKMT2Ticks(hora) + mins * DateTime.TicksPerMinute) & " > " & fechaKMT(DateTime.Now))
|
||||
Return False
|
||||
End If
|
||||
Catch
|
||||
@@ -406,7 +406,7 @@ End Sub
|
||||
'Revisamos que el servicio "PushService" este inicializado y activo
|
||||
Sub revisaPushService 'ignore
|
||||
' Private todoBienPS As Boolean = True
|
||||
'' LogColor("**** **** Revisamos PushService **** ****", Colors.RGB(78,0,227))
|
||||
'' LogColor("**** **** Revisamos PushService **** ****", Colors.RGB(78,0,227))
|
||||
' Try
|
||||
' If Not(PushService.wsh.IsInitialized) Then 'Si no esta inicializado ...
|
||||
' log2DB("revisaPushService: No esta inicializado ... 'Reinicializando PushService'")
|
||||
@@ -501,16 +501,16 @@ Sub dameErroresJSON(SQL As SQL, maxErrores As Int, comprimido As Boolean) As Str
|
||||
cur.Close
|
||||
j.Initialize(m2)
|
||||
Log(j.ToString)
|
||||
If comprimido Then
|
||||
If comprimido Then
|
||||
Return compress(j.ToString)
|
||||
Else
|
||||
Else
|
||||
Return j.ToString
|
||||
End If
|
||||
End Sub
|
||||
|
||||
'Convierte una fecha en formato YYMMDDHHMMSS a Ticks
|
||||
Sub fechaKMT2Ticks(fKMT As String) As Long 'ignore
|
||||
Try
|
||||
Try
|
||||
If fKMT.Length = 12 Then
|
||||
Private parteFecha As String = fKMT.SubString2(0,6)
|
||||
Private parteHora As String = fKMT.SubString(6)
|
||||
@@ -628,7 +628,7 @@ Sub centraBoton(elemento As Button, anchoElementoSuperior As Int) 'ignore
|
||||
End Sub
|
||||
|
||||
'Trae el nombre del producto con ID dado, desde HIST_VENTAS.
|
||||
Sub traeNombre(id As String) As String
|
||||
Sub traeNombre(id As String) As String
|
||||
Private nombre As String
|
||||
Private idc As Cursor = kmt.ExecQuery($"select HVD_PRONOMBRE from HIST_VENTAS where HVD_PROID = '${id}'"$)
|
||||
idc.Position=0
|
||||
@@ -713,18 +713,17 @@ End Sub
|
||||
Sub traeConversion(id As String) As String
|
||||
Private pu As String = "0"
|
||||
|
||||
Private idc As Cursor = kmt.ExecQuery($"select CONVERSION from CAT_GUNAPROD where CAT_GP_ID = '${id}'"$)
|
||||
If idc.RowCount > 0 Then
|
||||
idc.Position=0
|
||||
If idc.RowCount > 0 And IsNumber(idc.GetString("CONVERSION")) Then pu = idc.GetString("CONVERSION")
|
||||
Private idc As Cursor = kmt.ExecQuery($"select CONVERSION from CAT_GUNAPROD where CAT_GP_ID = '${id}'"$)
|
||||
If idc.RowCount > 0 Then
|
||||
idc.Position=0
|
||||
If idc.RowCount > 0 And IsNumber(idc.GetString("CONVERSION")) Then pu = idc.GetString("CONVERSION")
|
||||
' Log("id=" & id & "|p=" & x & "|" & idc.GetString("CAT_GP_PRECIO"))
|
||||
End If
|
||||
idc.Close
|
||||
End If
|
||||
idc.Close
|
||||
|
||||
Return pu
|
||||
End Sub
|
||||
|
||||
|
||||
'Trae el cliente desde la BD.
|
||||
Sub traeCliente As String 'ignore
|
||||
Private cli As Cursor = Starter.skmt.ExecQuery("Select CUENTA from cuentaa")
|
||||
@@ -1093,6 +1092,16 @@ Sub CreateBitmapWithNumber(OriginalBitmap As Bitmap, Number As Int) As Bitmap 'i
|
||||
' Dibujar la imagen original
|
||||
Canvas.DrawBitmap(OriginalBitmap, Null, DestRect)
|
||||
' Dibujar el número en el centro del Bitmap y configurar el estilo del texto
|
||||
Canvas.DrawText(Number, (OriginalBitmap.Width / 2), (OriginalBitmap.Height / 2.4), Typeface.DEFAULT, 20, Colors.White, "CENTER")
|
||||
Canvas.DrawText(Number, (OriginalBitmap.Width / 2), (OriginalBitmap.Height / 2.4), Typeface.DEFAULT, 15, Colors.White, "CENTER")
|
||||
Return NewBitmap
|
||||
End Sub
|
||||
|
||||
'Muestra en el Log los campos y valores que regresan en el JobDone.
|
||||
Sub logJobDoneResultados(resultado As DBResult)
|
||||
For Each records() As Object In resultado.Rows
|
||||
LogColor($"====== ${resultado.Tag} - REGISTROS = ${resultado.Rows.Size}"$, Colors.RGB(215,37,0))
|
||||
For Each k As String In resultado.Columns.Keys
|
||||
LogColor(k & " = " & records(resultado.Columns.Get(k)), Colors.RGB(215,37,0))
|
||||
Next
|
||||
Next
|
||||
End Sub
|
||||
@@ -230,10 +230,11 @@ Module24=foto
|
||||
Module25=ManageExternalStorage
|
||||
Module26=MAPA_CLIENTE
|
||||
Module27=MAPA_RUTAS
|
||||
Module28=Starter
|
||||
Module29=Subs
|
||||
Module28=QRGenerator
|
||||
Module29=Starter
|
||||
Module3=BatteryUtilities
|
||||
Module30=Tracker
|
||||
Module30=Subs
|
||||
Module31=Tracker
|
||||
Module4=C_Buscar
|
||||
Module5=C_Cheklist
|
||||
Module6=C_Cliente
|
||||
@@ -242,13 +243,13 @@ Module8=C_Detalle_Promo
|
||||
Module9=C_DetalleVenta
|
||||
NumberOfFiles=91
|
||||
NumberOfLibraries=27
|
||||
NumberOfModules=30
|
||||
NumberOfModules=31
|
||||
Version=12.8
|
||||
@EndOfDesignText@
|
||||
#Region Project Attributes
|
||||
#ApplicationLabel: Guna Reparto
|
||||
#VersionCode: 1
|
||||
#VersionName: 5.03.01
|
||||
#VersionName: 5.03.08
|
||||
'SupportedOrientations possible values: unspecified, landscape or portrait.
|
||||
#SupportedOrientations: portrait
|
||||
#CanInstallToExternalStorage: False
|
||||
|
||||
@@ -23,6 +23,7 @@ ModuleBookmarks28=
|
||||
ModuleBookmarks29=
|
||||
ModuleBookmarks3=
|
||||
ModuleBookmarks30=
|
||||
ModuleBookmarks31=
|
||||
ModuleBookmarks4=
|
||||
ModuleBookmarks5=
|
||||
ModuleBookmarks6=
|
||||
@@ -54,6 +55,7 @@ ModuleBreakpoints28=
|
||||
ModuleBreakpoints29=
|
||||
ModuleBreakpoints3=
|
||||
ModuleBreakpoints30=
|
||||
ModuleBreakpoints31=
|
||||
ModuleBreakpoints4=
|
||||
ModuleBreakpoints5=
|
||||
ModuleBreakpoints6=
|
||||
@@ -85,12 +87,13 @@ ModuleClosedNodes28=
|
||||
ModuleClosedNodes29=
|
||||
ModuleClosedNodes3=
|
||||
ModuleClosedNodes30=
|
||||
ModuleClosedNodes31=
|
||||
ModuleClosedNodes4=
|
||||
ModuleClosedNodes5=
|
||||
ModuleClosedNodes6=
|
||||
ModuleClosedNodes7=
|
||||
ModuleClosedNodes8=
|
||||
ModuleClosedNodes9=
|
||||
NavigationStack=C_Principal,Button1_Click,2107,6,C_Principal,Class_Globals,93,0,C_Principal,P_PAGARES_Click,2110,0,C_Principal,B_CLIEPROD_Click,1723,6,C_Principal,b_rechazos_Click,1993,0,C_Principal,B_PAGARES_Click,2081,6,C_Buscar,Class_Globals,0,0,Diseñador Visual,principal.bal,-100,6,Diseñador Visual,cliente.bal,-100,1,C_Buscar,B4XPage_Created,30,0,C_Cliente,Class_Globals,20,0
|
||||
NavigationStack=C_DetalleVenta,Class_Globals,0,0,C_DetalleVenta,B_IMP_Click,1262,0,C_Clientes,B4XPage_Appear,73,0,C_Clientes,Class_Globals,0,0,C_Clientes,caculaRutaGPS,647,0,C_Cliente,CrearQR,2042,0,C_Cliente,Class_Globals,3,0,Subs,CreateBitmapWithNumber,1079,0,Subs,traeConversion,719,0,Subs,InstallAPK,528,0,B4XMainPage,p_appUpdate_Click,1010,0
|
||||
SelectedBuild=0
|
||||
VisibleModules=1,2,3,4,5,6,7,8,9,10
|
||||
VisibleModules=2,4,5,6,7,9,30,29,16,27
|
||||
|
||||
Reference in New Issue
Block a user