def procesarJSONEditar():
    #print("Estoy aquí")
    codigo = request.form.get('codigo', '')
    proceso = request.form.get('proceso', '')
    name = request.form.get('name', '')
    email = request.form.get('email', '')
    labor = request.form.get('labor', '')
    aula = request.form.get('aula', '')
    aula_coord = request.form.get('aula_coord', '')
    cod_coord = request.form.get('cod_coord', '')
    calificacion = request.form.get('calificacion', '')
    obs_proceso = request.form.get('obs_proceso', '')
    password = request.form.get('password', '')

    controlador = personas.getPersonaEditar(codigo, proceso)
    person = personas.getPersonaSola(codigo)
    #print(codigo + "\n" + proceso)
    #print(name + "\n" + aula)
    if controlador is not None:
        #print("Encontré controlador")
        person.nombres = name
        person.correo = email
        if (labor == "CONTROLADOR"):
            controlador.es_coord = 0
            controlador.es_apoyo = 0
            controlador.es_asistente = 0
        elif (labor == "COORDINADOR"):
            controlador.es_coord = 1
            controlador.es_apoyo = 0
            controlador.es_asistente = 0
        elif (labor == "ASISTENTE"):
            controlador.es_coord = 0
            controlador.es_apoyo = 0
            controlador.es_asistente = 1
        elif (labor == "APOYO"):
            controlador.es_coord = 0
            controlador.es_apoyo = 1
            controlador.es_asistente = 0
        controlador.aula = aula
        controlador.aula_coord = aula_coord
        controlador.cod_coord = cod_coord
        controlador.calificacion = calificacion
        controlador.obs_proceso = obs_proceso
        controlador.password = password
        db.session.commit()
        return json.dumps(True)
    else:
        print("No se encontró el Controlador")
        return json.dumps(False)
def reporte():
    if (validate_login(request)):
        #actualizarDatos()
        if request.method == 'GET':
            reg = funciones.getReporteControladores()
            return render_template("reporte.tpl.html", registros=reg)
        else:
            codigo = request.form.get('codigo', '')
            idproceso = request.form.get('idproceso', '')
            cont = personas.getPersonaEditar(codigo, idproceso)
            db.session.delete(cont)
            db.session.commit()
            reg = funciones.getReporteControladores()
            return render_template("reporte.tpl.html", registros=reg)
    else:
        return redirect('login?dest=' + quote_plus(request.full_path))
def guardarReserva(reserva_data, errores, proceso_select):
    row = 1
    for codigo in reserva_data['Código']:
        nombres = reserva_data['Primer apellido'][
            row - 1] + " " + reserva_data['Segundo apellido'][
                row - 1] + ", " + reserva_data['Nombres'][row - 1]
        #Revisar si la persona ya existe o no
        controladorR = personas.getPersonaSola(codigo)
        if controladorR is None:
            controladorR = Persona(str(codigo).zfill(8), nombres, '', '', 0, 0)
            db.session.add(controladorR)
        else:
            controladorR.nombres = nombres
        db.session.commit()

        #Agregando Labor_Por_Proceso
        proceso = procesos.getProcesoPorId(proceso_select)

        aula = reserva_data['AULA'][row - 1]
        aula_coord = reserva_data['AULA DE COORDINACIÓN'][row - 1]

        #Esto aun no está listo desde aquí...
        coordinador = personas.getCoordinador(aula_coord, proceso.idproceso)

        new_controladorR = personas.getPersonaEditar(codigo, proceso.idproceso)

        #Si ya hay un controlador registrado con ese código en ese proceso
        if new_controladorR is not None:
            new_controladorR.aula = aula
            new_controladorR.aula_coord = aula_coord
            new_controladorR.cod_coord = str(coordinador.codigo).zfill(8)
            new_controladorR.es_coord = 0
            new_controladorR.es_apoyo = 0
            new_controladorR.es_asistente = 0
        else:
            lxp = LaborPorProceso(
                str(codigo).zfill(8), proceso.idproceso, 0, 0, 0, aula,
                aula_coord, '',
                datetime.now().date(),
                datetime.now().date(), None, None,
                str(coordinador.codigo).zfill(8), '0', '', '', '', '')
            db.session.add(lxp)
        db.session.commit()
        row = row + 1
def procesarJSONNuevo():
    #Agregando Persona
    codigo = request.form.get('codigo', '')
    name = request.form.get('name', '')
    email = request.form.get('email', '')

    nuevo_controlador = personas.getPersonaSola(codigo)
    #Si ya hay un controlador en la tabla Persona con ese código
    if nuevo_controlador is not None:
        #Se actualizan los datos
        nuevo_controlador.nombres = name
        nuevo_controlador.email = email
        nuevo_controlador.nro_asistencias = 0
        nuevo_controlador.nro_convocatorias = 0
    else:
        #De lo contrario se crea a esa persona
        controlador = Persona(codigo, name, email, '', 0, 0)
        db.session.add(controlador)
    db.session.commit()

    #Agregando Labor_Por_Proceso
    proceso = request.form.get('proceso', '')
    labor = request.form.get('labor', '')
    aula = request.form.get('aula', '')
    aula_coord = request.form.get('aula_coord', '')
    cod_coord = request.form.get('cod_coord', '')
    new_controlador = personas.getPersonaEditar(codigo, proceso)
    #Si ya hay un controlador registrado con ese código.
    if new_controlador is not None:
        new_controlador.aula = aula
        new_controlador.aula_coord = aula_coord
        new_controlador.cod_coord = cod_coord
        if (labor == "CONTROLADOR"):
            new_controlador.es_coord = 0
            new_controlador.es_apoyo = 0
            new_controlador.es_asistente = 0
        elif (labor == "COORDINADOR"):
            new_controlador.es_coord = 1
            new_controlador.es_apoyo = 0
            new_controlador.es_asistente = 0
        elif (labor == "ASISTENTE"):
            new_controlador.es_coord = 0
            new_controlador.es_apoyo = 0
            new_controlador.es_asistente = 1
        elif (labor == "APOYO"):
            new_controlador.es_coord = 0
            new_controlador.es_apoyo = 1
            new_controlador.es_asistente = 0
        #controlador.labor = request.form.get('labor','')
    else:
        if (labor == "CONTROLADOR"):
            lxp = LaborPorProceso(codigo, proceso, 0, 0, 0, aula, aula_coord,
                                  '',
                                  datetime.now().date(),
                                  datetime.now().date(), None, None, cod_coord,
                                  '0', '', '', '', '')
        elif (labor == "COORDINADOR"):
            lxp = LaborPorProceso(codigo, proceso, 1, 0, 0, aula, aula_coord,
                                  '',
                                  datetime.now().date(),
                                  datetime.now().date(), None, None, cod_coord,
                                  '0', '', '', '', '')
        elif (labor == "ASISTENTE"):
            lxp = LaborPorProceso(codigo, proceso, 0, 0, 1, aula, aula_coord,
                                  '',
                                  datetime.now().date(),
                                  datetime.now().date(), None, None, cod_coord,
                                  '0', '', '', '', '')
        elif (labor == "APOYO"):
            lxp = LaborPorProceso(codigo, proceso, 0, 1, 0, aula, aula_coord,
                                  '',
                                  datetime.now().date(),
                                  datetime.now().date(), None, None, cod_coord,
                                  '0', '', '', '', '')
        #controlador.labor = request.form.get('labor','')
        db.session.add(lxp)
    db.session.commit()
    return json.dumps(True)
def añadirBD(arch_name, controladores_data, coordinadores_data,
             proceso_select):
    #folder = "/var/www/asistenciaControladores/asistenciaPucp/downloaded_files/"
    folder = "downloaded_files/"
    files = listdir(folder)

    for file in files:
        print("Leyendo: " + folder + file + "...\n")
        personas_data = pd.read_excel(folder + file, 'PARA EXPORTAR')
        #print(controladores_data)
        row = 1
        #Primero hacemos un import en la tabla personas
        for codigo in personas_data['Código']:
            nombres = personas_data['Apellido Paterno'][
                row - 1] + " " + personas_data['Apellido Materno'][
                    row - 1] + ", " + personas_data['Nombres'][row - 1]
            correo = getCorreo(codigo, controladores_data, coordinadores_data)
            nuevo_controlador = personas.getPersonaSola(codigo)
            if nuevo_controlador is None:
                print("No se encontró código")
                controlador = Persona(
                    str(codigo).zfill(8), nombres, correo, '', 0, 0)
                db.session.add(controlador)
            else:
                print("Se encontró código")
                nuevo_controlador.nombres = nombres
                nuevo_controlador.correo = correo
            db.session.commit()
            #Agregando Labor_Por_Proceso
            proceso = procesos.getProcesoPorId(proceso_select)
            es_coord = personas_data['Es coordinador'][row - 1]
            es_apoyo = personas_data['Apoyo OCAI'][row - 1]
            es_asistente = personas_data['Asistente OCAI'][row - 1]
            aula = personas_data['Aula'][row - 1]
            aula_coord = personas_data['Aula coordinación'][row - 1]
            cod_coord = personas_data['codigo Coordinador'][row - 1]
            new_controlador = personas.getPersonaEditar(
                codigo, proceso.idproceso)
            aula_capacitacion = getAulaCapacitacion(codigo, controladores_data,
                                                    coordinadores_data)
            #Si ya hay un controlador registrado con ese código en ese proceso
            if new_controlador is not None:
                new_controlador.aula = aula
                new_controlador.aula_coord = aula_coord
                new_controlador.cod_coord = str(cod_coord).zfill(8)
                new_controlador.es_coord = 0 if es_coord == 'FALSO' else 1
                new_controlador.es_apoyo = 0 if es_apoyo == 'FALSO' else 1
                new_controlador.es_asistente = 0 if es_asistente == 'FALSO' else 1
                new_controlador.aula_capacitacion = aula_capacitacion
            else:
                lxp = LaborPorProceso(
                    str(codigo).zfill(8), proceso.idproceso,
                    0 if es_coord == 'FALSO' else 1,
                    0 if es_apoyo == 'FALSO' else 1,
                    0 if es_asistente == 'FALSO' else 1, aula, aula_coord,
                    aula_capacitacion,
                    datetime.now().date(),
                    datetime.now().date(), None, None,
                    str(cod_coord).zfill(8), '0', '', '', '', '')
                db.session.add(lxp)
            db.session.commit()
            row = row + 1
    #os.remove('/var/www/asistenciaControladores/asistenciaPucp/downloaded_files/' + arch_name)
    os.remove('downloaded_files/' + arch_name)