From 9ce6e6c5c4dfb5d06c89bdd815810b6bb0f65767 Mon Sep 17 00:00:00 2001 From: Raffael Meyer <14891507+barredterra@users.noreply.github.com> Date: Wed, 26 Aug 2026 02:46:20 +0200 Subject: [PATCH] fix(asset): skip missing checkbox columns in asset type patch (#58416) (cherry picked from commit 6bdc18b7534864e729e85c5b6de44be882424b81) # Conflicts: # erpnext/patches/v16_0/migrate_asset_type_checkboxes_to_select.py --- ...migrate_asset_type_checkboxes_to_select.py | 26 +++++++++++++------ 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/erpnext/patches/v16_0/migrate_asset_type_checkboxes_to_select.py b/erpnext/patches/v16_0/migrate_asset_type_checkboxes_to_select.py index 11f341ce65a..9a5c8398df0 100644 --- a/erpnext/patches/v16_0/migrate_asset_type_checkboxes_to_select.py +++ b/erpnext/patches/v16_0/migrate_asset_type_checkboxes_to_select.py @@ -3,6 +3,7 @@ from frappe.query_builder import Case def execute(): +<<<<<<< HEAD required_columns = [ "is_existing_asset", "is_composite_asset", @@ -14,12 +15,21 @@ def execute(): return Asset = frappe.qb.DocType("Asset") +======= + # v15 sites never had is_composite_component; only migrate columns that exist. + column_values = ( + ("is_existing_asset", "Existing Asset"), + ("is_composite_asset", "Composite Asset"), + ("is_composite_component", "Composite Component"), + ) + existing = [(col, value) for col, value in column_values if frappe.db.has_column("Asset", col)] + if not existing: + return +>>>>>>> 6bdc18b (fix(asset): skip missing checkbox columns in asset type patch (#58416)) - frappe.qb.update(Asset).set( - Asset.asset_type, - Case() - .when(Asset.is_existing_asset == 1, "Existing Asset") - .when(Asset.is_composite_asset == 1, "Composite Asset") - .when(Asset.is_composite_component == 1, "Composite Component") - .else_(""), - ).run() + Asset = frappe.qb.DocType("Asset") + case = Case() + for column, value in existing: + case = case.when(getattr(Asset, column) == 1, value) + + frappe.qb.update(Asset).set(Asset.asset_type, case.else_("")).run()