diff --git a/entity/District_entity/District_entity.aod b/entity/District_entity/District_entity.aod
index f625fd4d882411987228728cd02a98a17c7c8715..a469cee1fb639cec9b8d3f561baf78477d8a45df 100644
--- a/entity/District_entity/District_entity.aod
+++ b/entity/District_entity/District_entity.aod
@@ -6,6 +6,7 @@
   <icon>VAADIN:GLOBE</icon>
   <title>District definition</title>
   <contentTitleProcess>%aditoprj%/entity/District_entity/contentTitleProcess.js</contentTitleProcess>
+  <iconIdProcess>%aditoprj%/entity/District_entity/iconIdProcess.js</iconIdProcess>
   <titlePlural></titlePlural>
   <recordContainer>db</recordContainer>
   <entityFields>
@@ -15,14 +16,12 @@
     <entityField>
       <name>DISTRICT_NAME</name>
       <title>Name</title>
-      <groupable v="true" />
       <mandatory v="true" />
     </entityField>
     <entityField>
       <name>DISTRICT_NUMBER</name>
       <title>{$DISTRICT_NUMBER}</title>
       <contentType>TEXT</contentType>
-      <groupable v="true" />
       <valueProcess>%aditoprj%/entity/District_entity/entityfields/district_number/valueProcess.js</valueProcess>
       <displayValueProcess>%aditoprj%/entity/District_entity/entityfields/district_number/displayValueProcess.js</displayValueProcess>
       <onValidation>%aditoprj%/entity/District_entity/entityfields/district_number/onValidation.js</onValidation>
@@ -38,14 +37,16 @@
     <entityField>
       <name>DISTRICT_STATUS</name>
       <title>Status</title>
-      <groupable v="true" />
+      <contentType>BOOLEAN</contentType>
       <mandatory v="true" />
       <dropDownProcess>%aditoprj%/entity/District_entity/entityfields/district_status/dropDownProcess.js</dropDownProcess>
       <selectionMode>SINGLE</selectionMode>
+      <valueProcess>%aditoprj%/entity/District_entity/entityfields/district_status/valueProcess.js</valueProcess>
     </entityField>
     <entityField>
       <name>PARENTDISTRICT_DISTRICTID</name>
       <title>{$DISTRICT_PARENT_DISTRICT}</title>
+      <consumer>ParentDistricts</consumer>
       <displayValueProcess>%aditoprj%/entity/District_entity/entityfields/parentdistrict_districtid/displayValueProcess.js</displayValueProcess>
       <onValueChangeTypes>
         <element>MASK</element>
@@ -62,20 +63,17 @@
     <entityField>
       <name>customerCounting</name>
       <title>Customer counting</title>
-      <groupable v="true" />
       <valueProcess>%aditoprj%/entity/District_entity/entityfields/customercounting/valueProcess.js</valueProcess>
     </entityField>
     <entityField>
       <name>totalTurnover</name>
       <title>{$DISTRICT_TOTAL_TURNOVER}</title>
-      <groupable v="true" />
       <valueProcess>%aditoprj%/entity/District_entity/entityfields/totalturnover/valueProcess.js</valueProcess>
     </entityField>
     <entityField>
       <name>ISO3</name>
       <title>Language</title>
       <consumer>Languages</consumer>
-      <groupable v="true" />
       <displayValueProcess>%aditoprj%/entity/District_entity/entityfields/iso3/displayValueProcess.js</displayValueProcess>
     </entityField>
     <entityProvider>
@@ -91,6 +89,12 @@
           <isConsumer v="false" />
         </entityDependency>
       </dependencies>
+      <children>
+        <entityParameter>
+          <name>ExcludedDistrictIds_param</name>
+          <expose v="false" />
+        </entityParameter>
+      </children>
     </entityProvider>
     <entityConsumer>
       <name>Languages</name>
@@ -128,7 +132,6 @@
     </entityField>
     <entityField>
       <name>DATE_EDIT</name>
-      <groupable v="false" />
       <valueProcess>%aditoprj%/entity/District_entity/entityfields/date_edit/valueProcess.js</valueProcess>
     </entityField>
     <entityConsumer>
@@ -206,6 +209,42 @@
       <name>#PROVIDER_AGGREGATES</name>
       <useAggregates v="true" />
     </entityProvider>
+    <entityConsumer>
+      <name>ParentDistricts</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>#ENTITY</entityName>
+        <fieldName>ValidParentDistricts</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ExcludedDistrictIds_param</name>
+          <valueProcess>%aditoprj%/entity/District_entity/entityfields/parentdistricts/children/excludeddistrictids_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityProvider>
+      <name>ValidParentDistricts</name>
+      <documentation>%aditoprj%/entity/District_entity/entityfields/validparentdistricts/documentation.adoc</documentation>
+      <dependencies>
+        <entityDependency>
+          <name>8b0738a4-e4cd-4f9e-8df1-f499046c81bf</name>
+          <entityName>District_entity</entityName>
+          <fieldName>ParentDistricts</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
+      <children>
+        <entityParameter>
+          <name>DistrictsByContactId_param</name>
+          <expose v="false" />
+        </entityParameter>
+      </children>
+    </entityProvider>
+    <entityParameter>
+      <name>ExcludedDistrictIds_param</name>
+      <expose v="true" />
+    </entityParameter>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
@@ -229,78 +268,86 @@
         <dbRecordFieldMapping>
           <name>DATE_EDIT.value</name>
           <recordfield>DISTRICT.DATE_EDIT</recordfield>
-          <isLookupFilter v="true" />
+          <isLookupFilter v="false" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>DATE_NEW.value</name>
           <recordfield>DISTRICT.DATE_NEW</recordfield>
-          <isLookupFilter v="true" />
+          <isLookupFilter v="false" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>DISTRICT_FILTER.value</name>
           <recordfield>DISTRICT.DISTRICT_FILTER</recordfield>
-          <isLookupFilter v="true" />
+          <isFilterable v="false" />
+          <isLookupFilter v="false" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>DISTRICT_INFO.value</name>
           <recordfield>DISTRICT.DISTRICT_INFO</recordfield>
-          <isLookupFilter v="true" />
+          <isFilterable v="true" />
+          <isLookupFilter v="false" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>DISTRICT_NAME.value</name>
           <recordfield>DISTRICT.DISTRICT_NAME</recordfield>
+          <isFilterable v="true" />
           <isLookupFilter v="true" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>DISTRICT_NUMBER.value</name>
           <recordfield>DISTRICT.DISTRICT_NUMBER</recordfield>
+          <isFilterable v="true" />
           <isLookupFilter v="true" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>DISTRICT_STATUS.value</name>
           <recordfield>DISTRICT.DISTRICT_STATUS</recordfield>
-          <isLookupFilter v="true" />
+          <isFilterable v="true" />
+          <isLookupFilter v="false" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>DISTRICTID.value</name>
           <recordfield>DISTRICT.DISTRICTID</recordfield>
-          <isLookupFilter v="true" />
+          <isLookupFilter v="false" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>ISO3.value</name>
           <recordfield>DISTRICT.ISO3</recordfield>
-          <isLookupFilter v="true" />
+          <isFilterable v="true" />
+          <isLookupFilter v="false" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>PARENTDISTRICT_DISTRICTID.value</name>
           <recordfield>DISTRICT.PARENTDISTRICT_DISTRICTID</recordfield>
-          <isLookupFilter v="true" />
+          <isFilterable v="true" />
+          <isLookupFilter v="false" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>USER_EDIT.value</name>
           <recordfield>DISTRICT.USER_EDIT</recordfield>
-          <isLookupFilter v="true" />
+          <isLookupFilter v="false" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>USER_NEW.value</name>
           <recordfield>DISTRICT.USER_NEW</recordfield>
-          <isLookupFilter v="true" />
+          <isFilterable v="false" />
+          <isLookupFilter v="false" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>appliedFilter.value</name>
-          <isLookupFilter v="true" />
+          <isLookupFilter v="false" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>customerCounting.value</name>
-          <isLookupFilter v="true" />
+          <isLookupFilter v="false" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>parentFilter.value</name>
-          <isLookupFilter v="true" />
+          <isLookupFilter v="false" />
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>totalTurnover.value</name>
-          <isLookupFilter v="true" />
+          <isLookupFilter v="false" />
         </dbRecordFieldMapping>
       </recordFieldMappings>
     </dbRecordContainer>
diff --git a/entity/District_entity/entityfields/district_status/valueProcess.js b/entity/District_entity/entityfields/district_status/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..06be75dc391630efc92dffbff413d7b9fa2100ab
--- /dev/null
+++ b/entity/District_entity/entityfields/district_status/valueProcess.js
@@ -0,0 +1,7 @@
+import("system.util");
+import("system.result");
+import("system.neon");
+import("system.vars");
+
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == null)
+    result.string("0");
\ No newline at end of file
diff --git a/entity/District_entity/entityfields/parentdistrict/children/excludeddistrictids_param/valueProcess.js b/entity/District_entity/entityfields/parentdistrict/children/excludeddistrictids_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..bbd0a18395ba576ce8b33e4064dc211a92becd04
--- /dev/null
+++ b/entity/District_entity/entityfields/parentdistrict/children/excludeddistrictids_param/valueProcess.js
@@ -0,0 +1,6 @@
+import("system.vars");
+import("system.result");
+
+var uid = vars.get("$field.DISTRICTID");
+var res = JSON.stringify([uid]);
+result.string(res);
\ No newline at end of file
diff --git a/entity/District_entity/entityfields/parentdistrict_districtid/displayValueProcess.js b/entity/District_entity/entityfields/parentdistrict_districtid/displayValueProcess.js
index a90a11a8f75217e38b2801567c29527b5b3b8191..07a7c92ba405f856fdf699a7dbfa94a512025ac7 100644
--- a/entity/District_entity/entityfields/parentdistrict_districtid/displayValueProcess.js
+++ b/entity/District_entity/entityfields/parentdistrict_districtid/displayValueProcess.js
@@ -1,8 +1,8 @@
+import("Context_lib");
 import("system.vars");
 import("system.result");
-import("Sql_lib");
 
 var parentDistrictId = vars.get("$field.PARENTDISTRICT_DISTRICTID");
-var parentDistrictName = newSelect("DISTRICT.DISTRICT_NAME").from("DISTRICT").where("DISTRICT.DISTRICTID", parentDistrictId).cell();
+var parentDistrictName = ContextUtils.loadContentTitle("District_entity", parentDistrictId);
 
 result.string(parentDistrictName);
\ No newline at end of file
diff --git a/entity/District_entity/entityfields/parentdistricts/children/excludeddistrictids_param/valueProcess.js b/entity/District_entity/entityfields/parentdistricts/children/excludeddistrictids_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..bbd0a18395ba576ce8b33e4064dc211a92becd04
--- /dev/null
+++ b/entity/District_entity/entityfields/parentdistricts/children/excludeddistrictids_param/valueProcess.js
@@ -0,0 +1,6 @@
+import("system.vars");
+import("system.result");
+
+var uid = vars.get("$field.DISTRICTID");
+var res = JSON.stringify([uid]);
+result.string(res);
\ No newline at end of file
diff --git a/entity/District_entity/entityfields/totalturnover/valueProcess.js b/entity/District_entity/entityfields/totalturnover/valueProcess.js
index d63350d1cb18c577a222613ef77f6dd22f8d36fa..a73247c1abfa2741041c920fcfbfacf2ee0107c2 100644
--- a/entity/District_entity/entityfields/totalturnover/valueProcess.js
+++ b/entity/District_entity/entityfields/totalturnover/valueProcess.js
@@ -1,27 +1,35 @@
+import("system.text");
+import("Sql_lib");
+import("system.SQLTYPES");
+import("Date_lib");
 import("system.logging");
 import("system.vars");
 import("system.result");
 import("system.entities");
 import("system.neon");
+import("system.db");
 
+var districtTurnover;
 var appliedFilter = vars.get("$field.DISTRICT_FILTER");
-var conf, rows, districtTurnover = 0;
-
 if (appliedFilter)
 {
     appliedFilter = JSON.parse(appliedFilter).filter;
     appliedFilter = JSON.stringify(appliedFilter);
-    
-    conf = entities.createConfigForLoadingRows()
-                        .entity("Organisation_entity")
-                        .fields(["TurnoverCurrentYear"])
-                        .filter(appliedFilter);
-                                
-    rows = entities.getRows(conf);
-    
-    for (i = 0; i < rows.length; i++) {
-        appliedFilter += Number(rows[i].TurnoverCurrentYear);
-    }
+
+    districtTurnover = newSelect("sum(NET)")
+        .from("SALESORDER")
+        .join("CONTACT", "CONTACT.CONTACTID = SALESORDER.CONTACT_ID")
+        .join("ORGANISATION", "CONTACT.ORGANISATION_ID = ORGANISATION.ORGANISATIONID")
+        .leftJoin("ADDRESS", "ADDRESS.ADDRESSID = CONTACT.ADDRESS_ID")
+        .leftJoin("CLASSIFICATIONSTORAGE", "CLASSIFICATIONSTORAGE.OBJECT_ROWID = CONTACT.CONTACTID")
+        .where("SALESORDER.SALESORDERDATE", DateUtils.getCurrentYear(), SqlBuilder.YEAR_EQUALS(), SQLTYPES.INTEGER)
+        .and(db.toFilterCondition(appliedFilter, "Organisation_entity"))
+        .cell();
 }
 
+if (districtTurnover)
+    text.formatDouble(districtTurnover, "#,##0.00");
+else
+    districtTurnover = "0";
+
 result.string(districtTurnover);
\ No newline at end of file
diff --git a/entity/District_entity/entityfields/validparentdistricts/documentation.adoc b/entity/District_entity/entityfields/validparentdistricts/documentation.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..6882425fd29087db57588d866d85d4d10963d838
--- /dev/null
+++ b/entity/District_entity/entityfields/validparentdistricts/documentation.adoc
@@ -0,0 +1 @@
+Provides a list of districts that can be set as parent district for one specific district entry.
\ No newline at end of file
diff --git a/entity/District_entity/iconIdProcess.js b/entity/District_entity/iconIdProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..c0e2f3aee79df633566818ff042f326b00f4ecdd
--- /dev/null
+++ b/entity/District_entity/iconIdProcess.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string("TEXT:" + (vars.getString("$field.DISTRICT_NAME")).trim());
\ No newline at end of file
diff --git a/entity/District_entity/recordcontainers/db/cacheKeyProcess.js b/entity/District_entity/recordcontainers/db/cacheKeyProcess.js
index e977dd02e2e0331cc9c24b5a6fda165cdb8746d5..d5c69b8e25a7c6b1288aa4eaad221a6621ed5860 100644
--- a/entity/District_entity/recordcontainers/db/cacheKeyProcess.js
+++ b/entity/District_entity/recordcontainers/db/cacheKeyProcess.js
@@ -1,9 +1,5 @@
 import("CachedRecordContainer_lib");
 import("system.result");
 
-
-var cacheKey;
-
-cacheKey = CachedRecordContainerUtils.getCommonKey("$param.DistrictsByContactId_param");
-
+var cacheKey = CachedRecordContainerUtils.getCommonKey("$param.DistrictsByContactId_param", "$param.ExcludedDistrictIds_param");
 result.string(cacheKey);
\ No newline at end of file
diff --git a/entity/District_entity/recordcontainers/db/conditionProcess.js b/entity/District_entity/recordcontainers/db/conditionProcess.js
index 481f5dbd2cf800ab317abe600a9717341ae21559..550838ae029373b7934da4637623f0dcfc9505c8 100644
--- a/entity/District_entity/recordcontainers/db/conditionProcess.js
+++ b/entity/District_entity/recordcontainers/db/conditionProcess.js
@@ -2,9 +2,8 @@ import("system.result");
 import("system.vars");
 import("Sql_lib");
 
-
 var onlyResponsibleParam = vars.get("$param.DistrictsByContactId_param");
-
+var cond = newWhere();
 if (onlyResponsibleParam)
 {
     var responsibleDistricts = newSelect("DISTRICTRESPONSIBLE.DISTRICT_ID")
@@ -12,7 +11,15 @@ if (onlyResponsibleParam)
                                     .where("DISTRICTRESPONSIBLE.EMPLOYEE_CONTACT_ID", onlyResponsibleParam)
                                     .arrayColumn();
     
-    var cond = newWhere("DISTRICT.DISTRICTID", responsibleDistricts, SqlBuilder.IN());
-    
-    result.string(cond.toString());
-}
\ No newline at end of file
+    cond.and("DISTRICT.DISTRICTID", responsibleDistricts, SqlBuilder.IN());
+}
+
+
+var excludedDistrictIds = vars.get("$param.ExcludedDistrictIds_param");
+if (excludedDistrictIds) 
+{
+    excludedDistrictIds = JSON.parse(excludedDistrictIds);
+    cond.andIfSet("DISTRICT.DISTRICTID", excludedDistrictIds, SqlBuilder.NOT_IN());
+}
+
+result.string(cond.toString());
\ No newline at end of file
diff --git a/neonContext/District/District.aod b/neonContext/District/District.aod
index f595315a283bb53432ac96e6083e65a450ca5496..78099d98a22fffa01fd478bdfb484a17398e70ab 100644
--- a/neonContext/District/District.aod
+++ b/neonContext/District/District.aod
@@ -8,6 +8,7 @@
   <filterView>DistrictFilter_view</filterView>
   <editView>DistrictEdit_view</editView>
   <previewView>DistrictPreview_view</previewView>
+  <lookupView>DistrictFilter_view</lookupView>
   <entity>District_entity</entity>
   <references>
     <neonViewReference>
diff --git a/neonView/DistrictFilter_view/DistrictFilter_view.aod b/neonView/DistrictFilter_view/DistrictFilter_view.aod
index d9ab4d5e1e5a07d9a54f2e13504089ab9f994681..55eac41d3591ccfe862d13dd14d7dba7229bf7e2 100644
--- a/neonView/DistrictFilter_view/DistrictFilter_view.aod
+++ b/neonView/DistrictFilter_view/DistrictFilter_view.aod
@@ -15,9 +15,10 @@
       <hideContentSearch v="false" />
       <showChildrenCount v="false" />
       <entityField>#ENTITY</entityField>
-      <linkedColumns />
-      <defaultGroupFields />
-      <fixedFilterFields />
+      <linkedColumns>
+        <element>DISTRICT_NAME</element>
+        <element>DISTRICT_NUMBER</element>
+      </linkedColumns>
       <columns>
         <neonTreeTableColumn>
           <name>9f8e99dc-cfb3-4038-b949-27571f787db2</name>
diff --git a/neonView/OrganisationMain_view/OrganisationMain_view.aod b/neonView/OrganisationMain_view/OrganisationMain_view.aod
index 24ea1854e8e08fdbfd35e58001e1c7d6787ecb26..f02268bc9b94a2cfe6a345b1665156e2a754699e 100644
--- a/neonView/OrganisationMain_view/OrganisationMain_view.aod
+++ b/neonView/OrganisationMain_view/OrganisationMain_view.aod
@@ -60,6 +60,11 @@
       <entityField>Documents</entityField>
       <view>DocumentFilter_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>db26269b-32ae-47da-ba22-41e0a5952103</name>
+      <entityField>#ENTITY</entityField>
+      <view>OrganisationDistrictResponsibles_view</view>
+    </neonViewReference>
     <neonViewReference>
       <name>0686ad7e-8dc7-4b10-9df2-bf066ae3a310</name>
       <entityField>LogHistories</entityField>
@@ -70,10 +75,5 @@
       <entityField>SelfDuplicatesUncached</entityField>
       <view>OrganisationFilter_view</view>
     </neonViewReference>
-    <neonViewReference>
-      <name>db26269b-32ae-47da-ba22-41e0a5952103</name>
-      <entityField>#ENTITY</entityField>
-      <view>OrganisationDistrictResponsibles_view</view>
-    </neonViewReference>
   </children>
 </neonView>