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)
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")
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")
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..")
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.")
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")