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
Beispiel #3
0
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
Beispiel #5
0
 async def get_employees_by_id(id: int, db: Session = Depends(get_db)):
     return employee.select_employee_by_id(id=id, db=db)