Skip to content
Snippets Groups Projects
Commit 68d9e1eb authored by Maximilian Schröger's avatar Maximilian Schröger
Browse files

validierungen, liquibase example

parent 3a7fe3bd
No related branches found
No related tags found
No related merge requests found
Showing
with 161 additions and 7 deletions
......@@ -12,6 +12,7 @@
<node name="Org_context" kind="10077" />
<node name="Pers_context" kind="10077" />
<node name="History_context" kind="10077" />
<node name="Contract_context" kind="10077" />
<node name="INTERNAL_ADMINISTRATOR" kind="159" />
</node>
</node>
......
......@@ -12,20 +12,26 @@
<name>CONTRACTCODE</name>
<tableName>CONTRACT</tableName>
<columnName>CONTRACTCODE</columnName>
<caption>Vertragsnummer</caption>
</entityField>
<entityField>
<name>CONTRACTDUE</name>
<tableName>CONTRACT</tableName>
<columnName>CONTRACTDUE</columnName>
<caption>nächste Fälligkeit</caption>
<contentType>DATE</contentType>
<resolution>DAY</resolution>
<onValidation>%aditoprj%/entity/Contract_entity/entityfields/contractdue/onValidation.js</onValidation>
</entityField>
<entityField>
<name>CONTRACTEND</name>
<tableName>CONTRACT</tableName>
<columnName>CONTRACTEND</columnName>
<caption>Vertragsende</caption>
<contentType>DATE</contentType>
<resolution>DAY</resolution>
<onValidation>%aditoprj%/entity/Contract_entity/entityfields/contractend/onValidation.js</onValidation>
<onValueChange>%aditoprj%/entity/Contract_entity/entityfields/contractend/onValueChange.js</onValueChange>
</entityField>
<entityField>
<name>CONTRACTID</name>
......@@ -36,19 +42,23 @@
<name>CONTRACTSTART</name>
<tableName>CONTRACT</tableName>
<columnName>CONTRACTSTART</columnName>
<caption>Vertragsbeginn</caption>
<contentType>DATE</contentType>
<resolution>DAY</resolution>
<onValidation>%aditoprj%/entity/Contract_entity/entityfields/contractstart/onValidation.js</onValidation>
</entityField>
<entityField>
<name>CONTRACTSTATUS</name>
<tableName>CONTRACT</tableName>
<columnName>CONTRACTSTATUS</columnName>
<caption>Status</caption>
<possibleItemsProcess>%aditoprj%/entity/Contract_entity/entityfields/contractstatus/possibleItemsProcess.js</possibleItemsProcess>
</entityField>
<entityField>
<name>CONTRACTTYPE</name>
<tableName>CONTRACT</tableName>
<columnName>CONTRACTTYPE</columnName>
<caption>Vertragsart</caption>
<possibleItemsProcess>%aditoprj%/entity/Contract_entity/entityfields/contracttype/possibleItemsProcess.js</possibleItemsProcess>
</entityField>
<entityField>
......@@ -71,6 +81,7 @@
<name>PAYMENT</name>
<tableName>CONTRACT</tableName>
<columnName>PAYMENT</columnName>
<caption>Zahlweise</caption>
<mandatory v="true" />
<possibleItemsProcess>%aditoprj%/entity/Contract_entity/entityfields/payment/possibleItemsProcess.js</possibleItemsProcess>
</entityField>
......@@ -78,15 +89,19 @@
<name>RELATION_ID</name>
<tableName>CONTRACT</tableName>
<columnName>RELATION_ID</columnName>
<caption>Person / Firma</caption>
<linkedContextProcess>%aditoprj%/entity/Contract_entity/entityfields/relation_id/linkedContextProcess.js</linkedContextProcess>
<mandatory v="true" />
<outgoingField></outgoingField>
<possibleItemsProcess>%aditoprj%/entity/Contract_entity/entityfields/relation_id/possibleItemsProcess.js</possibleItemsProcess>
<outgoingField>ContractOrg_dfo</outgoingField>
<valueProcess>%aditoprj%/entity/Contract_entity/entityfields/relation_id/valueProcess.js</valueProcess>
<valueMappingProcess>%aditoprj%/entity/Contract_entity/entityfields/relation_id/valueMappingProcess.js</valueMappingProcess>
<fieldIdProcess>%aditoprj%/entity/Contract_entity/entityfields/relation_id/fieldIdProcess.js</fieldIdProcess>
</entityField>
<entityField>
<name>REMARK</name>
<tableName>CONTRACT</tableName>
<columnName>REMARK</columnName>
<caption>Beschreibung</caption>
<contentType>LONG_TEXT</contentType>
</entityField>
<entityField>
......@@ -159,6 +174,15 @@
</entityParameter>
</children>
</entityOutgoingField>
<entityOutgoingField>
<name>ContractOrg_dfo</name>
<fieldType>DEPENDENCY_OUT</fieldType>
<dependency>
<name>dependency</name>
<entityName>Org_entity</entityName>
<fieldName>ContractOrg_dfi</fieldName>
</dependency>
</entityOutgoingField>
</entityFields>
<linkInformation>
<linkInformation>
......
import("system.result");
import("system.translate");
import("system.vars");
import("Date_lib");
var dateUtils = new DateUtils();
var cDue = vars.get("$local.value");
if (dateUtils.validateBeginnBeforeEnd(vars.get("$field.CONTRACTSTART"), cDue) === false || dateUtils.validateBeginnBeforeEnd(cDue, vars.get("$field.CONTRACTEND")) === false) {
result.string(translate.text("Nächste Fälligkeit muss nach Vertragsbeginn und vor Vertragsende liegen!"));
}
import("system.logging");
import("system.neon");
import("system.result");
import("system.translate");
import("system.vars");
import("Date_lib");
logging.log("###END_onValidation");
var dateUtils = new DateUtils();
var cEnd = vars.get("$local.value");
var cDue = vars.get("$field.CONTRACTDUE");
if (cDue > cEnd && cDue != "")
neon.setFieldValue("$field.CONTRACTDUE", cEnd);
if (dateUtils.validateBeginnBeforeEnd(vars.get("$field.CONTRACTSTART"), cEnd) === false)
result.string(translate.text("Das Ende-Datum muss nach dem Beginn-Datum liegen"));
\ No newline at end of file
import("system.logging");
import("system.neon");
import("system.result");
import("system.translate");
import("system.vars");
import("Date_lib");
logging.log("###START_validation");
var dateUtils = new DateUtils();
var cStart = vars.get("$local.value");
var cDue = vars.get("$field.CONTRACTDUE");
if (cDue < cStart && cDue != "")
neon.setFieldValue("$field.CONTRACTDUE", cStart);
if (dateUtils.validateBeginnBeforeEnd(cStart, vars.get("$field.CONTRACTEND")) === false)
result.string(translate.text("Das Ende-Datum muss nach dem Beginn-Datum liegen"));
\ No newline at end of file
import("system.vars");
import("system.db");
import("system.result");
import("system.neon");
result.string (vars.get("$this.value"));
\ No newline at end of file
import("system.logging");
import("system.vars");
import("system.result");
import("system.neon");
var relid = vars.getString("$this.value");
if(vars.exists("$image.lookup_orgname") && vars.get("$image.lookup_orgname") != '')
result.string("Org_context");
else if((relid == null || relid.trim() == "0")
&& (vars.get("$sys.operatingstate") != neon.OPERATINGSTATE_NEW))
result.string(null);
else
result.string("Org_context");
......@@ -6,4 +6,4 @@ if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW)
{
if(vars.exists("$param.RelId_param") && vars.get("$param.RelId_param") != null)
result.string(vars.getString("$param.RelId_param"));
}
\ No newline at end of file
}
......@@ -254,6 +254,18 @@
</entityParameter>
</children>
</entityOutgoingField>
<entityIncomingField>
<name>ContractOrg_dfi</name>
<fieldType>DEPENDENCY_IN</fieldType>
<dependencies>
<entityDependency>
<name>0bcad8ff-3b4e-439f-ac30-464c052c9525</name>
<entityName>Contract_entity</entityName>
<fieldName>ContractOrg_dfo</fieldName>
<isOutgoing v="false" />
</entityDependency>
</dependencies>
</entityIncomingField>
</entityFields>
<linkInformation>
<linkInformation>
......
......@@ -11,6 +11,7 @@
<cardViewTemplate>
<name>ContractHeader_template</name>
<iconField>IMAGE</iconField>
<titleField>CONTRACTCODE_DISPLAY_fieldGroup</titleField>
<descriptionField>RELATION_ID</descriptionField>
<entityField>#ENTITY</entityField>
</cardViewTemplate>
......@@ -19,10 +20,6 @@
<showDrawer v="true" />
<entityField>#ENTITY</entityField>
<fields>
<entityFieldLink>
<name>6afd1b0d-4d73-47a0-a0a6-58dac448c783</name>
<entityField>CONTRACTTYPE</entityField>
</entityFieldLink>
<entityFieldLink>
<name>9101eee8-57b1-4bcf-a271-2501b7a3b842</name>
<entityField>CONTRACTSTART</entityField>
......
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
<changeSet author="m.schroeger" id="c7ea5e6e-aff2-4cf5-95f1-f5ca1b350dd0">
<insert tableName="CONTRACT">
<column name="CONTRACTID" value="384c9d31-9923-4e6a-8a7f-2d2890470b70"/>
<column name="USER_NEW" value="Martin"/>
<column name="DATE_NEW" valueDate="2018-10-05T03:34:29"/>
<column name="RELATION_ID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/>
<column name="CONTRACTCODE" value="42154311"/>
<column name="PAYMENT" valueNumeric="2"/>
<column name="CONTRACTTYPE" valueNumeric="0"/>
<column name="CONTRACTSTATUS" valueNumeric="1"/>
<column name="CONTRACTEND" valueDate="2019-09-30T00:00:00"/>
<column name="CONTRACTSTART" valueDate="2018-10-01T00:00:00"/>
<column name="CONTRACTDUE" valueDate="2019-01-01T00:00:00"/>
</insert>
<rollback>
<delete tableName="CONTRACT">
<where>CONTRACTID = ?</where>
<whereParams>
<param value="384c9d31-9923-4e6a-8a7f-2d2890470b70"/>
</whereParams>
</delete>
</rollback>
</changeSet>
</databaseChangeLog>
\ No newline at end of file
......@@ -15,4 +15,5 @@
<include file="data/example_org/ORG_gfk.xml"/>
<include file="data/example_pers/PERS_pfiffig.xml"/>
<include file="data/example_pers/PERS_sommer.xml"/>
<include file="data/example_contract/CONTRACT_42154311.xml"/>
</databaseChangeLog>
<?xml version="1.0" encoding="UTF-8"?>
<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.7" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.1.7">
<name>Date_lib</name>
<majorModelMode>DISTRIBUTED</majorModelMode>
<process>%aditoprj%/process/Date_lib/process.js</process>
</process>
/**
* provides methods for interactions with dates
*/
function DateUtils(){
/**
* Validates two date inputs (beginning should always be before the end!)
*
* @param pStart {Number}
* @param pEnd {Number}
*
* @result {Boolean|null} Boolean if it was able to check smth or null if the input values were not valid
*/
this.validateBeginnBeforeEnd = function(pStart, pEnd) {
if (pStart == "" || pStart == null || pEnd == "" || pEnd == null) return null
return pStart <= pEnd;
}
}
\ No newline at end of file
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