Skip to content
Snippets Groups Projects
afterSave.js 2.56 KiB
import("Calendar_lib");
import("Communication_lib");
import("KeywordRegistry_basic");
import("Sql_lib");
import("system.datetime");
import("system.eMath");
import("system.neon");
import("system.result");
import("system.translate");
import("system.vars");

if(vars.get("$param.CurrentContext_param") != null)
{
    var savedData = vars.get("$local.entitydata");

    if(savedData["VISITRECOMMENDATION_ID"])
    {
        newWhere("VISITRECOMMENDATION.VISITRECOMMENDATIONID", savedData["VISITRECOMMENDATION_ID"])
            .updateData(true, "VISITRECOMMENDATION", ["STATUS"], null, ["PLANNED"]);
    }
    if(savedData["STATUS_APPOINTMENT"] == $KeywordRegistry.visitPlanEntryStatusAppointment$confirmed()
        && !savedData["APPOINTMENT_ID"])
    {
        var summary = translate.text("Site visit") + " | " + savedData["CONTACT_ID.displayValue"];
        var description = savedData["CONTACT_ID.displayValue"];
        var standardMail = CommUtil.getStandardMail(savedData["CONTACT_ID"]); 
    
        var entryDate = datetime.toLocaleDate(savedData["ENTRYDATE"], "dd-MM-yyyy");
        var startTime = entryDate + " " + datetime.toLocaleDate(savedData["BEGIN_TIME"], "HH:mm:ss.S");
        startTime = datetime.toLong(startTime, "dd-MM-yyyy HH:mm:ss.S", "UTC"); // #1076044 set tz to prevent time gaps.
        var endTime = savedData["END_TIME"];
        var duration = eMath.subInt(endTime, startTime);

        var start = new Date(datetime.clearTime(startTime, vars.get("$sys.timezone")) + Number(savedData["BEGIN_TIME"]));
        var end = new Date(datetime.today(vars.get("$sys.timezone")) + Number(savedData["END_TIME"]));
     
        var links = [
            {
                "OBJECT_ID": savedData["ORGANISATION_CONTACT_ID"],
                "OBJECT_TYPE": "Organisation"
            },
            {
                "OBJECT_ID": savedData["CONTACT_ID"],
                "OBJECT_TYPE": "Person"
            },
            {
                "OBJECT_ID" : vars.get("$field.VISITPLANENTRYID"),
                "OBJECT_TYPE" : "Visitplanentry"
            }
        ]
    
        var params = {
            "Entry_param" : JSON.stringify(CalendarUtil.createEntry(summary, description, links, undefined, undefined, 
                            start, end, undefined, undefined, undefined, [standardMail], undefined, undefined, undefined)),
            "Visitplanentry_param": vars.get("$field.VISITPLANENTRYID")
        };
    
        neon.openContext("Appointment", "AppointmentEdit_view", [vars.get("$field.VISITPLANENTRYID")], neon.OPERATINGSTATE_NEW, params, null);
        result.string(true);
    }
}