예제 #1
0
def test_remove(web):
    col1.save()
    col_test = Colaborador.find(cpf=col1.cpf)
    colaborador_id = col_test[0]['_id']
    col1.remover()

    ponto_salvo = Ponto(colaborador_id=colaborador_id)
    ponto_salvo.criar_registro_ES()

    ponto_rec = Ponto.find(colaborador_id=ponto_salvo.colaborador_id,
                           data=pendulum.now().format(date_format))
    assert ponto_rec, ponto_salvo
    ponto_salvo.remover()
    ponto_rec = Ponto.find(colaborador_id=ponto_salvo.colaborador_id,
                           data=pendulum.now().format(date_format))
    assert str(ponto_rec), str(None)
예제 #2
0
def registrar_ponto(
        colaborador_id: str = Query(..., title="ID colaborador",
                                    description="Identificador único do identificador.")) -> Dict[str, str]:
    mes = str(pendulum.now().month)
    try:
        colaborador = Colaborador.find(colaborador_id=colaborador_id)
        if not colaborador:
            return gen_mensagem("Não existe colaborador para os parametros informados.")

        ultimo_ponto = Ponto.find(colaborador_id=colaborador_id, mes=mes)
        ultimo_ponto = ultimo_ponto.pop() if ultimo_ponto else {'colaborador_id': colaborador_id}

        ponto = Ponto(**ultimo_ponto)

        if ponto.e_entrada() and ponto.registrar_entrada_in():
            return gen_mensagem("Ponto registrado com sucesso.", [ponto.dict()])
        elif ponto.e_virada() and ponto.registrar_virada_in():
            return gen_mensagem("Ponto registrado com sucesso.", [ponto.dict()])
        elif ponto.registrar_saida_in():
            return gen_mensagem("Ponto registrado com sucesso.", [ponto.dict()])
        return gen_mensagem("Problema ao registrar o ponto.")

    except:
        # TODO EXCEPT
        return gen_mensagem("Erro ao registrar ponto")
예제 #3
0
def remover(ponto_id: str = Query(None, title="Id ponto", description="Id unico de um ponto")) -> Dict[str, str]:
    try:
        ponto = Ponto.find(ponto_id)
        if not ponto:
            return gen_mensagem("Não exitem pontos para os parametros informados.")
        ponto = Ponto(**ponto[0])
        if ponto.remover():
            return gen_mensagem("Ponto removido com sucesso")
        return gen_mensagem("Problemas ao excluir ponto")
    except:
        # TODO EXCEPT
        return gen_mensagem("Erro ao excluir ponto")
예제 #4
0
def criar(colaborador_id: str, data: str, hora_entrada: str, hora_saida: str) -> Dict[str, str]:
    try:
        if Ponto.find(colaborador_id=colaborador_id, data=data):
            return gen_mensagem("Já existe ponto para os parametros informados.")

        ponto = Ponto(colaborador_id=colaborador_id, data=data)
        ponto.registros_ES.append({"entrada": hora_entrada, "saida": hora_saida})
        if ponto.save():
            return gen_mensagem("Ponto criado com sucesso.", [ponto.dict()])
    except:
        # TODO EXCEPT
        return gen_mensagem("Erro ao criar ponto..")
예제 #5
0
async def consultar_horas(colaborador_id: str, mes: str) -> Dict[str, str or Optional[List[Dict[str, str]]]]:
    try:
        pontos = Ponto.find(colaborador_id=colaborador_id, mes=mes)
        if not pontos:
            return {"mensagem": "Não existem pontos para o colaborador informado."}

        t_mes, output = Ponto.calcular_horas_mes(pontos)
        return gen_mensagem("Pontos computados", output)

    except:
        # TODO EXCEPT
        return gen_mensagem("Erro ao buscar informações de ponto.")
예제 #6
0
def consultar(
        ponto_id: str = Query(None, title="Id ponto", description="Id unico de um ponto"),
        data: str = Query(None, title="Data do ponto",
                          description="Data de registro do ponto ponto formato YYYYMMDD."),
        colaborador_id: str = Query(None, title="Identificador colaborador",
                                    description="Identificador unico do colaborador."),
        mes: str = Query(None, title="Mes do ano.",
                         description="Mes em formato numérico(Janeiro - 01,Fevereiro - 02...")
) -> Dict[str, str]:
    try:
        pontos = Ponto.find(ponto_id, colaborador_id, data, mes)
        if pontos:
            return gen_mensagem("Pontos encotrados", pontos)
        return gen_mensagem("Pontos não encontrados para os parametros informados.")
    except:
        # TODO EXCEPT
        return gen_mensagem("Erro ao excluir ponto")