CoolFace
Apppublic

fmatituy/selectospromanager

sourceHugging Faceupdated 6mo agoView on Hugging Face
0likes
setup_inspecciones.py84 linesDownload Raw Back to scripts
1import sqlite32import os3 4def get_db_path():5    root_db = os.path.join(os.getcwd(), 'selectos.db')6    if os.path.exists(root_db):7        return root_db8    return 'selectos.db'9 10DB_PATH = get_db_path()11 12def setup_inspecciones_tables():13    conn = sqlite3.connect(DB_PATH)14    c = conn.cursor()15    16    # 1. New Tables creation (if not exist)17    c.execute('''CREATE TABLE IF NOT EXISTS sst_inspeccion_plantillas (id INTEGER PRIMARY KEY AUTOINCREMENT, nombre TEXT, categoria TEXT, area TEXT, nivel_riesgo TEXT, fecha_creacion TEXT, estado TEXT DEFAULT 'Activo')''')18    c.execute('''CREATE TABLE IF NOT EXISTS sst_inspeccion_items (id INTEGER PRIMARY KEY AUTOINCREMENT, plantilla_id INTEGER, item_texto TEXT, categoria_item TEXT, FOREIGN KEY (plantilla_id) REFERENCES sst_inspeccion_plantillas(id))''')19    c.execute('''CREATE TABLE IF NOT EXISTS sst_inspeccion_respuestas (id INTEGER PRIMARY KEY AUTOINCREMENT, inspeccion_id INTEGER, item_id INTEGER, cumple INTEGER, observaciones TEXT, evidencia_ruta TEXT, hallazgo_id INTEGER)''')20    c.execute('''CREATE TABLE IF NOT EXISTS sst_acciones_correctivas (id INTEGER PRIMARY KEY AUTOINCREMENT, hallazgo_id INTEGER, accion_propuesta TEXT, responsable_id INTEGER, fecha_compromiso TEXT, evidencia TEXT, estado TEXT DEFAULT 'Pendiente', fecha_creacion TEXT)''')21 22    # 2. Migrations for sst_inspecciones23    for col, ctype in [('fecha', 'TEXT'), ('area', 'TEXT'), ('proceso', 'TEXT'), ('ubicacion', 'TEXT'), ('nivel_riesgo_estimado', 'TEXT')]:24        try: c.execute(f"ALTER TABLE sst_inspecciones ADD COLUMN {col} {ctype}")25        except: pass26 27    # 3. Migrations for sst_hallazgos28    for col, ctype in [29        ('inspeccion_id', 'INTEGER'), ('item_id', 'INTEGER'), ('fecha_deteccion', 'TEXT'), 30        ('tipo_hallazgo', 'TEXT'), ('area_o_ubicacion', 'TEXT'), ('descripcion', 'TEXT'), 31        ('nivel_riesgo', 'TEXT'), ('responsable_id', 'INTEGER')32    ]:33        try: c.execute(f"ALTER TABLE sst_hallazgos ADD COLUMN {col} {ctype}")34        except: pass35 36    # 4. Migrations for sst_acciones_correctivas (Conflict resolution)37    for col, ctype in [38        ('hallazgo_id', 'INTEGER'), 39        ('accion_propuesta', 'TEXT'), 40        ('responsable_id', 'INTEGER'), 41        ('fecha_compromiso', 'TEXT'), 42        ('estado', "TEXT DEFAULT 'Pendiente'")43    ]:44        try: c.execute(f"ALTER TABLE sst_acciones_correctivas ADD COLUMN {col} {ctype}")45        except: pass46 47    # Seed Mejorado48    c.execute("SELECT COUNT(*) FROM sst_inspeccion_plantillas")49    if c.fetchone()[0] == 0:50        # EXTINTORES51        c.execute("INSERT INTO sst_inspeccion_plantillas (nombre, categoria, area, nivel_riesgo, fecha_creacion) VALUES ('Inspección de Extintores', 'Emergencias', 'Todas', 'Medio', '2026-03-16')")52        tid_ext = c.lastrowid53        items_ext = [('Presión en rango verde', 'Funcionalidad'), ('Manguera sin obstrucciones', 'Físico'), ('Sello de seguridad intacto', 'Seguridad'), ('Fecha de recarga vigente', 'Cumplimiento')]54        for text, cat in items_ext:55            c.execute("INSERT INTO sst_inspeccion_items (plantilla_id, item_texto, categoria_item) VALUES (?,?,?)", (tid_ext, text, cat))56        57        # BOTIQUINES58        c.execute("INSERT INTO sst_inspeccion_plantillas (nombre, categoria, area, nivel_riesgo, fecha_creacion) VALUES ('Inspección de Botiquines', 'Emergencias', 'Todas', 'Bajo', '2026-03-16')")59        tid_bot = c.lastrowid60        items_bot = [('Inventario completo según FURAT', 'Contenido'), ('Elementos con fecha vigente', 'Cumplimiento'), ('Gasa y vendas limpias', 'Salud'), ('Caja en buen estado', 'Protección')]61        for text, cat in items_bot:62            c.execute("INSERT INTO sst_inspeccion_items (plantilla_id, item_texto, categoria_item) VALUES (?,?,?)", (tid_bot, text, cat))63            64        # ALTURAS65        c.execute("INSERT INTO sst_inspeccion_plantillas (nombre, categoria, area, nivel_riesgo, fecha_creacion) VALUES ('Checklist Alturas', 'Tareas Críticas', 'Obra', 'Alto', '2026-03-16')")66        tid_alt = c.lastrowid67        items_alt = [('Arnés sin costuras rotas', 'EPP'), ('Eslinga con absorbedor intacto', 'Seguridad'), ('Conectores sin oxidación', 'Equipo'), ('Puntos de anclaje certificados', 'Infraestructura')]68        for text, cat in items_alt:69            c.execute("INSERT INTO sst_inspeccion_items (plantilla_id, item_texto, categoria_item) VALUES (?,?,?)", (tid_alt, text, cat))70 71        # HERRAMIENTAS72        c.execute("INSERT INTO sst_inspeccion_plantillas (nombre, categoria, area, nivel_riesgo, fecha_creacion) VALUES ('Herramientas Manuales', 'Operativo', 'Taller', 'Medio', '2026-03-16')")73        tid_her = c.lastrowid74        items_her = [('Mangos sin grietas o fisuras', 'Físico'), ('Filos con protección', 'Seguridad'), ('Orden y aseo en el cajón', 'Entorno')]75        for text, cat in items_her:76            c.execute("INSERT INTO sst_inspeccion_items (plantilla_id, item_texto, categoria_item) VALUES (?,?,?)", (tid_her, text, cat))77 78    conn.commit()79    conn.close()80    print("Migración de tablas (v3) finalizada.")81 82if __name__ == '__main__':83    setup_inspecciones_tables()84