Skip to content
Snippets Groups Projects
onDBUpdate.js 1.63 KiB
Newer Older
import("Workflow_lib");
import("Sql_lib");
import("Location_lib");
import("Address_lib");
import("system.vars");
import("DataPrivacy_lib");

var rowdata = vars.get("$local.rowdata");

if(vars.exists("$context.PushDataPrivacyNotification") && vars.get("$context.PushDataPrivacyNotification") == "false")
{
    DataPrivacyUtils.notifyNeedDataPrivacyUpdate(rowdata["COMMUNICATION.CONTACT_ID"], vars.get("$param.ShowDsgvoMessage_param"));
    vars.set("$context.PushDataPrivacyNotification", "true");
}  

var changed = vars.get("$local.changed");
var isAddressChanged = changed.includes("ADDRESS.ADDRESS")
    || changed.includes("ADDRESS.BUILDINGNO")
    || changed.includes("ADDRESS.ZIP")
    || changed.includes("ADDRESS.CITY")
    || changed.includes("ADDRESS.STATE")
    || changed.includes("ADDRESS.COUNTRY");

if (isAddressChanged)
{
    var address = new AddressObject(rowdata["ADDRESS.ADDRESS"], rowdata["ADDRESS.BUILDINGNO"], rowdata["ADDRESS.ZIP"], rowdata["ADDRESS.CITY"], rowdata["ADDRESS.COUNTRY"], rowdata["ADDRESS.STATE"]);
    var addressLocation = new LocationFinder().getGeoLocation(address);
    if (addressLocation)
    {
        let fieldsValues = {};
        if (isAddressChanged)
        {
            fieldsValues["LAT"] = addressLocation.lat;
            fieldsValues["LON"] = addressLocation.lon;
        }
        
        if (rowdata["ADDRESS.VALIDATION_RESULT"] === null)
        {
            fieldsValues["VALIDATION_RESULT"] = addressLocation.requestResult;
        }
        
        newWhere("ADDRESS.ADDRESSID", "$local.uid")
}

WorkflowSignalSender.updated();