Felder in Childtable addieren und Ergebnis auf Feld in Parentdocument / Sum column in child table and show total in parent field
Um die Felder in einem Childtable zu addieren und das Ergebnis auf ein Feld im Parenttable zu übertragen kann folgendes Script benutz werden:
frappe.ui.form.on("Name des Childtables", { zu addierendes Feld auf CT:function(frm, cdt, cdn){ var d = locals[cdt][cdn]; var total = 0; frm.doc.Childtablename auf Parentdocument.forEach(function(d) { total += d.hours; }); frm.set_value("Feld auf Parentdoc für Ergebnis", total); refresh_field("Feld auf Parentdoc für Ergebnis"); }, Childtablename auf Parentdocument_remove:function(frm, cdt, cdn){ var d = locals[cdt][cdn]; var total = 0; frm.doc.Childtablename auf Parentdocument.forEach(function(d) { total += d.zu addierendes Feld auf CT; }); frm.set_value("Feld auf Parentdoc für Ergebnis", total); refresh_field("Feld auf Parentdoc für Ergebnis"); } });
Beispiel:
Name Childtable: Stunden Monteure Projekte
zu addierende Felder auf CT : hours
Childtablename auf Parentdoctype: time_logs
Feld auf Parentdoc für Ergebnis: arbeitszeit_gesamt
frappe.ui.form.on("Stunden Monteure Projekte", {
hours:function(frm, cdt, cdn){
var d = locals[cdt][cdn];
var total = 0;
frm.doc.time_logs.forEach(function(d) { total += d.hours; });
frm.set_value("arbeitszeit_gesamt", total);
refresh_field("arbeitszeit_gesamt");
},
time_logs_remove:function(frm, cdt, cdn){
var d = locals[cdt][cdn];
var total = 0;
frm.doc.time_logs.forEach(function(d) { total += d.hours; });
frm.set_value("arbeitszeit_gesamt", total);
refresh_field("arbeitszeit_gesamt");
}
});