Something went wrong on our end
-
[Projekt: Entwicklung - Neon][TicketNr.: 1052660][Übernahme der "Besuch vor Ort"-Implentierung aus dem Vorwerk system]
[Projekt: Entwicklung - Neon][TicketNr.: 1052660][Übernahme der "Besuch vor Ort"-Implentierung aus dem Vorwerk system]
onActionProcess.js 4.76 KiB
import("Keyword_lib");
import("Address_lib");
import("Person_lib");
import("Contact_lib");
import("KeywordRegistry_basic");
import("system.translate");
import("Sql_lib");
import("AttributeRegistry_basic");
import("system.datetime");
import("system.logging");
import("Communication_lib");
import("system.db");
import("system.vars");
import("system.neon");
import("system.calendars");
import("Calendar_lib");
import("system.date");
import("Context_lib");
import("system.util");
import("system.eMath");
import("system.text");
var entry;
var params = {};
var pointOfContact;
var mailAffectedUser = [];
var uidAppointment;
var values;
var columns;
var columnTypes;
var update;
var i;
var selectionRowData = vars.get("$sys.selectionRows");
var uid = selectionRowData[0].UID;
var isGroup = selectionRowData[0].ISGROUP; //not Bool
var entryDateAsLong = selectionRowData[0].ENTRYDATE;
var entryDate = datetime.toDate(entryDateAsLong, "dd-MM-yyyy");
var startTime = selectionRowData[0].BEGIN_TIME;
var endTime = selectionRowData[0].END_TIME;
var organisation_id = selectionRowData[0].ORGANISATION_ID;
var organisationName = OrganisationUtils.getNameByOrganisationId(organisation_id);
var contact_id = selectionRowData[0].CONTACT_ID;
var contactName = ContactUtils.getFullTitleByContactId(contact_id);
var contactMail = CommUtil.getStandardSubSqlMail(contact_id)
var contactData = newSelect("CONTACT.DEPARTMENT, CONTACT.CONTACTROLE")
.from("CONTACT")
.where("CONTACT.CONTACTID", contact_id)
.arrayRow()
var department = contactData[0];
var contactRole = contactData[1];
var addressId = newSelect("CONTACT.ADDRESS_ID")
.from("CONTACT")
.where("CONTACT.CONTACTID", organisation_id)
.cell();
var organisationAddress = new AddrObject(organisation_id);
var organisationAddressFormatted = organisationAddress.getFormattedAddress(false, "{salutation_name}\n {street} {buildingno}\n {country_short} - {zip} {city}");
var contactCommunication = newSelect("COMMUNICATION.MEDIUM_ID, COMMUNICATION.ADDR")
.from("COMMUNICATION")
.where("COMMUNICATION.CONTACT_ID", contact_id)
.table();
if(contactCommunication.length > 0)
{
var communicationString;
for (i = 0; i < contactCommunication.length; i++)
{
communicationString += KeywordUtils.getViewValue($KeywordRegistry.communicationMedium(), contactCommunication[i][0]) + ": "
+ contactCommunication[i][1] + "</br>"
}
communicationString = communicationString.substring(9);
}
var summary = translate.text("Visit") + " " + contactName + " | "+ organisationName;
var description = contactName + "</br>"
+ department + "</br>"
+ contactRole + "</br>"
+ communicationString + "</br>" + "</br>"
+ organisationName + "</br>"
+ organisationAddressFormatted;
userMailto = [];
userMailto.push("mailto:" + contactMail, "CN:" + contactMail);
mailAffectedUser.push(text.encodeMS(userMailto));
var startdate = entryDate + " " + datetime.toDate(startTime, "HH:mm:ss.S");
startdate = datetime.toLong(startdate, "dd-MM-yyyy HH:mm:ss.S");
var duration = eMath.subInt(endTime, startTime);
entry = CalendarUtil.createEntry("", calendars.VEVENT, summary, description, false, false, false,
vars.get("$sys.user"), [vars.get("$sys.user")], startdate, duration, null, calendars.STATUS_TENTATIVE, null, null);
params["Entry_param"] = JSON.stringify(entry);
uidAppointment = calendars.insert([entry]);
columns = ["AB_APPOINTMENTLINK_ID",
"APPOINTMENT_ID",
"OBJECT_TYPE",
"OBJECT_ROWID"]
columnTypes = db.getColumnTypes("AB_APPOINTMENTLINK", columns, db.getCurrentAlias());
values = [util.getNewUUID(),
uidAppointment[0],
"Organisation",
organisation_id]
insert = db.insertData("AB_APPOINTMENTLINK", columns, columnTypes, values)
values = [util.getNewUUID(),
uidAppointment[0],
"Person",
contact_id]
insert = db.insertData("AB_APPOINTMENTLINK", columns, columnTypes, values)
values = [$KeywordRegistry.visitPlanEntryStatus$Appointmentarranged(), uidAppointment[0]];
columns = ["STATUS", "APPOINTMENT_ID"];
columnTypes = db.getColumnTypes("VISITPLANENTRY", columns, db.getCurrentAlias());
update = newWhere("VISITPLANENTRY.VISITPLANENTRYID", uid)
.updateData(true, "VISITPLANENTRY", columns, columnTypes, values);
neon.setFieldValue("$field.STATUS", $KeywordRegistry.visitPlanEntryStatus$Appointmentarranged());
neon.refreshAll();