def update_budget_by_id( budget_id: int, bud: BaseBudget, db: Session ) -> BaseModelBudgetEmployee: budget = select_budget_by_budget_id(budget_id=budget_id, db=db) if not budget: raise HTTPException( status_code=status.HTTP_400_BAD_REQUEST, detail="O orçamento informado não existe.", ) if budget.name == bud.name: raise HTTPException( status_code=status.HTTP_400_BAD_REQUEST, detail="O orçamento informado já existe. Não há nada a ser alterado.", ) if not select_employee_by_id(id=bud.fk_id_employees, db=db): raise HTTPException( status_code=status.HTTP_400_BAD_REQUEST, detail="O funcionário informado não existe.", ) db.query(Budget).filter(Budget.id == budget_id).update( bud.dict(by_alias=False), synchronize_session=False ) db.commit() db.refresh(budget) return budget
def insert_budget(bud: BaseBudget, db: Session): if select_budget_by_name(budget_name=bud.name, db=db): raise HTTPException( status_code=status.HTTP_400_BAD_REQUEST, detail="Já existe um orçamento com este nome.", ) if not select_employee_by_id(id=bud.fk_id_employees, db=db): raise HTTPException( status_code=status.HTTP_400_BAD_REQUEST, detail="O funcionário informado não existe.", ) budget = Budget(**bud.dict(by_alias=False)) db.add(budget) db.commit() db.refresh(budget) return budget
def validade_approver(appro: BaseApprover, db: Session) -> None: employee = select_employee_by_id(id=appro.fk_id_approver, db=db) if not employee: raise HTTPException( status_code=status.HTTP_400_BAD_REQUEST, # detail="Employee id does not exists.", detail="O funcionário informado não existe.", ) if not select_budget_by_budget_id(budget_id=appro.fk_id_budget, db=db): raise HTTPException( status_code=status.HTTP_400_BAD_REQUEST, detail="O orçamento informado não existe.", # detail="Budget id does not exists." ) if not employee.can_approve_budget: raise HTTPException( status_code=status.HTTP_400_BAD_REQUEST, detail="Somente uma pessoa com permissões de approve ser selecionada.", )
def insert_bu(buss_u: BaseBu, db: Session) -> BaseModelBu: if not select_employee_by_id(id=buss_u.fk_id_employees, db=db): raise HTTPException( status_code=status.HTTP_400_BAD_REQUEST, detail="O funcionário informado não existe.", ) if (db.query(BusinessUnit).filter( BusinessUnit.name == buss_u.name, BusinessUnit.product_family == buss_u.product_family, ).first()): raise HTTPException( status_code=status.HTTP_400_BAD_REQUEST, detail="A BU e familia de produto já existe.", ) bu = BusinessUnit(**buss_u.dict(by_alias=False)) db.add(bu) db.commit() db.refresh(bu) return bu
async def get_employees_by_id(id: int, db: Session = Depends(get_db)): return employee.select_employee_by_id(id=id, db=db)