frappe.provide("erpnext.accounts.bank_reconciliation"); erpnext.accounts.bank_reconciliation.DataTableManager = class DataTableManager { constructor(opts) { Object.assign(this, opts); this.dialog_manager = new erpnext.accounts.bank_reconciliation.DialogManager( this.company, this.bank_account ); this.make_dt(); } make_dt() { var me = this; frappe.call({ method: "erpnext.accounts.doctype.bank_reconciliation_tool.bank_reconciliation_tool.get_bank_transactions", args: { bank_account: this.bank_account, }, callback: function (response) { me.format_data(response.message); me.get_dt_columns(); me.get_datatable(); me.set_listeners(); }, }); } get_dt_columns() { this.columns = [ { name: "Date", editable: false, width: 100, }, { name: "Party Type", editable: false, width: 95, }, { name: "Party", editable: false, width: 100, }, { name: "Description", editable: false, width: 350, }, { name: "Deposit", editable: false, width: 100, format: (value) => "" + format_currency(value, this.currency) + "", }, { name: "Withdrawal", editable: false, width: 100, format: (value) => "" + format_currency(value, this.currency) + "", }, { name: "Unallocated Amount", editable: false, width: 100, format: (value) => "" + format_currency(value, this.currency) + "", }, { name: "Reference Number", editable: false, width: 140, }, { name: "Actions", editable: false, sortable: false, focusable: false, dropdown: false, width: 80, }, ]; } format_data(transactions) { this.transactions = []; if (transactions[0]) { this.currency = transactions[0]["currency"]; } this.transaction_dt_map = {}; let length; transactions.forEach((row) => { length = this.transactions.push(this.format_row(row)); this.transaction_dt_map[row["name"]] = length - 1; }); } format_row(row) { return [ row["date"], row["party_type"], row["party"], row["description"], row["deposit"], row["withdrawal"], row["unallocated_amount"], row["reference_number"], `