mirror of
https://github.com/frappe/erpnext.git
synced 2026-03-24 13:42:10 +01:00
@@ -299,7 +299,7 @@ frappe.ui.form.on("Bank Statement Import", {
|
|||||||
// method: 'frappe.core.doctype.data_import.data_import.get_preview_from_template',
|
// method: 'frappe.core.doctype.data_import.data_import.get_preview_from_template',
|
||||||
|
|
||||||
show_import_preview(frm, preview_data) {
|
show_import_preview(frm, preview_data) {
|
||||||
let import_log = JSON.parse(frm.doc.statement_import_log || "[]");
|
let import_log = preview_data.import_log;
|
||||||
|
|
||||||
if (frm.import_preview && frm.import_preview.doctype === frm.doc.reference_doctype) {
|
if (frm.import_preview && frm.import_preview.doctype === frm.doc.reference_doctype) {
|
||||||
frm.import_preview.preview_data = preview_data;
|
frm.import_preview.preview_data = preview_data;
|
||||||
@@ -413,49 +413,50 @@ frappe.ui.form.on("Bank Statement Import", {
|
|||||||
frm.trigger("show_import_log");
|
frm.trigger("show_import_log");
|
||||||
},
|
},
|
||||||
|
|
||||||
show_import_log(frm) {
|
render_import_log(frm) {
|
||||||
let import_log = JSON.parse(frm.doc.statement_import_log || "[]");
|
frappe.call({
|
||||||
let logs = import_log;
|
method: "erpnext.accounts.doctype.bank_statement_import.bank_statement_import.get_import_logs",
|
||||||
frm.toggle_display("import_log", false);
|
args: {
|
||||||
frm.toggle_display("import_log_section", logs.length > 0);
|
docname: frm.doc.name,
|
||||||
|
},
|
||||||
|
callback: function (r) {
|
||||||
|
let logs = r.message;
|
||||||
|
|
||||||
if (logs.length === 0) {
|
if (logs.length === 0) return;
|
||||||
frm.get_field("import_log_preview").$wrapper.empty();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
let rows = logs
|
frm.toggle_display("import_log_section", true);
|
||||||
.map((log) => {
|
|
||||||
let html = "";
|
let rows = logs
|
||||||
if (log.success) {
|
.map((log) => {
|
||||||
if (frm.doc.import_type === "Insert New Records") {
|
let html = "";
|
||||||
html = __("Successfully imported {0}", [
|
if (log.success) {
|
||||||
`<span class="underline">${frappe.utils.get_form_link(
|
if (frm.doc.import_type === "Insert New Records") {
|
||||||
frm.doc.reference_doctype,
|
html = __("Successfully imported {0}", [
|
||||||
log.docname,
|
`<span class="underline">${frappe.utils.get_form_link(
|
||||||
true
|
frm.doc.reference_doctype,
|
||||||
)}<span>`,
|
log.docname,
|
||||||
]);
|
true
|
||||||
} else {
|
)}<span>`,
|
||||||
html = __("Successfully updated {0}", [
|
]);
|
||||||
`<span class="underline">${frappe.utils.get_form_link(
|
} else {
|
||||||
frm.doc.reference_doctype,
|
html = __("Successfully updated {0}", [
|
||||||
log.docname,
|
`<span class="underline">${frappe.utils.get_form_link(
|
||||||
true
|
frm.doc.reference_doctype,
|
||||||
)}<span>`,
|
log.docname,
|
||||||
]);
|
true
|
||||||
}
|
)}<span>`,
|
||||||
} else {
|
]);
|
||||||
let messages = log.messages
|
}
|
||||||
.map(JSON.parse)
|
} else {
|
||||||
.map((m) => {
|
let messages = JSON.parse(log.messages || "[]")
|
||||||
let title = m.title ? `<strong>${m.title}</strong>` : "";
|
.map((m) => {
|
||||||
let message = m.message ? `<div>${m.message}</div>` : "";
|
let title = m.title ? `<strong>${m.title}</strong>` : "";
|
||||||
return title + message;
|
let message = m.message ? `<div>${m.message}</div>` : "";
|
||||||
})
|
return title + message;
|
||||||
.join("");
|
})
|
||||||
let id = frappe.dom.get_unique_id();
|
.join("");
|
||||||
html = `${messages}
|
let id = frappe.dom.get_unique_id();
|
||||||
|
html = `${messages}
|
||||||
<button class="btn btn-default btn-xs" type="button" data-toggle="collapse" data-target="#${id}" aria-expanded="false" aria-controls="${id}" style="margin-top: 15px;">
|
<button class="btn btn-default btn-xs" type="button" data-toggle="collapse" data-target="#${id}" aria-expanded="false" aria-controls="${id}" style="margin-top: 15px;">
|
||||||
${__("Show Traceback")}
|
${__("Show Traceback")}
|
||||||
</button>
|
</button>
|
||||||
@@ -464,16 +465,16 @@ frappe.ui.form.on("Bank Statement Import", {
|
|||||||
<pre>${log.exception}</pre>
|
<pre>${log.exception}</pre>
|
||||||
</div>
|
</div>
|
||||||
</div>`;
|
</div>`;
|
||||||
}
|
}
|
||||||
let indicator_color = log.success ? "green" : "red";
|
let indicator_color = log.success ? "green" : "red";
|
||||||
let title = log.success ? __("Success") : __("Failure");
|
let title = log.success ? __("Success") : __("Failure");
|
||||||
|
|
||||||
if (frm.doc.show_failed_logs && log.success) {
|
if (frm.doc.show_failed_logs && log.success) {
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
return `<tr>
|
return `<tr>
|
||||||
<td>${log.row_indexes.join(", ")}</td>
|
<td>${JSON.parse(log.row_indexes).join(", ")}</td>
|
||||||
<td>
|
<td>
|
||||||
<div class="indicator ${indicator_color}">${title}</div>
|
<div class="indicator ${indicator_color}">${title}</div>
|
||||||
</td>
|
</td>
|
||||||
@@ -481,16 +482,16 @@ frappe.ui.form.on("Bank Statement Import", {
|
|||||||
${html}
|
${html}
|
||||||
</td>
|
</td>
|
||||||
</tr>`;
|
</tr>`;
|
||||||
})
|
})
|
||||||
.join("");
|
.join("");
|
||||||
|
|
||||||
if (!rows && frm.doc.show_failed_logs) {
|
if (!rows && frm.doc.show_failed_logs) {
|
||||||
rows = `<tr><td class="text-center text-muted" colspan=3>
|
rows = `<tr><td class="text-center text-muted" colspan=3>
|
||||||
${__("No failed logs")}
|
${__("No failed logs")}
|
||||||
</td></tr>`;
|
</td></tr>`;
|
||||||
}
|
}
|
||||||
|
|
||||||
frm.get_field("import_log_preview").$wrapper.html(`
|
frm.get_field("import_log_preview").$wrapper.html(`
|
||||||
<table class="table table-bordered">
|
<table class="table table-bordered">
|
||||||
<tr class="text-muted">
|
<tr class="text-muted">
|
||||||
<th width="10%">${__("Row Number")}</th>
|
<th width="10%">${__("Row Number")}</th>
|
||||||
@@ -500,5 +501,34 @@ frappe.ui.form.on("Bank Statement Import", {
|
|||||||
${rows}
|
${rows}
|
||||||
</table>
|
</table>
|
||||||
`);
|
`);
|
||||||
|
},
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
show_import_log(frm) {
|
||||||
|
frm.toggle_display("import_log_section", false);
|
||||||
|
|
||||||
|
if (frm.is_new() || frm.import_in_progress) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
frappe.call({
|
||||||
|
method: "frappe.client.get_count",
|
||||||
|
args: {
|
||||||
|
doctype: "Data Import Log",
|
||||||
|
filters: {
|
||||||
|
data_import: frm.doc.name,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
callback: function (r) {
|
||||||
|
let count = r.message;
|
||||||
|
if (count < 5000) {
|
||||||
|
frm.trigger("render_import_log");
|
||||||
|
} else {
|
||||||
|
frm.toggle_display("import_log_section", false);
|
||||||
|
frm.add_custom_button(__("Export Import Log"), () => frm.trigger("export_import_log"));
|
||||||
|
}
|
||||||
|
},
|
||||||
|
});
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -270,6 +270,19 @@ def get_import_status(docname):
|
|||||||
return import_status
|
return import_status
|
||||||
|
|
||||||
|
|
||||||
|
@frappe.whitelist()
|
||||||
|
def get_import_logs(docname: str):
|
||||||
|
frappe.has_permission("Bank Statement Import")
|
||||||
|
|
||||||
|
return frappe.get_all(
|
||||||
|
"Data Import Log",
|
||||||
|
fields=["success", "docname", "messages", "exception", "row_indexes"],
|
||||||
|
filters={"data_import": docname},
|
||||||
|
limit_page_length=5000,
|
||||||
|
order_by="log_index",
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def upload_bank_statement(**args):
|
def upload_bank_statement(**args):
|
||||||
args = frappe._dict(args)
|
args = frappe._dict(args)
|
||||||
|
|||||||
Reference in New Issue
Block a user