예제 #1
0
async def create_seller(seller: SchemaSeller):
    if not check_admin_permission():
        return {"Erro": "Usuário não tem permissão para cadastrar vendedores"}
    db_seller = ModelSeller(name=seller.name, email=seller.email)
    db.session.add(db_seller)
    db.session.commit()
    return {"Erro": "Vendedor criado com sucesso"}
async def get_customers_by_route(route_name: str):
    if not check_admin_permission():
        return {
            "Erro":
            "Usuário não tem permissão para visualizar clientes por rota"
        }
    db_customers = db.session.query(ModelCustomer).filter(
        ModelCustomer.associated_route == route_name).all()

    return db_customers
예제 #3
0
async def delete_seller(seller: SchemaSeller):
    if not check_admin_permission():
        return {"Erro": "Usuário não tem permissão para deletar vendedores"}
    db_seller = db.session.query(ModelSeller).filter_by(name=seller.name, email=seller.email).delete()
    if not db_seller:
        return {"Erro": "Vendedor não encontrado para exclusão"}
    else:
        try:
            db.session.commit()
        except:
            return {"Erro": "Não foi possível excluir a entrada"}
        return {"Sucesso": "Vendedor excluído com sucesso."}
예제 #4
0
async def delete_route(route_name):
    if not check_admin_permission():
        return {"Erro": "Usuário não tem permissão para deletar rotas"}
    db_route = db.session.query(ModelRoute).filter_by(name=route_name).delete()
    if not db_route:
        return {"Erro": "Rota não encontrada para exclusão"}
    else:
        try:
            db.session.commit()
        except:
            return {"Erro": "Não foi possível excluir a entrada"}
        return {"Sucesso": "Rota excluída com sucesso."}
예제 #5
0
async def create_route(name: str = Form(...), bounds: str = Form(...)):
    if not check_admin_permission():
        return {"Erro": "Usuário não tem permissão para cadastrar rotas"}
    db_route = db.session.query(ModelRoute).filter_by(name=name).first()
    if db_route:
        return {"Erro": "Rota já está cadastrada."}
    else:
        is_geojson = check_geojson_integrity(bounds)
        if not is_geojson:
            return {"Erro": "O JSON inserido não é um GeoJSON"}
        else:
            new_route = ModelRoute(name=name, bounds=bounds)
            db.session.add(new_route)
            db.session.commit()
            update_routes_in_customers(new_route)
            return {"Sucesso": "Rota criada com sucesso"}
예제 #6
0
async def edit_route(name: str = Form(...), bounds: str = Form(...)):
    if not check_admin_permission():
        return {"Erro": "Usuário não tem permissão para editar rotas"}
    db_route = db.session.query(ModelRoute).filter_by(name=name,
                                                      bounds=bounds).first()
    if not db_route:
        return {"Erro": "Não foi possível editar pois a rota não existe"}
    else:
        db_route.name = name
        db_route.bounds = bounds
        db.session.add(db_route)
        try:
            db.session.commit()
        except:
            return {"Erro": "Erro de duplicidade para ID"}
        update_routes_in_customers(ModelRoute(name=name, bounds=bounds))
        return db_route
예제 #7
0
async def assign_seller(assign: AssignSchema):
    if not check_admin_permission():
        return {"Erro": "Usuário não tem permissão para atribuir vendedoras"}
    seller = db.session.query(ModelSeller).filter_by(
        email=assign.seller_email).first()
    if not seller:
        return {"Erro": "Vendedor não existe"}
    else:
        route = db.session.query(ModelRoute).filter_by(
            name=assign.route_name).first()
        if not route:
            return {"Erro": "Rota não existe"}
        else:
            raw_id = seller.id
            route.seller_id = str(raw_id)
            db.session.commit()
            return {
                "Sucesso":
                f"Rota {assign.route_name} atribuída ao vendedor {seller.name}"
            }
예제 #8
0
async def disassociate_seller(route_name: str):
    if not check_admin_permission():
        return {
            "Erro": "Usuário não tem permissão para desvincular vendedores"
        }
    db_route = db.session.query(ModelRoute).filter_by(name=route_name).first()
    if not db_route:
        return {
            "Erro":
            "Não foi possível desassociar o vendedor da rota pois a mesma não existe"
        }
    else:
        db_route.seller_id = None
        try:
            db.session.commit()
        except:
            return {"Erro": "Erro de duplicidade para ID"}
        return {
            "Sucesso": f"Rota {db_route.name} teve seu vendedor desvinculado"
        }
예제 #9
0
async def get_sellers():
    if not check_admin_permission():
        return {"Erro": "Usuário não tem permissão para visualizar o cadastro de vendedores"}
    sellers = db.session.query(ModelSeller).all()
    return sellers
예제 #10
0
async def get_routes():
    if not check_admin_permission():
        return {"Erro": "Usuário não tem permissão para obter rotas"}
    routes = db.session.query(ModelRoute).all()
    return routes