CoolFace
Apppublic

fmatituy/selectospromanager

sourceHugging Faceupdated 6mo agoView on Hugging Face
0likes
models_personal.py81 linesDownload Raw Back to personal
1import sqlite3
2from database.db import DB_PATH
3
4def init_personal_db():
5    conn = sqlite3.connect(DB_PATH)
6    c = conn.cursor()
7    
8    # 1. Tabla de Empleados
9    c.execute('''
10        CREATE TABLE IF NOT EXISTS empleados (
11            id INTEGER PRIMARY KEY AUTOINCREMENT,
12            nombre TEXT NOT NULL,
13            documento TEXT UNIQUE,
14            cargo TEXT,
15            area TEXT,
16            telefono TEXT,
17            correo TEXT,
18            fecha_ingreso TEXT,
19            estado TEXT DEFAULT 'Activo',
20            proyecto_actual_id INTEGER,
21            tipo_contrato TEXT,
22            hoja_vida TEXT
23        )
24    ''')
25    
26    try:
27        c.execute("ALTER TABLE empleados ADD COLUMN tipo_contrato TEXT")
28    except: pass
29
30    try:
31        c.execute("ALTER TABLE empleados ADD COLUMN hoja_vida TEXT")
32    except: pass
33    
34    # 2. Asegurar que la tabla usuarios tenga empleado_id y activo
35    try:
36        c.execute('ALTER TABLE usuarios ADD COLUMN empleado_id INTEGER')
37    except: pass # Ya existe
38    
39    try:
40        c.execute("ALTER TABLE usuarios ADD COLUMN activo BOOLEAN DEFAULT 1")
41    except: pass # Ya existe
42
43    try:
44        c.execute("ALTER TABLE usuarios ADD COLUMN fecha_creacion TEXT")
45    except: pass # Ya existe
46
47    # 3. Tabla de Asistencias
48    c.execute('''
49        CREATE TABLE IF NOT EXISTS asistencias (
50            id INTEGER PRIMARY KEY AUTOINCREMENT,
51            empleado_id INTEGER,
52            fecha TEXT,
53            hora_entrada TEXT,
54            hora_salida TEXT,
55            ubicacion TEXT,
56            proyecto_id INTEGER,
57            horas_trabajadas REAL DEFAULT 0,
58            FOREIGN KEY (empleado_id) REFERENCES empleados(id)
59        )
60    ''')
61    
62    # 4. Tabla de Novedades
63    c.execute('''
64        CREATE TABLE IF NOT EXISTS novedades (
65            id INTEGER PRIMARY KEY AUTOINCREMENT,
66            empleado_id INTEGER,
67            tipo TEXT, -- Incapacidad, Permiso, Ausencia, Retraso, Llamado de atención
68            descripcion TEXT,
69            fecha_inicio TEXT,
70            fecha_fin TEXT,
71            registrada_por TEXT,
72            FOREIGN KEY (empleado_id) REFERENCES empleados(id)
73        )
74    ''')
75    
76    conn.commit()
77    conn.close()
78
79# Inicializar al importar
80init_personal_db()
81