Calculate total salary

Any help with this?

frappe.ui.form.on('Definition Of Salary', function(frm){
	refresh(frm); {
  frm.set_value("total_salary",frm.doc.basic_salary + frm.doc.housing_allowance + frm.transportation_allowance);
}
	
});

@Hardik_Gadesha

@Nada-86

frappe.ui.form.on("Definition Of Salary", {
    refresh: function (frm) {
        if(frm.doc.docstatus === 0){
            frm.set_value("total_salary",frm.doc.basic_salary + frm.doc.housing_allowance + frm.transportation_allowance);
        }
    }
});

@Hardik_Gadesha
what is docstatus?


nop

@Nada-86

frappe.ui.form.on("Definition Of Salary", {
    refresh: function (frm) {
        calculate_total_salary(frm);
    },
    basic_salary: function (frm) {
        calculate_total_salary(frm);
    },
    housing_allowance: function (frm) {
        calculate_total_salary(frm);
    },
    transportation_allowance: function (frm) {
        calculate_total_salary(frm);
    }
});

function calculate_total_salary(frm) {
    let total_salary = frm.doc.basic_salary + frm.doc.housing_allowance + frm.doc.transportation_allowance;
    frm.set_value("total_salary", total_salary);
}

@Hardik_Gadesha


@Nada-86 Looks like you have create field type as Data, make it as currency or use it like parseFloat(frm.doc.basic_salary) and so on for all component

@Hardik_Gadesha
I put the type ReadOnly

@Nada-86 asking about the input field on basic_salary, transportation_allowance, housing_allowance

Ohh yes Data

yes Data

@Nada-86 try with given solution

@Hardik_Gadesha
How can I use this?
parseFloat(frm.doc.basic_salary)

@Nada-86 parseFloat() - JavaScript | MDN

@Hardik_Gadesha

frappe.ui.form.on("Definition Of Salary", {
     return parseFloat('total_salary');
     
    refresh: function (frm) {
        calculate_total_salary(frm);
    },
    basic_salary: function (frm) {
        calculate_total_salary(frm);
    },
    transportation_allowance: function (frm) {
        calculate_total_salary(frm);
    },
    
    housing_allowance: function (frm) {
        calculate_total_salary(frm);
    },
    refresh: function (frm) {
        calculate_total_salary(frm);
    }
});

function calculate_total_salary(frm) {
    frm.set_value("total_salary",(frm.doc.basic_salary + frm.doc.housing_allowance + frm.doc.transportation_allowance));
}

@Nada-86

frappe.ui.form.on("Definition Of Salary", {   
    refresh: function (frm) {
        calculate_total_salary(frm);
    },
    basic_salary: function (frm) {
        calculate_total_salary(frm);
    },
    transportation_allowance: function (frm) {
        calculate_total_salary(frm);
    },
    housing_allowance: function (frm) {
        calculate_total_salary(frm);
    }
});

function calculate_total_salary(frm) {
let total_salary = parseFloat(frm.doc.basic_salary) + parseFloat(frm.doc.housing_allowance) + parseFloat(frm.doc.transportation_allowance);
    frm.set_value("total_salary", total_salary);
}
1 Like

@Hardik_Gadesha
You are the best always and forever :star_struck: :heart_eyes: :smiling_face_with_three_hearts:
Thanks :pray:

1 Like

@Hardik_Gadesha
I have a question can I use this in child table?