예제 #1
0
def add_personal():

    ####validacion###

    if not request.form['nombre']:
        flash('Debe ingresar Nombre')

    if not request.form['apellido']:
        flash('Debe ingresar Apellido')

    if not request.form['codigomarcado']:
        flash('Debe ingresar Codigo de marcado')

    if not request.form['legajo']:
        flash('Debe ingresar Numero de legajo')
    id = request.form['id']
    if id == None or id == '0' or id == '':
        con = conexion()
        pers = personal(p=request.form)
        con.insert(pers, 'personal')
    else:
        con = conexion()
        pers = personal(p=request.form)
        con.update(pers, 'personal')
    pass

    con = conexion()
    personales = con.selectAll("personal")
    return render_template('personal.html', listpersonal=personales)
예제 #2
0
def del_personal():

    con = conexion()
    con.delete(request.form['id'], 'personal')

    con = conexion()
    personales = con.selectAll("personal")
    return render_template('personal.html', listpersonal=personales)
예제 #3
0
def add_movimiento():
    data = request.get_json()
    con = conexion()
    mov = movimiento(data['fechahora'], data['tipo'], data['observaciones'],
                     data['id'], data['id'])
    con.insert(mov, 'reloj_movimientos')
    return _corsify_actual_response(jsonify({"result": "OK"}))
    pass
예제 #4
0
def form_personal():

    id = request.headers.get('id')
    codigo = request.headers.get('codigomdt')

    if codigo != None:

        con = conexion()
        personales = con.selectAll("personal", ["per_codigomarcado", codigo])
        return _corsify_actual_response(jsonify({"data": [personales]}))

    elif id == None:
        con = conexion()
        personales = con.selectAll("personal")
        return render_template('personal.html', listpersonal=personales)
    else:
        con = conexion()
        personales = con.selectAll("personal")
        return render_template('personal.html', listpersonal=personales)
예제 #5
0
def add_movimientos():
    data = request.get_json()
    con = conexion()
    for n in data:
        mov = movimiento(n['fechahora'], n['tipo'], n['observaciones'],
                         n['id'], n['id'])
        dat = con.selectAll('reloj_movimientos', [
            'rlm_fechahora', n['fechahora'], 'rlm_tipo', n['tipo'], 'per_id',
            n['id']
        ])
        if len(dat) == 0:
            con.insert(mov, 'reloj_movimientos')

    return _corsify_actual_response(jsonify({"result": "OK"}))
    pass
예제 #6
0
def index():
    con = conexion()
    return render_template('index.html')
예제 #7
0
def add_mov_reloj():
    ####validacion###
    now = datetime.now()

    # if not request.form['codigo']:
    #     flash('Debe ingresar el código')
    cod = request.form['codigo']
    con = conexion()
    per = con.selectAll('personal', ['per_codigomarcado', cod])
    msj = ""
    tipo = ""

    if request.form.__contains__('E') or request.form.__contains__('I'):

        if request.form.__contains__('E'):
            tipo = 'E'
        elif request.form.__contains__('I'):
            tipo = 'I'

        mov = movimiento(now, tipo, request.form['observaciones'],
                         per[0]['id'], per[0]['id'])
        con.insert(mov, 'reloj_movimientos')
        msj = "Movimiento de "+tipo+", " + \
            per[0]['nombre']+" "+per[0]['apellido'] + \
            " - "+str(now).split('.')[0]

    else:
        if len(per) > 0:

            if per[0]['horasalidasab'] == "" and per[0][
                    'horaentradasab'] == "" and per[0][
                        'horaentradamat'] == "" and per[0][
                            'horasalidamat'] == "" and per[0][
                                'horaentradaves'] == "" and per[0][
                                    'horasalidaves'] == "":

                img_buf = BytesIO()
                img = random_qr()
                img.save(img_buf)
                img_buf.seek(0)
                img_str = base64.b64encode(img_buf.getvalue())
                img_str = str(img_str).replace(
                    "b'", "data:image/png;base64,").replace("'", "")

                return render_template(
                    'qrreloj.html',
                    qr_image=img_str,
                    eligeopt='true',
                    codigo=cod,
                    observaciones=request.form['observaciones'])

            elif now.day == 6:
                if int(per[0]['horaentradasab'].split(':')
                       [0]) - 1 <= now.hour and int(per[0][
                           'horaentradasab'].split(':')[0]) + 1 >= now.hour:
                    tipo = "I"
                elif int(
                        per[0]['horasalidasab'].split(':')
                    [0]) - 1 <= now.hour and int(
                        per[0]['horasalidasab'].split(':')[0]) + 1 >= now.hour:
                    tipo = "E"
                else:
                    tipo = "I"
            else:
                if int(per[0]['horaentradamat'].split(':')
                       [0]) - 1 <= now.hour and int(per[0][
                           'horaentradamat'].split(':')[0]) + 1 >= now.hour:
                    tipo = "I"
                elif int(
                        per[0]['horasalidamat'].split(':')
                    [0]) - 1 <= now.hour and int(
                        per[0]['horasalidamat'].split(':')[0]) + 1 >= now.hour:
                    tipo = "E"
                elif int(per[0]['horaentradaves'].split(':')
                         [0]) - 1 <= now.hour and int(per[0][
                             'horaentradaves'].split(':')[0]) + 1 >= now.hour:
                    tipo = "I"
                elif int(
                        per[0]['horasalidaves'].split(':')
                    [0]) - 1 <= now.hour and int(
                        per[0]['horasalidaves'].split(':')[0]) + 1 >= now.hour:
                    tipo = "E"
                else:
                    tipo = "I"

            # n['fechahora'],n['tipo'],n['observaciones'],n['id'],n['id'] )
            mov = movimiento(now, tipo, request.form['observaciones'],
                             per[0]['id'], per[0]['id'])
            con.insert(mov, 'reloj_movimientos')
            msj = "Movimiento de "+tipo+", " + \
                per[0]['nombre']+" "+per[0]['apellido'] + \
                " - "+str(now).split('.')[0]
            pass
        else:
            msj = "El código ingresado no es válido"
            pass

    style = "danger"
    if tipo == "E":
        style = "primary"
    elif tipo == "I":
        style = "success"

    img_buf = BytesIO()
    img = random_qr()
    img.save(img_buf)
    img_buf.seek(0)
    img_str = base64.b64encode(img_buf.getvalue())
    img_str = str(img_str).replace("b'",
                                   "data:image/png;base64,").replace("'", "")
    return render_template('qrreloj.html',
                           qr_image=img_str,
                           textoalerta=msj,
                           alertstyle=style,
                           istext='true')
예제 #8
0
def form_movimientos():

    id = request.headers.get('id')

    if request.args.__contains__('del'):
        session['fil'] = None
        session['pag'] = None
        session['lim'] = None
        session['ord'] = None

    if request.args.__contains__('lim'):
        session['lim'] = int(request.args['lim'])
    elif not session.get('logged_in'):
        session['lim'] = 20

    if request.args.__contains__('ord'):
        if str(session['ord']).startswith(request.args['ord']):
            if str(session['ord']).__contains__('ASC'):
                session['ord'] = request.args['ord'] + ' DESC'
            else:
                session['ord'] = request.args['ord'] + ' ASC'
        else:
            session['ord'] = request.args['ord'] + ' ASC'
    elif not session.get('ord'):
        session['ord'] = ' 1 ASC '

    if request.args.__contains__('pag'):
        session['pag'] = int(request.args['pag'])
    elif not session.get('pag'):
        session['pag'] = 0

    if request.args.__contains__('fil'):
        if not session.get('fil'):
            session['fil'] = request.args['fil']
        else:
            if session['fil'].split(";").__contains__(
                    request.args['fil'].split(";")[0]):
                par = []
                par = session['fil'].split(";")
                for l in range(len(par)):
                    if par[l] == request.args['fil'].split(";")[0]:
                        val = par[l + 1]
                par = [
                    request.args['fil'].split(";")[1] if (i == val) else i
                    for i in par
                ]
                session['fil'] = ";".join(par)
            else:
                session['fil'] += ";" + request.args['fil']
    elif not session.get('fil'):
        session['fil'] = None

    fil = None
    if session['fil'] != None:
        fil = session['fil'].split(';')

    try:
        if id == None:
            con = conexion()
            movimientos = con.selectMovimientos(fil)
            nropaginas = list(
                range(0,
                      int(len(movimientos) / session['lim']) + 1))
            movimientos = con.selectMovimientos(
                fil, str(session['pag'] * session['lim']), str(session['lim']),
                str(session['ord']))

            return render_template('movimientos.html',
                                   listmovimientos=movimientos,
                                   cantpaginas=nropaginas)
        else:
            con = conexion()
            nropaginas = int(len(movimientos) / 20)
            movimientos = con.selectAll("reloj_movimientos")
            return render_template('movimientos.html',
                                   listmovimientos=movimientos,
                                   cantpaginas=nropaginas)

        pass
    except:
        session['fil'] = None
        session['pag'] = None
        session['lim'] = None
        session['ord'] = None
        pass