[Fix] FEC: Correction of the export function (#16252)
* Correction of the export function * Improve JS code * Codacy corrections * Codacy corrections
This commit is contained in:
parent
1c1798c7f2
commit
9100740ba9
@ -1,85 +1,75 @@
|
|||||||
// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors
|
// Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors
|
||||||
// For license information, please see license.txt
|
// For license information, please see license.txt
|
||||||
/* eslint-disable */
|
|
||||||
|
|
||||||
frappe.query_reports["Fichier des Ecritures Comptables [FEC]"] = {
|
frappe.query_reports["Fichier des Ecritures Comptables [FEC]"] = {
|
||||||
"filters": [{
|
"filters": [
|
||||||
"fieldname": "company",
|
{
|
||||||
"label": __("Company"),
|
"fieldname": "company",
|
||||||
"fieldtype": "Link",
|
"label": __("Company"),
|
||||||
"options": "Company",
|
"fieldtype": "Link",
|
||||||
"default": frappe.defaults.get_user_default("Company"),
|
"options": "Company",
|
||||||
"reqd": 1
|
"default": frappe.defaults.get_user_default("Company"),
|
||||||
},
|
"reqd": 1
|
||||||
{
|
},
|
||||||
"fieldname": "fiscal_year",
|
{
|
||||||
"label": __("Fiscal Year"),
|
"fieldname": "fiscal_year",
|
||||||
"fieldtype": "Link",
|
"label": __("Fiscal Year"),
|
||||||
"options": "Fiscal Year",
|
"fieldtype": "Link",
|
||||||
"default": frappe.defaults.get_user_default("fiscal_year"),
|
"options": "Fiscal Year",
|
||||||
"reqd": 1
|
"default": frappe.defaults.get_user_default("fiscal_year"),
|
||||||
}],
|
"reqd": 1
|
||||||
|
}
|
||||||
|
],
|
||||||
onload: function(query_report) {
|
onload: function(query_report) {
|
||||||
query_report.page.add_inner_button(__("Export"), function() {
|
query_report.page.add_inner_button(__("Export"), function() {
|
||||||
var fiscal_year = query_report.get_values().fiscal_year;
|
fec_export(query_report);
|
||||||
var company = query_report.get_values().company;
|
});
|
||||||
|
|
||||||
frappe.call({
|
query_report.add_make_chart_button = function() {
|
||||||
method: "frappe.client.get_value",
|
//
|
||||||
args: {
|
};
|
||||||
'doctype': "Company",
|
|
||||||
'fieldname': ['siren_number'],
|
|
||||||
'filters': {
|
|
||||||
'name': company
|
|
||||||
}
|
|
||||||
},
|
|
||||||
callback: function(data) {
|
|
||||||
var company_data = data.message.siren_number;
|
|
||||||
if (company_data === null || company_data === undefined) {
|
|
||||||
frappe.msgprint(__("Please register the SIREN number in the company information file"))
|
|
||||||
} else {
|
|
||||||
frappe.call({
|
|
||||||
method: "frappe.client.get_value",
|
|
||||||
args: {
|
|
||||||
'doctype': "Fiscal Year",
|
|
||||||
'fieldname': ['year_end_date'],
|
|
||||||
'filters': {
|
|
||||||
'name': fiscal_year
|
|
||||||
}
|
|
||||||
},
|
|
||||||
callback: function(data) {
|
|
||||||
var fy = data.message.year_end_date;
|
|
||||||
var title = company_data + "FEC" + moment(fy).format('YYYYMMDD');
|
|
||||||
var result = $.map(frappe.slickgrid_tools.get_view_data(query_report.columns, query_report.dataView),
|
|
||||||
function(row) {
|
|
||||||
return [row.splice(1)];
|
|
||||||
});
|
|
||||||
downloadify(result, null, title);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
query_report.export_report = function() {
|
||||||
}
|
fec_export(query_report);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
let fec_export = function(query_report) {
|
||||||
|
const fiscal_year = query_report.get_values().fiscal_year;
|
||||||
|
const company = query_report.get_values().company;
|
||||||
|
|
||||||
|
frappe.db.get_value("Company", company, "siren_number", (value) => {
|
||||||
|
const company_data = value.siren_number;
|
||||||
|
if (company_data === null || company_data === undefined) {
|
||||||
|
frappe.msgprint(__("Please register the SIREN number in the company information file"));
|
||||||
|
} else {
|
||||||
|
frappe.db.get_value("Fiscal Year", fiscal_year, "year_end_date", (r) => {
|
||||||
|
const fy = r.year_end_date;
|
||||||
|
const title = company_data + "FEC" + moment(fy).format('YYYYMMDD');
|
||||||
|
const column_row = query_report.columns.map(col => col.label);
|
||||||
|
const column_data = query_report.get_data_for_csv(false);
|
||||||
|
const result = [column_row].concat(column_data);
|
||||||
|
downloadify(result, null, title);
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
}
|
||||||
}
|
});
|
||||||
}
|
};
|
||||||
|
|
||||||
var downloadify = function(data, roles, title) {
|
let downloadify = function(data, roles, title) {
|
||||||
if (roles && roles.length && !has_common(roles, roles)) {
|
if (roles && roles.length && !has_common(roles, roles)) {
|
||||||
frappe.msgprint(__("Export not allowed. You need {0} role to export.", [frappe.utils.comma_or(roles)]));
|
frappe.msgprint(__("Export not allowed. You need {0} role to export.", [frappe.utils.comma_or(roles)]));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var filename = title + ".csv";
|
const filename = title + ".txt";
|
||||||
var csv_data = to_tab_csv(data);
|
let csv_data = to_tab_csv(data);
|
||||||
var a = document.createElement('a');
|
const a = document.createElement('a');
|
||||||
|
|
||||||
if ("download" in a) {
|
if ("download" in a) {
|
||||||
// Used Blob object, because it can handle large files
|
// Used Blob object, because it can handle large files
|
||||||
var blob_object = new Blob([csv_data], {
|
let blob_object = new Blob([csv_data], {
|
||||||
type: 'text/csv;charset=UTF-8'
|
type: 'text/csv;charset=UTF-8'
|
||||||
});
|
});
|
||||||
a.href = URL.createObjectURL(blob_object);
|
a.href = URL.createObjectURL(blob_object);
|
||||||
@ -98,8 +88,8 @@ var downloadify = function(data, roles, title) {
|
|||||||
document.body.removeChild(a);
|
document.body.removeChild(a);
|
||||||
};
|
};
|
||||||
|
|
||||||
var to_tab_csv = function(data) {
|
let to_tab_csv = function(data) {
|
||||||
var res = [];
|
let res = [];
|
||||||
$.each(data, function(i, row) {
|
$.each(data, function(i, row) {
|
||||||
res.push(row.join("\t"));
|
res.push(row.join("\t"));
|
||||||
});
|
});
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user