mirror of
https://github.com/KeymonSoft/Durakelo.git
synced 2026-04-17 19:36:12 +00:00
31/10/23 - Cambios en Cliente, Productos y Nota
- Se amplió el campo de la cantidad cuando se agrega un producto. - Se agregó que mande un Toast cuando se hace clic en Back en Cliente para que avise que hay que hacer clic en "Guardar" - Se corrigieron las acciones cuando se hace Back en algunas pantallas. - Se puso código para que en nota muestre de diferente color los productos de Venta y Preventa.
This commit is contained in:
@@ -24,6 +24,8 @@ Sub Class_Globals
|
|||||||
Private xui As XUI
|
Private xui As XUI
|
||||||
Public login As B4XMainPage
|
Public login As B4XMainPage
|
||||||
Dim rp As RuntimePermissions
|
Dim rp As RuntimePermissions
|
||||||
|
Public Provider As FileProvider
|
||||||
|
|
||||||
Public principal As C_Principal 'Antes seleccion
|
Public principal As C_Principal 'Antes seleccion
|
||||||
Public clientes As C_Clientes 'Antes Colonia
|
Public clientes As C_Clientes 'Antes Colonia
|
||||||
Public cliente As C_Cliente 'Antes fila
|
Public cliente As C_Cliente 'Antes fila
|
||||||
@@ -139,6 +141,7 @@ Private Sub B4XPage_Created (Root1 As B4XView)
|
|||||||
' ruta = Starter.ruta
|
' ruta = Starter.ruta
|
||||||
ruta = File.DirInternal
|
ruta = File.DirInternal
|
||||||
kh.Initialize(Me, "kh")
|
kh.Initialize(Me, "kh")
|
||||||
|
Provider.Initialize
|
||||||
' If(FirstTime) Then
|
' If(FirstTime) Then
|
||||||
' g.Initialize("GPS")
|
' g.Initialize("GPS")
|
||||||
' End If
|
' End If
|
||||||
@@ -404,15 +407,20 @@ Sub JobDone(Job As HttpJob)
|
|||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub Activity_KeyPress (key As Int) As Boolean
|
'Sub Activity_KeyPress (key As Int) As Boolean
|
||||||
' BACK key pressed
|
' ' BACK key pressed
|
||||||
If key=KeyCodes.KEYCODE_BACK Then
|
' If key=KeyCodes.KEYCODE_BACK Then
|
||||||
' I want to capture the key here so I return True
|
' ' I want to capture the key here so I return True
|
||||||
'StartActivity(Main)
|
' 'StartActivity(Main)
|
||||||
ExitApplication
|
' ExitApplication
|
||||||
'Return True
|
' 'Return True
|
||||||
End If
|
' End If
|
||||||
' Returning False signals the system to handle the key
|
' ' Returning False signals the system to handle the key
|
||||||
|
' Return False
|
||||||
|
'End Sub
|
||||||
|
|
||||||
|
Private Sub B4XPage_CloseRequest As ResumableSub
|
||||||
|
ExitApplication
|
||||||
Return False
|
Return False
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@@ -526,3 +534,22 @@ Sub copiaDB
|
|||||||
ToastMessageShow("Sin permisos", True)
|
ToastMessageShow("Sin permisos", True)
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
'Enviamos la base de datos por correo o Whatsapp
|
||||||
|
Private Sub b_envioBD_Click
|
||||||
|
' copiaDB
|
||||||
|
' Sleep(1000)
|
||||||
|
Dim FileName As String = "kmt.db"
|
||||||
|
'copy the shared file to the shared folder
|
||||||
|
Log("xxxxxx:"&Provider.SharedFolder)
|
||||||
|
Sleep(1000)
|
||||||
|
File.Copy(File.DirInternal, FileName, Provider.SharedFolder, FileName)
|
||||||
|
Dim email As Email
|
||||||
|
email.To.Add("cheveguerra@gmail.com")
|
||||||
|
email.Subject = "subject"
|
||||||
|
email.Attachments.Add(Provider.GetFileUri(FileName))
|
||||||
|
' email.Attachments.Add(Provider.GetFileUri(FileName)) 'second attachment
|
||||||
|
Dim in As Intent = email.GetIntent
|
||||||
|
in.Flags = 1 'FLAG_GRANT_READ_URI_PERMISSION
|
||||||
|
StartActivity(in)
|
||||||
|
End Sub
|
||||||
@@ -144,8 +144,8 @@ Private Sub B4XPage_Created (Root1 As B4XView)
|
|||||||
Root = Root1
|
Root = Root1
|
||||||
Root.RemoveAllViews
|
Root.RemoveAllViews
|
||||||
Root.LoadLayout("Cliente")
|
Root.LoadLayout("Cliente")
|
||||||
c=Starter.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_BFACTURA,CAT_CL_BCREDITO from kmt_info where CAT_CL_CODIGO In (Select cuenta from cuentaa)")
|
c= Starter.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_BFACTURA,CAT_CL_BCREDITO from kmt_info where CAT_CL_CODIGO In (Select cuenta from cuentaa)")
|
||||||
s=Starter.skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
|
s = Starter.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)")
|
||||||
If c.RowCount > 0 Then
|
If c.RowCount > 0 Then
|
||||||
c.Position = 0
|
c.Position = 0
|
||||||
la_cuenta.Text = c.GetString("CAT_CL_CODIGO")
|
la_cuenta.Text = c.GetString("CAT_CL_CODIGO")
|
||||||
@@ -226,10 +226,9 @@ Sub B4XPage_Appear
|
|||||||
FACTURA = 0
|
FACTURA = 0
|
||||||
End If
|
End If
|
||||||
|
|
||||||
If FACTURA = "1" Then
|
' If FACTURA = "1" Then
|
||||||
b_factura.Visible = True
|
' b_factura.Visible = True
|
||||||
|
' End If
|
||||||
End If
|
|
||||||
End If
|
End If
|
||||||
|
|
||||||
If CREDITO = "1" Then
|
If CREDITO = "1" Then
|
||||||
@@ -288,7 +287,7 @@ Sub B4XPage_Appear
|
|||||||
B_VENTA.Visible = True
|
B_VENTA.Visible = True
|
||||||
gest.Visible = True
|
gest.Visible = True
|
||||||
End If
|
End If
|
||||||
Log(">>>>>>>>>>>> "&Starter.tipov)
|
' Log(">>>>>>>>>>>> "&Starter.tipov)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub GPS_LocationChanged (Location1 As Location)
|
Sub GPS_LocationChanged (Location1 As Location)
|
||||||
@@ -320,15 +319,14 @@ Sub Tels_Click
|
|||||||
B4XPages.ShowPage("NoVenta")
|
B4XPages.ShowPage("NoVenta")
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub Activity_KeyPress (key As Int) As Boolean
|
Private Sub B4XPage_CloseRequest As ResumableSub
|
||||||
' BACK key pressed
|
If Subs.hayPedido Then
|
||||||
If key=KeyCodes.KEYCODE_BACK Then
|
ToastMessageShow("Hay VENTA, por favor presiona GUARDAR para continuar.", True)
|
||||||
' I want to capture the key here so I return True
|
Return False
|
||||||
' StartActivity(colonia)
|
Else
|
||||||
'Return True
|
B4XPages.ShowPage("Principal")
|
||||||
|
Return False
|
||||||
End If
|
End If
|
||||||
' Returning False signals the system to handle the key
|
|
||||||
Return False
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub Tar_Click
|
Sub Tar_Click
|
||||||
@@ -350,7 +348,7 @@ Sub Guardar_Click
|
|||||||
c=Starter.skmt.ExecQuery("select USUARIO from usuarioa")
|
c=Starter.skmt.ExecQuery("select USUARIO from usuarioa")
|
||||||
c.Position=0
|
c.Position=0
|
||||||
usuario = c.GetString("USUARIO")
|
usuario = c.GetString("USUARIO")
|
||||||
|
|
||||||
c=Starter.skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, COUNT(*) AS CUANTOS FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
|
c=Starter.skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, COUNT(*) AS CUANTOS FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
|
||||||
c.Position=0
|
c.Position=0
|
||||||
If c.GetString("CUANTOS") > 0 Then
|
If c.GetString("CUANTOS") > 0 Then
|
||||||
@@ -360,11 +358,11 @@ Sub Guardar_Click
|
|||||||
Starter.skmt.ExecNonQuery("UPDATE kmt_info set gestion = 2 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
|
Starter.skmt.ExecNonQuery("UPDATE kmt_info set gestion = 2 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
|
||||||
End If
|
End If
|
||||||
c.Close
|
c.Close
|
||||||
|
|
||||||
Starter.skmt.ExecNonQuery("delete from pedido3")
|
Starter.skmt.ExecNonQuery("delete from pedido3")
|
||||||
Starter.skmt.ExecNonQuery("INSERT INTO PEDIDO3 SELECT PE_PRECIO2, PE_TIPO, PE_FOLIO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, SUM(PE_COSTO_TOT) AS PE_COSTO_TOT, PE_COSTOU, SUM(PE_CANT) As PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, 1 As PE_FECHA, PE_USUARIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) GROUP BY PE_PRECIO2, PE_TIPO, PE_FOLIO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, PE_COSTOU, PE_PRONOMBRE, PE_PROID, PE_CLIENTE ")
|
Starter.skmt.ExecNonQuery("INSERT INTO PEDIDO3 SELECT PE_PRECIO2, PE_TIPO, PE_FOLIO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, SUM(PE_COSTO_TOT) AS PE_COSTO_TOT, PE_COSTOU, SUM(PE_CANT) As PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, 1 As PE_FECHA, PE_USUARIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) GROUP BY PE_PRECIO2, PE_TIPO, PE_FOLIO, PE_DESC, PE_COSTO_SIN, PE_RUTA, PE_CEDIS, PE_COSTOU, PE_PRONOMBRE, PE_PROID, PE_CLIENTE ")
|
||||||
c=Starter.skmt.ExecQuery("select PE_PRECIO2,PE_TIPO,PE_FOLIO,PE_DESC,PE_COSTO_SIN,PE_RUTA,PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE, PE_FECHA,PE_USUARIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
|
c=Starter.skmt.ExecQuery("select PE_PRECIO2,PE_TIPO,PE_FOLIO,PE_DESC,PE_COSTO_SIN,PE_RUTA,PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE, PE_FECHA,PE_USUARIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
|
||||||
|
|
||||||
If c.RowCount>0 Then
|
If c.RowCount>0 Then
|
||||||
For i=0 To c.RowCount -1
|
For i=0 To c.RowCount -1
|
||||||
c.Position=i
|
c.Position=i
|
||||||
@@ -373,7 +371,7 @@ Sub Guardar_Click
|
|||||||
End If
|
End If
|
||||||
Starter.skmt.ExecNonQuery("delete from pedido WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) ")
|
Starter.skmt.ExecNonQuery("delete from pedido WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) ")
|
||||||
Starter.skmt.ExecNonQuery("INSERT INTO PEDIDO SELECT * FROM PEDIDO3")
|
Starter.skmt.ExecNonQuery("INSERT INTO PEDIDO SELECT * FROM PEDIDO3")
|
||||||
|
|
||||||
B4XPages.ShowPage("Principal")
|
B4XPages.ShowPage("Principal")
|
||||||
' StartActivity(seleccion)
|
' StartActivity(seleccion)
|
||||||
End Sub
|
End Sub
|
||||||
@@ -958,7 +956,7 @@ Sub B_GUARDAR_Click
|
|||||||
|
|
||||||
Panel1.Visible = False
|
Panel1.Visible = False
|
||||||
B_EXIBI.Visible = True
|
B_EXIBI.Visible = True
|
||||||
b_factura.Visible = True
|
' b_factura.Visible = True
|
||||||
HIST.Visible = True
|
HIST.Visible = True
|
||||||
Tar.VISIBLE = True
|
Tar.VISIBLE = True
|
||||||
B_IMP.Visible = True
|
B_IMP.Visible = True
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ Private Sub B4XPage_Created (Root1 As B4XView)
|
|||||||
C.Position=0
|
C.Position=0
|
||||||
Existe = C.GetString("EXISTE")
|
Existe = C.GetString("EXISTE")
|
||||||
C.Close
|
C.Close
|
||||||
c=Starter.skmt.ExecQuery("select PE_PRONOMBRE,PE_COSTO_TOT, PE_CANT, PE_FOLIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_PRONOMBRE asc")
|
c=Starter.skmt.ExecQuery("select PE_PRONOMBRE, PE_COSTO_TOT, PE_CANT, PE_FOLIO, PE_TIPO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_PRONOMBRE 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
|
||||||
@@ -96,9 +96,9 @@ Sub B4XPage_Appear
|
|||||||
C.Position=0
|
C.Position=0
|
||||||
Existe = C.GetString("EXISTE")
|
Existe = C.GetString("EXISTE")
|
||||||
C.Close
|
C.Close
|
||||||
c=Starter.skmt.ExecQuery("select PE_PRONOMBRE,PE_COSTO_TOT, PE_CANT, PE_FOLIO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_PRONOMBRE asc")
|
c=Starter.skmt.ExecQuery("select PE_PRONOMBRE,PE_COSTO_TOT, PE_CANT, PE_FOLIO, PE_TIPO FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_PRONOMBRE asc")
|
||||||
ListView1.Clear
|
ListView1.Clear
|
||||||
|
Private cs As CSBuilder
|
||||||
If c.RowCount>0 Then
|
If c.RowCount>0 Then
|
||||||
For i=0 To c.RowCount -1
|
For i=0 To c.RowCount -1
|
||||||
c.Position=i
|
c.Position=i
|
||||||
@@ -110,7 +110,11 @@ Sub B4XPage_Appear
|
|||||||
label2 = ListView1.TwoLinesLayout.SecondLabel
|
label2 = ListView1.TwoLinesLayout.SecondLabel
|
||||||
label2.TextSize = 10
|
label2.TextSize = 10
|
||||||
label2.TextColor = Colors.Blue
|
label2.TextColor = Colors.Blue
|
||||||
ListView1.AddTwoLines(c.GetString("PE_PRONOMBRE"),"Cantidad #"& c.GetString("PE_CANT")& " SubTotal $"& c.GetString("PE_COSTO_TOT")& " Folio "& c.GetString("PE_FOLIO"))
|
cs.Initialize
|
||||||
|
Private elColor = Colors.Black
|
||||||
|
If c.GetString("PE_TIPO") = "PREVENTA" Then elColor = Colors.RGB(200,95,20)
|
||||||
|
Log(c.GetString("PE_PRONOMBRE") & "|" & elColor)
|
||||||
|
ListView1.AddTwoLines(cs.Color(elColor).append(c.GetString("PE_PRONOMBRE")).Pop,"Cantidad #"& c.GetString("PE_CANT")& " SubTotal $"& c.GetString("PE_COSTO_TOT")& " Folio "& c.GetString("PE_FOLIO"))
|
||||||
folio = c.GetString("PE_FOLIO")
|
folio = c.GetString("PE_FOLIO")
|
||||||
Next
|
Next
|
||||||
End If
|
End If
|
||||||
|
|||||||
@@ -1889,14 +1889,15 @@ Sub JobDone(Job As HttpJob)
|
|||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub Activity_KeyPress (key As Int) As Boolean
|
Private Sub B4XPage_CloseRequest As ResumableSub
|
||||||
' BACK key pressed
|
' BACK key pressed
|
||||||
If key=KeyCodes.KEYCODE_BACK Then
|
' If key=KeyCodes.KEYCODE_BACK Then
|
||||||
' I want to capture the key here so I return True
|
' ' I want to capture the key here so I return True
|
||||||
StartActivity(Main)
|
' StartActivity(Main)
|
||||||
'Return True
|
' 'Return True
|
||||||
End If
|
' End If
|
||||||
' Returning False signals the system to handle the key
|
' Returning False signals the system to handle the key
|
||||||
|
B4XPages.ShowPage("Login")
|
||||||
Return False
|
Return False
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
|||||||
@@ -540,7 +540,7 @@ Sub b_prodMenos_Click
|
|||||||
' clv_prods_ll.GetValue(index).As(Map).Get("almacen") = clv_prods_ll.GetValue(index).As(Map).Get("almacen") + 1
|
' clv_prods_ll.GetValue(index).As(Map).Get("almacen") = clv_prods_ll.GetValue(index).As(Map).Get("almacen") + 1
|
||||||
End If
|
End If
|
||||||
If laCant.Text = "" Then laCant.Text = 0
|
If laCant.Text = "" Then laCant.Text = 0
|
||||||
laCant.Text = $"$1.0{laCant.Text - 1}"$
|
laCant.Text = $"${NumberFormat2((laCant.Text - 1), 1, 0, 0, False)}"$
|
||||||
If laCant.Text < 0 Then laCant.Text = 0
|
If laCant.Text < 0 Then laCant.Text = 0
|
||||||
Private tmpMap As Map = clv_prods_ll.GetValue(index).As(Map)
|
Private tmpMap As Map = clv_prods_ll.GetValue(index).As(Map)
|
||||||
Private precio As String=clv_prods_ll.GetValue(index).As(Map).Get("precio")
|
Private precio As String=clv_prods_ll.GetValue(index).As(Map).Get("precio")
|
||||||
@@ -559,6 +559,7 @@ Sub b_prodMenos_Click
|
|||||||
nombreX = "CAMBIO"&Subs.traeRMINombre(id)
|
nombreX = "CAMBIO"&Subs.traeRMINombre(id)
|
||||||
precioX = precioX * -1
|
precioX = precioX * -1
|
||||||
End If
|
End If
|
||||||
|
Log(">>>>>>> Insertamos prod desde prodMenos")
|
||||||
Subs.actualizaProducto(almacenX, precioX, laCant.text, nombreX, id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, Starter.tipov)
|
Subs.actualizaProducto(almacenX, precioX, laCant.text, nombreX, id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, Starter.tipov)
|
||||||
cuentaProds
|
cuentaProds
|
||||||
If Subs.totalPedido < 1 Then laCant.Text = "0"
|
If Subs.totalPedido < 1 Then laCant.Text = "0"
|
||||||
@@ -582,16 +583,16 @@ Sub b_prodMas_Click
|
|||||||
' Log(clv_prods_ll.GetValue(index).As(Map))
|
' Log(clv_prods_ll.GetValue(index).As(Map))
|
||||||
clv_prods_ll.GetValue(index).As(Map).Put("almacen", (inv - 1))
|
clv_prods_ll.GetValue(index).As(Map).Put("almacen", (inv - 1))
|
||||||
inv = inv - 1
|
inv = inv - 1
|
||||||
laCant.Text = $"$1.0{laCant.Text+1}"$
|
laCant.Text = $"${NumberFormat2((laCant.Text + 1), 1, 0, 0, False)}"$
|
||||||
' Log(clv_prods_ll.GetValue(index).As(Map))
|
' Log(clv_prods_ll.GetValue(index).As(Map))
|
||||||
End If
|
End If
|
||||||
else If laCant.Text + 1 <= inv And lfila.Text = "PRODUCTOS" Then
|
else If laCant.Text + 1 <= inv And lfila.Text = "PRODUCTOS" Then
|
||||||
' LogColor(inv, Colors.blue)
|
' LogColor(inv, Colors.blue)
|
||||||
laCant.Text = $"$1.0{laCant.Text + 1}"$
|
laCant.Text = $"${NumberFormat2((laCant.Text + 1), 1, 0, 0, False)}"$
|
||||||
Log(Subs.totalPedido)
|
Log(Subs.totalPedido)
|
||||||
else If lfila.Text = "RMI" And laCant.Text + 1 <= inv And (Subs.totalPedido - precio > 1) Then
|
else If lfila.Text = "RMI" And laCant.Text + 1 <= inv And (Subs.totalPedido - precio > 1) Then
|
||||||
' LogColor(inv, Colors.blue)
|
' LogColor(inv, Colors.blue)
|
||||||
laCant.Text = $"$1.0{laCant.Text + 1}"$
|
laCant.Text = $"${NumberFormat2((laCant.Text + 1), 1, 0, 0, False)}"$
|
||||||
Log(Subs.totalPedido)
|
Log(Subs.totalPedido)
|
||||||
else if Subs.totalPedido < 1 Then
|
else if Subs.totalPedido < 1 Then
|
||||||
laCant.Text = "0"
|
laCant.Text = "0"
|
||||||
@@ -605,6 +606,7 @@ Sub b_prodMas_Click
|
|||||||
nombreX = "CAMBIO"&Subs.traeRMINombre(id)
|
nombreX = "CAMBIO"&Subs.traeRMINombre(id)
|
||||||
precioX = precioX * -1
|
precioX = precioX * -1
|
||||||
End If
|
End If
|
||||||
|
Log(">>>>>>> Insertamos prod desde prodMas")
|
||||||
Subs.actualizaProducto(almacenX, precioX, laCant.text, nombreX, id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, Starter.tipov)
|
Subs.actualizaProducto(almacenX, precioX, laCant.text, nombreX, id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, Starter.tipov)
|
||||||
cuentaProds
|
cuentaProds
|
||||||
If Subs.totalPedido < 1 Then
|
If Subs.totalPedido < 1 Then
|
||||||
@@ -616,6 +618,24 @@ Sub b_prodMas_Click
|
|||||||
' Log($"Total Prods: ${totalProds}, Total Compra: $$1.2{totalCompra}"$)
|
' Log($"Total Prods: ${totalProds}, Total Compra: $$1.2{totalCompra}"$)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
|
Private Sub et_pCant_FocusChanged (HasFocus As Boolean)
|
||||||
|
' LogColor($"focus changed=${HasFocus}"$, Colors.Magenta)
|
||||||
|
etCantHasFocus = HasFocus
|
||||||
|
' Dim index As Int = clv_prods_ll.GetItemFromView(Sender)
|
||||||
|
' Dim pnl0 As B4XView = clv_prods_ll.GetPanel(index)
|
||||||
|
' Dim pnl As B4XView = pnl0.GetView(0)
|
||||||
|
' Dim laCant As B4XView = pnl.GetView(2).GetView(2)
|
||||||
|
' Log("%%%%%%%%%%%%%%%% - " & Sender.As(EditText).text)
|
||||||
|
Try
|
||||||
|
If Sender.As(EditText).Text = "" Then Sender.As(EditText).Text = "0"
|
||||||
|
Sender.As(EditText).Text = $"${NumberFormat2(Sender.As(EditText).Text, 1, 0, 0, False)}"$
|
||||||
|
cuentaProds
|
||||||
|
Catch
|
||||||
|
Log(LastException)
|
||||||
|
End Try
|
||||||
|
End Sub
|
||||||
|
|
||||||
Private Sub et_pCant_TextChanged (Old As String, New As String)
|
Private Sub et_pCant_TextChanged (Old As String, New As String)
|
||||||
' LogColor($"txt changed: ${Old}|${New}, hasfocus=${etCantHasFocus}"$,Colors.Magenta)
|
' LogColor($"txt changed: ${Old}|${New}, hasfocus=${etCantHasFocus}"$,Colors.Magenta)
|
||||||
' If Not(Old = "0" And New = "") And etCantHasFocus Then cuentaProds
|
' If Not(Old = "0" And New = "") And etCantHasFocus Then cuentaProds
|
||||||
@@ -627,18 +647,19 @@ Private Sub et_pCant_TextChanged (Old As String, New As String)
|
|||||||
Dim pnl0 As B4XView = clv_prods_ll.GetPanel(index)
|
Dim pnl0 As B4XView = clv_prods_ll.GetPanel(index)
|
||||||
Dim pnl As B4XView = pnl0.GetView(0)
|
Dim pnl As B4XView = pnl0.GetView(0)
|
||||||
Dim laCant As B4XView = pnl.GetView(2).GetView(2)
|
Dim laCant As B4XView = pnl.GetView(2).GetView(2)
|
||||||
|
' Log(clv_prods_ll.GetValue(index).As(Map))
|
||||||
Private id As String=clv_prods_ll.GetValue(index).As(Map).Get("id")
|
Private id As String=clv_prods_ll.GetValue(index).As(Map).Get("id")
|
||||||
Private precio As String=clv_prods_ll.GetValue(index).As(Map).Get("precio")
|
Private precio As String=clv_prods_ll.GetValue(index).As(Map).Get("precio")
|
||||||
Log("++++++++++ " & precio)
|
' Log("++++++++++ " & precio)
|
||||||
Dim tempTot As String = Subs.totalPedido
|
Dim tempTot As String = Subs.totalPedido
|
||||||
Dim disp As String = 0
|
Dim disp As String = 0
|
||||||
If tempTot > 0 Then disp = (Subs.totalPedido / precio) - 1
|
If tempTot > 0 Then disp = (Subs.totalPedido / precio) - 1
|
||||||
disp = NumberFormat2(disp, 1, 0, 0, False)
|
disp = NumberFormat2(disp, 1, 0, 0, False)
|
||||||
|
|
||||||
Log($"${laCant.text}, ${precio}, DISPONIBLES: ${disp}"$)
|
Log($"${laCant.text}, ${precio}, DISPONIBLES: ${disp}"$)
|
||||||
|
' Private inv As String=clv_prods_ll.GetValue(index).As(Map).Get("almacen")
|
||||||
Private inv As String=clv_prods_ll.GetValue(index).As(Map).Get("almacen")
|
Private inv As String=clv_prods_ll.GetValue(index).As(Map).Get("almacen")
|
||||||
Private inv As String=clv_prods_ll.GetValue(index).As(Map).Get("almacen")
|
' If(New = "" Or New = Null) Then New = 0
|
||||||
If(New = "" Or New = Null) Then New = 0
|
|
||||||
If(New > inv) Then
|
If(New > inv) Then
|
||||||
Sender.As(EditText).text = inv
|
Sender.As(EditText).text = inv
|
||||||
End If
|
End If
|
||||||
@@ -654,17 +675,18 @@ Private Sub et_pCant_TextChanged (Old As String, New As String)
|
|||||||
' elProd = Subs.traeProdNombre(id)
|
' elProd = Subs.traeProdNombre(id)
|
||||||
Log("NO RMI")
|
Log("NO RMI")
|
||||||
End If
|
End If
|
||||||
' Log($"inventario=${inv}"$)
|
' Log($"inventario=${inv}"$)
|
||||||
' Dim tmpCant As String = laCant.text
|
' Dim tmpCant As String = laCant.text
|
||||||
If laCant.Text = "" Then laCant.Text = "0"
|
If laCant.Text = "" Then laCant.Text = "0"
|
||||||
If laCant.Text > disp Then
|
' If laCant.Text > disp Then
|
||||||
Log($"Ponemos laCant en: ${disp}"$)
|
' Log($"Ponemos laCant en: ${disp}"$)
|
||||||
' laCant.Text = ""
|
'' laCant.Text = ""
|
||||||
laCant.text = "0"
|
' laCant.text = "0"
|
||||||
' etCantHasFocus = True
|
'' etCantHasFocus = True
|
||||||
End If
|
' End If
|
||||||
If Not(Old = "0" And New = "") And laCant.Text <> Null And laCant.Text <> "" And etCantHasFocus Then
|
If Not(Old = "0" And New = "") And laCant.Text <> Null And laCant.Text <> "" And etCantHasFocus Then
|
||||||
Subs.actualizaProducto(almacenX, precioX, laCant.Text, nombreX, id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, B4XPages.MainPage.tipo_venta)
|
Log(">>>>>> Insertamos prod desde et_pCante_TextChanged")
|
||||||
|
Subs.actualizaProducto(almacenX, precioX, laCant.Text, nombreX, id, clienteId, Subs.traeFecha, Subs.traeUsuarioDeBD, rutaUsuario, 0, Starter.tipov)
|
||||||
cuentaProds
|
cuentaProds
|
||||||
End If
|
End If
|
||||||
Catch
|
Catch
|
||||||
@@ -679,12 +701,6 @@ Private Sub et_pCant_TextChanged (Old As String, New As String)
|
|||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub et_pCant_FocusChanged (HasFocus As Boolean)
|
|
||||||
' LogColor($"focus changed=${HasFocus}"$, Colors.Magenta)
|
|
||||||
etCantHasFocus = HasFocus
|
|
||||||
cuentaProds
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
Sub cuentaProds
|
Sub cuentaProds
|
||||||
'LogColor($"Productos de la orden: ${c_prodsX.GetString("cantProds")}, Total: ${c_prodsX.GetString("costoTotal")}"$, Colors.red)
|
'LogColor($"Productos de la orden: ${c_prodsX.GetString("cantProds")}, Total: ${c_prodsX.GetString("costoTotal")}"$, Colors.red)
|
||||||
' Log("===========================")
|
' Log("===========================")
|
||||||
@@ -1121,7 +1137,7 @@ Sub Busca_TextChanged (Old As String, New As String)
|
|||||||
listaProds.Initialize
|
listaProds.Initialize
|
||||||
listaHints.Initialize
|
listaHints.Initialize
|
||||||
Sleep(0)
|
Sleep(0)
|
||||||
Dim p As ResultSet = Starter.skmt.ExecQuery($"select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_ALMACEN, CAT_GP_PRECIO, CAT_GP_TIPOPROD from CAT_GUNAPROD2 where CAT_GP_NOMBRE like '%${New}%' and CAT_GP_PRECIO > 0 AND CAT_GP_ALMACEN > 0 and CAT_GP_CLASIF <> 'PROMOS' order by CAT_GP_NOMBRE"$)
|
Dim p As ResultSet = Starter.skmt.ExecQuery($"select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_ALMACEN, CAT_GP_PRECIO, CAT_GP_TIPOPROD from ${query} where CAT_GP_NOMBRE like '%${New}%' and CAT_GP_PRECIO > 0 AND CAT_GP_ALMACEN > 0 and CAT_GP_CLASIF <> 'PROMOS' order by CAT_GP_NOMBRE"$)
|
||||||
' c2= Starter.skmt.ExecQuery2("select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_PRECIO, CAT_GP_ALMACEN, CAT_GP_IMG from " & query & " where CAT_GP_ALMACEN > 0 AND CAT_GP_TIPO = ? AND CAT_GP_SUBTIPO =? AND CAT_GP_TIPOPROD <> 1 and (length(CAT_GP_CODPROMO) = 1 OR CAT_GP_CODPROMO = CAT_GP_ID) ", Array As String( Value, Value)
|
' c2= Starter.skmt.ExecQuery2("select CAT_GP_ID, CAT_GP_NOMBRE, CAT_GP_PRECIO, CAT_GP_ALMACEN, CAT_GP_IMG from " & query & " where CAT_GP_ALMACEN > 0 AND CAT_GP_TIPO = ? AND CAT_GP_SUBTIPO =? AND CAT_GP_TIPOPROD <> 1 and (length(CAT_GP_CODPROMO) = 1 OR CAT_GP_CODPROMO = CAT_GP_ID) ", Array As String( Value, Value)
|
||||||
Log("Llamamos LlenaProdsLL")
|
Log("Llamamos LlenaProdsLL")
|
||||||
LlenaProdsLL(p, Null)
|
LlenaProdsLL(p, Null)
|
||||||
|
|||||||
@@ -166,7 +166,7 @@ File246=marker-verde-15.png
|
|||||||
File247=marker-verde-16.png
|
File247=marker-verde-16.png
|
||||||
File248=marker-verde-17.png
|
File248=marker-verde-17.png
|
||||||
File249=marker-verde-18.png
|
File249=marker-verde-18.png
|
||||||
File25=K-b27c0809.png
|
File25=kelloggs.png
|
||||||
File250=marker-verde-19.png
|
File250=marker-verde-19.png
|
||||||
File251=marker-verde-2.png
|
File251=marker-verde-2.png
|
||||||
File252=marker-verde-20.png
|
File252=marker-verde-20.png
|
||||||
@@ -177,7 +177,7 @@ File256=marker-verde-24.png
|
|||||||
File257=marker-verde-25.png
|
File257=marker-verde-25.png
|
||||||
File258=marker-verde-26.png
|
File258=marker-verde-26.png
|
||||||
File259=marker-verde-27.png
|
File259=marker-verde-27.png
|
||||||
File26=kelloggs.png
|
File26=keymon_logo.png
|
||||||
File260=marker-verde-28.png
|
File260=marker-verde-28.png
|
||||||
File261=marker-verde-29.png
|
File261=marker-verde-29.png
|
||||||
File262=marker-verde-3.png
|
File262=marker-verde-3.png
|
||||||
@@ -188,7 +188,7 @@ File266=marker-verde-33.png
|
|||||||
File267=marker-verde-34.png
|
File267=marker-verde-34.png
|
||||||
File268=marker-verde-35.png
|
File268=marker-verde-35.png
|
||||||
File269=marker-verde-36.png
|
File269=marker-verde-36.png
|
||||||
File27=keymon_logo.png
|
File27=kmt.db
|
||||||
File270=marker-verde-37.png
|
File270=marker-verde-37.png
|
||||||
File271=marker-verde-38.png
|
File271=marker-verde-38.png
|
||||||
File272=marker-verde-39.png
|
File272=marker-verde-39.png
|
||||||
@@ -199,7 +199,7 @@ File276=marker-verde-42.png
|
|||||||
File277=marker-verde-43.png
|
File277=marker-verde-43.png
|
||||||
File278=marker-verde-44.png
|
File278=marker-verde-44.png
|
||||||
File279=marker-verde-45.png
|
File279=marker-verde-45.png
|
||||||
File28=kmt.db
|
File28=login.bal
|
||||||
File280=marker-verde-46.png
|
File280=marker-verde-46.png
|
||||||
File281=marker-verde-47.png
|
File281=marker-verde-47.png
|
||||||
File282=marker-verde-48.png
|
File282=marker-verde-48.png
|
||||||
@@ -210,7 +210,7 @@ File286=marker-verde-51.png
|
|||||||
File287=marker-verde-52.png
|
File287=marker-verde-52.png
|
||||||
File288=marker-verde-53.png
|
File288=marker-verde-53.png
|
||||||
File289=marker-verde-54.png
|
File289=marker-verde-54.png
|
||||||
File29=login.bal
|
File29=logo sanfer.jpg
|
||||||
File290=marker-verde-55.png
|
File290=marker-verde-55.png
|
||||||
File291=marker-verde-56.png
|
File291=marker-verde-56.png
|
||||||
File292=marker-verde-57.png
|
File292=marker-verde-57.png
|
||||||
@@ -222,7 +222,7 @@ File297=marker-verde-61.png
|
|||||||
File298=marker-verde-62.png
|
File298=marker-verde-62.png
|
||||||
File299=marker-verde-63.png
|
File299=marker-verde-63.png
|
||||||
File3=alerta.jpg
|
File3=alerta.jpg
|
||||||
File30=logo sanfer.jpg
|
File30=Logo_durakelo_192xx192.jpeg
|
||||||
File300=marker-verde-64.png
|
File300=marker-verde-64.png
|
||||||
File301=marker-verde-65.png
|
File301=marker-verde-65.png
|
||||||
File302=marker-verde-66.png
|
File302=marker-verde-66.png
|
||||||
@@ -736,43 +736,45 @@ Library11=firebasenotifications
|
|||||||
Library12=fusedlocationprovider
|
Library12=fusedlocationprovider
|
||||||
Library13=gifdecoder
|
Library13=gifdecoder
|
||||||
Library14=googlemaps
|
Library14=googlemaps
|
||||||
Library15=gps
|
Library15=googlemapsextras
|
||||||
Library16=ime
|
Library16=gps
|
||||||
Library17=javaobject
|
Library17=ime
|
||||||
Library18=json
|
Library18=javaobject
|
||||||
Library19=okhttputils2
|
Library19=json
|
||||||
Library2=baqrcode
|
Library2=baqrcode
|
||||||
Library20=phone
|
Library20=okhttputils2
|
||||||
Library21=preoptimizedclv
|
Library21=phone
|
||||||
Library22=randomaccessfile
|
Library22=preoptimizedclv
|
||||||
Library23=reflection
|
Library23=randomaccessfile
|
||||||
Library24=runtimepermissions
|
Library24=reflection
|
||||||
Library25=serial
|
Library25=runtimepermissions
|
||||||
Library26=sql
|
Library26=serial
|
||||||
Library27=xcustomlistview
|
Library27=sql
|
||||||
Library28=zxing_scanner
|
Library28=xcustomlistview
|
||||||
Library29=googlemapsextras
|
Library29=zxing_scanner
|
||||||
Library3=batteryprogressview
|
Library3=batteryprogressview
|
||||||
|
Library30=contentresolver
|
||||||
Library4=bitmapcreator
|
Library4=bitmapcreator
|
||||||
Library5=byteconverter
|
Library5=byteconverter
|
||||||
Library6=camera
|
Library6=camera
|
||||||
Library7=compressstrings
|
Library7=compressstrings
|
||||||
Library8=core
|
Library8=core
|
||||||
Library9=fileprovider
|
Library9=fileprovider
|
||||||
ManifestCode='This code will be applied to the manifest file during compilation.~\n~'You do not need to modify it in most cases.~\n~'See this link for for more information: https://www.b4x.com/forum/showthread.php?p=78136~\n~AddManifestText(~\n~<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="33"/>~\n~<supports-screens android:largeScreens="true" ~\n~ android:normalScreens="true" ~\n~ android:smallScreens="true" ~\n~ android:anyDensity="true"/>)~\n~SetApplicationAttribute(android:icon, "@drawable/icon")~\n~SetApplicationAttribute(android:label, "$LABEL$")~\n~CreateResourceFromFile(Macro, Themes.LightTheme)~\n~'End of default text.~\n~~\n~AddApplicationText(~\n~<meta-data android:name="com.google.android.geo.API_KEY" android:value="AIzaSyBlBnx3O-DncOSv3oFIp-12wgujOYYcl-U"/>~\n~<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />~\n~)~\n~AddManifestText(<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" android:maxSdkVersion="33" />)~\n~AddManifestText(<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />)~\n~SetApplicationAttribute(android:usesCleartextTraffic, "true")~\n~~\n~~\n~'/////////////// FLP y FBMessageing MOD Inicia /////////////////////~\n~CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)~\n~CreateResourceFromFile(Macro, FirebaseAnalytics.Firebase)~\n~CreateResourceFromFile(Macro, FirebaseAnalytics.FirebaseAnalytics)~\n~CreateResourceFromFile(Macro, FirebaseNotifications.FirebaseNotifications)~\n~'CreateResourceFromFile(Macro, FirebaseAnalytics.Crashlytics)~\n~SetServiceAttribute(Tracker, android:foregroundServiceType, "location")~\n~'/////////////// FLP y FBMessageing MOD Termina /////////////////////~\n~~\n~'Si al cargar un mapa de google manda este error "java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/ProtocolVersion". agregar la siguiente linea:~\n~AddApplicationText(<uses-library android:name="org.apache.http.legacy" android:required="false"/>)~\n~SetApplicationAttribute(android:allowBackup, "false")~\n~SetApplicationAttribute(android:exported, "true")~\n~AddManifestText(<queries><package android:name="com.google.android.apps.maps" /></queries>)
|
ManifestCode='This code will be applied to the manifest file during compilation.~\n~'You do not need to modify it in most cases.~\n~'See this link for for more information: https://www.b4x.com/forum/showthread.php?p=78136~\n~AddManifestText(~\n~<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="33"/>~\n~<supports-screens android:largeScreens="true" ~\n~ android:normalScreens="true" ~\n~ android:smallScreens="true" ~\n~ android:anyDensity="true"/>)~\n~SetApplicationAttribute(android:icon, "@drawable/icon")~\n~SetApplicationAttribute(android:label, "$LABEL$")~\n~CreateResourceFromFile(Macro, Themes.LightTheme)~\n~'End of default text.~\n~~\n~AddApplicationText(~\n~<meta-data android:name="com.google.android.geo.API_KEY" android:value="AIzaSyBlBnx3O-DncOSv3oFIp-12wgujOYYcl-U"/>~\n~<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />~\n~)~\n~AddManifestText(<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" android:maxSdkVersion="33" />)~\n~AddManifestText(<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />)~\n~SetApplicationAttribute(android:usesCleartextTraffic, "true")~\n~~\n~~\n~'/////////////// FLP y FBMessageing MOD Inicia /////////////////////~\n~CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)~\n~CreateResourceFromFile(Macro, FirebaseAnalytics.Firebase)~\n~CreateResourceFromFile(Macro, FirebaseAnalytics.FirebaseAnalytics)~\n~CreateResourceFromFile(Macro, FirebaseNotifications.FirebaseNotifications)~\n~'CreateResourceFromFile(Macro, FirebaseAnalytics.Crashlytics)~\n~SetServiceAttribute(Tracker, android:foregroundServiceType, "location")~\n~'/////////////// FLP y FBMessageing MOD Termina /////////////////////~\n~~\n~'Si al cargar un mapa de google manda este error "java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/ProtocolVersion". agregar la siguiente linea:~\n~AddApplicationText(<uses-library android:name="org.apache.http.legacy" android:required="false"/>)~\n~SetApplicationAttribute(android:allowBackup, "false")~\n~SetApplicationAttribute(android:exported, "true")~\n~AddManifestText(<queries><package android:name="com.google.android.apps.maps" /></queries>)~\n~~\n~'Para provider (Envio de base de datos por whatsapp)~\n~AddApplicationText(~\n~ <provider android:name="android.support.v4.content.FileProvider" android:authorities="$PACKAGE$.provider" android:exported="false" android:grantUriPermissions="true">~\n~ <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/provider_paths"/>~\n~ </provider>~\n~ )~\n~CreateResource(xml, provider_paths,~\n~ <paths>~\n~ <external-files-path name="name" path="" />~\n~ <files-path name="name" path="" />~\n~ <files-path name="name" path="shared" />~\n~ </paths>~\n~ )
|
||||||
Module1=B4XMainPage
|
Module1=B4XMainPage
|
||||||
Module10=C_Promos
|
Module10=C_Promos
|
||||||
Module11=C_TicketsDia
|
Module11=C_TicketsDia
|
||||||
Module12=DBRequestManager
|
Module12=DBRequestManager
|
||||||
Module13=EscPosPrinter
|
Module13=EscPosPrinter
|
||||||
Module14=FirebaseMessaging
|
Module14=FileHandler
|
||||||
Module15=kms_helperSubs
|
Module15=FirebaseMessaging
|
||||||
Module16=ManageExternalStorage
|
Module16=kms_helperSubs
|
||||||
Module17=MAPA_RUTAS
|
Module17=ManageExternalStorage
|
||||||
Module18=Starter
|
Module18=MAPA_RUTAS
|
||||||
Module19=Subs
|
Module19=Starter
|
||||||
Module2=BatteryUtilities
|
Module2=BatteryUtilities
|
||||||
Module20=Tracker
|
Module20=Subs
|
||||||
|
Module21=Tracker
|
||||||
Module3=C_Cliente
|
Module3=C_Cliente
|
||||||
Module4=C_Clientes
|
Module4=C_Clientes
|
||||||
Module5=C_Historico
|
Module5=C_Historico
|
||||||
@@ -781,14 +783,14 @@ Module7=C_NoVenta
|
|||||||
Module8=C_Principal
|
Module8=C_Principal
|
||||||
Module9=C_Productos
|
Module9=C_Productos
|
||||||
NumberOfFiles=365
|
NumberOfFiles=365
|
||||||
NumberOfLibraries=29
|
NumberOfLibraries=30
|
||||||
NumberOfModules=20
|
NumberOfModules=21
|
||||||
Version=12.5
|
Version=12.5
|
||||||
@EndOfDesignText@
|
@EndOfDesignText@
|
||||||
#Region Project Attributes
|
#Region Project Attributes
|
||||||
#ApplicationLabel: Durakelo
|
#ApplicationLabel: Durakelo
|
||||||
#VersionCode: 1
|
#VersionCode: 1
|
||||||
#VersionName: 3.10.09
|
#VersionName: 3.10.31
|
||||||
'SupportedOrientations possible values: unspecified, landscape or portrait.
|
'SupportedOrientations possible values: unspecified, landscape or portrait.
|
||||||
#SupportedOrientations: portrait
|
#SupportedOrientations: portrait
|
||||||
#CanInstallToExternalStorage: False
|
#CanInstallToExternalStorage: False
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ ModuleBookmarks18=
|
|||||||
ModuleBookmarks19=
|
ModuleBookmarks19=
|
||||||
ModuleBookmarks2=
|
ModuleBookmarks2=
|
||||||
ModuleBookmarks20=
|
ModuleBookmarks20=
|
||||||
|
ModuleBookmarks21=
|
||||||
ModuleBookmarks3=
|
ModuleBookmarks3=
|
||||||
ModuleBookmarks4=
|
ModuleBookmarks4=
|
||||||
ModuleBookmarks5=
|
ModuleBookmarks5=
|
||||||
@@ -33,6 +34,7 @@ ModuleBreakpoints18=
|
|||||||
ModuleBreakpoints19=
|
ModuleBreakpoints19=
|
||||||
ModuleBreakpoints2=
|
ModuleBreakpoints2=
|
||||||
ModuleBreakpoints20=
|
ModuleBreakpoints20=
|
||||||
|
ModuleBreakpoints21=
|
||||||
ModuleBreakpoints3=
|
ModuleBreakpoints3=
|
||||||
ModuleBreakpoints4=
|
ModuleBreakpoints4=
|
||||||
ModuleBreakpoints5=
|
ModuleBreakpoints5=
|
||||||
@@ -41,7 +43,7 @@ ModuleBreakpoints7=
|
|||||||
ModuleBreakpoints8=
|
ModuleBreakpoints8=
|
||||||
ModuleBreakpoints9=
|
ModuleBreakpoints9=
|
||||||
ModuleClosedNodes0=
|
ModuleClosedNodes0=
|
||||||
ModuleClosedNodes1=
|
ModuleClosedNodes1=2,3,4,5,6,7
|
||||||
ModuleClosedNodes10=
|
ModuleClosedNodes10=
|
||||||
ModuleClosedNodes11=
|
ModuleClosedNodes11=
|
||||||
ModuleClosedNodes12=
|
ModuleClosedNodes12=
|
||||||
@@ -50,17 +52,18 @@ ModuleClosedNodes14=
|
|||||||
ModuleClosedNodes15=
|
ModuleClosedNodes15=
|
||||||
ModuleClosedNodes16=
|
ModuleClosedNodes16=
|
||||||
ModuleClosedNodes17=
|
ModuleClosedNodes17=
|
||||||
ModuleClosedNodes18=1
|
ModuleClosedNodes18=
|
||||||
ModuleClosedNodes19=10,12,14
|
ModuleClosedNodes19=1
|
||||||
ModuleClosedNodes2=
|
ModuleClosedNodes2=
|
||||||
ModuleClosedNodes20=
|
ModuleClosedNodes20=10,12,14
|
||||||
|
ModuleClosedNodes21=
|
||||||
ModuleClosedNodes3=
|
ModuleClosedNodes3=
|
||||||
ModuleClosedNodes4=
|
ModuleClosedNodes4=
|
||||||
ModuleClosedNodes5=
|
ModuleClosedNodes5=
|
||||||
ModuleClosedNodes6=
|
ModuleClosedNodes6=1
|
||||||
ModuleClosedNodes7=
|
ModuleClosedNodes7=
|
||||||
ModuleClosedNodes8=
|
ModuleClosedNodes8=1
|
||||||
ModuleClosedNodes9=
|
ModuleClosedNodes9=
|
||||||
NavigationStack=C_Principal,Btn_UbicarR_Click,2555,5,MAPA_RUTAS,Globals,48,0,MAPA_RUTAS,MapFragment1_Ready,239,0,MAPA_RUTAS,OnInfoWindowClickListener1_click,245,6,C_Principal,B_PROXIMA_Click,2442,6,C_Principal,Resumen_Click,2428,0,C_TicketsDia,Class_Globals,0,0,Visual Designer,principal.bal,-100,2,Visual Designer,ticketsDia.bal,-100,1,C_TicketsDia,B4XPage_Created,22,0
|
NavigationStack=C_Productos,cuentaProds,703,0,C_Cliente,Guardar_Click,337,0,Visual Designer,nota.bal,-100,3,C_Cliente,Tels_Click,313,0,C_Cliente,Tar_Click,324,0,B4XMainPage,JobDone,403,0,B4XMainPage,B4XPage_CloseRequest,418,0,C_Principal,B4XPage_CloseRequest,1885,0,C_Cliente,B4XPage_CloseRequest,320,6,C_Productos,et_pCant_TextChanged,648,0,C_Productos,et_pCant_FocusChanged,629,1
|
||||||
SelectedBuild=0
|
SelectedBuild=0
|
||||||
VisibleModules=18,1,8,15,6,3,7,9,19,10,17,11
|
VisibleModules=19,1,8,16,6,3,7,9,20,10,21
|
||||||
|
|||||||
162
B4A/FileHandler.bas
Normal file
162
B4A/FileHandler.bas
Normal file
@@ -0,0 +1,162 @@
|
|||||||
|
B4A=true
|
||||||
|
Group=Default Group
|
||||||
|
ModulesStructureVersion=1
|
||||||
|
Type=Class
|
||||||
|
Version=11
|
||||||
|
@EndOfDesignText@
|
||||||
|
'Requiere la librería "ContentResolver" y "FileProvider" o "AppUpdating"
|
||||||
|
'
|
||||||
|
'Copiar este codigo al boton_Click que se quiere que importe la base de datos.
|
||||||
|
'
|
||||||
|
' Private Sub b_importarBD_Click
|
||||||
|
' Private FH As FileHandler
|
||||||
|
' FH.Initialize
|
||||||
|
' Wait For (FH.Load) Complete (Result As LoadResult) 'Abre un fileManager para seleccionar la base de datos a importar.
|
||||||
|
' File.Copy(Result.Dir, Result.FileName, File.DirInternal, "kmt.db") 'Copia la base de datos seleccionada al directorio interno.
|
||||||
|
' Starter.skmt.Initialize(Starter.ruta,"kmt.db", True) 'Reiniciliza la base de datos con la recien importada.
|
||||||
|
' ToastMessageShow("¡BD importada!", False)
|
||||||
|
' End Sub
|
||||||
|
|
||||||
|
Sub Class_Globals
|
||||||
|
#if B4A
|
||||||
|
Private ion As Object
|
||||||
|
Private OldIntent As Intent
|
||||||
|
#end if
|
||||||
|
Type LoadResult (Success As Boolean, Dir As String, FileName As String, RealName As String, Size As Long, Modified As Long, MimeType As String)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Public Sub Initialize
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
#if B4A
|
||||||
|
Public Sub SaveAs (Source As InputStream, MimeType As String, Title As String) As ResumableSub
|
||||||
|
Dim intent As Intent
|
||||||
|
intent.Initialize("android.intent.action.CREATE_DOCUMENT", "")
|
||||||
|
intent.AddCategory("android.intent.category.OPENABLE")
|
||||||
|
intent.PutExtra("android.intent.extra.TITLE", Title)
|
||||||
|
intent.SetType(MimeType)
|
||||||
|
StartActivityForResult(intent)
|
||||||
|
Wait For ion_Event (MethodName As String, Args() As Object)
|
||||||
|
If -1 = Args(0) Then 'resultCode = RESULT_OK
|
||||||
|
Dim result As Intent = Args(1)
|
||||||
|
Dim jo As JavaObject = result
|
||||||
|
Dim ctxt As JavaObject
|
||||||
|
Dim out As OutputStream = ctxt.InitializeContext.RunMethodJO("getContentResolver", Null).RunMethod("openOutputStream", Array(jo.RunMethod("getData", Null)))
|
||||||
|
File.Copy2(Source, out)
|
||||||
|
out.Close
|
||||||
|
Return True
|
||||||
|
End If
|
||||||
|
Return False
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Public Sub Load As ResumableSub
|
||||||
|
Dim cc As ContentChooser
|
||||||
|
cc.Initialize("cc")
|
||||||
|
cc.Show("application/octet-stream", "Choose text file")
|
||||||
|
Wait For CC_Result (Success As Boolean, Dir As String, FileName As String)
|
||||||
|
Log($"***************************${CRLF}${Dir}${CRLF} ${FileName}"$)
|
||||||
|
Dim res As LoadResult = CreateLoadResult(Success, Dir, FileName)
|
||||||
|
Log($"***************************${CRLF}${res.FileName}${CRLF} ${res}"$)
|
||||||
|
If res.Success Then ExtractInformationFromURI(res.FileName, res)
|
||||||
|
Return res
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub StartActivityForResult(i As Intent)
|
||||||
|
Dim jo As JavaObject = GetBA
|
||||||
|
ion = jo.CreateEvent("anywheresoftware.b4a.IOnActivityResult", "ion", Null)
|
||||||
|
jo.RunMethod("startActivityForResult", Array(ion, i))
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub GetBA As Object
|
||||||
|
Return Me.As(JavaObject).RunMethod("getBA", Null)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub ExtractInformationFromURI (Uri As String, res As LoadResult)
|
||||||
|
Try
|
||||||
|
|
||||||
|
Dim resolver As ContentResolver
|
||||||
|
resolver.Initialize("")
|
||||||
|
Dim u As Uri
|
||||||
|
u.Parse(Uri)
|
||||||
|
Dim rs As ResultSet = resolver.Query(u, Null, "", Null, "")
|
||||||
|
If rs.NextRow Then
|
||||||
|
Dim columns As B4XSet = B4XCollections.CreateSet
|
||||||
|
For i = 0 To rs.ColumnCount - 1
|
||||||
|
columns.Add(rs.GetColumnName(i))
|
||||||
|
Next
|
||||||
|
If columns.Contains("_display_name") Then res.RealName = rs.GetString("_display_name")
|
||||||
|
If columns.Contains("_size") Then res.Size = rs.GetLong("_size")
|
||||||
|
If columns.Contains("last_modified") Then res.Modified = rs.GetLong("last_modified")
|
||||||
|
If columns.Contains("mime_type") Then res.MimeType = rs.GetString("mime_type")
|
||||||
|
End If
|
||||||
|
rs.Close
|
||||||
|
|
||||||
|
Catch
|
||||||
|
Log("error extracting information from file provider")
|
||||||
|
Log(LastException)
|
||||||
|
End Try
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Public Sub CheckForReceivedFiles As LoadResult
|
||||||
|
Dim Activity As Activity = B4XPages.GetNativeParent(B4XPages.MainPage)
|
||||||
|
If IsRelevantIntent(Activity.GetStartingIntent) Then
|
||||||
|
Dim in As Intent = Activity.GetStartingIntent
|
||||||
|
Dim uri As String
|
||||||
|
If in.HasExtra("android.intent.extra.STREAM") Then
|
||||||
|
uri = in.As(JavaObject).RunMethod("getParcelableExtra", Array("android.intent.extra.STREAM"))
|
||||||
|
Else
|
||||||
|
uri = in.GetData
|
||||||
|
End If
|
||||||
|
Dim res As LoadResult = CreateLoadResult(True, "ContentDir", uri)
|
||||||
|
ExtractInformationFromURI(res.FileName, res)
|
||||||
|
Return res
|
||||||
|
End If
|
||||||
|
Return CreateLoadResult(False, "", "")
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub IsRelevantIntent(in As Intent) As Boolean
|
||||||
|
If in.IsInitialized And in <> OldIntent And in.Action = in.ACTION_VIEW Then
|
||||||
|
OldIntent = in
|
||||||
|
Return True
|
||||||
|
End If
|
||||||
|
Return False
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
#else if B4i
|
||||||
|
Public Sub SaveAs(ParentPage As Object, AnchorView As Object, Text As String) As ResumableSub
|
||||||
|
Dim avc As ActivityViewController
|
||||||
|
avc.Initialize("avc", Array(Text))
|
||||||
|
avc.Show(B4XPages.GetNativeParent(ParentPage), AnchorView)
|
||||||
|
Wait For avc_Complete (Success As Boolean, ActivityType As String)
|
||||||
|
Return Success
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Public Sub Load (ParentPage As Object, AnchorView As Object) As ResumableSub
|
||||||
|
Dim DocumentPicker As DocumentPickerViewController
|
||||||
|
DocumentPicker.InitializeImport("picker", Array("public.text"))
|
||||||
|
DocumentPicker.Show(B4XPages.GetNativeParent(ParentPage), AnchorView)
|
||||||
|
Wait For Picker_Complete (Success As Boolean, URLs As List)
|
||||||
|
If Success And URLs.Size > 0 Then
|
||||||
|
Return UrlToLoadResult(URLs.Get(0))
|
||||||
|
End If
|
||||||
|
Return CreateLoadResult(False, "", "")
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Public Sub UrlToLoadResult(url As String) As LoadResult
|
||||||
|
Dim res As LoadResult = CreateLoadResult(IIf(File.Exists(url, ""), True, False), url, "")
|
||||||
|
res.RealName = res.Dir.SubString(res.Dir.LastIndexOf("/") + 1)
|
||||||
|
res.Size = File.Size(res.Dir, "")
|
||||||
|
Return res
|
||||||
|
End Sub
|
||||||
|
#end if
|
||||||
|
|
||||||
|
Private Sub CreateLoadResult (Success As Boolean, Dir As String, FileName As String) As LoadResult
|
||||||
|
Dim t1 As LoadResult
|
||||||
|
t1.Initialize
|
||||||
|
t1.Success = Success
|
||||||
|
t1.Dir = Dir
|
||||||
|
t1.FileName = FileName
|
||||||
|
Return t1
|
||||||
|
End Sub
|
||||||
|
|
||||||
Binary file not shown.
BIN
B4A/Files/logo_durakelo_192xx192.jpeg
Normal file
BIN
B4A/Files/logo_durakelo_192xx192.jpeg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 5.3 KiB |
Binary file not shown.
Binary file not shown.
@@ -56,6 +56,9 @@ Sub Service_Start (StartingIntent As Intent)
|
|||||||
If File.Exists(File.DirInternal, "kmt.db") = False Then File.Copy(File.DirAssets, "kmt.db", File.DirInternal, "kmt.db")
|
If File.Exists(File.DirInternal, "kmt.db") = False Then File.Copy(File.DirAssets, "kmt.db", File.DirInternal, "kmt.db")
|
||||||
skmt.Initialize(File.DirInternal,"kmt.db", True)
|
skmt.Initialize(File.DirInternal,"kmt.db", True)
|
||||||
StartService(Tracker)
|
StartService(Tracker)
|
||||||
|
#if not(DEBUG)
|
||||||
|
logger = False
|
||||||
|
#end if
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub BTAdmin_StateChanged (NewState As Int, OldState As Int)
|
Private Sub BTAdmin_StateChanged (NewState As Int, OldState As Int)
|
||||||
|
|||||||
@@ -92,7 +92,7 @@ Public Sub StartFLP
|
|||||||
Log("StartFLP - flpStarted="&flpStarted)
|
Log("StartFLP - flpStarted="&flpStarted)
|
||||||
Do While FLP.IsConnected = False
|
Do While FLP.IsConnected = False
|
||||||
Sleep(500)
|
Sleep(500)
|
||||||
If Starter.logger Then Log("sleeping")
|
If Starter.logger Then Log("dk - sleeping")
|
||||||
Loop
|
Loop
|
||||||
' If flpStarted = False Then
|
' If flpStarted = False Then
|
||||||
If Starter.logger Then Log("RequestLocationUpdates")
|
If Starter.logger Then Log("RequestLocationUpdates")
|
||||||
@@ -107,7 +107,7 @@ Public Sub StartFLP2Reqs
|
|||||||
If Starter.logger Then Log("StartFLP - flpStarted="&flpStarted)
|
If Starter.logger Then Log("StartFLP - flpStarted="&flpStarted)
|
||||||
Do While FLP.IsConnected = False
|
Do While FLP.IsConnected = False
|
||||||
Sleep(500)
|
Sleep(500)
|
||||||
If Starter.logger Then Log("sleeping")
|
If Starter.logger Then Log("dk - sleeping")
|
||||||
Loop
|
Loop
|
||||||
dameUltimaUbicacionConocida 'Regresamos ultima ubicacion conocida
|
dameUltimaUbicacionConocida 'Regresamos ultima ubicacion conocida
|
||||||
FLP.RequestLocationUpdates(CreateLocationRequest2times) 'Buscamos ubicacion 2 peticiones
|
FLP.RequestLocationUpdates(CreateLocationRequest2times) 'Buscamos ubicacion 2 peticiones
|
||||||
|
|||||||
Reference in New Issue
Block a user