diff --git a/kapital_bank/bank_api.py b/kapital_bank/bank_api.py index 13c84bd..aa1fa5f 100644 --- a/kapital_bank/bank_api.py +++ b/kapital_bank/bank_api.py @@ -1645,6 +1645,7 @@ def _import_one_transaction(txn_data, settings, purpose_rules, purpose_threshold je.cheque_no = ref_no je.cheque_date = parsed_date je.user_remark = purpose + je.kb_account_type = "Expense" if payment_type == "Pay" else "Income" # Compute per-account amounts with proper multi-currency handling currency_precision = cint(frappe.db.get_single_value("System Settings", "currency_precision") or 2) diff --git a/kapital_bank/mapping.py b/kapital_bank/mapping.py index 2cc7529..654678a 100644 --- a/kapital_bank/mapping.py +++ b/kapital_bank/mapping.py @@ -446,6 +446,7 @@ def _create_journal_entry_for_brt(txn, paid_from, paid_to, bank_txn, multi_curre je.cheque_no = ref_no je.cheque_date = posting_date je.user_remark = bank_txn.description or txn.get("purpose") or "" + je.kb_account_type = "Expense" if is_pay else "Income" if is_multi: je.multi_currency = 1 diff --git a/kapital_bank/setup.py b/kapital_bank/setup.py index a776512..ea7a151 100644 --- a/kapital_bank/setup.py +++ b/kapital_bank/setup.py @@ -4,11 +4,13 @@ import frappe def after_install(): cleanup_payment_entry_custom_fields() ensure_bank_transaction_custom_fields() + ensure_journal_entry_custom_fields() def after_migrate(): cleanup_payment_entry_custom_fields() ensure_bank_transaction_custom_fields() + ensure_journal_entry_custom_fields() KB_FIELDS = [ @@ -32,6 +34,21 @@ def ensure_bank_transaction_custom_fields(): frappe.db.commit() +def ensure_journal_entry_custom_fields(): + if not frappe.db.exists("Custom Field", {"dt": "Journal Entry", "fieldname": "kb_account_type"}): + cf = frappe.new_doc("Custom Field") + cf.dt = "Journal Entry" + cf.fieldname = "kb_account_type" + cf.fieldtype = "Select" + cf.options = "\nIncome\nExpense" + cf.label = "KB Account Type" + cf.in_list_view = 1 + cf.hidden = 1 + cf.read_only = 1 + cf.insert(ignore_permissions=True) + frappe.db.commit() + + def cleanup_payment_entry_custom_fields(): for fieldname in KB_FIELDS: if frappe.db.exists("Custom Field", {"dt": "Payment Entry", "fieldname": fieldname}):