mirror of
https://github.com/KeymonSoft/Mazapa.git
synced 2026-04-18 05:09:13 +00:00
Se agrega apartado de productos Se agrega leyenda de texto en el ticket Se agrega listado de resumen dia por producto Se agrega limitador de venta por monto Se agrega que no se pueda editar ninguna venta una vez guardada
170 lines
8.3 KiB
QBasic
170 lines
8.3 KiB
QBasic
B4A=true
|
|
Group=Default Group
|
|
ModulesStructureVersion=1
|
|
Type=Class
|
|
Version=12.2
|
|
@EndOfDesignText@
|
|
Sub Class_Globals
|
|
Private Root As B4XView 'ignore
|
|
Private xui As XUI 'ignore
|
|
Dim skmt, rkmt As SQL
|
|
' Dim rp As RuntimePermissions
|
|
Dim safePath As String
|
|
Dim fechaHoy As String
|
|
Dim skmtAttached As Boolean = False
|
|
End Sub
|
|
|
|
'You can add more parameters here.
|
|
Public Sub Initialize As Object
|
|
' Log("************************** " & safePath)
|
|
Dim rp As RuntimePermissions
|
|
Dim Dirp As String = File.DirInternal
|
|
Dim Dir As String
|
|
' Dim Dir2 As String
|
|
Try
|
|
File.MakeDir(Dirp,"/kmts")
|
|
Dir = "/kmts"
|
|
' Log("creado en kmts " & Dirp & Dir)
|
|
Catch
|
|
Dir = ""
|
|
' Log("creado en raiz")
|
|
End Try
|
|
' safePath = rp.GetSafeDirDefaultExternal("./")
|
|
safePath = Dirp & Dir
|
|
'Si no existe el directorio "kmts" en el raiz de la tarjeta de memoria, nos cambiamos al directorio seguro (sdcard/Android/data/kelloggs...)
|
|
If Not(File.IsDirectory(Dirp, Dir)) Then safePath = rp.GetSafeDirDefaultExternal("kmts")
|
|
Private name() As String = Regex.split(" ", Application.LabelName)
|
|
rkmt.Initialize(safePath,$"${name(0)}.rkmt.km"$, True)
|
|
skmt.Initialize(File.DirInternal,"kmt.db", False)
|
|
rkmt.ExecNonQuery($"create table if not exists pedidos (pe_folio NUMERIC, pe_desc NUMERIC, pe_costo_sin TEXT, pe_ruta TEXT, pe_cedis TEXT, pe_costo_tot NUMERIC, pe_costou NUMERIC, pe_cant NUMERIC, pe_pronombre TEXT, pe_proid TEXT, pe_cliente TEXT, pe_fecha TEXT, pe_usuario TEXT)"$)
|
|
agregaColumna2(rkmt,"pedidos","pe_cantc","text")
|
|
agregaColumna2(rkmt,"pedidos","pe_bcajas","text")
|
|
agregaColumna2(rkmt,"pedidos", "PE_IMPRESO", "INT")
|
|
Try 'Intentamos usar "pragma_table_info" para revisar si existe la columna en la tabla
|
|
Private c As Cursor = rkmt.ExecQuery($"SELECT COUNT(*) AS fCol FROM pragma_table_info('pedidos') WHERE name='pe_envio_ok'"$)
|
|
c.Position = 0
|
|
If c.GetString("fCol") = 0 Then 'Si no esta la columna la agregamos
|
|
rkmt.ExecNonQuery($"ALTER TABLE pedidos ADD COLUMN pe_envio_ok INT"$)
|
|
Log($"Columna "pe_envio_ok INT", agregada a "pedidos}"."$)
|
|
End If
|
|
Catch 'Si no funciona "pragma_table_info" lo hacemos con try/catch
|
|
Try
|
|
rkmt.ExecNonQuery($"ALTER TABLE pedidos ADD COLUMN pe_envio_ok INT"$)
|
|
Log($"Columna "pe_envio_ok INT", agregada a "pedidos".."$)
|
|
Catch
|
|
Log(LastException)
|
|
End Try
|
|
End Try
|
|
rkmt.ExecNonQuery($"create table if not exists inventarios (cat_gp_iniciativa TEXT, cat_gp_tipoprod TEXT, cat_gp_dev TEXT, cat_gp_almacen NUMERIC, cat_gp_id TEXT, cat_gp_nombre TEXT, cat_gp_imp1 TEXT, cat_gp_imp2 TEXT, cat_gp_precio TEXT, cat_gp_clasif TEXT, cat_gp_sts TEXT, cat_gp_tipo TEXT, cat_gp_subtipo TEXT, cat_gp_tipoprod2 TEXT, fecha TEXT)"$)
|
|
rkmt.ExecNonQuery($"create table if not exists paquetes (cat_dp_precio_simptos TEXT, cat_dp_precio TEXT, cat_dp_almacen TEXT, cat_dp_id TEXT, cat_dp_idprod TEXT, cat_dp_tipo TEXT, cat_dp_pzas TEXT, cat_dp_usuario TEXT, cat_dp_fecha TEXT, cat_dp_regalo TEXT, cat_dp_clasif TEXT, fecha TEXT)"$)
|
|
DateTime.DateFormat = "MM/dd/yyyy"
|
|
fechaHoy = DateTime.Date(DateTime.Now)
|
|
revisaSkmtAttached
|
|
Return Me
|
|
End Sub
|
|
|
|
'This event will be called once, before the page becomes visible.
|
|
Private Sub B4XPage_Created (Root1 As B4XView)
|
|
Root = Root1
|
|
'load the layout to Root
|
|
End Sub
|
|
|
|
'Revisa si esta montada "kmt.db" como "skmt" y si no, se monta.
|
|
Sub revisaSkmtAttached
|
|
skmtAttached = False
|
|
Dim rs As ResultSet = rkmt.ExecQuery("SELECT * FROM pragma_database_list")
|
|
Do While rs.NextRow 'Revisamos si esta montada "kmt.db" como "skmt" y si no, la montamos.
|
|
If rs.GetString("name") = "skmt1" Then skmtAttached = True
|
|
Loop
|
|
If Not(skmtAttached) Then
|
|
rkmt.ExecNonQuery($"attach database '${File.Combine(File.DirInternal, "kmt.db")}' as skmt1;"$)
|
|
skmtAttached = True
|
|
End If
|
|
End Sub
|
|
|
|
'Copia la tabla PEDIDO a rkmt.db en la tarjeta del celular.
|
|
Sub respaldaPedido
|
|
Private inicio As String = DateTime.Now
|
|
' Log("copiando pedidos ...")
|
|
rkmt.BeginTransaction
|
|
rkmt.ExecNonQuery($"delete from pedidos where substr(pe_fecha, 1, 10) = '${fechaHoy}'"$)
|
|
rkmt.ExecNonQuery($"insert into pedidos (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, pe_envio_ok,pe_cantc,pe_bcajas,PE_IMPRESO) select * from skmt1.pedido where substr(pe_fecha, 1, 10) = '${fechaHoy}'"$)
|
|
rkmt.TransactionSuccessful 'Si no se pone TransactionSuccessful no se escribe NADA!!
|
|
rkmt.EndTransaction
|
|
' Log(((DateTime.Now - inicio)/1000) & " segs")
|
|
End Sub
|
|
|
|
|
|
'Copia la tabla CAT_GUNAPRODS a rkmt.db en la tarjeta del celular.
|
|
Sub respaldaInventarios
|
|
' Log($"Borrando de fecha ${fechaHoy}"$)
|
|
Private inicio As String = DateTime.Now
|
|
' Log("copiando inventarios ...")
|
|
' rkmt.ExecNonQuery($"delete from inventarios where substr(fecha, 1, 10) = '${fechaHoy}'"$)
|
|
rkmt.BeginTransaction
|
|
rkmt.ExecNonQuery($"delete from inventarios where fecha = '${fechaHoy}'"$)
|
|
rkmt.ExecNonQuery($"insert into inventarios (cat_gp_iniciativa, cat_gp_tipoprod, cat_gp_dev, cat_gp_almacen, cat_gp_id, cat_gp_nombre, cat_gp_imp1, cat_gp_imp2, cat_gp_precio, cat_gp_clasif, cat_gp_sts, cat_gp_tipo, cat_gp_subtipo, fecha) select cat_gp_iniciativa, cat_gp_tipoprod, cat_gp_dev, cat_gp_almacen, cat_gp_id, cat_gp_nombre, cat_gp_imp1, cat_gp_imp2, cat_gp_precio, cat_gp_clasif, cat_gp_sts, cat_gp_tipo, cat_gp_subtipo, '${fechaHoy}' as fecha from skmt1.cat_gunaprod"$)
|
|
rkmt.TransactionSuccessful 'Si no se pone TransactionSuccessful no se escribe NADA!!
|
|
rkmt.EndTransaction
|
|
' Log(((DateTime.Now - inicio)/1000) & " segs")
|
|
End Sub
|
|
|
|
'Copia la tabla CAT_DETALLE_PAQ a rkmt.db en la tarjeta del celular.
|
|
Sub respaldaPaquetes
|
|
Private inicio As String = DateTime.Now
|
|
' Log("copiando paquetes ...")
|
|
rkmt.BeginTransaction
|
|
' rkmt.ExecNonQuery($"delete from paquetes where substr(fecha, 1, 10) = '${fechaHoy}'"$)
|
|
rkmt.ExecNonQuery($"delete from paquetes where fecha = '${fechaHoy}'"$)
|
|
rkmt.ExecNonQuery($"insert into paquetes (cat_dp_precio_simptos, cat_dp_precio, cat_dp_almacen, cat_dp_id, cat_dp_idprod, cat_dp_tipo, cat_dp_pzas, cat_dp_usuario, cat_dp_fecha, cat_dp_regalo, cat_dp_clasif, fecha) select cat_dp_precio_simptos, cat_dp_precio, cat_dp_almacen, cat_dp_id, cat_dp_idprod, cat_dp_tipo, cat_dp_pzas, cat_dp_usuario, cat_dp_fecha, cat_dp_regalo, cat_dp_clasif, '${fechaHoy}' as fecha from skmt1.cat_detalles_paq"$)
|
|
rkmt.TransactionSuccessful 'Si no se pone TransactionSuccessful no se escribe NADA!!
|
|
rkmt.EndTransaction
|
|
' Log(((DateTime.Now - inicio)/1000) & " segs")
|
|
End Sub
|
|
|
|
Sub vacuum
|
|
' Log("Vacuum")
|
|
rkmt.ExecNonQuery("vacuum;")
|
|
End Sub
|
|
|
|
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
|
|
|
|
'Agrega una columna a la tabla especificada.
|
|
'Hay que indicar el "tipo" de la columna (TEXT, INTEGER, ETC)
|
|
'Ej. agregaColumna("TABLA", "COLUMNA", "TIPO")
|
|
Sub agregaColumna(tabla As String, columna As String, tipo As String) 'ignore
|
|
Try 'Intentamos usar "pragma_table_info" para revisar si existe la columna en la tabla
|
|
Private c As Cursor = B4XPages.MainPage.skmt.ExecQuery($"SELECT COUNT(*) AS fCol FROM pragma_table_info('${tabla}') WHERE name='${columna}'"$)
|
|
c.Position = 0
|
|
If c.GetString("fCol") = 0 Then 'Si no esta la columna la agregamos
|
|
B4XPages.MainPage.skmt.ExecNonQuery($"ALTER TABLE ${tabla} ADD COLUMN ${columna} ${tipo}"$)
|
|
Log($"Columna "${columna} ${tipo}", agregada a "${tabla}"."$)
|
|
End If
|
|
Catch 'Si no funciona "pragma_table_info" lo hacemos con try/catch
|
|
Try
|
|
B4XPages.MainPage.skmt.ExecNonQuery($"ALTER TABLE ${tabla} ADD COLUMN ${columna} ${tipo}"$)
|
|
Log($"Columna "${columna} ${tipo}", agregada a "${tabla}".."$)
|
|
Catch
|
|
Log(LastException)
|
|
End Try
|
|
End Try
|
|
End Sub
|
|
|
|
Sub agregaColumna2(db As SQL, tabla As String, columna As String, tipo As String) 'ignore
|
|
Try 'Intentamos usar "pragma_table_info" para revisar si existe la columna en la tabla
|
|
Private c As Cursor = db.ExecQuery($"SELECT COUNT(*) AS fCol FROM pragma_table_info('${tabla}') WHERE name='${columna}'"$)
|
|
c.Position = 0
|
|
If c.GetString("fCol") = 0 Then 'Si no esta la columna la agregamos
|
|
db.ExecNonQuery($"ALTER TABLE ${tabla} ADD COLUMN ${columna} ${tipo}"$)
|
|
Log($"Columna "${columna} ${tipo}", agregada a "${tabla}"."$)
|
|
End If
|
|
Catch 'Si no funciona "pragma_table_info" lo hacemos con try/catch
|
|
Try
|
|
db.ExecNonQuery($"ALTER TABLE ${tabla} ADD COLUMN ${columna} ${tipo}"$)
|
|
Log($"Columna "${columna} ${tipo}", agregada a "${tabla}".."$)
|
|
Catch
|
|
Log(LastException)
|
|
End Try
|
|
End Try
|
|
End Sub
|