Custom Script for employee

I am trying to get the “reports_to_name” after 19-11-2019.But I am getting error.
Below is the error.

SyntaxError: Unexpected token ';'
    at init.setup (http://demo.rahierp.com/assets/js/form.min.js?ver=1560879207.0:1:60222)
    at _f.Frm.setup (http://demo.rahierp.com/assets/js/form.min.js?ver=1560879207.0:1:13114)
    at _f.Frm.refresh (http://demo.rahierp.com/assets/js/form.min.js?ver=1560879207.0:1:19032)
    at frappe.views.FormFactory.load (http://demo.rahierp.com/assets/js/form.min.js?ver=1560879207.0:1:11600)
    at http://demo.rahierp.com/assets/js/form.min.js?ver=1560879207.0:1:11326
    at Object.callback (http://demo.rahierp.com/assets/js/desk.min.js?ver=1560879207.0:1:114726)
    at Object.success [as success_callback] (http://demo.rahierp.com/assets/js/desk.min.js?ver=1560879207.0:1:49206)
    at 200 (http://demo.rahierp.com/assets/js/desk.min.js?ver=1560879207.0:1:49461)
    at Object. (http://demo.rahierp.com/assets/js/desk.min.js?ver=1560879207.0:1:51953)
    at i (http://demo.rahierp.com/assets/frappe/js/lib/jquery/jquery.min.js:2:27151)

Code I have tried:

frappe.ui.form.on("Employee",
{

"year": function(frm) {
frappe.model.with_doc("Calendar Year", frm.doc.year, function() {
    var tabletransfer = frappe.model.get_doc("Calendar Year", frm.doc.year);
    $.each(tabletransfer.c_dates, function(index, row){
        var d = frm.add_child("dsr_submitted");
d.date = row.date;
d.employee = cur_frm.doc.name;
d.employee_name = cur_frm.doc.employee_name;
d.report_to = cur_frm.doc.reports_to;
d.reports_to_name = cur_frm.doc.reports_to_name;
        frm.refresh_field("c_dates");
    });
});
}
});

frappe.ui.form.on("Employee", 
{

"holiday_year": function(frm) {
frappe.model.with_doc("Calendar Year", frm.doc.holiday_year, function() {
    var tabletransfer = frappe.model.get_doc("Calendar Year", frm.doc.holiday_year);
    $.each(tabletransfer.c_dates, function(index, row){
        var d = frm.add_child("dsr_submitted");
d.date = row.date;
d.employee = cur_frm.doc.name;
d.employee_name = cur_frm.doc.employee_name;
d.report_to = cur_frm.doc.reports_to;
d.reports_to_name = cur_frm.doc.reports_to_name;
d.holiday = 1;
        frm.refresh_field("c_dates");
    });
});
}
});

frappe.ui.form.on("Employee", "pause_dsr",  function(frm){

if (cur_frm.doc.pause_dsr == "1")
{
cur_frm.toggle_reqd("from_date", true);
cur_frm.toggle_reqd("to_date", true);
}
});

frappe.ui.form.on("Employee", "validate",  function(frm){

if (cur_frm.doc.pause_dsr == "1"){
var start = new Date(cur_frm.doc.from_date);
var end = new Date(cur_frm.doc.to_date);
while (start <= end) {
	for(var i = 0; i < cur_frm.doc.dsr_submitted.length; i++)
	{
		var dsr = new Date(cur_frm.doc.dsr_submitted[i].date);
		if(dsr.getTime() === start.getTime())
		{
			cur_frm.doc.dsr_submitted[i].dsr_pause = 1;
		}
	}
	start.setDate(start.getDate() + 1);
}
}
});

frappe.ui.form.on("Employee","reports_to", function()
{

for (var i =0; i < cur_frm.doc.dsr_submitted.length; i++){
cur_frm.doc.dsr_submitted[i].report_to = cur_frm.doc.reports_to;
}
  cur_frm.refresh_field('dsr_submitted')
});

frappe.ui.form.on("Employee","reports_to", function()
{

for (var i =0; i < cur_frm.doc.dsr_submitted.length; i++){
cur_frm.doc.dsr_submitted[i].reports_to_name = cur_frm.doc.reports_to_name;
}
cur_frm.refresh_field('dsr_submitted')
});

frappe.ui.form.on("Employee","status", function()
{

for (var i =0; i < cur_frm.doc.dsr_submitted.length; i++){
if(cur_frm.doc.status = 'Left')
{
cur_frm.doc.dsr_submitted[i].deactivated = 1;
}
}
cur_frm.refresh_field('dsr_submitted')
});

Hi @Ashutosh_Halape, please give this a try:

frappe.ui.form.on("Employee", {
    year: function (frm) {
        frappe.model.with_doc("Calendar Year", frm.doc.year, function () {
            var tabletransfer = frappe.model.get_doc("Calendar Year", frm.doc.year);
            $.each(tabletransfer.c_dates, function (index, row) {
                var d = frm.add_child("dsr_submitted");
                d.date = row.date;
                d.employee = frm.doc.name;
                d.employee_name = frm.doc.employee_name;
                d.report_to = frm.doc.reports_to;
                d.reports_to_name = frm.doc.reports_to_name;
                frm.refresh_field("c_dates");
            });
        });
    },
    holiday_year: function (frm) {
        frappe.model.with_doc("Calendar Year", frm.doc.holiday_year, function () {
            var tabletransfer = frappe.model.get_doc("Calendar Year", frm.doc.holiday_year);
            $.each(tabletransfer.c_dates, function (index, row) {
                var d = frm.add_child("dsr_submitted");
                d.date = row.date;
                d.employee = frm.doc.name;
                d.employee_name = frm.doc.employee_name;
                d.report_to = frm.doc.reports_to;
                d.reports_to_name = frm.doc.reports_to_name;
                d.holiday = 1;
                frm.refresh_field("c_dates");
            });
        });
    },
    pause_dsr: function (frm) {
        if (frm.doc.pause_dsr == "1") {
            frm.toggle_reqd("from_date", true);
            frm.toggle_reqd("to_date", true);
        }
    },
    validate: function (frm) {
        if (frm.doc.pause_dsr == "1") {
            var start = new Date(frm.doc.from_date);
            var end = new Date(frm.doc.to_date);
            while (start <= end) {
                for (var i = 0; i < frm.doc.dsr_submitted.length; i++) {
                    var dsr = new Date(frm.doc.dsr_submitted[i].date);
                    if (dsr.getTime() === start.getTime()) {
                        frm.doc.dsr_submitted[i].dsr_pause = 1;
                    }
                }
                start.setDate(start.getDate() + 1);
            }
        }
    },
    reports_to: function (frm) {
        for (var i = 0; i < frm.doc.dsr_submitted.length; i++) {
            frm.doc.dsr_submitted[i].report_to = frm.doc.reports_to;
        }
        frm.refresh_field('dsr_submitted');
    },
    reports_to: function (frm) {
        for (var i = 0; i < frm.doc.dsr_submitted.length; i++) {
            frm.doc.dsr_submitted[i].reports_to_name = frm.doc.reports_to_name;
        }
        frm.refresh_field('dsr_submitted');
    },
    status: function (frm) {
        for (var i = 0; i < frm.doc.dsr_submitted.length; i++) {
            if (frm.doc.status = 'Left') {
                frm.doc.dsr_submitted[i].deactivated = 1;
            }
        }
        frm.refresh_field('dsr_submitted');
    }
});

Note:

  • You can put all functions in one dictionary
  • Use frm instead of cur_frm
  • Hopefully, I deleted the offending semicolon

Thank you @rmeyer. I have one more issue. I want to fetch the new “reports_to_name” and keep the old name as it is for dates prior to 19-11-2019.But whenevr i make changes in the form “reports_to_name” changes for all the dates. “Reports_to” has to be changed to E00394. How do I do this?? Please help I am new to erpnext
Prior to date 19-11-2019 i want “reports_to” = E00001 and from 19-11-2019 I want “reports_to” = E000394.