7178df8567
* feat(DATEV Settings): button to show report * feat(desk): add DATEV to Reports under Accounting * fix(report DATEV): last calendar month as default * fix: let user create DATEV Settings (Instead of showing an error message.)
53 lines
1.7 KiB
JavaScript
53 lines
1.7 KiB
JavaScript
frappe.query_reports["DATEV"] = {
|
||
"filters": [
|
||
{
|
||
"fieldname": "company",
|
||
"label": __("Company"),
|
||
"fieldtype": "Link",
|
||
"options": "Company",
|
||
"default": frappe.defaults.get_user_default("Company") || frappe.defaults.get_global_default("Company"),
|
||
"reqd": 1
|
||
},
|
||
{
|
||
"fieldname": "from_date",
|
||
"label": __("From Date"),
|
||
"default": moment().subtract(1, 'month').startOf('month').format(),
|
||
"fieldtype": "Date",
|
||
"reqd": 1
|
||
},
|
||
{
|
||
"fieldname": "to_date",
|
||
"label": __("To Date"),
|
||
"default": moment().subtract(1, 'month').endOf('month').format(),
|
||
"fieldtype": "Date",
|
||
"reqd": 1
|
||
},
|
||
{
|
||
"fieldname": "voucher_type",
|
||
"label": __("Voucher Type"),
|
||
"fieldtype": "Select",
|
||
"options": "\nSales Invoice\nPurchase Invoice\nPayment Entry\nExpense Claim\nPayroll Entry\nBank Reconciliation\nAsset\nStock Entry"
|
||
}
|
||
],
|
||
onload: function(query_report) {
|
||
let company = frappe.query_report.get_filter_value('company');
|
||
frappe.db.exists('DATEV Settings', company).then((settings_exist) => {
|
||
if (!settings_exist) {
|
||
frappe.confirm(__('DATEV Settings for your Company are missing. Would you like to create them now?'),
|
||
() => frappe.new_doc('DATEV Settings', {'company': company})
|
||
);
|
||
}
|
||
});
|
||
|
||
query_report.page.add_menu_item(__("Download DATEV File"), () => {
|
||
const filters = JSON.stringify(query_report.get_values());
|
||
window.open(`/api/method/erpnext.regional.report.datev.datev.download_datev_csv?filters=${filters}`);
|
||
});
|
||
|
||
query_report.page.add_menu_item(__("Change DATEV Settings"), () => {
|
||
let company = frappe.query_report.get_filter_value('company'); // read company from filters again – it might have changed by now.
|
||
frappe.set_route('Form', 'DATEV Settings', company);
|
||
});
|
||
}
|
||
};
|