Skip to content
Snippets Groups Projects
Commit cba97b14 authored by c.wimmer's avatar c.wimmer
Browse files

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

[Projekt: Crowd-Development / Besuch vor Ort][TicketNr.: 1066738][[aus Schmalz] Besuchsvorschlag anlegen]
parent 9a04938d
No related branches found
No related tags found
No related merge requests found
Showing
with 129 additions and 102 deletions
......@@ -15,4 +15,5 @@
<include relativeToChangelogFile="true" file="alter_CommrestrictionsEmployeeInvolved.xml"/>
<include relativeToChangelogFile="true" file="alter_VisitrecommendationpriorityUserNewResp.xml"/>
<include relativeToChangelogFile="true" file="insert_VisitFrequencyAttributeUsagePers.xml"/>
<include relativeToChangelogFile="true" file="insert_VisitPlanningAttribute.xml"/>
</databaseChangeLog>
<?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="f03c2c38-bf5d-411a-9b77-3050771d91f9">
<delete tableName="AB_ATTRIBUTE">
<where>AB_ATTRIBUTEID = ?</where>
<whereParams>
<param value="59377864-0745-4a18-8d7b-57a0491a8116" />
</whereParams>
</delete>
<insert tableName="AB_ATTRIBUTE">
<column name="AB_ATTRIBUTEID" value="59377864-0745-4a18-8d7b-57a0491a8116"/>
<column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/>
<column name="ATTRIBUTE_NAME" value="Visit Planning"/>
<column name="ATTRIBUTE_TYPE" value="GROUP"/>
</insert>
<insert tableName="AB_ATTRIBUTE">
<column name="AB_ATTRIBUTEID" value="e8770b60-160c-466e-af57-4f90bd6e02d7"/>
<column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/>
<column name="ATTRIBUTE_NAME" value="Maturity"/>
<column name="ATTRIBUTE_PARENT_ID" value="59377864-0745-4a18-8d7b-57a0491a8116"/>
<column name="ATTRIBUTE_TYPE" value="COMBO "/>
</insert>
<insert tableName="AB_ATTRIBUTE">
<column name="AB_ATTRIBUTEID" value="5dd9a89d-2357-4ca7-910c-4365fd338603"/>
<column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/>
<column name="ATTRIBUTE_NAME" value="2 Weeks"/>
<column name="ATTRIBUTE_PARENT_ID" value="e8770b60-160c-466e-af57-4f90bd6e02d7"/>
<column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/>
<column name="SORTING" valueNumeric="1"/>
</insert>
<insert tableName="AB_ATTRIBUTE">
<column name="AB_ATTRIBUTEID" value="b0eeed9b-38a5-44b9-8fdf-dd03493380b8"/>
<column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/>
<column name="ATTRIBUTE_NAME" value="1 Month"/>
<column name="ATTRIBUTE_PARENT_ID" value="e8770b60-160c-466e-af57-4f90bd6e02d7"/>
<column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/>
<column name="SORTING" valueNumeric="2"/>
</insert>
<insert tableName="AB_ATTRIBUTE">
<column name="AB_ATTRIBUTEID" value="e7ece5ea-f1f3-47de-b11a-479183e5e95a"/>
<column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/>
<column name="ATTRIBUTE_NAME" value="6 Months"/>
<column name="ATTRIBUTE_PARENT_ID" value="e8770b60-160c-466e-af57-4f90bd6e02d7"/>
<column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/>
<column name="SORTING" valueNumeric="3"/>
</insert>
<insert tableName="AB_ATTRIBUTE">
<column name="AB_ATTRIBUTEID" value="49dc2a73-a58a-45b7-95d3-ce2ff21326fd"/>
<column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/>
<column name="ATTRIBUTE_NAME" value="12 Months"/>
<column name="ATTRIBUTE_PARENT_ID" value="e8770b60-160c-466e-af57-4f90bd6e02d7"/>
<column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/>
<column name="SORTING" valueNumeric="4"/>
</insert>
<insert tableName="AB_ATTRIBUTEUSAGE">
<column name="AB_ATTRIBUTEUSAGEID" value="ace9e8ea-b586-4299-92ea-b12fce72e4d9"/>
<column name="AB_ATTRIBUTE_ID" value="e8770b60-160c-466e-af57-4f90bd6e02d7"/>
<column name="MAX_COUNT" valueNumeric="1"/>
<column name="OBJECT_TYPE" value="Person"/>
</insert>
</changeSet>
</databaseChangeLog>
......@@ -18,5 +18,5 @@
<include relativeToChangelogFile="true" file="basic/2020.2.0/changelog.xml"/>
<!--enable this only when you definetly want to overwrite the existing data with demo records:-->
<!--<include relativeToChangelogFile="true" file="basic/_demoData/changelog.xml" context="example"/>-->
<include relativeToChangelogFile="true" file="basic/_demoData/changelog.xml" context="example"/>
</databaseChangeLog>
\ No newline at end of file
......@@ -48,6 +48,7 @@
<outputFormat>dd.MM.yyyy</outputFormat>
<inputFormat>dd.MM.yyyy</inputFormat>
<mandatory v="true" />
<valueProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/entrydate/valueProcess.js</valueProcess>
</entityField>
<entityField>
<name>END_TIME</name>
......@@ -221,6 +222,10 @@
<name>#PROVIDER_AGGREGATES</name>
<useAggregates v="true" />
</entityProvider>
<entityParameter>
<name>Entrydate_param</name>
<expose v="true" />
</entityParameter>
</entityFields>
<recordContainers>
<jDitoRecordContainer>
......
import("system.logging");
import("system.neon");
import("system.result");
import("system.vars");
if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && (vars.get("$this.value") == null || vars.get("$this.value") == undefined))
result.string(vars.get("$param.Entrydate_param"));
\ No newline at end of file
......@@ -29,6 +29,8 @@
<documentation>%aditoprj%/entity/VisitRecommendation_entity/entityfields/contact_id/documentation.adoc</documentation>
<title>Organisation</title>
<consumer>OrganisationConsumer</consumer>
<linkedContext>Organisation</linkedContext>
<mandatory v="true" />
<stateProcess>%aditoprj%/entity/VisitRecommendation_entity/entityfields/contact_id/stateProcess.js</stateProcess>
<valueProcess>%aditoprj%/entity/VisitRecommendation_entity/entityfields/contact_id/valueProcess.js</valueProcess>
</entityField>
......@@ -40,10 +42,6 @@
<name>ORGANISATION_NAME</name>
<title>Organisation</title>
</entityField>
<entityField>
<name>ORGANISATION_POINT_OF_CONTACT</name>
<title>Organisation point Of Contact</title>
</entityField>
<entityField>
<name>ORGANISATION_ADDRESS</name>
<title>Address</title>
......@@ -76,16 +74,6 @@
<title>Info</title>
<contentType>LONG_TEXT</contentType>
</entityField>
<entityField>
<name>DATE_PLANNED</name>
<title>Date Planned</title>
<contentType>DATE</contentType>
<resolution>DAY</resolution>
</entityField>
<entityField>
<name>USER_PLANNED</name>
<title>Planned By</title>
</entityField>
<entityConsumer>
<name>KeywordVisitRecommendationPriority</name>
<documentation>%aditoprj%/entity/VisitRecommendation_entity/entityfields/keywordvisitrecommendationpriority/documentation.adoc</documentation>
......@@ -141,14 +129,11 @@
<children>
<entityActionField>
<name>NewVisitPlaneEntry</name>
<documentation>%aditoprj%/entity/VisitRecommendation_entity/entityfields/newentrygroup/children/newvisitplaneentry/documentation.adoc</documentation>
<title>New Weekplanentry</title>
<onActionProcess>%aditoprj%/entity/VisitRecommendation_entity/entityfields/newentrygroup/children/newvisitplaneentry/onActionProcess.js</onActionProcess>
<iconId>NEON:EXPORT</iconId>
<state>AUTO</state>
<stateProcess>%aditoprj%/entity/VisitRecommendation_entity/entityfields/newentrygroup/children/newvisitplaneentry/stateProcess.js</stateProcess>
<tooltip>Create New Weekplanentry</tooltip>
<tooltipProcess>%aditoprj%/entity/VisitRecommendation_entity/entityfields/newentrygroup/children/newvisitplaneentry/tooltipProcess.js</tooltipProcess>
</entityActionField>
</children>
</entityActionGroup>
......@@ -254,11 +239,6 @@
<isFilterable v="false" />
<isLookupFilter v="false" />
</jDitoRecordFieldMapping>
<jDitoRecordFieldMapping>
<name>ORGANISATION_POINT_OF_CONTACT.value</name>
<isFilterable v="false" />
<isLookupFilter v="false" />
</jDitoRecordFieldMapping>
<jDitoRecordFieldMapping>
<name>STREET.value</name>
<isFilterable v="true" />
......
Creates a new Weekplanentry
\ No newline at end of file
......@@ -8,5 +8,6 @@ params["OrganisationId_param"] = vars.get("$field.CONTACT_ID")
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");
neon.openContext("VisitPlanEntry", null, null, neon.OPERATINGSTATE_NEW, params);
\ No newline at end of file
import("system.translate");
import("system.result");
result.string(translate.text("Create New Weekplanentry"));
\ No newline at end of file
......@@ -21,26 +21,6 @@ import("Address_lib");
var recommendationData = [];
var tmpData = [];
var activitySubQuery = "";
//var conditionRecommendation = JditoFilterUtils.getSqlCondition(vars.get("$local.filter").filter, "VISITRECOMMENDATION", null, {
// "PRIORITY": "VISITRECOMMENDATION.PRIORITY",
// "PRIORITY_SOURCE" : "VISITRECOMMENDATION.SOURCE",
// "DUE_DATE" : "VISITRECOMMENDATION.DUE_DATE",
// "CONTACT_ID" : "VISITRECOMMENDATION.CONTACT_ID",
// "USER_NEW" : "VISITRECOMMENDATION.USER_NEW",
// "CONTACT_PERSON_ID" : "VISITRECOMMENDATION.CONTACT_PERSON_ID", //ToDo bei Filter nicht auf Firma einschränken
// "RESPONSIBLE" : "VISITRECOMMENDATION.RESPONSIBLE",
// "STREET" : "ADDRESS.ADDRESS",
// "ZIP" : "ADDRESS.ZIP",
// "CITY" : "ADDRESS.CITY",
// "COUNTRY" : "ADDRESS.COUNTRY"
//});
activitySubQuery = newSelect("max(ENTRYDATE)")
.from("ACTIVITY")
.join("ACTIVITYLINK", "ACTIVITYID = ACTIVITY_ID")
.where("ACTIVITYLINK.OBJECT_ROWID = org.ORGANISATIONID")
.and("ACTIVITY.CATEGORY", "VISIT")
var recommendationSQLData = newSelect(
[
......@@ -62,19 +42,13 @@ var recommendationSQLData = newSelect(
.join("CONTACT", "coalesce(VISITRECOMMENDATION.CONTACT_PERSON_ID, VISITRECOMMENDATION.CONTACT_ID) = CONTACT.CONTACTID")
.leftJoin("ADDRESS", "CONTACT.ADDRESS_ID = ADDRESS.ADDRESSID")
var entrydate = newSelect("min(ENTRYDATE)")
.from("VISITPLANENTRY")
.where("VISITPLANENTRY.STATUS", $KeywordRegistry.visitPlanEntryStatus$planned())
.or("VISITPLANENTRY.STATUS", $KeywordRegistry.visitPlanEntryStatus$Appointmentarranged())
.and("VISITPLANENTRY.entrydate", datetime.today(), SqlBuilder.GREATER())
.cell();
var idValues = false;
if (vars.exists("$local.idvalues") && vars.get("$local.idvalues"))
idValues = true;
if(idValues == true)
recommendationSQLData.and("VISITRECOMMENDATION.VISITRECOMMENDATIONID", vars.get("$local.idvalues"), SqlBuilder.IN())
recommendationSQLData.where("VISITRECOMMENDATION.VISITRECOMMENDATIONID", vars.get("$local.idvalues"), SqlBuilder.IN())
recommendationSQLData = recommendationSQLData.table();
......@@ -91,24 +65,23 @@ for( let i = 0; i < recommendationSQLData.length; i++)
tmpData[0] = recommendationSQLData[i][0]; //UID.value
tmpData[1] = ContactUtils.getFullTitleByContactId(recommendationSQLData[i][1]); //ORGANISATION_NAME.value
tmpData[2] = entrydate; //ORGANISATION_POINT_OF_CONTACT.value
tmpData[3] = recommendationSQLData[i][6]; //STREET.value
tmpData[4] = recommendationSQLData[i][7]; //COUNTRY.value
tmpData[5] = recommendationSQLData[i][8]; //ZIP.value
tmpData[6] = recommendationSQLData[i][9]; //CITY.value
tmpData[7] = prio; //PRIORITY.value
tmpData[8] = recommendationSQLData[i][4]; //PRIORITY_SOURCE.value
tmpData[9] = KeywordUtils.getViewValue($KeywordRegistry.visitRecommendationPriority(), prio) //PRIORITY.displayValue
tmpData[10] = recommendationSQLData[i][3]; //DUE_DATE.value
tmpData[11] = recommendationSQLData[i][5]; //INFO.value
tmpData[12] = recommendationSQLData[i][1]; //CONTACT_ID.value
tmpData[13] = KeywordUtils.getViewValue($KeywordRegistry.visitRecommendationPrioSource(), recommendationSQLData[i][4]) //PRIORITY_SOURCE.displayValue
tmpData[14] = ContactUtils.getFullTitleByContactId(recommendationSQLData[i][10], false); //USER_NEW.displayvalue
tmpData[15] = recommendationSQLData[i][10]; //USER_NEW.value
tmpData[16] = ContactUtils.getFullTitleByContactId(recommendationSQLData[i][11], false); //CONTACT_PERSON_ID.displayvalue
tmpData[17] = recommendationSQLData[i][11]; //CONTACT_PERSON_ID.value
tmpData[18] = ContactUtils.getFullTitleByContactId(recommendationSQLData[i][12], false); //RESPONSIBLE.displayvalue
tmpData[19] = recommendationSQLData[i][12]; //RESPONSIBLE.value
tmpData[2] = recommendationSQLData[i][6]; //STREET.value
tmpData[3] = recommendationSQLData[i][7]; //COUNTRY.value
tmpData[4] = recommendationSQLData[i][8]; //ZIP.value
tmpData[5] = recommendationSQLData[i][9]; //CITY.value
tmpData[6] = prio; //PRIORITY.value
tmpData[7] = recommendationSQLData[i][4]; //PRIORITY_SOURCE.value
tmpData[8] = KeywordUtils.getViewValue($KeywordRegistry.visitRecommendationPriority(), prio) //PRIORITY.displayValue
tmpData[9] = recommendationSQLData[i][3]; //DUE_DATE.value
tmpData[10] = recommendationSQLData[i][5]; //INFO.value
tmpData[11] = recommendationSQLData[i][1]; //CONTACT_ID.value
tmpData[12] = KeywordUtils.getViewValue($KeywordRegistry.visitRecommendationPrioSource(), recommendationSQLData[i][4]) //PRIORITY_SOURCE.displayValue
tmpData[13] = ContactUtils.getFullTitleByContactId(recommendationSQLData[i][10], false); //USER_NEW.displayvalue
tmpData[14] = recommendationSQLData[i][10]; //USER_NEW.value
tmpData[15] = ContactUtils.getFullTitleByContactId(recommendationSQLData[i][11], false); //CONTACT_PERSON_ID.displayvalue
tmpData[16] = recommendationSQLData[i][11]; //CONTACT_PERSON_ID.value
tmpData[17] = ContactUtils.getFullTitleByContactId(recommendationSQLData[i][12], false); //RESPONSIBLE.displayvalue
tmpData[18] = recommendationSQLData[i][12]; //RESPONSIBLE.value
recommendationData.push(tmpData);
}
......@@ -123,6 +96,13 @@ var yearly = parseInt(datetime.ONE_DAY * 365);
//recommended Organisations containing the attribute Visit Frequency
if(idValues == false)
{
activitySubQuery = newSelect("max(ENTRYDATE)")
.from("ACTIVITY")
.join("ACTIVITYLINK", "ACTIVITYID = ACTIVITY_ID")
.where("ACTIVITYLINK.OBJECT_ROWID = org.ORGANISATIONID")
.and("ACTIVITY.CATEGORY", "VISIT")
var visitFrequencyData = newSelect(["''" //0
, "CONTACT.CONTACTID" //1
, "(" + newSelect("CONTACT.CONTACTID")
......@@ -139,12 +119,7 @@ if(idValues == false)
,"ADDRESS.CITY" //6
, "visitPlanFrequency.ID_VALUE"//7
, activitySubQuery //8
, newSelect("min(ENTRYDATE)") //9
.from("VISITPLANENTRY")
.where("CONTACT.CONTACTID", "VISITPLANENTRY.ORGANISATION_CONTACT_ID")
.and(newWhere("VISITPLANENTRY.STATUS", $KeywordRegistry.visitPlanEntryStatus$planned())
.or("VISITPLANENTRY.STATUS", $KeywordRegistry.visitPlanEntryStatus$Appointmentarranged()))
, "org.NAME"])//10
, "org.NAME"])//9
.from("CONTACT")
.join("ORGANISATION", "CONTACT.ORGANISATION_ID = org.ORGANISATIONID", "org")
.leftJoin("PERSON", "PERSON.PERSONID = CONTACT.PERSON_ID")
......@@ -157,25 +132,24 @@ if(idValues == false)
{
tmpData = [];
tmpData[0] = visitFrequencyData[i][1]; //UID.value
tmpData[1] = visitFrequencyData[i][10]; //ORGANISATION_NAME.value
tmpData[2] = visitFrequencyData[i][9]; //ORGANISATION_POINT_OF_CONTACT.value
tmpData[3] = visitFrequencyData[i][3]; //STREET.value
tmpData[4] = visitFrequencyData[i][4]; //COUNTRY.value
tmpData[5] = visitFrequencyData[i][5]; //ZIP.value
tmpData[6] = visitFrequencyData[i][6]; //CITY.value
tmpData[7] = ""; //PRIORITY.value
tmpData[8] = visitFrequencyData[i][7]; //PRIORITY_SOURCE.value
tmpData[9] = ""; //PRIORITY.displayValue
tmpData[10] = ""; //DUE_DATE.value
tmpData[11] = ""; //INFO.value
tmpData[12] = visitFrequencyData[i][1]; //CONTACT_ID.value
tmpData[13] = KeywordUtils.getViewValue($KeywordRegistry.visitRecommendationPrioSource(), visitFrequencyData[i][7]); //PRIORITY_SOURCE.displayValue
tmpData[14] = ""; //USER_NEW.displayValue
tmpData[15] = ""; //USER_NEW.value
tmpData[16] = ContactUtils.getFullTitleByContactId(visitFrequencyData[i][1], false); //CONTACT_PERSON_ID.displayValue
tmpData[17] = ""; //CONTACT_PERSON_ID.value
tmpData[18] = ""; //RESPONSIBLE.displayValue
tmpData[19] = ""; //RESPONSIBLE.value
tmpData[1] = visitFrequencyData[i][9]; //ORGANISATION_NAME.value
tmpData[2] = visitFrequencyData[i][3]; //STREET.value
tmpData[3] = visitFrequencyData[i][4]; //COUNTRY.value
tmpData[4] = visitFrequencyData[i][5]; //ZIP.value
tmpData[5] = visitFrequencyData[i][6]; //CITY.value
tmpData[6] = ""; //PRIORITY.value
tmpData[7] = visitFrequencyData[i][7]; //PRIORITY_SOURCE.value
tmpData[8] = ""; //PRIORITY.displayValue
tmpData[9] = ""; //DUE_DATE.value
tmpData[10] = ""; //INFO.value
tmpData[11] = visitFrequencyData[i][1]; //CONTACT_ID.value
tmpData[12] = KeywordUtils.getViewValue($KeywordRegistry.visitRecommendationPrioSource(), visitFrequencyData[i][7]); //PRIORITY_SOURCE.displayValue
tmpData[13] = ""; //USER_NEW.displayValue
tmpData[14] = ""; //USER_NEW.value
tmpData[15] = ContactUtils.getFullTitleByContactId(visitFrequencyData[i][1], false); //CONTACT_PERSON_ID.displayValue
tmpData[16] = ""; //CONTACT_PERSON_ID.value
tmpData[17] = ""; //RESPONSIBLE.displayValue
tmpData[18] = ""; //RESPONSIBLE.value
var dueDate = "";
var lastVisitDate = "";
......@@ -204,9 +178,9 @@ if(idValues == false)
break;
}
}
tmpData[7] = getPrioByDueDate(dueDate); //PRIORITY.value
tmpData[9] = KeywordUtils.getViewValue($KeywordRegistry.visitRecommendationPrioSource(), tmpData[7]) //PRIORITY.displayValue
tmpData[10] = dueDate; //DUE_DATE.value
tmpData[6] = getPrioByDueDate(dueDate); //PRIORITY.value
tmpData[8] = KeywordUtils.getViewValue($KeywordRegistry.visitRecommendationPrioSource(), tmpData[7]) //PRIORITY.displayValue
tmpData[9] = dueDate; //DUE_DATE.value
recommendationData.push(tmpData);
}
......@@ -217,7 +191,7 @@ if(idValues == false)
var filter = vars.get("$local.filter");
//TODO: this is a workaround that filters the records manually, it should be possible to filter the users with a tools.* method
var filterFields = ["", "", "", "STREET", "COUNTRY" , "ZIP", "CITY", "PRIORITY", "PRIORITY_SOURCE", "", "DUE_DATE", "INFO", "CONTACT_ID"
var filterFields = ["", "", "STREET", "COUNTRY" , "ZIP", "CITY", "PRIORITY", "PRIORITY_SOURCE", "", "DUE_DATE", "INFO", "CONTACT_ID"
, "", "", "USER_NEW", "", "CONTACT_PERSON_ID", "", "RESPONSIBLE"];
var filterFns = {
"ROLE_FILTER" : function (pRecordVal, pFilterVal, pOperator)
......
......@@ -12,6 +12,7 @@
<treeTableViewTemplate>
<name>EntriesTreeTable</name>
<nodeExpandedField></nodeExpandedField>
<hideActions v="true" />
<hideContentSearch v="false" />
<entityField>#ENTITY</entityField>
<defaultGroupFields>
......
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