From 9cda4512c46acad0c83181d86dc8062de610d66c Mon Sep 17 00:00:00 2001 From: MrWaradana Date: Fri, 30 Jan 2026 15:25:45 +0700 Subject: [PATCH] fix update equipment recalculation error --- src/equipment/service.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/equipment/service.py b/src/equipment/service.py index c0dd0bf..74fe65f 100644 --- a/src/equipment/service.py +++ b/src/equipment/service.py @@ -694,9 +694,12 @@ async def update( # Re-run generate_transaction for this equipment's assetnum. # Build an EquipmentCreate from the updated SQLAlchemy object and call the generator. + # Exclude fields not present in EquipmentCreate schema (e.g., id, equipment_master) + create_fields = set(EquipmentCreate.model_fields.keys()) + create_data = {k: v for k, v in updated_data.items() if k in create_fields} try: - equipment_create = EquipmentCreate(**updated_data) - await generate_transaction(db_session=db_session, data_in=equipment_create, token=token) + equipment_update = EquipmentUpdate(**update_data) + await generate_transaction(db_session=db_session, data_in=equipment_update, token=token) except Exception as e: # don't break the update if resimulation fails — log/print for visibility print(f"Resimulation failed for assetnum {updated_data.get('assetnum')}: {e}")