import ui
import sqlite3
import dialogs
import csv
import os
from pathlib import Path
from datetime import datetime, timedelta
from console import hud_alert
import pickle as pkl
def create_db():
con = sqlite3.connect(«db/db.db»)
cursor = con.cursor()
sql = »’
CREATE TABLE «fichajes» (
«dia» TEXT,
«mes» TEXT,
«hora» TEXT,
«turno» TEXT
)
»’
cursor.execute(sql)
sql = »’
CREATE TABLE «saldos» (
«dia» TEXT,
«mes» TEXT,
«entrada» TEXT,
«salida» TEXT,
«trabajado» TEXT,
«turno» TEXT
)
»’
cursor.execute(sql)
con.close()
def restar_hora(hora1, hora2):
formato = «%H:%M»
h1 = datetime.strptime(hora1,formato)
h2 = datetime.strptime(hora2,formato)
resultado = h1 – h2
return str(resultado)
if Path(‘db/db.db’).is_file():
print («DB exists»)
else:
print («DB not exists. Creating new one»)
create_db()
def create_csv(sender):
con = sqlite3.connect(«db/db.db»)
cursor = con.cursor()
sql = »’
SELECT * FROM «saldos»
»’
cursor.execute(sql)
with open(«fichajes.csv», «w», encoding=’utf-8′) as csv_file:
csv_writer = csv.writer(csv_file, delimiter=»\t»)
csv_writer.writerow([i[0] for i in cursor.description])
csv_writer.writerows(cursor)
dirpath = os.getcwd() + «/fichajes.csv»
print(«Datos exportados correctamente en {}».format(dirpath))
con.close()
def salva_vars():
f = open(‘store.pckl’, ‘wb’)
pkl.dump([gm,gt], f)
f.close()
print(«Vars salvadas»)
if Path(‘store.pckl’).is_file():
print(«Ya existe el fichero de vars»)
f = open(‘store.pckl’, ‘rb’)
gm, gt = pkl.load(f)
f.close()
else:
print(«No existe el fichero de vars»)
gm=»00:00″
gt=»00:00″
salva_vars()
print (gm)
print (gt)
def entrada_m(sender):
con = sqlite3.connect(«db/db.db»)
cursor = con.cursor()
d = datetime.today()
hora = datetime.now()
h = hora.strftime(«%H:%M»)
sql = »’
INSERT INTO «fichajes»
VALUES («{dia}»,»{mes}»,»{time}»,»Mañana»)
»’.format(dia=d.day, mes=d.month, time=h)
cursor.execute(sql)
con.commit()
con.close()
global gm
gm = h
salva_vars()
dialogs.alert(«Fichaje Mañana » + h)
def entrada_t(sender):
con = sqlite3.connect(«db/db.db»)
cursor = con.cursor()
d = datetime.today()
hora = datetime.now()
h = hora.strftime(«%H:%M»)
sql = »’
INSERT INTO «fichajes»
VALUES («{dia}»,»{mes}»,»{time}»,»Tarde»)
»’.format(dia=d.day, mes=d.month, time=h)
cursor.execute(sql)
con.commit()
con.close()
global gt
gt = h
salva_vars()
dialogs.alert(«Fichaje Tarde » + h)
def salida_m(sender):
con = sqlite3.connect(«db/db.db»)
cursor = con.cursor()
d = datetime.today()
hora = datetime.now()
h = hora.strftime(«%H:%M»)
global gm
s = restar_hora(h,gm)
sql = »’
INSERT INTO «saldos»
VALUES («{dia}»,»{mes}»,»{entrada}»,»{salida}»,»{trabajado}»,»Mañana»)
»’.format(dia=d.day, mes=d.month, entrada=gm, salida=h, trabajado=s)
cursor.execute(sql)
con.commit()
con.close()
dialogs.alert(«Salida Mañana » + h)
def salida_t(sender):
con = sqlite3.connect(«db/db.db»)
cursor = con.cursor()
d = datetime.today()
hora = datetime.now()
h = hora.strftime(«%H:%M»)
global gt
s = restar_hora(h,gt)
sql = »’
INSERT INTO «saldos»
VALUES («{dia}»,»{mes}»,»{entrada}»,»{salida}»,»{trabajado}»,»Tarde»)
»’.format(dia=d.day, mes=d.month, entrada=gt, salida=h, trabajado=s)
cursor.execute(sql)
con.commit()
con.close()
dialogs.alert(«Salida Tarde » + h)
def mostrar_reg(sender):
con = sqlite3.connect(«db/db.db»)
cursor = con.cursor()
sql = »’
SELECT * FROM «fichajes»
»’
cursor.execute(sql)
print(‘*’ * 100)
for dia, mes, hora, turno in cursor:
print(f’DIA {dia} | MES {mes} | ENTRADA {hora} | TURNO {turno}’)
print(‘-‘ * 100)
print(‘*’ * 100)
sql = »’
SELECT * FROM «saldos»
»’
cursor.execute(sql)
print(‘*’ * 100)
for dia, mes, entrada, salida, trabajado, turno in cursor:
output = (f’DIA {dia} | MES {mes} | ENTRADA {entrada} | SALIDA {salida} | TRABAJADO {trabajado} | TURNO {turno}’)
print(output)
print(‘-‘ * 100)
print(‘*’ * 100)
con.close()
v[‘tv’].text = output
v = ui.load_view()
def fecha_etiqueta():