Skip to content
Snippets Groups Projects
Commit e6812665 authored by Carolin Wimmer's avatar Carolin Wimmer
Browse files

[Projekt: Crowd-Development / Besuch vor Ort][TicketNr.:...

[Projekt: Crowd-Development / Besuch vor Ort][TicketNr.: 1067064][Besuchsvorschläge aus manueller Anlage]
parent 4978a831
No related branches found
No related tags found
No related merge requests found
Showing
with 129 additions and 20 deletions
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
<changeSet author="c.wimmer" id="e4ab868a-6072-483c-abb3-db83ce162575">
<addColumn tableName="VISITRECOMMENDATION">
<column name="STATUS" type="CHAR(36)"/>
</addColumn>
</changeSet>
</databaseChangeLog>
\ No newline at end of file
......@@ -18,4 +18,5 @@
<include relativeToChangelogFile="true" file="insert_VisitPlanningAttribute.xml"/>
<include relativeToChangelogFile="true" file="insert_VisitPlanEntryStatusAppointment.xml"/>
<include relativeToChangelogFile="true" file="add_VisitPlanEntry.xml"/>
<include relativeToChangelogFile="true" file="add_VisitrecommendationStatus.xml"/>
</databaseChangeLog>
......@@ -5,7 +5,7 @@
<changeSet author="c.wimmer" id="b1bd94b5-5cef-450d-a1a3-c510984373e0">
<insert tableName="AB_KEYWORD_ENTRY">
<column name="AB_KEYWORD_ENTRYID" value="70f352e7-81dc-4d44-9f12-30bfc2cc39f1"/>
<column name="KEYID" value="VISITSTATUSAPPOINTMENTREQUESTED "/>
<column name="KEYID" value="VISITSTATUSAPPOINTMENTREQUESTED"/>
<column name="TITLE" value="requested"/>
<column name="CONTAINER" value="VisitPlanEntryStatusAppointment"/>
<column name="SORTING" valueNumeric="0"/>
......@@ -14,7 +14,7 @@
</insert>
<insert tableName="AB_KEYWORD_ENTRY">
<column name="AB_KEYWORD_ENTRYID" value="1b6b5070-8028-42f9-abfd-ee64142801d1"/>
<column name="KEYID" value="VISITSTATUSAPPOINTMENTCONFIRMED "/>
<column name="KEYID" value="VISITSTATUSAPPOINTMENTCONFIRMED"/>
<column name="TITLE" value="confirmed"/>
<column name="CONTAINER" value="VisitPlanEntryStatusAppointment"/>
<column name="SORTING" valueNumeric="1"/>
......
......@@ -14820,6 +14820,20 @@
<title></title>
<description></description>
</entityFieldDb>
<entityFieldDb>
<name>STATUS</name>
<dbName></dbName>
<primaryKey v="false" />
<columnType v="1" />
<size v="36" />
<scale v="0" />
<notNull v="false" />
<isUnique v="false" />
<index v="false" />
<documentation></documentation>
<title></title>
<description></description>
</entityFieldDb>
</entityFields>
</entityDb>
<entityDb>
......@@ -15070,6 +15084,20 @@
<title></title>
<description></description>
</entityFieldDb>
<entityFieldDb>
<name>STATUS_APPOINTMENT</name>
<dbName></dbName>
<primaryKey v="false" />
<columnType v="12" />
<size v="36" />
<scale v="0" />
<notNull v="false" />
<isUnique v="false" />
<index v="false" />
<documentation></documentation>
<title></title>
<description></description>
</entityFieldDb>
</entityFields>
</entityDb>
<entityDb>
......
......@@ -28,8 +28,12 @@ if(vars.exists("$param.VisitPlanEntryId_param") && vars.get("$param.VisitPlanEnt
{
var values = [$KeywordRegistry.visitPlanEntryStatus$Visitreportcreated()];
var columns = ["STATUS"];
var update = newWhere("VISITPLANENTRY.VISITPLANENTRYID", vars.get("$param.VisitPlanEntryId_param"))
var updateEntry = newWhere("VISITPLANENTRY.VISITPLANENTRYID", vars.get("$param.VisitPlanEntryId_param"))
.updateData(true, "VISITPLANENTRY", columns, null, values);
var recommendationId = newSelect("VISITPLANENTRY.VISITRECOMMENDATION_ID").from("VISITPLANENTRY").where("VISITPLANENTRY.VISITPLANENTRYID", vars.get("$param.VisitPlanEntryId_param"))
var updateRecommendation = newWhere("VISITRECOMMENDATION.VISITRECOMMENDATIONID", recommendationId)
.updateData(true, "VISITRECOMMENDATION", ["STATUS"], null, [$KeywordRegistry.visitPlanEntryStatus$Visitreportcreated()])
}
if (vars.exists("$param.InsertLinks_param") && vars.get("$param.InsertLinks_param"))
......
......@@ -171,6 +171,7 @@
</entityField>
<entityField>
<name>VISITRECOMMENDATION_ID</name>
<valueProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/visitrecommendation_id/valueProcess.js</valueProcess>
</entityField>
<entityField>
<name>APPOINTMENT_ID</name>
......@@ -267,6 +268,10 @@
</entityParameter>
</children>
</entityConsumer>
<entityParameter>
<name>VisitrecommendationId_param</name>
<expose v="true" />
</entityParameter>
</entityFields>
<recordContainers>
<jDitoRecordContainer>
......@@ -329,6 +334,9 @@
<jDitoRecordFieldMapping>
<name>STATUS_APPOINTMENT.displayValue</name>
</jDitoRecordFieldMapping>
<jDitoRecordFieldMapping>
<name>VISITRECOMMENDATION_ID.value</name>
</jDitoRecordFieldMapping>
</recordFieldMappings>
</jDitoRecordContainer>
</recordContainers>
......
......@@ -8,11 +8,18 @@ import("system.neon");
import("system.calendars");
import("system.util");
import("system.vars");
import("system.db");
import("Calendar_lib");
import("Communication_lib");
var savedData = vars.get("$local.entitydata");
if(savedData["STATUS_APPOINTMENT"] == "VISITSTATUSAPPOINTMENTCONFIRMED ")
if(savedData["VISITRECOMMENDATION_ID"])
{
db.updateData("VISITRECOMMENDATION", ["STATUS"], db.getColumnTypes("VISITRECOMMENDATION", ["STATUS"]), ["PLANNED"]
, "VISITRECOMMENDATIONID = '" + savedData["VISITRECOMMENDATION_ID"] + "'");
}
if(savedData["STATUS_APPOINTMENT"] == "VISITSTATUSAPPOINTMENTCONFIRMED")
{
var summary = translate.text("Besuch vor Ort") + " | " + savedData["CONTACT_ID.displayValue"];
var description = savedData["CONTACT_ID.displayValue"];
......@@ -35,4 +42,4 @@ if(savedData["STATUS_APPOINTMENT"] == "VISITSTATUSAPPOINTMENTCONFIRMED ")
neon.openContext("Appointment", "AppointmentEdit_view", [vars.get("$field.UID")], neon.OPERATINGSTATE_NEW, params, null);
result.string(true);
}
\ No newline at end of file
}
......@@ -19,7 +19,6 @@ var pointOfContact = newSelect("CONTACT.CONTACTID", db.getCurrentAlias())
.where("AB_ATTRIBUTE.AB_ATTRIBUTEID", $AttributeRegistry.visitPlanPointOfContact())
.and("CONTACT.CONTACTID", vars.get("$field.ORGANISATION_CONTACT_ID"))
.cell();
var context;
if(pointOfContact)
links.push([ContactUtils.getContextByContactId(pointOfContact), pointOfContact]);
......@@ -30,3 +29,4 @@ else
}
ActivityUtils.createNewActivity(null, links, null, null, null, null, $KeywordRegistry.activityDirection$outgoing(), null, $KeywordRegistry.activityCategory$visit(), vars.get("$field.ENTRYDATE"), vars.get("$field.UID"));
import("system.logging");
import("system.neon");
import("system.result");
import("system.vars");
if (vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value")== null)
result.string(vars.get("$param.VisitrecommendationId_param"));
\ No newline at end of file
......@@ -16,7 +16,8 @@ var items = [];
var group = [];
var entryData = "";
var entrySQL = newSelect("ENTRYDATE, VISITPLANENTRYID, BEGIN_TIME, END_TIME, ORGANISATION_CONTACT_ID, CONTACT_ID,STATUS, VISITPLANEMPLOYEEWEEK_ID, APPOINTMENT_ID, STATUS_APPOINTMENT")
var entrySQL = newSelect("ENTRYDATE, VISITPLANENTRYID, BEGIN_TIME, END_TIME, ORGANISATION_CONTACT_ID, CONTACT_ID,STATUS, VISITPLANEMPLOYEEWEEK_ID"
+", APPOINTMENT_ID, STATUS_APPOINTMENT, VISITRECOMMENDATION_ID")
.from("VISITPLANENTRY");
if (vars.exists("$local.idvalues") && vars.get("$local.idvalues"))
......@@ -46,8 +47,8 @@ if(entryData.length > 0)
{
for(var i = 0; i < entryData.length; i++)
{
var entryDateRaw, visitPlanEntryId, beginn_time, end_time, organisationContact_id, contact_id, status, visitplanemployeeweek_id, appointmentid, statusAppointment;
[entryDateRaw, visitPlanEntryId, beginn_time, end_time, organisationContact_id, contact_id, status, visitplanemployeeweek_id, appointmentid, statusAppointment] = entryData[i]
var entryDateRaw, visitPlanEntryId, beginn_time, end_time, organisationContact_id, contact_id, status, visitplanemployeeweek_id, appointmentid, statusAppointment, visitrecommendation_id;
[entryDateRaw, visitPlanEntryId, beginn_time, end_time, organisationContact_id, contact_id, status, visitplanemployeeweek_id, appointmentid, statusAppointment, visitrecommendation_id] = entryData[i]
var contactname = db.cell(PersUtils.getResolvingDisplaySubSql("'" + contact_id + "'"));
var orgname = OrganisationUtils.getNameByContactId(organisationContact_id);
......@@ -60,13 +61,13 @@ if(entryData.length > 0)
items.push([visitPlanEntryId, false, parentName + "#" + entryDate, "", beginn_time
, end_time, organisationContact_id, orgname, contact_id, contactname, entryDateRaw, status, visitplanemployeeweek_id, appointmentid
, statusDisplay, statusAppointment, statusAppointmentDisplay]);
, statusDisplay, statusAppointment, statusAppointmentDisplay, visitrecommendation_id]);
if(!vars.get("$local.idvalues"))
{
if(group.indexOf(parentName + "#" + entryDate) == -1)
{
items.push([parentName + "#" + entryDate, true, "", parentName + " " + entryDate, "", "", "", "", "", "", "", "", "", "", "", "", ""]);
items.push([parentName + "#" + entryDate, true, "", parentName + " " + entryDate, "", "", "", "", "", "", "", "", "", "", "", "", "", ""]);
group.push(parentName + "#" + entryDate);
}
}
......
......@@ -5,6 +5,10 @@ import("Sql_lib");
import("system.db");
var id = vars.get("$field.APPOINTMENT_ID") //deletes appointmententries (+ the linked Objects) if an appointment has been made
var recommendationId = vars.get("$field.VISITRECOMMENDATION_ID");
db.updateData("VISITRECOMMENDATION", ["STATUS"], db.getColumnTypes("VISITRECOMMENDATION", ["STATUS"]), [""]
, "VISITRECOMMENDATIONID = '" + recommendationId + "'");
new SqlBuilder(SqlUtils.getSystemAlias()).whereIfSet("ASYS_CALENDARBACKEND.ELEMENTUID", id)
.deleteData();
......@@ -13,4 +17,5 @@ newWhereIfSet("AB_APPOINTMENTLINK.APPOINTMENT_ID", id)
.deleteData();
newWhereIfSet("VISITPLANENTRY.VISITPLANENTRYID", "$field.UID")
.deleteData();
\ No newline at end of file
.deleteData();
......@@ -50,7 +50,8 @@ else
}
var rowData = vars.get("$local.rowdata");
//logging.log("rowData: " + rowData["VISITRECOMMENDATION_ID.value"]);
//logging.log("field: " +vars.get("$field.VISITRECOMMENDATION_ID"));
var valuesEntry = [
rowData["UID.value"],
rowData["ENTRYDATE.value"],
......@@ -60,7 +61,8 @@ var valuesEntry = [
rowData["CONTACT_ID.value"],
visitPlanEmployeeWeekID,
rowData["STATUS.value"],
rowData["STATUS_APPOINTMENT.value"]
rowData["STATUS_APPOINTMENT.value"],
rowData["VISITRECOMMENDATION_ID.value"] || ""
];
var columnsEntry = [
......@@ -72,7 +74,8 @@ var columnsEntry = [
"CONTACT_ID",
"VISITPLANEMPLOYEEWEEK_ID",
"STATUS",
"STATUS_APPOINTMENT"
"STATUS_APPOINTMENT",
"VISITRECOMMENDATION_ID"
];
insertData.push(["VISITPLANENTRY", columnsEntry, null, valuesEntry])
......
......@@ -234,6 +234,9 @@
<title>City</title>
<groupable v="true" />
</entityField>
<entityField>
<name>STATUS</name>
</entityField>
</entityFields>
<recordContainers>
<jDitoRecordContainer>
......
......@@ -9,5 +9,6 @@ params["NoVisitPlanEmployeeWeek_param"] = true;
params["ComingFromRecommendation_param"] = true;
params["ContactId_param"] = vars.get("$field.CONTACT_PERSON_ID");
params["Entrydate_param"] = vars.get("$field.DUE_DATE");
params["VisitrecommendationId_param"] = vars.get("$field.UID");
neon.openContext("VisitPlanEntry", null, null, neon.OPERATINGSTATE_NEW, params);
\ No newline at end of file
......@@ -36,11 +36,12 @@ var recommendationSQLData = newSelect(
"ADDRESS.CITY", //9
"VISITRECOMMENDATION.USER_NEW", //10
"VISITRECOMMENDATION.CONTACT_PERSON_ID",//11
"VISITRECOMMENDATION.RESPONSIBLE" //12
"VISITRECOMMENDATION.RESPONSIBLE", //12
])
.from("VISITRECOMMENDATION")
.join("CONTACT", "coalesce(VISITRECOMMENDATION.CONTACT_PERSON_ID, VISITRECOMMENDATION.CONTACT_ID) = CONTACT.CONTACTID")
.leftJoin("ADDRESS", "CONTACT.ADDRESS_ID = ADDRESS.ADDRESSID")
.where("VISITRECOMMENDATION.STATUS is null")
var idValues = false;
......@@ -48,7 +49,7 @@ if (vars.exists("$local.idvalues") && vars.get("$local.idvalues"))
idValues = true;
if(idValues == true)
recommendationSQLData.where("VISITRECOMMENDATION.VISITRECOMMENDATIONID", vars.get("$local.idvalues"), SqlBuilder.IN())
recommendationSQLData.and("VISITRECOMMENDATION.VISITRECOMMENDATIONID", vars.get("$local.idvalues"), SqlBuilder.IN())
recommendationSQLData = recommendationSQLData.table();
......@@ -83,7 +84,29 @@ for( let i = 0; i < recommendationSQLData.length; i++)
tmpData[17] = ContactUtils.getFullTitleByContactId(recommendationSQLData[i][12], false); //RESPONSIBLE.displayvalue
tmpData[18] = recommendationSQLData[i][12]; //RESPONSIBLE.value
recommendationData.push(tmpData);
// if(recommendationSQLData[i][13] == "1")
// {
// var visitEntries = newSelect(["ORGANISATION_CONTACT_ID", "CONTACT_ID", "ENTRYDATE"]).from("VISITPLANENTRY").where("VISITPLANENTRY.VISITRECOMMENDATION_ID", tmpData[0]).arrayRow();
//
// var act = newSelect("ACTIVITY.ACTIVITYID")
// .from("ACTIVITY")
// .join("ACTIVITYLINK", "ACTIVITY.ACTIVITYID = ACTIVITYLINK.ACTIVITY_ID")
// .where("ACTIVITY.CATEGORY", "VISIT")
// .and("ACTIVITY.ENTRYDATE", visitEntries[2])
// .and("ACTIVITYLINK.OBJECT_ROWID", [visitEntries[1], visitEntries[0]])
// .cell();
//
// var entryWeek = datetime.toDate(visitEntries[2], "w");
// var currentWeek = datetime.toDate(vars.get("$sys.date"), "w")
// if(!act && (entryWeek < currentWeek))
// {
// recommendationData.push(tmpData);
// }
// }
// else
// recommendationData.push(tmpData);
recommendationData.push(tmpData);
}
//===========Visitfrequency============
......@@ -100,7 +123,7 @@ if(idValues == false)
activitySubQuery = newSelect("max(ENTRYDATE)")
.from("ACTIVITY")
.join("ACTIVITYLINK", "ACTIVITYID = ACTIVITY_ID")
.where("ACTIVITYLINK.OBJECT_ROWID = org.ORGANISATIONID")
.where("ACTIVITYLINK.OBJECT_ROWID = CONTACT.CONTACTID")
.and("ACTIVITY.CATEGORY", "VISIT")
var visitFrequencyData = newSelect(["''" //0
......@@ -111,7 +134,7 @@ if(idValues == false)
.leftJoin("AB_ATTRIBUTE", "AB_ATTRIBUTE.AB_ATTRIBUTEID = AB_ATTRIBUTERELATION.AB_ATTRIBUTE_ID")
.leftJoin("ORGANISATION", "ORGANISATION.ORGANISATIONID = CONTACT.ORGANISATION_ID")
.where("AB_ATTRIBUTE.AB_ATTRIBUTEID", $AttributeRegistry.visitPlanPointOfContact())
.toString() +
+
")" //2
,"ADDRESS.ADDRESS" //3
,"ADDRESS.COUNTRY" //4
......@@ -183,6 +206,14 @@ if(idValues == false)
tmpData[8] = KeywordUtils.getViewValue($KeywordRegistry.visitRecommendationPriority(), tmpData[6]) //PRIORITY.displayValue
tmpData[9] = dueDate; //DUE_DATE.value
var manualRec = newSelect("STATUS")
.from("VISITRECOMMENDATION")
.where("VISITRECOMMENDATION.CONTACT_ID", visitFrequencyData[i][1])
.or("VISITRECOMMENDATION.CONTACT_PERSON_ID", visitFrequencyData[i][1])
.cell()
if(manualRec == "VISITSTATUSREPORTCREATED ")
recommendationData.push(tmpData);
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment