added currency to mappings

This commit is contained in:
Ali 2026-03-13 21:28:17 +04:00
parent 68c3d7d8a9
commit 3e90e872a1
4 changed files with 36 additions and 1 deletions

View File

@ -1307,6 +1307,7 @@ def get_statement_transactions(from_date, to_date, account_iban, login_name=None
"contr_voen": contr_voen, "contr_voen": contr_voen,
"amount": amount, "amount": amount,
"currency": currency, "currency": currency,
"kb_currency": (txn.get("acCcy") or "").strip(),
"drcr": dr_cr or "D", "drcr": dr_cr or "D",
"purpose": purpose, "purpose": purpose,
"source_type": "account", "source_type": "account",
@ -2157,6 +2158,10 @@ def _import_one_bank_transaction(txn_data, settings, voen_to_party, name_to_part
bt.bank_account = bank_account bt.bank_account = bank_account
kb_currency = (txn_data.get("kb_currency") or "").strip()
if kb_currency:
bt.kb_currency = kb_currency
if party_type and erp_party: if party_type and erp_party:
bt.party_type = party_type bt.party_type = party_type
bt.party = erp_party bt.party = erp_party

View File

@ -15,6 +15,7 @@
"paid_to", "paid_to",
"cost_center", "cost_center",
"multi_currency", "multi_currency",
"currency",
"notes" "notes"
], ],
"fields": [ "fields": [
@ -40,6 +41,13 @@
"label": "Payment Type", "label": "Payment Type",
"options": "\nPay\nReceive" "options": "\nPay\nReceive"
}, },
{
"fieldname": "currency",
"fieldtype": "Link",
"in_list_view": 1,
"label": "Currency",
"options": "Currency"
},
{ {
"fieldname": "counterparty_type", "fieldname": "counterparty_type",
"fieldtype": "Select", "fieldtype": "Select",
@ -94,7 +102,7 @@
], ],
"istable": 1, "istable": 1,
"links": [], "links": [],
"modified": "2026-03-12 16:52:06.237239", "modified": "2026-03-13 21:17:53.087843",
"modified_by": "Administrator", "modified_by": "Administrator",
"module": "Kapital Bank", "module": "Kapital Bank",
"name": "Kapital Bank Transaction Mapping", "name": "Kapital Bank Transaction Mapping",

View File

@ -214,6 +214,9 @@ def _find_mapping_for_txn(txn, transaction_mappings, purpose_text_cache):
txn_purpose = (txn.get("purpose") or "").lower() txn_purpose = (txn.get("purpose") or "").lower()
txn_party = (txn.get("party") or "").lower() txn_party = (txn.get("party") or "").lower()
bt_name = txn.get("bank_transaction_name")
txn_kb_currency = (frappe.db.get_value("Bank Transaction", bt_name, "kb_currency") or "").strip().upper() if bt_name else ""
both_rules = [] both_rules = []
purpose_only_rules = [] purpose_only_rules = []
counterparty_only_rules = [] counterparty_only_rules = []
@ -224,6 +227,9 @@ def _find_mapping_for_txn(txn, transaction_mappings, purpose_text_cache):
continue continue
if row.payment_type and row.payment_type != payment_type: if row.payment_type and row.payment_type != payment_type:
continue continue
row_currency = (row.currency or "").strip().upper()
if row_currency and row_currency != txn_kb_currency:
continue
has_purpose = bool(row.purpose_keyword) has_purpose = bool(row.purpose_keyword)
has_counterparty = bool(row.counterparty) has_counterparty = bool(row.counterparty)

View File

@ -3,10 +3,12 @@ import frappe
def after_install(): def after_install():
cleanup_payment_entry_custom_fields() cleanup_payment_entry_custom_fields()
ensure_bank_transaction_custom_fields()
def after_migrate(): def after_migrate():
cleanup_payment_entry_custom_fields() cleanup_payment_entry_custom_fields()
ensure_bank_transaction_custom_fields()
KB_FIELDS = [ KB_FIELDS = [
@ -16,6 +18,20 @@ KB_FIELDS = [
] ]
def ensure_bank_transaction_custom_fields():
if not frappe.db.exists("Custom Field", {"dt": "Bank Transaction", "fieldname": "kb_currency"}):
cf = frappe.new_doc("Custom Field")
cf.dt = "Bank Transaction"
cf.fieldname = "kb_currency"
cf.fieldtype = "Link"
cf.options = "Currency"
cf.label = "KB Currency"
cf.insert_after = "currency"
cf.read_only = 0
cf.insert(ignore_permissions=True)
frappe.db.commit()
def cleanup_payment_entry_custom_fields(): def cleanup_payment_entry_custom_fields():
for fieldname in KB_FIELDS: for fieldname in KB_FIELDS:
if frappe.db.exists("Custom Field", {"dt": "Payment Entry", "fieldname": fieldname}): if frappe.db.exists("Custom Field", {"dt": "Payment Entry", "fieldname": fieldname}):