2
0
mirror of https://github.com/frappe/books.git synced 2024-09-20 11:29:00 +00:00
books/reports/index.js

77 lines
1.9 KiB
JavaScript
Raw Normal View History

import frappe from 'frappe';
import AccountsReceivablePayable from './AccountsReceivablePayable/AccountsReceivablePayable';
import BalanceSheet from './BalanceSheet/BalanceSheet';
import BankReconciliation from './BankReconciliation/BankReconciliation';
import GeneralLedger from './GeneralLedger/GeneralLedger';
import GSTR1 from './GoodsAndServiceTax/GSTR1';
import GSTR2 from './GoodsAndServiceTax/GSTR2';
import ProfitAndLoss from './ProfitAndLoss/ProfitAndLoss';
import PurchaseRegister from './PurchaseRegister/PurchaseRegister';
import SalesRegister from './SalesRegister/SalesRegister';
import TrialBalance from './TrialBalance/TrialBalance';
2018-04-19 14:31:35 +00:00
// called on server side
function registerReportMethods() {
const reports = [
{
method: 'general-ledger',
class: GeneralLedger,
},
{
method: 'profit-and-loss',
class: ProfitAndLoss,
},
{
method: 'balance-sheet',
class: BalanceSheet,
},
{
method: 'trial-balance',
class: TrialBalance,
},
{
method: 'sales-register',
class: SalesRegister,
},
{
method: 'purchase-register',
class: PurchaseRegister,
},
{
method: 'bank-reconciliation',
class: BankReconciliation,
},
{
method: 'gstr-1',
class: GSTR1,
},
{
method: 'gstr-2',
class: GSTR2,
},
];
2018-04-27 11:33:36 +00:00
reports.forEach((report) => {
frappe.registerMethod({
method: report.method,
handler: getReportData(report.class),
});
});
frappe.registerMethod({
method: 'accounts-receivable',
handler: (args) => new AccountsReceivablePayable().run('Receivable', args),
});
frappe.registerMethod({
method: 'accounts-payable',
handler: (args) => new AccountsReceivablePayable().run('Payable', args),
});
2018-04-19 14:31:35 +00:00
}
function getReportData(ReportClass) {
return (args) => new ReportClass().run(args);
2018-04-19 14:31:35 +00:00
}
export default registerReportMethods;