refactor(kapital-bank): drop redundant Default Company field

System is single-company; Default Company on Kapital Bank Settings
duplicated what ERPNext already exposes via Global Defaults. Removed
the field and replaced all settings/doc.default_company reads with
erpnext.get_default_company() (used by Bank Account creation for
accounts/cards, Journal Entry / Payment Entry / Bank Transaction
creation during reconcile). Existing column on the singleton table is
left in place — Frappe just ignores it.
This commit is contained in:
Ali 2026-05-18 13:42:34 +00:00
parent c9032df3bf
commit 5462c55cd3
2 changed files with 9 additions and 16 deletions

View File

@ -1,5 +1,6 @@
import json import json
import re import re
import erpnext
import frappe import frappe
from datetime import datetime from datetime import datetime
from frappe.utils import cint, flt from frappe.utils import cint, flt
@ -931,13 +932,13 @@ def create_unmapped_accounts(settings_name=None):
return {"success": True, "created_count": 0, "message": "No unmapped accounts to create"} return {"success": True, "created_count": 0, "message": "No unmapped accounts to create"}
default_bank = doc.default_bank default_bank = doc.default_bank
default_company = doc.default_company default_company = erpnext.get_default_company()
# Bank Account requires both Company and Bank — surface a clear message # Bank Account requires both Company and Bank — surface a clear message
# instead of ERPNext's mandatory-field error mid-creation. # instead of ERPNext's mandatory-field error mid-creation.
if any(not frappe.db.exists("Bank Account", {"bank_account_no": r.iban}) for r in unmapped): if any(not frappe.db.exists("Bank Account", {"bank_account_no": r.iban}) for r in unmapped):
if not default_company: if not default_company:
return {"success": False, "message": "Set a Default Company on Kapital Bank Settings before creating Bank Accounts."} return {"success": False, "message": "Set a Default Company in Global Defaults before creating Bank Accounts."}
if not default_bank: if not default_bank:
return {"success": False, "message": "Set a Default Bank on Kapital Bank Settings before creating Bank Accounts."} return {"success": False, "message": "Set a Default Bank on Kapital Bank Settings before creating Bank Accounts."}
@ -1058,11 +1059,11 @@ def create_unmapped_cards(settings_name=None):
return {"success": True, "created_count": 0, "message": "No unmapped cards to create"} return {"success": True, "created_count": 0, "message": "No unmapped cards to create"}
default_bank = doc.default_bank default_bank = doc.default_bank
default_company = doc.default_company default_company = erpnext.get_default_company()
if any(not frappe.db.exists("Bank Account", {"bank_account_no": r.account_number}) for r in unmapped): if any(not frappe.db.exists("Bank Account", {"bank_account_no": r.account_number}) for r in unmapped):
if not default_company: if not default_company:
return {"success": False, "message": "Set a Default Company on Kapital Bank Settings before creating Bank Accounts."} return {"success": False, "message": "Set a Default Company in Global Defaults before creating Bank Accounts."}
if not default_bank: if not default_bank:
return {"success": False, "message": "Set a Default Bank on Kapital Bank Settings before creating Bank Accounts."} return {"success": False, "message": "Set a Default Bank on Kapital Bank Settings before creating Bank Accounts."}
@ -1750,14 +1751,13 @@ def _import_one_transaction(txn_data, settings, purpose_rules, purpose_threshold
} }
if doc_type == "Journal Entry": if doc_type == "Journal Entry":
import erpnext
from erpnext.setup.utils import get_exchange_rate from erpnext.setup.utils import get_exchange_rate
# Create Journal Entry # Create Journal Entry
je = frappe.new_doc("Journal Entry") je = frappe.new_doc("Journal Entry")
je.voucher_type = "Bank Entry" je.voucher_type = "Bank Entry"
je.posting_date = parsed_date je.posting_date = parsed_date
je.company = settings.default_company je.company = erpnext.get_default_company()
je.cheque_no = ref_no je.cheque_no = ref_no
je.cheque_date = parsed_date je.cheque_date = parsed_date
je.user_remark = purpose je.user_remark = purpose
@ -1765,7 +1765,7 @@ def _import_one_transaction(txn_data, settings, purpose_rules, purpose_threshold
# Compute per-account amounts with proper multi-currency handling # Compute per-account amounts with proper multi-currency handling
currency_precision = cint(frappe.db.get_single_value("System Settings", "currency_precision") or 2) currency_precision = cint(frappe.db.get_single_value("System Settings", "currency_precision") or 2)
company_currency = erpnext.get_company_currency(settings.default_company) company_currency = erpnext.get_company_currency(erpnext.get_default_company())
txn_currency = (txn_data.get("currency") or company_currency).strip() txn_currency = (txn_data.get("currency") or company_currency).strip()
pf_account = frappe.get_cached_value("Account", paid_from, ["account_type", "account_currency"], as_dict=True) or {} pf_account = frappe.get_cached_value("Account", paid_from, ["account_type", "account_currency"], as_dict=True) or {}
@ -1871,7 +1871,7 @@ def _import_one_transaction(txn_data, settings, purpose_rules, purpose_threshold
# Create Payment Entry # Create Payment Entry
pe = frappe.new_doc("Payment Entry") pe = frappe.new_doc("Payment Entry")
pe.payment_type = payment_type pe.payment_type = payment_type
pe.company = settings.default_company pe.company = erpnext.get_default_company()
pe.posting_date = parsed_date pe.posting_date = parsed_date
pe.paid_from = paid_from pe.paid_from = paid_from
pe.paid_to = paid_to pe.paid_to = paid_to
@ -2302,7 +2302,7 @@ def _import_one_bank_transaction(txn_data, settings, voen_to_party, name_to_part
bt.description = txn_data.get("full_description") or purpose bt.description = txn_data.get("full_description") or purpose
bt.reference_number = ref_no bt.reference_number = ref_no
bt.transaction_id = ref_no bt.transaction_id = ref_no
bt.company = settings.default_company bt.company = erpnext.get_default_company()
bt.bank_party_name = contr_name or purpose bt.bank_party_name = contr_name or purpose
bt.bank_account = bank_account bt.bank_account = bank_account

View File

@ -7,7 +7,6 @@
"settings_tab", "settings_tab",
"is_active", "is_active",
"default_login", "default_login",
"default_company",
"company_code", "company_code",
"default_bank", "default_bank",
"general_section", "general_section",
@ -70,12 +69,6 @@
"label": "Default Login", "label": "Default Login",
"options": "Kapital Bank Login" "options": "Kapital Bank Login"
}, },
{
"fieldname": "default_company",
"fieldtype": "Link",
"label": "Default Company",
"options": "Company"
},
{ {
"fieldname": "company_code", "fieldname": "company_code",
"fieldtype": "Data", "fieldtype": "Data",