Custom script to sum up fields and set a total value

Hello, i am trying to sum up different fields of a doctype in a total field but i am getting this error.

setup@http://url/assets/js/form.min.js?ver=1520856740.0:2648:5
_f.Frm.prototype.setup@http://url/assets/js/form.min.js?ver=1520856740.0:172:2
_f.Frm.prototype.refresh@http://url/assets/js/form.min.js?ver=1520856740.0:446:4
load@http://url/assets/js/form.min.js?ver=1520856740.0:87:3
show_doc/<@http://url/assets/js/form.min.js?ver=1520856740.0:82:4
callback@http://url/assets/js/desk.min.js?ver=1520856740.0:5516:6
callback@http://url/assets/js/desk.min.js?ver=1520856740.0:1437:11
_@http://url/assets/js/desk.min.js?ver=1520856740.0:1461:29
frappe.request.call/<@http://1url/assets/js/desk.min.js?ver=1520856740.0:1562:5
i@http://url/assets/frappe/js/lib/jquery/jquery.min.js:2:27146
fireWith@http:/url/assets/frappe/js/lib/jquery/jquery.min.js:2:27914
z@http:/url/assets/frappe/js/lib/jquery/jquery.min.js:4:12057
c/<@http://url/assets/frappe/js/lib/jquery/jquery.min.js:4:15619

my code is as follow:

frappe.ui.form.on("Fish Weights", "validate", function(frm, cdt, cdn) {
//var d = locals[cdt][cdn];
var tot = d.0_3_kgs+ d.4_kgs+ d.5_9_kgs+ d.10_14_kgs+ d.15_19_kgs+ d.20_29_kgs+ d.30_39_kgs+ d.40_49_kgs+ d.50_100_kgs;
frappe.model.set_value(cdt, cdn, "total_qty", tot);
refresh_field("total_qty");
});

Any help is welcome

Where those fields are located? Is “Fish Weights” parent doctype or child?
If parent then the code should look like:

frappe.ui.form.on("Fish Weights", "validate", function(frm) {
    var tot = frm.doc.0_3_kgs+ frm.doc.4_kgs+ frm.doc.5_9_kgs+ frm.doc.10_14_kgs+ frm.doc.15_19_kgs+ frm.doc.20_29_kgs+ frm.doc.30_39_kgs+ frm.doc.40_49_kgs+ frm.doc.50_100_kgs;
    frm.set_value("total_qty", tot);
});

This solved it.

frappe.ui.form.on("Fish weight","validate",function(frm, cdt, cdn){
var d = locals[cdt][cdn];
var tot = cur_frm.doc.lessthree_kgs+cur_frm.doc.four_kgs+cur_frm.doc.fivetonine_kgs+cur_frm.doc.tenfourteen_kgs+cur_frm.doc.fifteennineteen_kgs+cur_frm.doc.twentytonine_kgs+cur_frm.doc.thirtytonine_kgs+cur_frm.doc.fourtytonine_kgs+cur_frm.doc.morefifty_kgs;

frappe.model.set_value(cdt, cdn, "total", tot);
refresh_field("total");

});
1 Like