Example #1
0
async def get_all():
    products_db = get_all_products()

    products_out = []
    for product_db in products_db:
        products_out.append(ProductOut(**product_db.dict()))

    return products_out
Example #2
0
async def get_product_bar_code(bar_code: str):
    #Buscar la categoria en la base datos
    product_in_db = get_product(bar_code)

    #Comprobar la respuesta
    if product_in_db == None:
        raise HTTPException(status_code=404, detail="Producto no encontrado")

    #Retorna la categoria
    return ProductOut(**product_in_db.dict())
Example #3
0
async def create_product(product_in: ProductIn):
    #Todas las comprobaciones Necesarias
    product_in_db = get_product(product_in.bar_code)

    if product_in_db != None:
        raise HTTPException(status_code=400, detail="La Categoria ya existe")
    
    #Guardando Categoria
    product_saved = save_product(ProductsInDB(**product_in.dict()))

    return ProductOut(**product_saved.dict())
Example #4
0
async def update_product(product_in: ProductIn):
    #Buscar la categoria en la base datos
    product_in_db = get_product(product_in.bar_code)

    #Comprobar la respuesta
    if product_in_db == None:
        raise HTTPException(status_code=404, detail="Producto no encontrado")

    #Actualizar product
    product_updated = save_product(ProductsInDB(**product_in.dict()))

    #Retornando Respuesta
    return ProductOut(**product_updated.dict())
Example #5
0
async def update_stock_product(product_in: ProductIn2):
    #Buscar la categoria en la base datos
    product_in_db = database_products[product_in.bar_code]

    #Comprobar la respuesta
    if product_in_db == None:
        raise HTTPException(status_code=404, detail="Producto no encontrado")

    stockActual = product_in_db.stock
    stockVenta = product_in.stock

    stockNuevo = stockActual - stockVenta

    if stockNuevo < 0:
        raise HTTPException(status_code=400, detail="Stock insuficiente")

    product_in_db.stock = stockNuevo

    #Actualizar product
    updated_product = save_product(product_in_db)

    #Retornando Respuesta
    return ProductOut(**updated_product.dict())