2
0
mirror of https://github.com/frappe/books.git synced 2024-09-20 19:29:02 +00:00
books/reports/BankReconciliation/BankReconciliation.js
2019-09-03 15:14:38 +05:30

55 lines
1.5 KiB
JavaScript

const frappe = require('frappejs');
class BankReconciliation {
async run(params) {
if (!Object.keys(params).length) return [];
const filters = {};
if (params.paymentAccount) filters.paymentAccount = params.paymentAccount;
if (params.party) filters.party = params.party;
if (params.toDate || params.fromDate) {
filters.date = [];
if (params.toDate) filters.date.push('<=', params.toDate);
if (params.fromDate) filters.date.push('>=', params.fromDate);
}
filters.paymentMethod = ['in', ['Cheque', 'Transfer']];
let data = await frappe.db.getAll({
doctype: 'Payment',
fields: [
'date',
'account',
'paymentAccount',
'party',
'name',
'referenceDate',
'referenceId',
'clearanceDate'
],
filters: filters
});
for (var i = 0; i < data.length; i++) {
let ledger = await frappe.db.getAll({
doctype: 'AccountingLedgerEntry',
fields: ['date', 'referenceType', 'referenceName', 'debit', 'credit'],
filters: {
referenceType: 'Payment',
account: data[i].paymentAccount,
referenceName: data[i].name
}
});
data[i].credit = ledger[0].credit;
data[i].debit = ledger[0].debit;
data[i].debit = ledger[0].debit;
data[i].referenceName = ledger[0].referenceName;
data[i].referenceType = ledger[0].referenceType;
}
return data;
}
}
module.exports = BankReconciliation;