${__('No dependent records — deleting this importer is safe.')}
` + : `${__('Deleting {0} will also affect:', [frappe.utils.escape_html(frm.doc.name)])}
+${__('Registry rows will be deleted. Bank Accounts will only have their Bank Statement Importer link cleared — the accounts themselves stay.')}
+${__('This cannot be undone.')}
`; + + const d = new frappe.ui.Dialog({ + title: __('Delete Bank Statement Importer?'), + fields: [{ fieldname: 'body', fieldtype: 'HTML', options: body }], + primary_action_label: __('Delete Everything'), + primary_action: () => { + d.disable_primary_action(); + this._doDelete(frm.doc.name).then(() => { + d.hide(); + frappe.set_route('List', 'Bank Statement Importer'); + }).catch(() => { + d.enable_primary_action(); + }); + }, + secondary_action_label: __('Cancel'), + secondary_action: () => d.hide(), + }); + // Primary button red since this is destructive. + d.show(); + d.get_primary_btn().removeClass('btn-primary').addClass('btn-danger'); + }, + + _doDelete(name) { + return new Promise((resolve, reject) => { + frappe.call({ + method: 'jey_erp.bank_integration.cascade_delete.cascade_delete', + args: { name }, + freeze: true, + freeze_message: __('Deleting…'), + callback: (r) => { + if (!r.message || r.message.success === false) { + frappe.msgprint({ + title: __('Delete Failed'), + indicator: 'red', + message: (r.message && r.message.message) || __('Unknown error'), + }); + reject(); + return; + } + frappe.show_alert({ message: __('Deleted.'), indicator: 'green' }, 4); + resolve(); + }, + error: reject, + }); + }); + }, +};