async def salida_producto(salidaInventario_in: SalidaIn): producto_in_db = get_producto(salidaInventario_in.codigo_prod) if producto_in_db == None: raise HTTPException(status_code=404, detail="El producto no ha sido creado") if producto_in_db.cantidad_prod < salidaInventario_in.cantidad_prod: raise HTTPException(status_code=400, detail="No hay suficiente stock de inventario") producto_in_db.cantidad_prod = producto_in_db.cantidad_prod - salidaInventario_in.cantidad_prod update_producto(producto_in_db) salidaInventario_in_db = InventarioInDB( **salidaInventario_in.dict(), cantidad_actual=producto_in_db.cantidad_prod, costo_actual=producto_in_db.costo_unit_prod, costo_prod_ent=0) salidaInventario_in_db = save_salida(salidaInventario_in_db) salidaInventario_out = SalidaOut(**salidaInventario_in_db.dict()) return salidaInventario_out
async def ingreso_producto(entradaInventario_in: EntradaIn): producto_in_db = get_producto(entradaInventario_in.codigo_prod) if producto_in_db == None: raise HTTPException(status_code=404, detail="El producto no ha sido creado") producto_in_db.costo_unit_prod = ( ((producto_in_db.cantidad_prod * producto_in_db.costo_unit_prod) + (entradaInventario_in.cantidad_prod * entradaInventario_in.costo_prod_ent)) / (producto_in_db.cantidad_prod + entradaInventario_in.cantidad_prod)) producto_in_db.cantidad_prod = producto_in_db.cantidad_prod + entradaInventario_in.cantidad_prod update_producto(producto_in_db) entradaInventario_in_db = InventarioInDB( **entradaInventario_in.dict(), cantidad_actual=producto_in_db.cantidad_prod, costo_actual=producto_in_db.costo_unit_prod) entradaInventario_in_db = save_entrada(entradaInventario_in_db) entradaInventario_out = EntradaOut(**entradaInventario_in_db.dict()) return entradaInventario_out