fix minor bug

main
Cizz22 11 months ago
parent 9261e5341b
commit 536450262c

@ -374,13 +374,7 @@ async def get_avg_cost_by_asset(*, db_session: DbSession, assetnum: str):
async def bulk_update_equipment(*, db: DbSession, selected_equipments: List[CalculationSelectedEquipmentUpdate], calculation_data_id: UUID): async def bulk_update_equipment(*, db: DbSession, selected_equipments: List[CalculationSelectedEquipmentUpdate], calculation_data_id: UUID):
# Assuming your model is named Asset # Create a dictionary mapping assetnum to is_included status
# and updates is a list of dictionaries containing assetnum and updated values
# Create a case statement for each field you want to update
stmt = update(CalculationEquipmentResult)
# Using the case method to match assetnums with their updates
case_mappings = { case_mappings = {
asset.assetnum: asset.is_included asset.assetnum: asset.is_included
for asset in selected_equipments for asset in selected_equipments
@ -389,16 +383,19 @@ async def bulk_update_equipment(*, db: DbSession, selected_equipments: List[Calc
# Get all assetnums that need to be updated # Get all assetnums that need to be updated
assetnums = list(case_mappings.keys()) assetnums = list(case_mappings.keys())
# Create a list of when clauses for the case statement
when_clauses = [
(CalculationEquipmentResult.assetnum == assetnum, is_included)
for assetnum, is_included in case_mappings.items()
]
# Build the update statement # Build the update statement
stmt = ( stmt = (
update(CalculationEquipmentResult) update(CalculationEquipmentResult)
.where(CalculationEquipmentResult.calculation_data_id == calculation_data_id) .where(CalculationEquipmentResult.calculation_data_id == calculation_data_id)
.where(CalculationEquipmentResult.assetnum.in_(assetnums)) .where(CalculationEquipmentResult.assetnum.in_(assetnums))
.values({ .values({
"is_included": case( "is_included": case(*when_clauses) # Unpack the when clauses as separate arguments
(CalculationEquipmentResult.assetnum == assetnum, is_included)
for assetnum, is_included in case_mappings.items()
)
}) })
) )

Loading…
Cancel
Save