diff --git a/etl/LISDB_PIMS/LISDB_PIMS/LISDB_PIMS.dtproj b/etl/LISDB_PIMS/LISDB_PIMS/LISDB_PIMS.dtproj
index c3ad25fa4a..5e53726b68 100644
--- a/etl/LISDB_PIMS/LISDB_PIMS/LISDB_PIMS.dtproj
+++ b/etl/LISDB_PIMS/LISDB_PIMS/LISDB_PIMS.dtproj
@@ -41,10 +41,10 @@
Package1
1
0
- 786
+ 789
- {64BE73B1-297D-4BB9-91E9-D13C98178B28}
+ {E73FA992-708D-4F6A-B57E-1DCAD91B8A0A}
8
@@ -91,7 +91,7 @@
0
0
0
- Data Source=sqldevtst.th.gov.bc.ca;Initial Catalog=LIS_Dev;Provider=SQLOLEDB.1;Integrated Security=SSPI;Application Name=SSIS-Package1-{A0A05C25-9FB9-4C46-960C-C299B79C75CA}sqltst2012.th.gov.bc.ca.LIS_Tst;
+ Data Source=sqldevtst.th.gov.bc.ca;Initial Catalog=LIS_Tst;Provider=SQLOLEDB.1;Integrated Security=SSPI;Application Name=SSIS-Package1-{A0A05C25-9FB9-4C46-960C-C299B79C75CA}sqltst2012.th.gov.bc.ca.LIS_Tst;
18
@@ -151,7 +151,7 @@
0
0
0
- LIS_Dev
+ LIS_Tst
18
@@ -239,7 +239,7 @@
0
0
0
- Data Source=localhost,5433;User ID=admin;Initial Catalog=pims;Provider=SQLNCLI11.1;Auto Translate=False;Application Name=SSIS-Package1-{E45C9F0D-5D5D-4D90-A42B-71954AB14980}PIMS;
+ Data Source=sqldevtst.th.gov.bc.ca;Initial Catalog=PIMS_TST;Provider=SQLNCLI11.1;Integrated Security=SSPI;Auto Translate=False;Application Name=SSIS-Package1-{E45C9F0D-5D5D-4D90-A42B-71954AB14980}PIMS;
18
@@ -299,7 +299,7 @@
0
0
0
- pims
+ PIMS_TST
18
@@ -343,7 +343,7 @@
0
0
0
- localhost,5433
+ sqldevtst.th.gov.bc.ca
18
@@ -358,7 +358,6 @@
0
0
0
- admin
18
diff --git a/etl/LISDB_PIMS/LISDB_PIMS/LIS_DB_to_PIMS_DATASET_1.dtsx b/etl/LISDB_PIMS/LISDB_PIMS/LIS_DB_to_PIMS_DATASET_1.dtsx
index e4f0130f17..e1a3cc6adf 100644
--- a/etl/LISDB_PIMS/LISDB_PIMS/LIS_DB_to_PIMS_DATASET_1.dtsx
+++ b/etl/LISDB_PIMS/LISDB_PIMS/LIS_DB_to_PIMS_DATASET_1.dtsx
@@ -12,8 +12,8 @@
DTS:ObjectName="Package1"
DTS:PackageType="5"
DTS:ProtectionLevel="0"
- DTS:VersionBuild="786"
- DTS:VersionGUID="{64BE73B1-297D-4BB9-91E9-D13C98178B28}">
+ DTS:VersionBuild="789"
+ DTS:VersionGUID="{E73FA992-708D-4F6A-B57E-1DCAD91B8A0A}">
8
@@ -26,7 +26,7 @@
+ DTS:ConnectionString="Data Source=sqldevtst.th.gov.bc.ca;Initial Catalog=LIS_Tst;Provider=SQLOLEDB.1;Integrated Security=SSPI;Application Name=SSIS-Package1-{A0A05C25-9FB9-4C46-960C-C299B79C75CA}sqltst2012.th.gov.bc.ca.LIS_Tst;" />
-
-
+ DTS:ConnectionString="Data Source=sqldevtst.th.gov.bc.ca;Initial Catalog=PIMS_TST;Provider=SQLNCLI11.1;Integrated Security=SSPI;Auto Translate=False;Application Name=SSIS-Package1-{E45C9F0D-5D5D-4D90-A42B-71954AB14980}PIMS;" />
@@ -17282,119 +17278,119 @@ set TFA_FILE_NO=?,
startId="Package\Main Flow\LOAD LEASES\Amount to Currency.Outputs[Data Conversion Output]" />
+
-
-
+
+ startId="Package\Main Flow\LOAD LEASES\LEASE_CATEGORY_TYPE.Outputs[Lookup Match Output]" />
+ startId="Package\Main Flow\LOAD LEASES\PSFile_No.Outputs[Lookup Match Output]" />
+ startId="Package\Main Flow\LOAD LEASES\Existing PIMS_LEASE records.Outputs[Lookup Match Output]" />
+ startId="Package\Main Flow\LOAD LEASES\MOTI NAME ID from PIMS PERSON.Outputs[Lookup Match Output]" />
+ startId="Package\Main Flow\LOAD LEASES\Lookup Purpose Code.Outputs[Lookup Match Output]" />
+ startId="Package\Main Flow\LOAD LEASES\Lookup Category Code.Outputs[Lookup Match Output]" />
+ startId="Package\Main Flow\LOAD LEASES\PIMS_LEASE_PURPOSE_TYPE.Outputs[Lookup Match Output]" />
+ startId="Package\Main Flow\LOAD LEASES\TFA_File_NO.Outputs[Lookup Match Output]" />
+ startId="Package\Main Flow\LOAD LEASES\Existing PIMS_LEASE records.Outputs[Lookup No Match Output]" />
+ startId="Package\Main Flow\LOAD LEASES\Lookup Purpose Code.Outputs[Lookup No Match Output]" />
+ startId="Package\Main Flow\LOAD LEASES\TFA_File_NO.Outputs[Lookup No Match Output]" />
+ startId="Package\Main Flow\LOAD LEASES\LEASE_CATEGORY_TYPE.Outputs[Lookup No Match Output]" />
+ startId="Package\Main Flow\LOAD LEASES\PIMS_LEASE_PURPOSE_TYPE.Outputs[Lookup No Match Output]" />
-
+
TopLeft="1580.52307699362,1558.57142857143" />
+ TopLeft="476.276923006385,298.864516774077">
+ End="0,48.035482426067">
+ End="0,48.035482426067" />
@@ -54105,18 +54101,18 @@ and APP_CREATE_USER_DIRECTORY=?
+ TopLeft="730.414285714286,1694">
+ End="0,22.4714285714301">
+ End="0,22.4714285714301" />
@@ -54297,6 +54293,30 @@ and APP_CREATE_USER_DIRECTORY=?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
RelativePosition="Any" />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -54489,49 +54485,49 @@ and APP_CREATE_USER_DIRECTORY=?
+ TopLeft="878.8,823.5">
+ End="322.34285714286,0">
+ End="322.34285714286,0" />
+ TopLeft="1049.55555555556,1401.25">
+ End="0,100.91666666667">
+ End="0,100.91666666667" />
@@ -54561,78 +54557,6 @@ and APP_CREATE_USER_DIRECTORY=?
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ Id="Package\Main Flow\LOAD LEASES.Paths[Lookup No Match Output6]"
+ TopLeft="1768.66748611309,1816.64">
+ End="154.430291664689,0">
+ End="154.430291664689,0" />
+ Id="Package\Main Flow\LOAD LEASES.Paths[Lookup No Match Output4]"
+ TopLeft="1660.36748611309,1714.78">
+ End="0,-35.3">
+ End="0,-35.3" />
+ Id="Package\Main Flow\LOAD LEASES.Paths[Lookup No Match Output5]"
+ TopLeft="545.630769019155,375.0161281937">
+ End="137.038461594892,0">
-
-
-
-
+ End="137.038461594892,0" />
+ Id="Package\Main Flow\LOAD LEASES.Paths[Lookup Match Output2]"
+ TopLeft="1094.2,1044.1">
+ End="212.8,25.2">
+ End="0,17.3683168316832" />
+
+
+
+
+ Id="Package\Main Flow\LOAD LEASES.Paths[Lookup Match Output]"
+ TopLeft="841.322222222222,1264">
+ End="0,82.9388888888898">
+ End="0,82.9388888888898" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
RelativePosition="Any" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
RelativePosition="Any" />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ TopLeft="1455.88571428572,1816.26142857143">
+ End="79.6817718273699,0">
+ End="79.6817718273699,0" />
@@ -55137,18 +55133,18 @@ and APP_CREATE_USER_DIRECTORY=?
+ TopLeft="1294,1616.25">
+ End="-105.166666666667,0">
+ End="-105.166666666667,0" />
@@ -55161,18 +55157,18 @@ and APP_CREATE_USER_DIRECTORY=?
+ TopLeft="1659.42307699361,1558.57142857143">
+ End="0,-33.1000000000001">
+ End="0,-33.1000000000001" />
@@ -55185,18 +55181,18 @@ and APP_CREATE_USER_DIRECTORY=?
+ TopLeft="838.428571428571,1822.77142857143">
+ End="41.8999999999992,0">
+ End="41.8999999999992,0" />
@@ -55209,18 +55205,18 @@ and APP_CREATE_USER_DIRECTORY=?
+ TopLeft="1159.91111111111,1529.33333333333">
+ End="76.588888888889,0">
+ End="76.588888888889,0" />
@@ -56276,11 +56272,11 @@ and APP_CREATE_USER_DIRECTORY=?
Id="Package\PIMS_ADDRESS\Derived Column"
TopLeft="61,559" />
Id="Package\PIMS_ADDRESS\Existint PIMS_ADDRESS records"
TopLeft="22.5,399.9" />
Id="Package\PIMS_ADDRESS\Derived Column 1"
TopLeft="367.692307607662,628.974192690478" />
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -57482,35 +57464,35 @@ and APP_CREATE_USER_DIRECTORY=?
Id="Package\PIMS_PERSON\Derived Column 1"
TopLeft="341.512829090247,696.59892625349" />
Id="Package\PIMS_PERSON\Derived Column"
TopLeft="42.9487183014082,612.699998800216" />
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
diff --git a/etl/PAIMS_PIMS_ACQUISITION/PAIMS_PIMS_ACQUISITION/PAIMS_ACQUISITION_TO_PIMS_DATASET.dtsx b/etl/PAIMS_PIMS_ACQUISITION/PAIMS_PIMS_ACQUISITION/PAIMS_ACQUISITION_TO_PIMS_DATASET.dtsx
index d09860659d..43991f47d8 100644
--- a/etl/PAIMS_PIMS_ACQUISITION/PAIMS_PIMS_ACQUISITION/PAIMS_ACQUISITION_TO_PIMS_DATASET.dtsx
+++ b/etl/PAIMS_PIMS_ACQUISITION/PAIMS_PIMS_ACQUISITION/PAIMS_ACQUISITION_TO_PIMS_DATASET.dtsx
@@ -14,8 +14,8 @@
DTS:PackageType="5"
DTS:ProtectionLevel="0"
DTS:TransactionOption="0"
- DTS:VersionBuild="2488"
- DTS:VersionGUID="{EB46FBF6-332C-47AC-83DB-EEB843B9E5E5}">
+ DTS:VersionBuild="2509"
+ DTS:VersionGUID="{A69806C7-91BB-4C4C-9182-5AB69942464F}">
8
@@ -584,7 +584,7 @@ where [refTable].[ACQUISITION_FILE_ID] = ? and [refTable].[ORGANIZATION_ID] = ?
containsID="true"
dataType="System.String"
description="Specifies the list of lineage identifiers that map to the parameters that the SQL statement in the SQLCommand property uses. Entries in the list are separated by semicolons."
- name="ParameterMap">#{Package\Acquisition File Interest Holders\5376:invalid};#{Package\Acquisition File Interest Holders\5377:invalid};#{Package\Acquisition File Interest Holders\5378:invalid};#{Package\Acquisition File Interest Holders\5379:invalid};#{Package\Acquisition File Interest Holders\Audit Trail.Outputs[Derived Column Output].Columns[APP_CREATE_USER_DIRECTORY]};#{Package\Acquisition File Interest Holders\Audit Trail.Outputs[Derived Column Output].Columns[INTEREST_HOLDER_TYPE_CODE]};
+ name="ParameterMap">#{Package\Acquisition File Interest Holders\6098:invalid};#{Package\Acquisition File Interest Holders\6099:invalid};#{Package\Acquisition File Interest Holders\6100:invalid};#{Package\Acquisition File Interest Holders\6101:invalid};#{Package\Acquisition File Interest Holders\Audit Trail.Outputs[Derived Column Output].Columns[APP_CREATE_USER_DIRECTORY]};#{Package\Acquisition File Interest Holders\Audit Trail.Outputs[Derived Column Output].Columns[INTEREST_HOLDER_TYPE_CODE]};
containsID="true"
dataType="System.String"
description="Specifies the list of lineage identifiers that map to the parameters that the SQL statement in the SQLCommand property uses. Entries in the list are separated by semicolons."
- name="ParameterMap">#{Package\Acquisition File Interest Holders Properties\5380:invalid};
+ name="ParameterMap">#{Package\Acquisition File Interest Holders Properties\6102:invalid};
#{Package\Acquisition File Interest Holders Properties\5381:invalid};#{Package\Acquisition File Interest Holders Properties\5382:invalid};
+ name="ParameterMap">#{Package\Acquisition File Interest Holders Properties\6103:invalid};#{Package\Acquisition File Interest Holders Properties\6104:invalid};
#{Package\Acquisition File Interest Holders Properties\5381:invalid};#{Package\Acquisition File Interest Holders Properties\5382:invalid};
+ name="ParameterMap">#{Package\Acquisition File Interest Holders Properties\6103:invalid};#{Package\Acquisition File Interest Holders Properties\6104:invalid};
+
+
+ ![ISNULL](#{Package\Acquisition File Interest Holders Property Types\Union All.Outputs[Union All Output 1].Columns[LND_PID_NO]})
+ !ISNULL(LND_PID_NO)
+ 1
+
+
+
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[IS_OWNER]}
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[IS_ORG]}
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[FILE_NO]}
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[INTEREST_CODE]}
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[INTEREST_CODE_DESCRIPTION]}
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[INTEREST_HOLDER_OR_AGENT_ID]}
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[SURNAME]}
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[FIRST_NAME]}
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[MIDDLE_NAME]}
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[ORG_INC_NO]}
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[ORG_NAME]}
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[ADDR_LINE_1]}
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[ADDR_LINE_2]}
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[ADDR_LINE_3]}
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[CITY]}
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[PROVINCE]}
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[COUNTRY]}
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[POSTAL_CODE]}
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[HOME_PHONE]}
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[WORK_PHONE]}
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[FAX]}
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[CELL_PHONE]}
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[EMAIL]}
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[EmployeeId]}
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[PAIMS_ACQUISITION_FILE_ID]}
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[Copy of SURNAME]}
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[Copy of FIRST_NAME]}
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[Copy of ORG_NAME]}
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[Copy of PAIMS_ACQUISITION_FILE_ID]}
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[ACQUISITION_FILE_ID]}
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[ORGANIZATION_ID]}
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[PERSON_ID]}
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[PRIMARY_CONTACT_ID]}
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[LND_PID_NO]}
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[LND_PID]}
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[LND_PIN]}
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[LND_PLAN_NO]}
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[PRP_PID]}
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[PRP_FILE_NUMBER]}
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[PRP_FILE_NUMBER_SUFFIX]}
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[Copy of PRP_PID]}
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[Copy of PRP_FILE_NUMBER]}
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[Copy of LND_PID_NO]}
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[Copy of INTEREST_CODE]}
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[Copy of LND_PIN]}
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[APP_CREATE_USERID]}
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[APP_CREATE_USER_DIRECTORY]}
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[APP_LAST_UPDATE_USERID]}
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[APP_LAST_UPDATE_USER_DIRECTORY]}
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[INTEREST_HOLDER_TYPE_CODE]}
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[PREVIOUS_APP_CREATE_USERID]}
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[SUFFIX]}
+
+
+
+
+ #{Package\Acquisition File Interest Holders Property Types\Union All 4.Outputs[Union All Output 1].Columns[INTEREST_HOLDER_ID]}
+
+
+
+
+
+
@@ -34844,6 +36427,11 @@ where [refTable].[PID] = ? and [refTable].[FILE_NUMBER] = ?
+
startId="Package\Acquisition File Interest Holders Property Types\Data Conversion 3.Outputs[Data Conversion Output]" />
-
+
startId="Package\Acquisition File Interest Holders Property Types\IS_ORG.Outputs[IS_PER]" />
+ startId="Package\Acquisition File Interest Holders Property Types\Lookup Primary Contact.Outputs[Lookup Match Output]" />
+ startId="Package\Acquisition File Interest Holders Property Types\Lookup Land Parcel.Outputs[Lookup Match Output]" />
+ startId="Package\Acquisition File Interest Holders Property Types\Lookup PID.Outputs[Lookup Match Output]" />
+ startId="Package\Acquisition File Interest Holders Property Types\Existing Interest Holder.Outputs[Lookup Match Output]" />
+ startId="Package\Acquisition File Interest Holders Property Types\Lookup Person.Outputs[Lookup Match Output]" />
+ startId="Package\Acquisition File Interest Holders Property Types\Lookup Existing INTH PROP.Outputs[Lookup Match Output]" />
+ startId="Package\Acquisition File Interest Holders Property Types\Lookup Interest Type.Outputs[Lookup Match Output]" />
+ startId="Package\Acquisition File Interest Holders Property Types\Lookup PIN.Outputs[Lookup Match Output]" />
+ startId="Package\Acquisition File Interest Holders Property Types\Lookup Acquisition.Outputs[Lookup Match Output]" />
+ startId="Package\Acquisition File Interest Holders Property Types\Lookup Property.Outputs[Lookup Match Output]" />
+ startId="Package\Acquisition File Interest Holders Property Types\Lookup Acquisition Property.Outputs[Lookup Match Output]" />
+ startId="Package\Acquisition File Interest Holders Property Types\Lookup Org.Outputs[Lookup Match Output]" />
+ startId="Package\Acquisition File Interest Holders Property Types\Lookup Existing PRP Interest Type.Outputs[Lookup No Match Output]" />
+ startId="Package\Acquisition File Interest Holders Property Types\Lookup Primary Contact.Outputs[Lookup No Match Output]" />
+ startId="Package\Acquisition File Interest Holders Property Types\Lookup Land Parcel.Outputs[Lookup No Match Output]" />
+ startId="Package\Acquisition File Interest Holders Property Types\Lookup PID.Outputs[Lookup No Match Output]" />
+ startId="Package\Acquisition File Interest Holders Property Types\Lookup PIN.Outputs[Lookup No Match Output]" />
-
@@ -34983,7 +36566,7 @@ where [refTable].[PID] = ? and [refTable].[FILE_NUMBER] = ?
refId="Package\Acquisition File Interest Holders Property Types.Paths[NULL]"
endId="Package\Acquisition File Interest Holders Property Types\Lookup PIN.Inputs[Lookup Input]"
name="NULL"
- startId="Package\Acquisition File Interest Holders Property Types\LP_PID_not null.Outputs[NULL]" />
+ startId="Package\Acquisition File Interest Holders Property Types\LP_PID_not null.Outputs[PIN_NOT_NULL]" />
endId="Package\Acquisition File Interest Holders Property Types\IS_NOT_OWNER.Inputs[Conditional Split Input]"
name="OLE DB Source Output"
startId="Package\Acquisition File Interest Holders Property Types\Interest Holder.Outputs[OLE DB Source Output]" />
+
startId="Package\Acquisition File Interest Holders Property Types\Sort 2.Outputs[Sort Output]" />
+
-
+ SQLTask:SqlStatementSource="DELETE FROM PIMS_INTEREST_HOLDER WHERE INTEREST_HOLDER_ID NOT IN (SELECT INTEREST_HOLDER_ID FROM PIMS_INTHLDR_PROP_INTEREST) AND INTEREST_HOLDER_TYPE_CODE = 'INTHLDR' AND INTEREST_HOLDER_ID NOT IN (SELECT INTEREST_HOLDER_ID FROM PIMS_COMPENSATION_REQUISITION WHERE INTEREST_HOLDER_ID IS NOT NULL) AND INTEREST_HOLDER_ID NOT IN (SELECT INTEREST_HOLDER_ID FROM PIMS_EXPROPRIATION_PAYMENT WHERE INTEREST_HOLDER_ID IS NOT NULL)" xmlns:SQLTask="www.microsoft.com/sqlserver/dts/tasks/sqltask" />
startId="Package\Load Acquisition Addresses\COORD_EMPLOYEE_ID.Outputs[Derived Column Output]" />
+ startId="Package\Load Acquisition Addresses\Audit Trail.Outputs[Derived Column Output]" />
+ startId="Package\Load Acquisition Addresses\EXP_EMPLOYEE_ID.Outputs[Derived Column Output]" />
startId="Package\Load Acquisition Addresses\EmployeeId.Outputs[Derived Column Output]" />
+ startId="Package\Load Acquisition Addresses\SOL_EMPLOYEE_ID.Outputs[Derived Column Output]" />
startId="Package\Load Acquisition Contact Method\CONTACT_METHOD_VALUE.Outputs[CONTACT_METHOD IS NOT NULL]" />
+
-
startId="Package\Load Acquisition Contact Method\Data Conversion 1 1 1 1.Outputs[Data Conversion Output]" />
+ startId="Package\Load Acquisition Contact Method\Data Conversion 4.Outputs[Data Conversion Output]" />
+ startId="Package\Load Acquisition Contact Method\Data Conversion 2.Outputs[Data Conversion Output]" />
startId="Package\Load Acquisition Contact Method\Data Conversion 1 1.Outputs[Data Conversion Output]" />
-
+
+ startId="Package\Load Acquisition Contact Method\EMAIL.Outputs[Derived Column Output]" />
+ startId="Package\Load Acquisition Contact Method\CM_TYPE_CODE - WORKPHONE 1.Outputs[Derived Column Output]" />
+ startId="Package\Load Acquisition Contact Method\WORK_PHONE.Outputs[Derived Column Output]" />
+ startId="Package\Load Acquisition Contact Method\Audit Trail.Outputs[Derived Column Output]" />
+ startId="Package\Load Acquisition Contact Method\HOME_PHONE.Outputs[Derived Column Output]" />
+ startId="Package\Load Acquisition Contact Method\Derived Column 1 1 1.Outputs[Derived Column Output]" />
+ startId="Package\Load Acquisition Contact Method\CM_TYPE_CODE - WORKEMAIL 1.Outputs[Derived Column Output]" />
+ startId="Package\Load Acquisition Contact Method\Derived Column 1 1 1 1.Outputs[Derived Column Output]" />
+ startId="Package\Load Acquisition Contact Method\Derive COORD Employee ID.Outputs[Derived Column Output]" />
+ startId="Package\Load Acquisition Contact Method\REP_CM_TYPE_CODE - WORKMOBIL.Outputs[Derived Column Output]" />
+ startId="Package\Load Acquisition Contact Method\Derive HLD EmployeeId.Outputs[Derived Column Output]" />
+ startId="Package\Load Acquisition Contact Method\EA_CM_TYPE_CODE - WORKEMAIL.Outputs[Derived Column Output]" />
startId="Package\Load Acquisition Contact Method\REP_CM_TYPE_CODE - WORKEMAIL.Outputs[Derived Column Output]" />
+ startId="Package\Load Acquisition Contact Method\HOME_MOBIL.Outputs[Derived Column Output]" />
startId="Package\Load Acquisition Contact Method\Derive NEG Employee ID.Outputs[Derived Column Output]" />
+ startId="Package\Load Acquisition Contact Method\CM_TYPE_CODE - WORKMOBIL 1.Outputs[Derived Column Output]" />
+ startId="Package\Load Acquisition Contact Method\Derive Employee ID.Outputs[Derived Column Output]" />
+ startId="Package\Load Acquisition Contact Method\CM_TYPE_CODE - MOBLPHONE 1.Outputs[Derived Column Output]" />
+ startId="Package\Load Acquisition Contact Method\EA_CM_TYPE_CODE - WORKPHONE.Outputs[Derived Column Output]" />
+ startId="Package\Load Acquisition Contact Method\CM_TYPE_CODE - MOBLPHONE.Outputs[Derived Column Output]" />
+ startId="Package\Load Acquisition Contact Method\EA_CM_TYPE_CODE - MOBLPHONE.Outputs[Derived Column Output]" />
+ startId="Package\Load Acquisition Contact Method\CM_TYPE_CODE - WORKMOBIL.Outputs[Derived Column Output]" />
+ startId="Package\Load Acquisition Contact Method\Derive EXP Employee ID.Outputs[Derived Column Output]" />
+ startId="Package\Load Acquisition Contact Method\REP_CM_TYPE_CODE - WORKPHONE.Outputs[Derived Column Output]" />
+ startId="Package\Load Acquisition Contact Method\CM_TYPE_CODE - WORKPHONE.Outputs[Derived Column Output]" />
+ startId="Package\Load Acquisition Contact Method\EA_CM_TYPE_CODE - WORKMOBIL.Outputs[Derived Column Output]" />
+ startId="Package\Load Acquisition Contact Method\CM_TYPE_CODE - WORKEMAIL.Outputs[Derived Column Output]" />
+ startId="Package\Load Acquisition Contact Method\REP_CM_TYPE_CODE - MOBLPHONE.Outputs[Derived Column Output]" />
startId="Package\Load Acquisition Contact Method\Insert Contact Method - Persons.Outputs[OLE DB Destination Error Output]" />
+
-
startId="Package\Load Acquisition Contact Method\PROP_COORD - WORK MOBIL.Outputs[OLE DB Source Output]" />
-
+
#{Package\Load Acquisition File\5386:invalid};#{Package\Load Acquisition File\5387:invalid};
+ name="ParameterMap">#{Package\Load Acquisition File\6108:invalid};#{Package\Load Acquisition File\6109:invalid};
<referenceMetadata><referenceColumns><referenceColumn name="ID" dataType="DT_I8" length="0" precision="0" scale="0" codePage="0"/><referenceColumn name="PARENT_PROJECT_ID" dataType="DT_I8" length="0" precision="0" scale="0" codePage="0"/><referenceColumn name="CODE" dataType="DT_WSTR" length="20" precision="0" scale="0" codePage="0"/><referenceColumn name="DESCRIPTION" dataType="DT_WSTR" length="200" precision="0" scale="0" codePage="0"/><referenceColumn name="START_DATE" dataType="DT_DBTIMESTAMP" length="0" precision="0" scale="0" codePage="0"/><referenceColumn name="COST_ESTIMATE" dataType="DT_CY" length="0" precision="0" scale="0" codePage="0"/><referenceColumn name="COST_ESTIMATE_DATE" dataType="DT_DBTIMESTAMP" length="0" precision="0" scale="0" codePage="0"/><referenceColumn name="OBJECTIVE" dataType="DT_WSTR" length="2000" precision="0" scale="0" codePage="0"/><referenceColumn name="SCOPE" dataType="DT_WSTR" length="2000" precision="0" scale="0" codePage="0"/><referenceColumn name="CONCURRENCY_CONTROL_NUMBER" dataType="DT_I8" length="0" precision="0" scale="0" codePage="0"/><referenceColumn name="APP_CREATE_TIMESTAMP" dataType="DT_DBTIMESTAMP" length="0" precision="0" scale="0" codePage="0"/><referenceColumn name="APP_CREATE_USERID" dataType="DT_WSTR" length="30" precision="0" scale="0" codePage="0"/><referenceColumn name="APP_CREATE_USER_GUID" dataType="DT_GUID" length="0" precision="0" scale="0" codePage="0"/><referenceColumn name="APP_CREATE_USER_DIRECTORY" dataType="DT_WSTR" length="30" precision="0" scale="0" codePage="0"/><referenceColumn name="APP_LAST_UPDATE_TIMESTAMP" dataType="DT_DBTIMESTAMP" length="0" precision="0" scale="0" codePage="0"/><referenceColumn name="APP_LAST_UPDATE_USERID" dataType="DT_WSTR" length="30" precision="0" scale="0" codePage="0"/><referenceColumn name="APP_LAST_UPDATE_USER_GUID" dataType="DT_GUID" length="0" precision="0" scale="0" codePage="0"/><referenceColumn name="APP_LAST_UPDATE_USER_DIRECTORY" dataType="DT_WSTR" length="30" precision="0" scale="0" codePage="0"/><referenceColumn name="DB_CREATE_TIMESTAMP" dataType="DT_DBTIMESTAMP" length="0" precision="0" scale="0" codePage="0"/><referenceColumn name="DB_CREATE_USERID" dataType="DT_WSTR" length="30" precision="0" scale="0" codePage="0"/><referenceColumn name="DB_LAST_UPDATE_TIMESTAMP" dataType="DT_DBTIMESTAMP" length="0" precision="0" scale="0" codePage="0"/><referenceColumn name="DB_LAST_UPDATE_USERID" dataType="DT_WSTR" length="30" precision="0" scale="0" codePage="0"/><referenceColumn name="CODE_DESC_UPPER" dataType="DT_WSTR" length="220" precision="0" scale="0" codePage="0"/></referenceColumns></referenceMetadata>
+ name="ReferenceMetadataXml"><referenceMetadata><referenceColumns><referenceColumn name="ID" dataType="DT_I8" length="0" precision="0" scale="0" codePage="0"/><referenceColumn name="CODE" dataType="DT_WSTR" length="20" precision="0" scale="0" codePage="0"/><referenceColumn name="DESCRIPTION" dataType="DT_WSTR" length="200" precision="0" scale="0" codePage="0"/><referenceColumn name="START_DATE" dataType="DT_DBTIMESTAMP" length="0" precision="0" scale="0" codePage="0"/><referenceColumn name="COST_ESTIMATE" dataType="DT_CY" length="0" precision="0" scale="0" codePage="0"/><referenceColumn name="COST_ESTIMATE_DATE" dataType="DT_DBTIMESTAMP" length="0" precision="0" scale="0" codePage="0"/><referenceColumn name="OBJECTIVE" dataType="DT_WSTR" length="2000" precision="0" scale="0" codePage="0"/><referenceColumn name="SCOPE" dataType="DT_WSTR" length="2000" precision="0" scale="0" codePage="0"/><referenceColumn name="CONCURRENCY_CONTROL_NUMBER" dataType="DT_I8" length="0" precision="0" scale="0" codePage="0"/><referenceColumn name="APP_CREATE_TIMESTAMP" dataType="DT_DBTIMESTAMP" length="0" precision="0" scale="0" codePage="0"/><referenceColumn name="APP_CREATE_USERID" dataType="DT_WSTR" length="30" precision="0" scale="0" codePage="0"/><referenceColumn name="APP_CREATE_USER_GUID" dataType="DT_GUID" length="0" precision="0" scale="0" codePage="0"/><referenceColumn name="APP_CREATE_USER_DIRECTORY" dataType="DT_WSTR" length="30" precision="0" scale="0" codePage="0"/><referenceColumn name="APP_LAST_UPDATE_TIMESTAMP" dataType="DT_DBTIMESTAMP" length="0" precision="0" scale="0" codePage="0"/><referenceColumn name="APP_LAST_UPDATE_USERID" dataType="DT_WSTR" length="30" precision="0" scale="0" codePage="0"/><referenceColumn name="APP_LAST_UPDATE_USER_GUID" dataType="DT_GUID" length="0" precision="0" scale="0" codePage="0"/><referenceColumn name="APP_LAST_UPDATE_USER_DIRECTORY" dataType="DT_WSTR" length="30" precision="0" scale="0" codePage="0"/><referenceColumn name="DB_CREATE_TIMESTAMP" dataType="DT_DBTIMESTAMP" length="0" precision="0" scale="0" codePage="0"/><referenceColumn name="DB_CREATE_USERID" dataType="DT_WSTR" length="30" precision="0" scale="0" codePage="0"/><referenceColumn name="DB_LAST_UPDATE_TIMESTAMP" dataType="DT_DBTIMESTAMP" length="0" precision="0" scale="0" codePage="0"/><referenceColumn name="DB_LAST_UPDATE_USERID" dataType="DT_WSTR" length="30" precision="0" scale="0" codePage="0"/></referenceColumns></referenceMetadata>
#{Package\Load Acquisition File\PAIMS AGENT_ASSIGNMENT.Outputs[OLE DB Source Output].Columns[PRODUCT_CODE]};
+ name="ParameterMap">#{Package\Load Acquisition File\Sort.Outputs[Sort Output].Columns[PRODUCT_CODE]};
name="CopyFromReferenceColumn">ID
-
-
- PARENT_PROJECT_ID
-
-
@@ -101029,7 +102603,7 @@ where [refTable].[CODE] = ?
containsID="true"
dataType="System.String"
description="Specifies the list of lineage identifiers that map to the parameters that the SQL statement in the SQLCommand property uses. Entries in the list are separated by semicolons."
- name="ParameterMap">#{Package\Load Acquisition File\5388:invalid};
+ name="ParameterMap">#{Package\Load Acquisition File\6110:invalid};
#{Package\Load Acquisition File\5389:invalid};#{Package\Load Acquisition File\5390:invalid};#{Package\Load Acquisition File\Union All 1.Inputs[Union All Input 2].Columns[------]};#{Package\Load Acquisition File\5391:invalid};#{Package\Load Acquisition File\5392:invalid};#{Package\Load Acquisition File\5393:invalid};#{Package\Load Acquisition File\5394:invalid};#{Package\Load Acquisition File\5395:invalid};#{Package\Load Acquisition File\Union All 1.Inputs[Union All Input 2].Columns[OWN_IS_OWNER]};#{Package\Load Acquisition File\5396:invalid};#{Package\Load Acquisition File\5397:invalid};#{Package\Load Acquisition File\5398:invalid};#{Package\Load Acquisition File\5399:invalid};#{Package\Load Acquisition File\5400:invalid};
+ name="ParameterMap">#{Package\Load Acquisition File\6111:invalid};#{Package\Load Acquisition File\6112:invalid};#{Package\Load Acquisition File\Union All 1.Inputs[Union All Input 2].Columns[------]};#{Package\Load Acquisition File\6113:invalid};#{Package\Load Acquisition File\6114:invalid};#{Package\Load Acquisition File\6115:invalid};#{Package\Load Acquisition File\6116:invalid};#{Package\Load Acquisition File\6117:invalid};#{Package\Load Acquisition File\Union All 1.Inputs[Union All Input 2].Columns[OWN_IS_OWNER]};#{Package\Load Acquisition File\6118:invalid};#{Package\Load Acquisition File\6119:invalid};#{Package\Load Acquisition File\6120:invalid};#{Package\Load Acquisition File\6121:invalid};#{Package\Load Acquisition File\6122:invalid};
#{Package\Load Acquisition File\Union All.Outputs[Union All Output 1].Columns[APP_LAST_UPDATE_USER_DIRECTORY]}
-
-
- #{Package\Load Acquisition File\Union All.Outputs[Union All Output 1].Columns[PROJECT_ID]}
-
-
startId="Package\Load Acquisition File\NULL PRODUCT_IDs.Outputs[Derived Column Output]" />
+ startId="Package\Load Acquisition File\Existing PIMS_Acquisition_File records check.Outputs[Lookup Match Output]" />
+ startId="Package\Load Acquisition File\Lookup Product ID.Outputs[Lookup Match Output]" />
+ startId="Package\Load Acquisition File\Lookup Project ID.Outputs[Lookup Match Output]" />
startId="Package\Load Acquisition File Person\Lookup Person ID 1.Outputs[Lookup Match Output]" />
+ startId="Package\Load Acquisition File Person\Lookup Person ID.Outputs[Lookup Match Output]" />
+ startId="Package\Load Acquisition File Person\Lookup.Outputs[Lookup Match Output]" />
startId="Package\Load Acquisition File Person\Lookup Person ID 2.Outputs[Lookup Match Output]" />
+ startId="Package\Load Acquisition File Person\Lookup exsiting PIMS_ACQ File Person records.Outputs[Lookup Match Output]" />
+
-
-
+
#{Package\Load Acquisition Owner Rep and Solicitor\5401:invalid};#{Package\Load Acquisition Owner Rep and Solicitor\5402:invalid};#{Package\Load Acquisition Owner Rep and Solicitor\5403:invalid};#{Package\Load Acquisition Owner Rep and Solicitor\5404:invalid};#{Package\Load Acquisition Owner Rep and Solicitor\5405:invalid};#{Package\Load Acquisition Owner Rep and Solicitor\5406:invalid};#{Package\Load Acquisition Owner Rep and Solicitor\Lookup exsiting PIMS_ACQ ITHLDR records.Outputs[Lookup Match Output].Columns[INTEREST_HOLDER_ID]};
+ name="ParameterMap">#{Package\Load Acquisition Owner Rep and Solicitor\6123:invalid};#{Package\Load Acquisition Owner Rep and Solicitor\6124:invalid};#{Package\Load Acquisition Owner Rep and Solicitor\6125:invalid};#{Package\Load Acquisition Owner Rep and Solicitor\6126:invalid};#{Package\Load Acquisition Owner Rep and Solicitor\6127:invalid};#{Package\Load Acquisition Owner Rep and Solicitor\6128:invalid};#{Package\Load Acquisition Owner Rep and Solicitor\Lookup exsiting PIMS_ACQ ITHLDR records.Outputs[Lookup Match Output].Columns[INTEREST_HOLDER_ID]};
startId="Package\Load Acquisition Owner Rep and Solicitor\Lookup Organization.Outputs[Lookup Match Output]" />
-
+
#{Package\Load Acquisition Persons and Organizations\5407:invalid};#{Package\Load Acquisition Persons and Organizations\5408:invalid};#{Package\Load Acquisition Persons and Organizations\Format Organization Columns.Outputs[Derived Column Output].Columns[ORGANIZATION_TYPE_CODE]};#{Package\Load Acquisition Persons and Organizations\Format Organization Columns.Outputs[Derived Column Output].Columns[ORGANIZATION_IDENTIFIER_TYPE_CODE]};
+ name="ParameterMap">#{Package\Load Acquisition Persons and Organizations\6129:invalid};#{Package\Load Acquisition Persons and Organizations\6130:invalid};#{Package\Load Acquisition Persons and Organizations\Format Organization Columns.Outputs[Derived Column Output].Columns[ORGANIZATION_TYPE_CODE]};#{Package\Load Acquisition Persons and Organizations\Format Organization Columns.Outputs[Derived Column Output].Columns[ORGANIZATION_IDENTIFIER_TYPE_CODE]};
#{Package\Load Acquisition Persons and Organizations\5409:invalid};#{Package\Load Acquisition Persons and Organizations\Format Output Column.Outputs[Derived Column Output].Columns[FirstName]};#{Package\Load Acquisition Persons and Organizations\Format Output Column.Outputs[Derived Column Output].Columns[SurName]};
+ name="ParameterMap">#{Package\Load Acquisition Persons and Organizations\6131:invalid};#{Package\Load Acquisition Persons and Organizations\Format Output Column.Outputs[Derived Column Output].Columns[FirstName]};#{Package\Load Acquisition Persons and Organizations\Format Output Column.Outputs[Derived Column Output].Columns[SurName]};
startId="Package\Load Acquisition Persons and Organizations\Data Conversion.Outputs[Data Conversion Output]" />
+
-
+ startId="Package\Load Acquisition Persons and Organizations\Derived Column 1 1 1 1 1.Outputs[Derived Column Output]" />
+ startId="Package\Load Acquisition Persons and Organizations\FirstName, Surname1.Outputs[Derived Column Output]" />
-
+
startId="Package\Load Acquisition Persons and Organizations\Lookup existing PIMS_PERSON records.Outputs[Lookup Match Output]" />
+ startId="Package\Load Acquisition Persons and Organizations\Lookup existing PIMS_PERSON records.Outputs[Lookup No Match Output]" />
+ startId="Package\Load Acquisition Persons and Organizations\PIMS_ORG records to be updated.Outputs[Lookup No Match Output]" />
startId="Package\Load Acquisition Persons and Organizations\Filter pre-existing Organizarions.Outputs[Lookup No Match Output]" />
+ startId="Package\Load Acquisition Persons and Organizations\Lookup existing PIMS_ORG records.Outputs[Lookup No Match Output]" />
+ startId="Package\Load Acquisition Persons and Organizations\Filter pre-existing person.Outputs[Lookup No Match Output]" />
startId="Package\Load Acquisition Persons and Organizations\PIMS_ORGANIZATION.Outputs[OLE DB Destination Error Output]" />
+ startId="Package\Load Acquisition Persons and Organizations\Rep.Outputs[OLE DB Source Output]" />
startId="Package\Load Acquisition Persons and Organizations\Negotiation agent.Outputs[OLE DB Source Output]" />
+ startId="Package\Load Acquisition Persons and Organizations\Property Coordinator.Outputs[OLE DB Source Output]" />
startId="Package\Load Acquisition Persons and Organizations\Interest Holder.Outputs[OLE DB Source Output]" />
+ startId="Package\Load Acquisition Persons and Organizations\Expropriation Agent.Outputs[OLE DB Source Output]" />
+ startId="Package\Load Acquisition Persons and Organizations\Owner Solicitor.Outputs[OLE DB Source Output]" />
expressionType="Notify"
name="SqlCommandParam"
UITypeEditor="Microsoft.DataTransformationServices.Controls.ModalMultilineStringEditor, Microsoft.DataTransformationServices.Controls, Version=16.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91">select * from (select * from [dbo].[PIMS_AGREEMENT]) [refTable]
-where [refTable].[EXPIRY_TS] = ? and [refTable].[AGREEMENT_TYPE_CODE] = ? and [refTable].[APP_CREATE_USERID] = ? and [refTable].[APP_CREATE_USER_DIRECTORY] = ? and [refTable].[APP_LAST_UPDATE_USERID] = ? and [refTable].[APP_LAST_UPDATE_USER_DIRECTORY] = ? and [refTable].[POSSESSION_DATE] = ?
+where [refTable].[EXPIRY_TS] = ? and [refTable].[AGREEMENT_TYPE_CODE] = ? and [refTable].[APP_CREATE_USERID] = ? and [refTable].[APP_CREATE_USER_DIRECTORY] = ? and [refTable].[APP_LAST_UPDATE_USERID] = ? and [refTable].[APP_LAST_UPDATE_USER_DIRECTORY] = ? and [refTable].[POSSESSION_DATE] IS NOT NULL and [refTable].[POSSESSION_DATE] = ? and [refTable].[AGREEMENT_ID] = ?
0
+ typeConverter="CacheType">1
#{Package\Load Agreement\Remove Duplicates.Outputs[Sort Output].Columns[AGR_EXPIRY_TS]};#{Package\Load Agreement\Remove Duplicates.Outputs[Sort Output].Columns[Copy of AGR_AGREEMENT_TYPE_CODE]};#{Package\Load Agreement\Remove Duplicates.Outputs[Sort Output].Columns[APP_CREATE_USERID]};#{Package\Load Agreement\Remove Duplicates.Outputs[Sort Output].Columns[APP_CREATE_USER_DIRECTORY]};#{Package\Load Agreement\Remove Duplicates.Outputs[Sort Output].Columns[APP_LAST_UPDATE_USERID]};#{Package\Load Agreement\Remove Duplicates.Outputs[Sort Output].Columns[APP_LAST_UPDATE_USER_DIRECTORY]};#{Package\Load Agreement\Remove Duplicates.Outputs[Sort Output].Columns[AGR_POSSESSION_DATE]};
+ name="ParameterMap">#{Package\Load Agreement\Remove Duplicates.Outputs[Sort Output].Columns[AGR_EXPIRY_TS]};#{Package\Load Agreement\Remove Duplicates.Outputs[Sort Output].Columns[Copy of AGR_AGREEMENT_TYPE_CODE]};#{Package\Load Agreement\Remove Duplicates.Outputs[Sort Output].Columns[APP_CREATE_USERID]};#{Package\Load Agreement\Remove Duplicates.Outputs[Sort Output].Columns[APP_CREATE_USER_DIRECTORY]};#{Package\Load Agreement\Remove Duplicates.Outputs[Sort Output].Columns[APP_LAST_UPDATE_USERID]};#{Package\Load Agreement\Remove Duplicates.Outputs[Sort Output].Columns[APP_LAST_UPDATE_USER_DIRECTORY]};#{Package\Load Agreement\Remove Duplicates.Outputs[Sort Output].Columns[AGR_POSSESSION_DATE]};#{Package\Load Agreement\Lookup existing PIMS_AGREEMENT.Outputs[Lookup Match Output].Columns[AGREEMENT_ID]};
+
+
+ AGREEMENT_ID
+
+
+
@@ -212065,9 +213642,9 @@ and APP_CREATE_USER_DIRECTORY=?
startId="Package\Load Compensation Requisition 2\Lookup Responsibility Code.Outputs[Lookup Match Output]" />
+ startId="Package\Load Compensation Requisition 2\Lookup Charts of Accounts Code.Outputs[Lookup No Match Output]" />
startId="Package\Load Compensation Requisition 2\Lookup existing PIMS_compensation_req records.Outputs[Lookup No Match Output]" />
+ startId="Package\Load Compensation Requisition 2\PIMS_Compensation_Req records to be updated.Outputs[Lookup No Match Output]" />
startId="Package\Load Compensation Requisition 2\Lookup Responsibility Code.Outputs[Lookup No Match Output]" />
+ startId="Package\Load Compensation Requisition 2\Lookup Yearly Financial Activity Code.Outputs[Lookup No Match Output]" />
@@ -219945,10 +221522,38 @@ where [refTable].[PID] = ? and [refTable].[FILE_NUMBER] = ?
+
+ ![ISNULL](#{Package\Load Property Acquisition File\Sort 1.Outputs[Sort Output].Columns[LND_PID_NO]})
+ !ISNULL(LND_PID_NO)
+ 1
+
+
+
+
+WHERE acq.AGENT_ASSIGNMENT_ID IS NOT NULL and acq.AGENT_ASSIGNMENT_NO = 701523
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[ACQ_FILE_NO]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[ACQ_FILE_NUMBER]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[ACQ_LEGACY_FILE_NUMBER]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[ACQ_ASSIGNED_DATE]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[ACQ_DELIVERY_DATE]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[ACQ_ACQUISITION_FILE_STATUS_TYPE_CODE]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[ACQ_ACQUISITION_TYPE_CODE]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[ACQ_REGION_CODE]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[ACQ_FILE_NAME]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[PRP_PID]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[PRP_FILE_NUMBER]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[PRP_FILE_NUMBER_SUFFIX]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[FILE_NUMBER]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[SETTLED_DATE]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[H120_FINANCIAL_ACTIVITY_CODE]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[H120_FINANCIAL_ACTIVITY_DESCRIPTION]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[H120_H120_CATEGORY_NO]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[H120_WORK_ACTIVITY_DESCRIPTION]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[H120_COST_TYPE_CODE]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[H120_YEARLY_FINANCIAL_CODE_ID]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[H120_CHART_OF_ACCOUNTS_CODE]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[H120_RESPONSIBILITY_CENTRE_CODE_ID]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[ACQ_MINISTRY_PROJECT_NUMBER]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[ACQ_MINISTRY_PROJECT_NAME]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[REQ_COMPENSATION_REQ_ID]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[REQ_IS_DRAFT]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[REQ_TAX_AMT]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[REQ_TOTAL_AMT]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[REQ_DETAILED_REMARKS]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[REQ_SPECIAL_INSTRUCTIONS]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[REQ_EXPROP_NOTICE_SERVED_DT]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[REQ_EXPROP_VESTING_DT]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[REQ_AGREEMENT_DT]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[REQ_IS_GST_REQUIRED]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[AGR_AGREEMENT_DATE]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[AGR_COMPLETION_DATE]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[AGR_COMMENCEMENT_DATE]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[AGR_AGREEMENT_TYPE_CODE]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[AGR_EXPIRY_TS]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[AGR_DEPOSIT_AMOUNT]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[AGR_INSPECTION_DATE]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[AGR_PURCHASE_PRICE]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[ACQ_OWNER_SOLICITOR]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[ACQ_PAYEE_IN_TRUST]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[OWN_IS_OWNER]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[OWN_INTEREST_TYPE]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[OWN_IS_ORGANIZATION]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[OWN_LAST_NAME_AND_CORP_NAME]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[OWN_OTHER_NAME]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[OWN_GIVEN_NAME]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[OWN_INCORPORATION_NUMBER]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[OWN_PERCENTAGE]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[OWN_CONTACT_EMAIL_ADDR]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[OWN_CONTACT_PHONE_NUM]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[OWN_STREET_ADDRESS_1]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[OWN_STREET_ADDRESS_2]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[OWN_STREET_ADDRESS_3]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[OWN_MUNICIPALITY_NAME]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[OWN_PROVINCE]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[OWN_COUNTRY]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[OWN_POSTAL_CODE]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[OWN_HOME_PHONE]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[OWN_WORK_PHONE]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[OWN_MOBILE_PHONE]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[OWN_FAX_NO]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[REP_IS_OWNER_SOLICITOR]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[REP_SURNAME]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[REP_FIRST_NAME]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[REP_COMPANY_NAME]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[REP_ADDRESS_LINE_1]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[REP_ADDRESS_LINE_2]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[REP_ADDRESS_LINE_3]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[REP_CITY]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[REP_PROVINCE]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[REP_COUNTRY]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[REP_POSTAL_CODE]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[REP_PHONE_NO]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[REP_FAX_NO]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[REP_CELL_PHONE_NUMBER]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[REP_EMAIL_ADDRESS]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[TAK_STATUS_TYPE_CODE]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[TAK_AREA_UNIT_TYPE_CODE]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[TAK_IS_NEW_RIGHT_OF_WAY]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[TAK_NEW_RIGHT_OF_WAY_AREA]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[TAK_IS_STATUTORY_RIGHT_OF_WAY]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[TAK_STATUTORY_RIGHT_OF_WAY_AREA]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[TAK_IS_LICENSE_TO_CONSTRUCT]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[TAK_LICENSE_TO_CONSTRUCT_AREA]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[TAK_LTC_END_DATE]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[TAK_IS_LAND_ACT]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[TAK_LAND_ACT_AREA]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[TAK_OLD_ROAD_INSIDE_AREA]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[TAK_SURPLUS_AREA]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[TAK_CONTAMINATION_FLAG]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[TAKE_AREA]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[TAKE_ID]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[LAND_AREA]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[-]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[--]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[--------------------]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[-----------------------]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[REQ_FISCAL_YEAR]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[---]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[----]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[-----]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[------]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[-------]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[--------]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[----------]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[LND_PID_NO]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[LND_PID]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[LND_PIN]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[LND_PLAN_NO]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[------------]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[OWN_SURNAME]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[OWN_FIRST_NAME]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[OWN_MIDDLE_NAME]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[OWN_ORGANIZATION_NAME]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[TAK_IS_SURPLUS]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[PAIMS_ACQUISITION_FILE_ID]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[Copy of FILE_NUMBER]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[Copy of PRP_PID]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[Copy of PRP_FILE_NUMBER]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[Copy of PRP_FILE_NUMBER_SUFFIX]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[Copy of ACQ_FILE_NO]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[Copy of PAIMS_ACQUISITION_FILE_ID]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[Copy of LND_PID_NO]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[Copy of LND_PIN]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[ACQUISITION_FILE_ID]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[PREVIOUS_APP_CREATE_USERID]}
+
+
+
+
+ #{Package\Load Property Acquisition File\Union All 1.Outputs[Union All Output 1].Columns[SUFFIX]}
+
+
+
+
+
+
@@ -241228,6 +244742,11 @@ and APP_CREATE_USER_DIRECTORY=?
+
startId="Package\Load Property Acquisition File\Data Conversion.Outputs[Data Conversion Output]" />
-
+
startId="Package\Load Property Acquisition File\Lookup Land Parcel.Outputs[Lookup Match Output]" />
+ startId="Package\Load Property Acquisition File\Lookup PID.Outputs[Lookup No Match Output]" />
+ startId="Package\Load Property Acquisition File\Lookup Land Parcel.Outputs[Lookup No Match Output]" />
-
+ refId="Package\Load Property Acquisition File.Paths[Lookup No Match Output2]"
+ endId="Package\Load Property Acquisition File\Union All 1.Inputs[Union All Input 2]"
+ name="Lookup No Match Output"
+ startId="Package\Load Property Acquisition File\Lookup Land Parcel By PIN.Outputs[Lookup No Match Output]" />
@@ -241322,7 +244836,7 @@ and APP_CREATE_USER_DIRECTORY=?
refId="Package\Load Property Acquisition File.Paths[NULL]"
endId="Package\Load Property Acquisition File\Lookup Land Parcel By PIN.Inputs[Lookup Input]"
name="NULL"
- startId="Package\Load Property Acquisition File\LP_PID_not null.Outputs[NULL]" />
+ startId="Package\Load Property Acquisition File\LP_PID_not null.Outputs[PID_NULL_PIN]" />
endId="Package\Load Property Acquisition File\Data Conversion.Inputs[Data Conversion Input]"
name="OLE DB Source Output"
startId="Package\Load Property Acquisition File\OLE DB Source.Outputs[OLE DB Source Output]" />
+
cachedName="Copy of TAK_STATUS_TYPE_CODE"
externalMetadataColumnId="Package\Load Takes\Insert PIMS_TAKE.Inputs[OLE DB Destination Input].ExternalColumns[TAKE_STATUS_TYPE_CODE]"
lineageId="Package\Load Takes\Sort.Outputs[Sort Output].Columns[Copy of TAK_STATUS_TYPE_CODE]" />
-
cachedScale="4"
externalMetadataColumnId="Package\Load Takes\Insert PIMS_TAKE.Inputs[OLE DB Destination Input].ExternalColumns[LAND_ACT_AREA]"
lineageId="Package\Load Takes\Sort.Outputs[Sort Output].Columns[TAK_LAND_ACT_AREA]" />
-
cachedScale="4"
externalMetadataColumnId="Package\Load Takes\Insert PIMS_TAKE.Inputs[OLE DB Destination Input].ExternalColumns[SURPLUS_AREA]"
lineageId="Package\Load Takes\Sort.Outputs[Sort Output].Columns[TAK_SURPLUS_AREA]" />
-
-
-
-
cachedName="Copy of TAK_AREA_UNIT_TYPE_CODE"
externalMetadataColumnId="Package\Load Takes\Insert PIMS_TAKE.Inputs[OLE DB Destination Input].ExternalColumns[AREA_UNIT_TYPE_CODE]"
lineageId="Package\Load Takes\Sort.Outputs[Sort Output].Columns[Copy of TAK_AREA_UNIT_TYPE_CODE]" />
+
+
+
+
+
+
@@ -243153,10 +246672,6 @@ and APP_CREATE_USER_DIRECTORY=?
dataType="wstr"
length="4000"
name="DESCRIPTION" />
-
refId="Package\Load Takes\Insert PIMS_TAKE.Inputs[OLE DB Destination Input].ExternalColumns[LAND_ACT_END_DT]"
dataType="dbDate"
name="LAND_ACT_END_DT" />
-
length="20"
name="AREA_UNIT_TYPE_CODE" />
+
+
+ name="IS_THERE_SURPLUS" />
+ name="IS_NEW_HIGHWAY_DEDICATION" />
+ name="IS_NEW_INTEREST_IN_SRW" />
+ name="IS_NEW_LICENSE_TO_CONSTRUCT" />
+ refId="Package\Load Takes\Insert PIMS_TAKE.Inputs[OLE DB Destination Input].ExternalColumns[IS_NEW_LAND_ACT]"
+ dataType="bool"
+ name="IS_NEW_LAND_ACT" />
+
+
@@ -243545,7 +247072,7 @@ where [refTable].[PID] = ? and [refTable].[APP_CREATE_USERID] = ? and [refTable]
containsID="true"
dataType="System.String"
description="Specifies the list of lineage identifiers that map to the parameters that the SQL statement in the SQLCommand property uses. Entries in the list are separated by semicolons."
- name="ParameterMap">#{Package\Load Takes\5410:invalid};#{Package\Load Takes\5411:invalid};#{Package\Load Takes\5412:invalid};
+ name="ParameterMap">#{Package\Load Takes\6132:invalid};#{Package\Load Takes\6133:invalid};#{Package\Load Takes\6134:invalid};
containsID="true"
dataType="System.String"
description="Specifies the list of lineage identifiers that map to the parameters that the SQL statement in the SQLCommand property uses. Entries in the list are separated by semicolons."
- name="ParameterMap">#{Package\Load Takes\5410:invalid};
+ name="ParameterMap">#{Package\Load Takes\6132:invalid};
#{Package\Load Takes\Lookup PIMS_ACQUISITION_FILE.Outputs[Lookup Match Output].Columns[ACQUISITION_FILE_ID]};#{Package\Load Takes\5413:invalid};
+ name="ParameterMap">#{Package\Load Takes\Lookup PIMS_ACQUISITION_FILE.Outputs[Lookup Match Output].Columns[ACQUISITION_FILE_ID]};#{Package\Load Takes\6135:invalid};
startId="Package\Load Takes\Lookup PIMS_ACQUISITION_FILE.Outputs[Lookup Match Output]" />
+ startId="Package\Load Takes\Lookup PIN.Outputs[Lookup No Match Output]" />
+ startId="Package\Load Takes\PIMS_TAKE records to be updated.Outputs[Lookup No Match Output]" />
-
+
startId="Package\Payees\Conditional Split.Outputs[IS_SOLICITOR_PAYEE]" />
-
+ startId="Package\Payees\Lookup Acquisition File.Outputs[Lookup Match Output]" />
+
version="1">
@@ -272165,7 +275692,7 @@ AND APP_LAST_UPDATE_USERID = 'PAIMS_PIMS_ACQUISITION'
@@ -272204,29 +275731,124 @@ AND APP_LAST_UPDATE_USERID = 'PAIMS_PIMS_ACQUISITION'
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+ DELETE FROM [PIMS_EXPROP_PMT_PMT_ITEM] WHERE EXPROPRIATION_PAYMENT_ID = ?
+ 1252
+
+
+
+
+
+
+
+
+
+
+
+
+ 81
+
+
+
+
+
+
+
+ synchronousInputId="Package\Remove Expropriation Payments with invalid interest holders\DELETE PAYMENT ITEMS.Inputs[OLE DB Command Input]">
+ synchronousInputId="Package\Remove Expropriation Payments with invalid interest holders\DELETE PAYMENT ITEMS.Inputs[OLE DB Command Input]">
@@ -272705,9 +276327,14 @@ AND APP_LAST_UPDATE_USERID = 'PAIMS_PIMS_ACQUISITION'
+
@@ -273059,15 +276686,6 @@ AND APP_LAST_UPDATE_USERID = 'PAIMS_PIMS_ACQUISITION'
lineageId="Package\Replace invalid interest holder payees with legacy payee\COMPENSATIONS WITH INVALID IH.Outputs[OLE DB Source Output].Columns[INTEREST_HOLDER_ID]"
name="INTEREST_HOLDER_ID"
truncationRowDisposition="FailComponent" />
-
lineageId="Package\Replace invalid interest holder payees with legacy payee\COMPENSATIONS WITH INVALID IH.Outputs[OLE DB Source Output].Columns[ADV_PMT_SERVED_DT]"
name="ADV_PMT_SERVED_DT"
truncationRowDisposition="FailComponent" />
+
@@ -273252,10 +276879,6 @@ AND APP_LAST_UPDATE_USERID = 'PAIMS_PIMS_ACQUISITION'
refId="Package\Replace invalid interest holder payees with legacy payee\COMPENSATIONS WITH INVALID IH.Outputs[OLE DB Source Output].ExternalColumns[INTEREST_HOLDER_ID]"
dataType="i8"
name="INTEREST_HOLDER_ID" />
-
refId="Package\Replace invalid interest holder payees with legacy payee\COMPENSATIONS WITH INVALID IH.Outputs[OLE DB Source Output].ExternalColumns[ADV_PMT_SERVED_DT]"
dataType="dbDate"
name="ADV_PMT_SERVED_DT" />
+
lineageId="Package\Replace invalid interest holder payees with legacy payee\COMPENSATIONS WITH INVALID IH.Outputs[OLE DB Source Error Output].Columns[INTEREST_HOLDER_ID]"
name="INTEREST_HOLDER_ID" />
+ lineageId="Package\Replace invalid interest holder payees with legacy payee\COMPENSATIONS WITH INVALID IH.Outputs[OLE DB Source Error Output].Columns[ACQUISITION_FILE_TEAM_ID]"
+ name="ACQUISITION_FILE_TEAM_ID" />
Size="136,42"
Id="Package\Acquisition File Interest Holders Properties\Lookup PIN"
TopLeft="95.5000000000002,1457.125" />
-
Id="Package\Acquisition File Interest Holders Properties\Lookup Acquisition"
TopLeft="189,420.25" />
+ Size="132,42"
+ Id="Package\Acquisition File Interest Holders Properties\Union All 2"
+ TopLeft="361.5,1871.875" />
+
-
Id="Package\Acquisition File Interest Holders Properties\Union All"
TopLeft="213,938.6875" />
+ Size="121,42"
+ Id="Package\Acquisition File Interest Holders Properties\IS_ORG"
+ TopLeft="214,523.9375" />
Id="Package\Acquisition File Interest Holders Properties\Data Conversion 3"
TopLeft="189.5,212.875" />
+ Size="167,42"
+ Id="Package\Acquisition File Interest Holders Properties\IS_NOT_OWNER"
+ TopLeft="191,109.1875" />
Id="Package\Acquisition File Interest Holders Properties\EmployeeId"
TopLeft="206,316.5625" />
-
+ Size="257,42"
+ Id="Package\Acquisition File Interest Holders Properties\PIMS_INTHLDR_PROP_INTEREST"
+ TopLeft="299,2390.3125" />
+
-
+
Size="156,42"
Id="Package\Acquisition File Interest Holders Properties\Derived Column"
TopLeft="349.5,2494" />
+
+ Id="Package\Acquisition File Interest Holders Properties.Paths[Union All Output 13]"
+ TopLeft="250.5,1602.8125">
+ End="0,54.1875">
-
-
-
-
+ End="0,54.1875" />
+ Id="Package\Acquisition File Interest Holders Properties.Paths[Union All Output 12]"
+ TopLeft="427.5,1913.875">
+ Id="Package\Acquisition File Interest Holders Properties.Paths[Union All Output 11]"
+ TopLeft="71.5000000000001,877">
+ End="183.833333333333,54.1875">
+ End="0,32.5372191011236" />
+ Point1="0,32.5372191011236"
+ Point2="0,36.5372191011236"
+ Point3="4,36.5372191011236" />
+ End="179.833333333333,36.5372191011236" />
+ Point1="179.833333333333,36.5372191011236"
+ Point2="183.833333333333,36.5372191011236"
+ Point3="183.833333333333,40.5372191011236" />
+ End="183.833333333333,54.1875" />
+ Id="Package\Acquisition File Interest Holders Properties.Paths[Union All Output 1]"
+ TopLeft="274.5,980.6875">
+ End="0,54.1875">
-
-
-
-
+ End="0,54.1875" />
+ Id="Package\Acquisition File Interest Holders Properties.Paths[Sort Output]"
+ TopLeft="427.5,2328.625">
+ End="0,54.1875">
-
-
-
-
+ End="0,54.1875" />
+ Id="Package\Acquisition File Interest Holders Properties.Paths[PID_NOT_NULL]"
+ TopLeft="299.333333333333,1291.75">
+ End="61.1666666666667,54.1875">
+ End="0,21.0483921815889" />
+ Point1="0,21.0483921815889"
+ Point2="0,25.0483921815889"
+ Point3="4,25.0483921815889" />
+ End="57.1666666666667,25.0483921815889" />
+ Point1="57.1666666666667,25.0483921815889"
+ Point2="61.1666666666667,25.0483921815889"
+ Point3="61.1666666666667,29.0483921815889" />
+ End="61.1666666666667,54.1875" />
+ Id="Package\Acquisition File Interest Holders Properties.Paths[OLE DB Source Output]"
+ TopLeft="274.5,47.5">
+ End="0,54.1875">
-
-
-
-
+ End="0,54.1875" />
+ Id="Package\Acquisition File Interest Holders Properties.Paths[OLE DB Command Error Output]"
+ TopLeft="427.5,2432.3125">
+ Id="Package\Acquisition File Interest Holders Properties.Paths[NULL]"
+ TopLeft="249.666666666667,1291.75">
+ End="-86.1666666666667,157.875">
+ End="0,63.1510088272383" />
+
+
+
+
+ Id="Package\Acquisition File Interest Holders Properties.Paths[NOT NULL]"
+ TopLeft="250.5,1706.5">
+ End="37,54.1875">
@@ -276255,124 +279846,136 @@ where [refTable].[PERSON_ID] = ?
+ Point3="4,30.84375" />
+ End="33,30.84375" />
+ Point1="33,30.84375"
+ Point2="37,30.84375"
+ Point3="37,34.84375" />
+ End="37,54.1875" />
+ Id="Package\Acquisition File Interest Holders Properties.Paths[Lookup No Match Output4]"
+ TopLeft="332.833333333333,1395.4375">
+ End="27.6666666666667,54.1875">
+ End="0,21.0122437357631" />
+ Point1="0,21.0122437357631"
+ Point2="0,25.0122437357631"
+ Point3="4,25.0122437357631" />
+ End="23.6666666666667,25.0122437357631" />
+ Point1="23.6666666666667,25.0122437357631"
+ Point2="27.6666666666667,25.0122437357631"
+ Point3="27.6666666666667,29.0122437357631" />
+ End="27.6666666666667,54.1875" />
+ Id="Package\Acquisition File Interest Holders Properties.Paths[Lookup No Match Output3]"
+ TopLeft="114.5,773.3125">
+ End="-43,54.1875">
+ End="0,26.84375" />
+ Point1="0,26.84375"
+ Point2="0,30.84375"
+ Point3="-4,30.84375" />
+ End="-39,30.84375" />
+ Point1="-39,30.84375"
+ Point2="-43,30.84375"
+ Point3="-43,34.84375" />
+ End="-43,54.1875" />
+ Id="Package\Acquisition File Interest Holders Properties.Paths[Lookup No Match Output2]"
+ TopLeft="142.166666666667,1499.125">
+ End="87.6666666666667,54.1875">
+ End="0,26.8304035049762" />
+
+
+
+
+ Id="Package\Acquisition File Interest Holders Properties.Paths[Lookup No Match Output1]"
+ TopLeft="427.5,2224.9375">
+ Id="Package\Acquisition File Interest Holders Properties.Paths[Lookup No Match Output]"
+ TopLeft="339.166666666667,1499.125">
+ End="-68.0000000000001,54.1875">
+ End="0,26.8304035049762" />
+
+
+
+
+ Id="Package\Acquisition File Interest Holders Properties.Paths[Lookup Match Output9]"
+ TopLeft="114.5,773.3125">
+ End="-43,54.1875">
+ End="0,26.84375" />
+
+
+
+
+ Id="Package\Acquisition File Interest Holders Properties.Paths[Lookup Match Output8]"
+ TopLeft="388.166666666667,1395.4375">
+ End="51.7333333333333,468.9375">
+ End="0,213.471238577023" />
+
+
+
+
+ Id="Package\Acquisition File Interest Holders Properties.Paths[Lookup Match Output7]"
+ TopLeft="381.833333333334,1499.125">
+ End="82.8666666666667,365.25">
+ End="0,223.864004445856" />
+
+
+
+
+ Id="Package\Acquisition File Interest Holders Properties.Paths[Lookup Match Output6]"
+ TopLeft="274.5,877">
+ End="19.1666666666666,54.1875">
+ End="0,32.5372191011236" />
+
+
+
+
+ Id="Package\Acquisition File Interest Holders Properties.Paths[Lookup Match Output5]"
+ TopLeft="274.5,1188.0625">
+ Id="Package\Acquisition File Interest Holders Properties.Paths[Lookup Match Output4]"
+ TopLeft="287.5,1810.1875">
+ End="127.6,54.1875">
+ End="0,30.0415969899666" />
+
+
+
+
+ Id="Package\Acquisition File Interest Holders Properties.Paths[Lookup Match Output3]"
+ TopLeft="145.5,669.625">
+ End="-31,54.1875">
+ End="0,26.84375" />
+ Point1="0,26.84375"
+ Point2="0,30.84375"
+ Point3="-4,30.84375" />
+ End="-27,30.84375" />
+ Point1="-27,30.84375"
+ Point2="-31,30.84375"
+ Point3="-31,34.84375" />
+ End="-31,54.1875" />
+ Id="Package\Acquisition File Interest Holders Properties.Paths[Lookup Match Output2]"
+ TopLeft="184.833333333333,1499.125">
+ End="205.466666666667,365.25">
+ End="0,223.864004445856" />
+
+
+
+
+ Id="Package\Acquisition File Interest Holders Properties.Paths[Lookup Match Output1]"
+ TopLeft="274.5,462.25">
+ Id="Package\Acquisition File Interest Holders Properties.Paths[Lookup Match Output]"
+ TopLeft="427.5,2017.5625">
+ Id="Package\Acquisition File Interest Holders Properties.Paths[IS_PER]"
+ TopLeft="293.333333333333,565.9375">
+ End="-18.8333333333333,261.5625">
+ End="0,105.731851549755" />
+ Point1="0,105.731851549755"
+ Point2="0,109.731851549755"
+ Point3="-4,109.731851549755" />
+ End="-14.8333333333333,109.731851549755" />
+ Point1="-14.8333333333333,109.731851549755"
+ Point2="-18.8333333333333,109.731851549755"
+ Point3="-18.8333333333333,113.731851549755" />
+ End="-18.8333333333333,261.5625" />
+ Id="Package\Acquisition File Interest Holders Properties.Paths[IS_ORG]"
+ TopLeft="255.666666666667,565.9375">
+ End="-110.166666666667,54.1875">
+ End="0,21.1580342577488" />
+ Point1="0,21.1580342577488"
+ Point2="0,25.1580342577488"
+ Point3="-4,25.1580342577488" />
+ End="-106.166666666667,25.1580342577488" />
+ Point1="-106.166666666667,25.1580342577488"
+ Point2="-110.166666666667,25.1580342577488"
+ Point3="-110.166666666667,29.1580342577488" />
+ End="-110.166666666667,54.1875" />
+ Id="Package\Acquisition File Interest Holders Properties.Paths[IS_NOT_OWNER]"
+ TopLeft="274.5,151.1875">
+ End="0,54.1875">
-
-
-
-
+ End="0,54.1875" />
+ Id="Package\Acquisition File Interest Holders Properties.Paths[Derived Column Output3]"
+ TopLeft="274.5,1084.375">
+ End="0,54.1875">
-
-
-
-
+ End="0,54.1875" />
+ Id="Package\Acquisition File Interest Holders Properties.Paths[Derived Column Output2]"
+ TopLeft="274.5,358.5625">
+ End="0,54.1875">
-
-
-
-
+ End="0,54.1875" />
+ Id="Package\Acquisition File Interest Holders Properties.Paths[Derived Column Output1]"
+ TopLeft="427.5,2121.25">
+ Id="Package\Acquisition File Interest Holders Properties.Paths[Derived Column Output]"
+ TopLeft="427.5,2536">
+ End="0,54.1875">
-
-
-
+ End="0,54.1875" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+ End="0,54.1875" />
+ Id="Package\Acquisition File Interest Holders Properties.Paths[BOTH_NULL]"
+ TopLeft="274.5,1291.75">
+ End="-24,261.5625">
+ End="0,130.53125" />
+ Point1="0,130.53125"
+ Point2="0,134.53125"
+ Point3="-4,134.53125" />
+ End="-20,134.53125" />
+ Point1="-20,134.53125"
+ Point2="-24,134.53125"
+ Point3="-24,138.53125" />
+ End="-24,261.5625" />
@@ -276958,10 +280621,6 @@ where [refTable].[PERSON_ID] = ?
Size="197,42"
Id="Package\Acquisition File Interest Holders Property Types\Lookup Primary Contact"
TopLeft="143.5,731.3125" />
-
Size="132,42"
Id="Package\Acquisition File Interest Holders Property Types\Union All 1"
TopLeft="219,835" />
+
+
+
+ Size="108,42"
+ Id="Package\Acquisition File Interest Holders Property Types\Sort 2"
+ TopLeft="384,2390.3125" />
Size="249,42"
Id="Package\Acquisition File Interest Holders Property Types\Lookup Existing PRP Interest Type"
TopLeft="313.5,2597.6875" />
-
+
Size="136,42"
Id="Package\Acquisition File Interest Holders Property Types\Lookup PID"
TopLeft="303,1457.125" />
-
+ Size="164,42"
+ Id="Package\Acquisition File Interest Holders Property Types\ETL Error Log 1 1"
+ TopLeft="356,2908.75" />
Size="158,42"
Id="Package\Acquisition File Interest Holders Property Types\Lookup Property"
TopLeft="219,1768.1875" />
-
Size="182,42"
Id="Package\Acquisition File Interest Holders Property Types\Lookup Interest Type"
TopLeft="347,2494" />
-
+
+ TopLeft="438,2328.625">
+ TopLeft="285,877">
+ End="19.1666666666666,54.1875">
+ End="0,32.5372191011236" />
+
+
+
+
@@ -277152,30 +280827,18 @@ where [refTable].[PERSON_ID] = ?
+ TopLeft="285,980.6875">
+ End="0,54.1875">
-
-
-
-
+ End="0,54.1875" />
@@ -277188,7 +280851,7 @@ where [refTable].[PERSON_ID] = ?
+ TopLeft="438,1913.875">
RelativePosition="Any" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -277314,12 +281013,12 @@ where [refTable].[PERSON_ID] = ?
+ Id="Package\Acquisition File Interest Holders Property Types.Paths[Lookup No Match Output4]"
+ TopLeft="343.333333333333,1395.4375">
+ End="27.6666666666667,54.1875">
+ End="0,21.0122437357631" />
+ Point1="0,21.0122437357631"
+ Point2="0,25.0122437357631"
+ Point3="4,25.0122437357631" />
+ End="23.6666666666667,25.0122437357631" />
+ Point1="23.6666666666667,25.0122437357631"
+ Point2="27.6666666666667,25.0122437357631"
+ Point3="27.6666666666667,29.0122437357631" />
+ End="27.6666666666667,54.1875" />
+ Id="Package\Acquisition File Interest Holders Property Types.Paths[Lookup No Match Output3]"
+ TopLeft="438,2639.6875">
+ End="0,54.1875">
-
-
-
-
+ End="0,54.1875" />
+ Id="Package\Acquisition File Interest Holders Property Types.Paths[Lookup No Match Output2]"
+ TopLeft="242,773.3125">
+ End="43.0000000000001,54.1875">
+ End="0,26.84375" />
+ Point1="0,26.84375"
+ Point2="0,30.84375"
+ Point3="4,30.84375" />
+ End="39.0000000000001,30.84375" />
+ Point1="39.0000000000001,30.84375"
+ Point2="43.0000000000001,30.84375"
+ Point3="43.0000000000001,34.84375" />
+ End="43.0000000000001,54.1875" />
+ Id="Package\Acquisition File Interest Holders Property Types.Paths[Lookup No Match Output]"
+ TopLeft="349.666666666667,1499.125">
+ End="-67.9999999999999,54.1875">
+ End="0,26.8304035049762" />
+ Point1="0,26.8304035049762"
+ Point2="0,30.8304035049762"
+ Point3="-4,30.8304035049762" />
+ End="-63.9999999999999,30.8304035049762" />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ Point1="-63.9999999999999,30.8304035049762"
+ Point2="-67.9999999999999,30.8304035049762"
+ Point3="-67.9999999999999,34.8304035049762" />
+ End="-67.9999999999999,54.1875" />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ Id="Package\Acquisition File Interest Holders Property Types.Paths[Lookup Match Output10]"
+ TopLeft="398.666666666667,1395.4375">
+ End="70.3333333333335,468.9375">
+ End="0,264.026037925585" />
+ Point1="0,264.026037925585"
+ Point2="0,268.026037925585"
+ Point3="4,268.026037925585" />
+ End="66.3333333333335,268.026037925585" />
+ Point1="66.3333333333335,268.026037925585"
+ Point2="70.3333333333335,268.026037925585"
+ Point3="70.3333333333335,272.026037925585" />
+ End="70.3333333333335,468.9375" />
+ Id="Package\Acquisition File Interest Holders Property Types.Paths[Lookup Match Output8]"
+ TopLeft="392.333333333333,1499.125">
+ End="76.6666666666668,365.25">
+ End="0,206.269230769231" />
+ Point1="0,206.269230769231"
+ Point2="0,210.269230769231"
+ Point3="4,210.269230769231" />
+ End="72.6666666666668,210.269230769231" />
+ Point1="72.6666666666668,210.269230769231"
+ Point2="76.6666666666668,210.269230769231"
+ Point3="76.6666666666668,214.269230769231" />
+ End="76.6666666666668,365.25" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Id="Package\Acquisition File Interest Holders Property Types.Paths[Lookup Match Output4]"
+ TopLeft="438,2536">
+ End="0,54.1875">
-
-
-
-
+ End="0,54.1875" />
+ Id="Package\Acquisition File Interest Holders Property Types.Paths[Lookup Match Output]"
+ TopLeft="211,669.625">
+ End="31,54.1875">
+ End="0,26.84375" />
+ Point1="0,26.84375"
+ Point2="0,30.84375"
+ Point3="4,30.84375" />
+ End="27,30.84375" />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ Point1="27,30.84375"
+ Point2="31,30.84375"
+ Point3="31,34.84375" />
+ End="31,54.1875" />
@@ -278028,7 +281691,7 @@ where [refTable].[PERSON_ID] = ?
+ TopLeft="285,1084.375">
+ TopLeft="144,358.5625">
+ TopLeft="438,2847.0625">
+ TopLeft="438,2121.25">
RelativePosition="Any" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -280077,30 +283776,30 @@ where [refTable].[PERSON_ID] = ?
+ TopLeft="118.5,250">
+ End="210.5,31.5">
+ End="0,23.1016949152542" />
+ Point1="0,23.1016949152542"
+ Point2="0,27.1016949152542"
+ Point3="4,27.1016949152542" />
+ End="206.5,27.1016949152542" />
+ Point1="206.5,27.1016949152542"
+ Point2="210.5,27.1016949152542"
+ Point3="210.5,31.1016949152542" />
+ End="210.5,31.5" />
@@ -280209,30 +283908,18 @@ where [refTable].[PERSON_ID] = ?
+ TopLeft="358.429491997235,502.17526703688">
+ End="0,25.582792260835">
-
-
-
-
+ End="0,25.582792260835" />
@@ -280245,18 +283932,30 @@ where [refTable].[PERSON_ID] = ?
+ TopLeft="1176.5,325.099989201945">
+ End="-744,-9.43332253527831">
+ End="-430.353211009175,0" />
+
+
+
+
@@ -280933,6 +284632,78 @@ where [refTable].[PERSON_ID] = ?
TopLeft="1353.5,821.5" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Id="Package\Load Acquisition Contact Method.Paths[Derived Column Output5]"
+ TopLeft="1115.5,353.5">
+ End="37.2,52.5">
@@ -281058,13 +284829,13 @@ where [refTable].[PERSON_ID] = ?
Point2="0,41.7721518987342"
Point3="4,41.7721518987342" />
+ End="33.2,41.7721518987342" />
+ Point1="33.2,41.7721518987342"
+ Point2="37.2,41.7721518987342"
+ Point3="37.2,45.7721518987342" />
+ End="37.2,52.5" />
@@ -281076,14 +284847,14 @@ where [refTable].[PERSON_ID] = ?
+ Id="Package\Load Acquisition Contact Method.Paths[Derived Column Output4]"
+ TopLeft="787.5,353.5">
+ End="340.4,52.5">
@@ -281094,13 +284865,13 @@ where [refTable].[PERSON_ID] = ?
Point2="0,33.1103678929766"
Point3="4,33.1103678929766" />
+ End="336.4,33.1103678929766" />
+ Point1="336.4,33.1103678929766"
+ Point2="340.4,33.1103678929766"
+ Point3="340.4,37.1103678929766" />
+ End="340.4,52.5" />
@@ -281112,31 +284883,31 @@ where [refTable].[PERSON_ID] = ?
+ Id="Package\Load Acquisition Contact Method.Paths[Derived Column Output3]"
+ TopLeft="3286.5,353.5">
+ End="-303.6,52.5000000000005">
+ End="0,29.1103678929769" />
+ Point1="0,29.1103678929769"
+ Point2="0,33.1103678929769"
+ Point3="-4,33.1103678929769" />
+ End="-299.6,33.1103678929769" />
+ Point1="-299.6,33.1103678929769"
+ Point2="-303.6,33.1103678929769"
+ Point3="-303.6,37.1103678929769" />
+ End="-303.6,52.5000000000005" />
@@ -281148,7 +284919,7 @@ where [refTable].[PERSON_ID] = ?
+ Id="Package\Load Acquisition Contact Method.Paths[Data Conversion Output20]"
+ TopLeft="787.5,251.5">
+ End="0,52.5">
-
-
-
-
+ End="0,52.5" />
@@ -281292,31 +285051,43 @@ where [refTable].[PERSON_ID] = ?
+ Id="Package\Load Acquisition Contact Method.Paths[Data Conversion Output19]"
+ TopLeft="3286.5,251.5">
+ End="0,52.5">
-
-
-
+ End="0,52.5" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+ End="0,52.5" />
@@ -281328,8 +285099,8 @@ where [refTable].[PERSON_ID] = ?
+ Id="Package\Load Acquisition Contact Method.Paths[Data Conversion Output17]"
+ TopLeft="461.5,251.5">
+ Id="Package\Load Acquisition Contact Method.Paths[Data Conversion Output16]"
+ TopLeft="2347.5,251.5">
+ Id="Package\Load Acquisition Contact Method.Paths[Data Conversion Output15]"
+ TopLeft="2041.5,863.5">
+ Id="Package\Load Acquisition Contact Method.Paths[Data Conversion Output14]"
+ TopLeft="2655.5,251.5">
+ Id="Package\Load Acquisition Contact Method.Paths[Data Conversion Output13]"
+ TopLeft="4490.5,251.5">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Id="Package\Load Acquisition Contact Method.Paths[Data Conversion Output11]"
+ TopLeft="4014.5,251.5">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Id="Package\Load Acquisition Contact Method.Paths[Data Conversion Output9]"
+ TopLeft="1738.5,251.5">
RelativePosition="Any" />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -281785,30 +285472,6 @@ where [refTable].[PERSON_ID] = ?
-
-
-
-
-
-
-
-
-
-
-
-
-
-
RelativePosition="Any" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -282181,7 +285880,7 @@ where [refTable].[PERSON_ID] = ?
+ TopLeft="1431.5,149.5">
+ TopLeft="3599.5,149.5">
+ TopLeft="787.5,149.5">
+ TopLeft="4257.5,47.4999999999995">
+ TopLeft="2044.5,149.5">
+ TopLeft="1738.5,149.5">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
RelativePosition="Any" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -283093,7 +286792,43 @@ where [refTable].[PERSON_ID] = ?
+ TopLeft="4257.5,353.5">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Id="Package\Load Acquisition Contact Method.Paths[Derived Column Output25]"
+ TopLeft="2317.5,557.5">
+ End="-261.5,52.5000000000002">
+ End="0,29.0941704035876" />
+ Point1="0,29.0941704035876"
+ Point2="0,33.0941704035876"
+ Point3="-4,33.0941704035876" />
+ End="-257.5,33.0941704035876" />
+ Point1="-257.5,33.0941704035876"
+ Point2="-261.5,33.0941704035876"
+ Point3="-261.5,37.0941704035876" />
+ End="-261.5,52.5000000000002" />
@@ -283152,7 +286887,31 @@ where [refTable].[PERSON_ID] = ?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Id="Package\Load Acquisition Contact Method.Paths[Derived Column Output21]"
+ TopLeft="461.5,353.5">
+ End="641.599999999999,52.5">
+ End="0,29.1103678929766" />
+ Point1="0,29.1103678929766"
+ Point2="0,33.1103678929766"
+ Point3="4,33.1103678929766" />
+ End="637.599999999999,33.1103678929766" />
+ Point1="637.599999999999,33.1103678929766"
+ Point2="641.599999999999,33.1103678929766"
+ Point3="641.599999999999,37.1103678929766" />
+ End="641.599999999999,52.5" />
@@ -283260,19 +287019,31 @@ where [refTable].[PERSON_ID] = ?
+ Id="Package\Load Acquisition Contact Method.Paths[Derived Column Output20]"
+ TopLeft="1604.5,863.5">
+ End="12.4000000000001,52.5">
+ End="0,29.1103678929766" />
+
+
+
+
@@ -283284,8 +287055,8 @@ where [refTable].[PERSON_ID] = ?
+ Id="Package\Load Acquisition Contact Method.Paths[Derived Column Output19]"
+ TopLeft="2043,761.5">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
RelativePosition="Any" />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -283561,30 +287260,30 @@ where [refTable].[PERSON_ID] = ?
+ TopLeft="1431.5,353.5">
+ End="575.8,52.5">
+ End="0,37.7721518987342" />
+ Point1="0,37.7721518987342"
+ Point2="0,41.7721518987342"
+ Point3="4,41.7721518987342" />
+ End="571.8,41.7721518987342" />
+ Point1="571.8,41.7721518987342"
+ Point2="575.8,41.7721518987342"
+ Point3="575.8,45.7721518987342" />
+ End="575.8,52.5" />
@@ -283633,30 +287332,30 @@ where [refTable].[PERSON_ID] = ?
+ TopLeft="2044.5,353.5">
+ End="12.4000000000001,52.5">
+ End="0,29.1103678929766" />
+ Point1="0,29.1103678929766"
+ Point2="0,33.1103678929766"
+ Point3="4,33.1103678929766" />
+ End="8.40000000000009,33.1103678929766" />
+ Point1="8.40000000000009,33.1103678929766"
+ Point2="12.4000000000001,33.1103678929766"
+ Point3="12.4000000000001,37.1103678929766" />
+ End="12.4000000000001,52.5" />
@@ -283679,6 +287378,10 @@ where [refTable].[PERSON_ID] = ?
Size="155,42"
Id="Package\Load Acquisition File\ETL Error Log 1 1"
TopLeft="346,1535.5" />
+
Size="159,42"
Id="Package\Load Acquisition File\Data Conversion"
TopLeft="344,923.5" />
+
Id="Package\Load Acquisition File\Derived Column 1 1 1 1"
TopLeft="340,1433.5" />
+ Size="132,42"
+ Id="Package\Load Acquisition File\Union All 1"
+ TopLeft="214.5,719.5" />
+
+
Size="233,42"
Id="Package\Load Acquisition File\PAIMS AGENT_ASSIGNMENT"
TopLeft="345,5.5" />
-
-
-
Size="170,42"
Id="Package\Load Acquisition File\Data Conversion 1"
TopLeft="338.5,107.5" />
-
@@ -284065,30 +287764,6 @@ where [refTable].[PERSON_ID] = ?
-
-
-
-
-
-
-
-
-
-
-
-
-
-
RelativePosition="Any" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -284342,6 +288041,29 @@ where [refTable].[PERSON_ID] = ?
+
+
+
+ OverwriteParamsSQLProp
+ false
+
+
+ UsedTableName
+ [dbo].[PIMS_PRODUCT]
+
+
+ TableInfoObjectType
+ 0
+
+
+ DataSourceViewID
+
+
+
@@ -284905,18 +288627,10 @@ where [refTable].[PERSON_ID] = ?
Size="99,42"
Id="Package\Load Acquisition File Person\Sort"
TopLeft="613,689" />
-
-
Size="282,42"
Id="Package\Load Acquisition File Person\Insert PIMS ACQUISITION FILE PERSON"
TopLeft="521.971804098171,863.058593721412" />
+
Size="309,42"
Id="Package\Load Acquisition File Person\Lookup exsiting PIMS_ACQ File Person records"
TopLeft="506.833333333334,786.133333333334" />
+
Size="146,42"
Id="Package\Load Acquisition File Person\ETL Error Log 1 1 1"
TopLeft="598,1057.80698460138" />
+
Size="167,42"
Id="Package\Load Acquisition File Person\Derived Column 1"
TopLeft="202.812813593039,948.461200034613" />
-
Size="290,42"
Id="Package\Load Acquisition File Person\Update PIMS ACQUISITION FILE PERSON"
TopLeft="130.166666666667,871.466666666667" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -285008,7 +288790,9 @@ where [refTable].[PERSON_ID] = ?
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+ TopLeft="653.767788107294,461">
+ End="0,41.67204139814">
+ End="0,41.67204139814" />
@@ -285371,61 +289169,61 @@ where [refTable].[PERSON_ID] = ?
+ TopLeft="332.5,247">
+ End="312.25,73.5">
+ End="0,48.8541114058355" />
+
+
+
+
+ TopLeft="506.833333333334,804.6">
+ End="-61.4333333333333,0">
-
-
-
-
+ End="-61.4333333333333,0" />
@@ -285484,63 +289282,9 @@ where [refTable].[PERSON_ID] = ?
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -285570,7 +289314,7 @@ where [refTable].[PERSON_ID] = ?
OverwriteParamsSQLProp
false
+ type="q2:string">false
UsedTableName
@@ -285580,7 +289324,7 @@ where [refTable].[PERSON_ID] = ?
TableInfoObjectType
0
+ type="q4:string">0
DataSourceViewID
@@ -285588,46 +289332,46 @@ where [refTable].[PERSON_ID] = ?
+ design-time-name="Package\Load Acquisition File Person\Expropriation Agent">
-
- OverwriteParamsSQLProp
- true
-
-
- UsedTableName
- [dbo].[PIMS_PERSON]
-
-
- TableInfoObjectType
- 0
-
DataSourceViewID
+ design-time-name="Package\Load Acquisition File Person\Insert PIMS ACQUISITION FILE PERSON">
DataSourceViewID
+
+ TableInfoObjectType
+ Table
+
+ design-time-name="Package\Load Acquisition File Person\Lookup Person ID 2">
- DataSourceViewID
+ OverwriteParamsSQLProp
+ true
+
+
+ UsedTableName
+ [dbo].[PIMS_PERSON]
TableInfoObjectType
Table
+ type="q4:string">0
+
+
+ DataSourceViewID
@@ -285637,7 +289381,7 @@ where [refTable].[PERSON_ID] = ?
OverwriteParamsSQLProp
false
+ type="q2:string">false
UsedTableName
@@ -285647,7 +289391,7 @@ where [refTable].[PERSON_ID] = ?
TableInfoObjectType
0
+ type="q4:string">0
DataSourceViewID
@@ -285947,6 +289691,42 @@ where [refTable].[PERSON_ID] = ?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
RelativePosition="Any" />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ TopLeft="1134.5,251.5">
+ End="0,52.5">
-
-
-
-
+ End="0,52.5" />
+ TopLeft="360.5,761.5">
+ TopLeft="860.5,251.5">
+ TopLeft="628.5,251.5">
+ End="-14,52.5">
+ End="0,26" />
+
+
+
+
@@ -287765,6 +291509,30 @@ where [refTable].[PERSON_ID] = ?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
RelativePosition="Any" />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -288538,7 +292282,7 @@ where [refTable].[PERSON_ID] = ?
TopLeft="763,107.5" />
+ TopLeft="646.333333333333,1577.5">
+ TopLeft="337.666666666667,1679.5">
+ End="-235.666666666667,52.5">
+ End="0,20.223602484472" />
+
+
+
+
+ TopLeft="690,1373.5">
+ End="0,52.5">
-
-
-
-
+ End="0,52.5" />
@@ -288838,6 +292582,30 @@ where [refTable].[PERSON_ID] = ?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
RelativePosition="Any" />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ TopLeft="921,1883.5">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ TopLeft="690,1067.5">
RelativePosition="Any" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -289738,30 +293482,6 @@ where [refTable].[PERSON_ID] = ?
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ Id="Package\Load Acquisition Persons and Organizations.Paths[OLE DB Source Output4]"
+ TopLeft="1343,47.5">
+ Id="Package\Load Acquisition Persons and Organizations.Paths[OLE DB Source Output3]"
+ TopLeft="853,47.5">
RelativePosition="Any" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -290062,7 +293806,7 @@ where [refTable].[PERSON_ID] = ?
+ TopLeft="381,1781.5">
-
+ Size="287,42"
+ Id="Package\Load Agreement\PIMS_AGREEMENT records to be updated"
+ TopLeft="525.592318611596,451.572169581814" />
Size="156,42"
Id="Package\Load Agreement\Derived Column"
TopLeft="137.5,603.285714285714" />
+
+ Size="157,42"
+ Id="Package\Load Agreement\OLE DB Source"
+ TopLeft="128,1" />
+ Size="261,42"
+ Id="Package\Load Agreement\Lookup existing PIMS_AGREEMENT"
+ TopLeft="85.5,443.586688905423" />
+ Size="146,42"
+ Id="Package\Load Agreement\ETL Error Log 1"
+ TopLeft="592.833349930932,670.234105984857" />
+
Id="Package\Load Agreement\Data Conversion"
TopLeft="124.461538461538,78.007692307692" />
+ Size="174,42"
+ Id="Package\Load Agreement\Remove Duplicates"
+ TopLeft="133.5,369.7" />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -290364,7 +293976,7 @@ where [refTable].[PERSON_ID] = ?
@@ -290387,7 +293999,9 @@ where [refTable].[PERSON_ID] = ?
-
+
-
+
-
+
-
+
-
+
-
+
RelativePosition="Any" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OverwriteParamsSQLProp
+ true
+
+
+ UsedTableName
+ [dbo].[PIMS_AGREEMENT]
+
+
+ TableInfoObjectType
+ 0
+
+
+ DataSourceViewID
+
+
+
+
+
+
+ DataSourceViewID
+
+
+
OverwriteParamsSQLProp
false
+ type="q2:string">false
@@ -291194,25 +294981,25 @@ where [refTable].[PERSON_ID] = ?
+ TopLeft="395.5,413.131182140978">
+ End="100.5,0">
+ End="100.5,0" />
@@ -291242,25 +295029,25 @@ where [refTable].[PERSON_ID] = ?
+ TopLeft="418,708.347848807646">
+ End="67.4999999999999,0">
+ End="67.4999999999999,0" />
@@ -291290,25 +295077,25 @@ where [refTable].[PERSON_ID] = ?
+ TopLeft="697.354214020157,1039.6723018495">
+ End="0,24.036027847777">
+ End="0,24.036027847777" />
@@ -291842,109 +295629,121 @@ where [refTable].[PERSON_ID] = ?
+ TopLeft="453.5,1331.5" />
+ TopLeft="364,1433.5" />
+ TopLeft="578,1025.5" />
+
+ TopLeft="356.5,617.5" />
+ TopLeft="90.5000000000002,1739.5" />
-
-
+ TopLeft="624.5,515.5" />
+ TopLeft="468,1229.5" />
+ TopLeft="5.50000000000023,1535.5" />
+ Size="199,42"
+ Id="Package\Load Property Acquisition File\APP_CREATE_USERID"
+ TopLeft="603.5,413.5" />
+ TopLeft="649.5,311.5" />
+
+
+
+ TopLeft="455.5,1127.5" />
+ TopLeft="100,1841.5" />
+ TopLeft="506,719.5" />
+ TopLeft="764,719.5" />
+ TopLeft="618,209.5" />
-
-
+ TopLeft="435,1739.5" />
+ TopLeft="439,1637.5" />
+ TopLeft="401.5,1535.5" />
+ TopLeft="623.5,107.5" />
+ TopLeft="703,863.5">
+ End="-8.99999999999989,52.5">
+ End="0,26" />
+
+
+
+
@@ -291957,7 +295756,7 @@ where [refTable].[PERSON_ID] = ?
+ TopLeft="517,1169.5">
+ TopLeft="703,353.5">
+ TopLeft="517,1271.5">
+ Id="Package\Load Property Acquisition File.Paths[PID_NOT_NULL]"
+ TopLeft="665.75,557.5">
+ End="-220.75,52.5">
+ End="0,16.6680584551148" />
+
+
+
+
+ Id="Package\Load Property Acquisition File.Paths[OLE DB Source Output]"
+ TopLeft="703,47.5">
+ Id="Package\Load Property Acquisition File.Paths[OLE DB Destination Error Output]"
+ TopLeft="517,1577.5">
+ Id="Package\Load Property Acquisition File.Paths[OLE DB Command Error Output]"
+ TopLeft="173,1679.5">
+ End="0,52.5">
-
-
-
-
+ End="0,52.5" />
+ Id="Package\Load Property Acquisition File.Paths[NULL]"
+ TopLeft="740.25,557.5">
+ End="130.75,154.5">
+ End="0,51.80375782881" />
+ Point1="0,51.80375782881"
+ Point2="0,55.80375782881"
+ Point3="4,55.80375782881" />
+ End="126.75,55.80375782881" />
+ Point1="126.75,55.80375782881"
+ Point2="130.75,55.80375782881"
+ Point3="130.75,59.80375782881" />
+ End="130.75,154.5" />
+ TopLeft="694,965.5">
+ End="-37,52.5">
+ End="0,26" />
+ Point1="0,26"
+ Point2="0,30"
+ Point3="-4,30" />
+ End="-33,30" />
+ Point1="-33,30"
+ Point2="-37,30"
+ Point3="-37,34" />
+ End="-37,52.5" />
+ TopLeft="595.333333333333,761.5">
+ End="76.6666666666666,52.5">
+ End="0,29.8461538461538" />
+ Point1="0,29.8461538461538"
+ Point2="0,33.8461538461538"
+ Point3="4,33.8461538461538" />
+ End="72.6666666666666,33.8461538461538" />
+ Point1="72.6666666666666,33.8461538461538"
+ Point2="76.6666666666666,33.8461538461538"
+ Point3="76.6666666666666,37.8461538461538" />
+ End="76.6666666666666,52.5" />
+ TopLeft="473.166666666667,659.5">
+ End="100.833333333333,52.5">
+ End="0,20.3225083986562" />
+ Point1="0,20.3225083986562"
+ Point2="0,24.3225083986562"
+ Point3="4,24.3225083986562" />
+ End="96.8333333333334,24.3225083986562" />
+ Point1="96.8333333333334,24.3225083986562"
+ Point2="100.833333333333,24.3225083986562"
+ Point3="100.833333333333,28.3225083986562" />
+ End="100.833333333333,52.5" />
+ TopLeft="905.333333333333,761.5">
+ End="-171.333333333333,52.5">
+ End="0,29.6916051984545" />
+ Point1="0,29.6916051984545"
+ Point2="0,33.6916051984545"
+ Point3="-4,33.6916051984545" />
+ End="-167.333333333333,33.6916051984545" />
+ Point1="-167.333333333333,33.6916051984545"
+ Point2="-171.333333333333,33.6916051984545"
+ Point3="-171.333333333333,37.6916051984545" />
+ End="-171.333333333333,52.5" />
+ TopLeft="173,1577.5">
+ End="0,52.5">
-
-
-
-
+ End="0,52.5" />
+ TopLeft="566.666666666667,1475.5">
+ End="-49.6666666666666,52.5">
+ End="0,20.1872561768531" />
+
+
+
+
+ TopLeft="416.833333333333,659.5">
+ End="65.6666666666668,460.5">
+ End="0,280.674426229508" />
+ Point1="0,280.674426229508"
+ Point2="0,284.674426229508"
+ Point3="4,284.674426229508" />
+ End="61.6666666666668,284.674426229508" />
+ Point1="61.6666666666668,284.674426229508"
+ Point2="65.6666666666668,284.674426229508"
+ Point3="65.6666666666668,288.674426229508" />
+ End="65.6666666666668,460.5" />
+ TopLeft="703,251.5">
+ TopLeft="467.333333333334,1475.5">
+ End="-294.333333333333,52.5">
@@ -292454,32 +296253,32 @@ where [refTable].[PERSON_ID] = ?
Point2="0,24.1872561768531"
Point3="-4,24.1872561768531" />
+ End="-290.333333333333,24.1872561768531" />
+ Point1="-290.333333333333,24.1872561768531"
+ Point2="-294.333333333333,24.1872561768531"
+ Point3="-294.333333333333,28.1872561768531" />
+ End="-294.333333333333,52.5" />
+ TopLeft="836.666666666667,761.5">
+ End="-285.166666666667,358.5">
@@ -292488,34 +296287,34 @@ where [refTable].[PERSON_ID] = ?
+ Point3="-4,222.296004349008" />
+ End="-281.166666666667,222.296004349008" />
+ Point1="-281.166666666667,222.296004349008"
+ Point2="-285.166666666667,222.296004349008"
+ Point3="-285.166666666667,226.296004349008" />
+ End="-285.166666666667,358.5" />
+ TopLeft="657,1067.5">
+ End="-128.5,52.5">
@@ -292524,34 +296323,34 @@ where [refTable].[PERSON_ID] = ?
+ Point3="-4,33.0941704035874" />
+ End="-124.5,33.0941704035874" />
+ Point1="-124.5,33.0941704035874"
+ Point2="-128.5,33.0941704035874"
+ Point3="-128.5,37.0941704035874" />
+ End="-128.5,52.5" />
+ TopLeft="552.666666666667,761.5">
+ End="-47.1666666666665,358.5">
@@ -292560,28 +296359,28 @@ where [refTable].[PERSON_ID] = ?
+ Point3="-4,167.531100478469" />
+ End="-43.1666666666665,167.531100478469" />
+ Point1="-43.1666666666665,167.531100478469"
+ Point2="-47.1666666666665,167.531100478469"
+ Point3="-47.1666666666665,171.531100478469" />
+ End="-47.1666666666665,358.5" />
+ TopLeft="517,1679.5">
+ TopLeft="703,455.5">
+ TopLeft="517,1373.5">
+ TopLeft="173,1781.5">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Id="Package\Load Property Acquisition File.Paths[BOTH NULL]"
+ TopLeft="703,557.5">
+ End="0,256.5">
+ End="0,256.5" />
+
+
+
+ DataSourceViewID
+
+
+
@@ -292711,18 +296542,14 @@ where [refTable].[PERSON_ID] = ?
Size="169,42"
Id="Package\Load Takes\Insert PIMS_TAKE"
TopLeft="131,1535.5" />
-
-
+
Size="174,42"
Id="Package\Load Takes\Lookup Land Parcel"
TopLeft="458.5,515.5" />
+
-
Id="Package\Load Takes\Union All 1"
TopLeft="456,1032" />
+ Size="107,42"
+ Id="Package\Load Takes\Sort 1"
+ TopLeft="76.0000000000001,311.5" />
+
+ Size="164,42"
+ Id="Package\Load Takes\ETL Error Log 1 1"
+ TopLeft="133.5,1739.5" />
+
+ Size="248,42"
+ Id="Package\Load Takes\Lookup PIMS_ACQUISITION_FILE"
+ TopLeft="5.50000000000006,209.5" />
Id="Package\Load Takes\Audit Trail"
TopLeft="420,1331.5" />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ Size="256,42"
+ Id="Package\Load Takes\Lookup existing PIMS_TAKE records"
+ TopLeft="355.5,1433.5" />
@@ -293118,7 +296877,9 @@ where [refTable].[PERSON_ID] = ?
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DataSourceViewID
+
+
+ TableInfoObjectType
+ Table
+
+
+
@@ -293947,6 +297809,42 @@ where [refTable].[PERSON_ID] = ?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Id="Package\Payees.Paths[Lookup Match Output2]"
+ TopLeft="476,353.5">
+ End="0,52.5">
-
-
-
-
+ End="0,52.5" />
RelativePosition="Any" />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -294540,11 +298402,15 @@ where [refTable].[PERSON_ID] = ?
design-time-name="Package\Remove Expropriation Payments with invalid interest holders">
+ Capacity="8" xmlns="clr-namespace:Microsoft.SqlServer.IntegrationServices.Designer.Model.Serialization;assembly=Microsoft.SqlServer.IntegrationServices.Graph" xmlns:mssgle="clr-namespace:Microsoft.SqlServer.Graph.LayoutEngine;assembly=Microsoft.SqlServer.Graph" xmlns:assembly="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mssgm="clr-namespace:Microsoft.SqlServer.Graph.Model;assembly=Microsoft.SqlServer.Graph">
+ Size="178,42"
+ Id="Package\Remove Expropriation Payments with invalid interest holders\DELETE PAYMENT"
+ TopLeft="56.0000000000001,197.5" />
+
+ End="20.5,36">
+ End="0,17.75" />
+ Point1="0,17.75"
+ Point2="0,21.75"
+ Point3="4,21.75" />
+ End="16.5,21.75" />
+ Point1="16.5,21.75"
+ Point2="20.5,21.75"
+ Point3="20.5,25.75" />
+ End="20.5,36" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/etl/PAIMS_PIMS_ACQUISITION/PAIMS_PIMS_ACQUISITION/PAIMS_PIMS_ACQUISITION.dtproj b/etl/PAIMS_PIMS_ACQUISITION/PAIMS_PIMS_ACQUISITION/PAIMS_PIMS_ACQUISITION.dtproj
index a04f90c3d5..4d8a074212 100644
--- a/etl/PAIMS_PIMS_ACQUISITION/PAIMS_PIMS_ACQUISITION/PAIMS_PIMS_ACQUISITION.dtproj
+++ b/etl/PAIMS_PIMS_ACQUISITION/PAIMS_PIMS_ACQUISITION/PAIMS_PIMS_ACQUISITION.dtproj
@@ -41,10 +41,10 @@
PAIMS_ACQUISITION_TO_PIMS_DATASET
1
0
- 2488
+ 2509
- {EB46FBF6-332C-47AC-83DB-EEB843B9E5E5}
+ {A69806C7-91BB-4C4C-9182-5AB69942464F}
8
diff --git a/etl/PIMS_PROPERTY_SPATIAL_CORRECTION/PIMS_PROPERTY_SPATIAL_CORRECTION/PIMS_PROPERTY_SPATIAL_CORRECTION.dtproj b/etl/PIMS_PROPERTY_SPATIAL_CORRECTION/PIMS_PROPERTY_SPATIAL_CORRECTION/PIMS_PROPERTY_SPATIAL_CORRECTION.dtproj
index c6b3fe3953..74fd313a84 100644
--- a/etl/PIMS_PROPERTY_SPATIAL_CORRECTION/PIMS_PROPERTY_SPATIAL_CORRECTION/PIMS_PROPERTY_SPATIAL_CORRECTION.dtproj
+++ b/etl/PIMS_PROPERTY_SPATIAL_CORRECTION/PIMS_PROPERTY_SPATIAL_CORRECTION/PIMS_PROPERTY_SPATIAL_CORRECTION.dtproj
@@ -5,8 +5,8 @@
9.0.1.0
$base64$PFNvdXJjZUNvbnRyb2xJbmZvIHhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zOmRkbDI9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDAzL2VuZ2luZS8yIiB4bWxuczpkZGwyXzI9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDAzL2VuZ2luZS8yLzIiIHhtbG5zOmRkbDEwMF8xMDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDA4L2VuZ2luZS8xMDAvMTAwIiB4bWxuczpkZGwyMDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDEwL2VuZ2luZS8yMDAiIHhtbG5zOmRkbDIwMF8yMDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDEwL2VuZ2luZS8yMDAvMjAwIiB4bWxuczpkZGwzMDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDExL2VuZ2luZS8zMDAiIHhtbG5zOmRkbDMwMF8zMDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDExL2VuZ2luZS8zMDAvMzAwIiB4bWxuczpkZGw0MDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDEyL2VuZ2luZS80MDAiIHhtbG5zOmRkbDQwMF80MDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDEyL2VuZ2luZS80MDAvNDAwIiB4bWxuczpkZGw1MDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDEzL2VuZ2luZS81MDAiIHhtbG5zOmRkbDUwMF81MDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDEzL2VuZ2luZS81MDAvNTAwIiB4bWxuczpkd2Q9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vRGF0YVdhcmVob3VzZS9EZXNpZ25lci8xLjAiPg0KICA8RW5hYmxlZD5mYWxzZTwvRW5hYmxlZD4NCiAgPFByb2plY3ROYW1lPjwvUHJvamVjdE5hbWU+DQogIDxBdXhQYXRoPjwvQXV4UGF0aD4NCiAgPExvY2FsUGF0aD48L0xvY2FsUGF0aD4NCiAgPFByb3ZpZGVyPjwvUHJvdmlkZXI+DQo8L1NvdXJjZUNvbnRyb2xJbmZvPg==
- PIMS_PROPERTY_SPATIAL_CORRECTION 1.database
- PIMS_PROPERTY_SPATIAL_CORRECTION 1.database
+ PIMS_PROPERTY_SPATIAL_CORRECTION 11.database
+ PIMS_PROPERTY_SPATIAL_CORRECTION 11.database
@@ -41,10 +41,10 @@
Package
1
0
- 30
+ 36
- {B3C7597B-AE58-4536-A564-210E27812896}
+ {E6831E32-A690-41BA-A665-7CF969E8783F}
8
@@ -77,7 +77,7 @@
0
0
0
- Data Source=sqldevtst.th.gov.bc.ca;Initial Catalog=PIMS_DEV;Provider=SQLNCLI11.1;Integrated Security=SSPI;Auto Translate=False;Application Name=SSIS-Package-{C854C770-B13C-477E-8DD4-44721E1B9FCF}sqldevtst.th.gov.bc.ca.PIMS_DEV;
+ Data Source=sqldevtst.th.gov.bc.ca;Initial Catalog=PIMS_TST;Provider=SQLNCLI11.1;Integrated Security=SSPI;Auto Translate=False;Application Name=SSIS-Package-{C854C770-B13C-477E-8DD4-44721E1B9FCF}sqldevtst.th.gov.bc.ca.PIMS_DEV;
18
@@ -137,7 +137,7 @@
0
0
0
- PIMS_DEV
+ PIMS_TST
18
@@ -207,7 +207,12 @@
-
+
+
+ PriorityQueue.dll
+ PriorityQueue.dll
+
+
Development
@@ -217,7 +222,7 @@
- SQLServer2019
+ SQLServer2017
false
diff --git a/etl/PIMS_PROPERTY_SPATIAL_CORRECTION/PIMS_PROPERTY_SPATIAL_CORRECTION/Package.dtsx b/etl/PIMS_PROPERTY_SPATIAL_CORRECTION/PIMS_PROPERTY_SPATIAL_CORRECTION/Package.dtsx
index 432d72c1df..828a833696 100644
--- a/etl/PIMS_PROPERTY_SPATIAL_CORRECTION/PIMS_PROPERTY_SPATIAL_CORRECTION/Package.dtsx
+++ b/etl/PIMS_PROPERTY_SPATIAL_CORRECTION/PIMS_PROPERTY_SPATIAL_CORRECTION/Package.dtsx
@@ -12,8 +12,8 @@
DTS:ObjectName="Package"
DTS:PackageType="5"
DTS:ProtectionLevel="0"
- DTS:VersionBuild="30"
- DTS:VersionGUID="{B3C7597B-AE58-4536-A564-210E27812896}">
+ DTS:VersionBuild="36"
+ DTS:VersionGUID="{E6831E32-A690-41BA-A665-7CF969E8783F}">
8
@@ -26,7 +26,7 @@
+ DTS:ConnectionString="Data Source=sqldevtst.th.gov.bc.ca;Initial Catalog=PIMS_TST;Provider=SQLNCLI11.1;Integrated Security=SSPI;Auto Translate=False;Application Name=SSIS-Package-{C854C770-B13C-477E-8DD4-44721E1B9FCF}sqldevtst.th.gov.bc.ca.PIMS_DEV;" />
@@ -44,6 +44,7 @@
+ version="11">
+ arrayElementCount="51">
-
-
-
+ dataType="System.String">
+ dataType="System.String">
+
+
+]]>
-
-
-
-
- SC_4664d38d6d774888963e21557351c901
- msBuild
- SC_4664d38d6d774888963e21557351c901
- {1916879A-8FAA-48B9-9C04-D9C7C0D9DE1A}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-]]>
-
+ dataType="System.String">
-// This code was generated by a tool.
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-//
-//------------------------------------------------------------------------------
+ dataType="System.String"> polygon, float precision = 1.0f, bool debug = false)
+ {
+ float minX = float.MaxValue;
+ float minY = float.MaxValue;
+ float maxX = float.MinValue;
+ float maxY = float.MinValue;
+
+ for (int i = 0; i < polygon.Count; i++)
+ {
+ PointF p = polygon[i];
+ if (i == 0 || p.X < minX) minX = p.X;
+ if (i == 0 || p.Y < minY) minY = p.Y;
+ if (i == 0 || p.X > maxX) maxX = p.X;
+ if (i == 0 || p.Y > maxY) maxY = p.Y;
}
- }
- }
-}
-]]>
-
-
-
-
-
-
- {30D016F9-3734-4E33-A861-5E7D899E18F3};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
- Debug
- AnyCPU
- 8.0.30703
- 2.0
- {BA45C723-8B9F-453A-A231-4AA3D2D0ECDC}
- Library
- Properties
- SC_4664d38d6d774888963e21557351c901
- SC_4664d38d6d774888963e21557351c901
- v4.7
- 512
- true
-
-
-
-
- true
- full
- false
- .\bin\Debug\
- false
- DEBUG;TRACE
- prompt
- 4
-
-
- false
- true
- .\bin\Release\
- false
- TRACE
- prompt
- 4
-
-
-
- False
- C:\git\PSP\etl\PIMS_PROPERTY_SPATIAL_CORRECTION\PIMS_PROPERTY_SPATIAL_CORRECTION\PIMS_PROPERTY_SPATIAL_CORRECTION\Microsoft.SqlServer.Types.dll
-
-
- C:\git\PSP\etl\PIMS_PROPERTY_SPATIAL_CORRECTION\PIMS_PROPERTY_SPATIAL_CORRECTION\PIMS_PROPERTY_SPATIAL_CORRECTION\PriorityQueue.dll
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Code
-
-
- ResXFileCodeGenerator
- Resources.Designer.cs
-
-
- True
- Resources.resx
-
-
-
- SettingsSingleFileGenerator
- Settings.Designer.cs
-
-
- True
- Settings.settings
-
-
-
-
-
-
-
-
-
-
-
- SSIS_SC150
-
-
-
-
-
-]]>
+
+ float width = maxX - minX;
+ float height = maxY - minY;
+ float cellSize = Math.Min(width, height);
+ float h = cellSize / 2;
+
+ SimplePriorityQueue cellQueue = new SimplePriorityQueue();
+
+ if (cellSize == 0)
+ {
+ PolyLabel degeneratePoleOfInaccessibility = new PolyLabel()
+ {
+ Centroid = new PointF(minX, minY),
+ Radius = 0
+ };
+ return degeneratePoleOfInaccessibility;
+ }
+
+ for (var x = minX; x < maxX; x += cellSize)
+ {
+ for (var y = minY; y < maxY; y += cellSize)
+ {
+ Cell cell = new Cell(x + h, y + h, h, polygon);
+ cellQueue.Enqueue(cell, cell.Max);
+ }
+ }
+
+ Cell bestCell = GetCentroidCell(polygon);
+
+ Cell bBoxCell = new Cell(minX + width / 2, minY + height / 2, 0, polygon);
+ if (bBoxCell.D > bestCell.D)
+ bestCell = bBoxCell;
+
+ int numProbes = cellQueue.Count;
+
+ while (cellQueue.Count != 0)
+ {
+ // pick the most promising cell from the queue
+ var cell = cellQueue.Dequeue();
+
+ // update the best cell if we found a better one
+ if (cell.D > bestCell.D)
+ {
+ bestCell = cell;
+ if (debug)
+ Console.WriteLine("found best {0} after {1} probes", Math.Round(1e4 * cell.D) / 1e4, numProbes);
+ }
+
+ // do not drill down further if there's no chance of a better solution
+ if (cell.Max - bestCell.D <= precision)
+ continue;
+
+ // split the cell into four cells
+ h = cell.H / 2;
+
+ Cell temp;
+ temp = new Cell(cell.X - h, cell.Y - h, h, polygon);
+ cellQueue.Enqueue(temp, temp.Max);
+ temp = new Cell(cell.X + h, cell.Y - h, h, polygon);
+ cellQueue.Enqueue(temp, temp.Max);
+ temp = new Cell(cell.X - h, cell.Y + h, h, polygon);
+ cellQueue.Enqueue(temp, temp.Max);
+ temp = new Cell(cell.X + h, cell.Y + h, h, polygon);
+ cellQueue.Enqueue(temp, temp.Max);
+ numProbes += 4;
+ }
+
+ if (debug)
+ {
+ Console.WriteLine("num probes: " + numProbes);
+ Console.WriteLine("best distance: " + bestCell.D);
+ }
+
+ PolyLabel poleOfInaccessibility = new PolyLabel()
+ {
+ Centroid = new PointF(bestCell.X, bestCell.Y),
+ Radius = bestCell.D
+ };
+
+ return poleOfInaccessibility;
+ }
+
+ private static Cell GetCentroidCell(List polygon)
+ {
+ float area = 0;
+ float x = 0;
+ float y = 0;
+ List points = polygon;
+
+ for (int i = 0, len = points.Count, j = len - 1; i < len; j = i++)
+ {
+ PointF a = points[i];
+ PointF b = points[j];
+ float f = a.X * b.Y - b.X * a.Y;
+ x += (a.X + b.X) * f;
+ y += (a.Y + b.Y) * f;
+ area += f * 3;
+ }
+ if (area == 0)
+ return new Cell(points[0].X, points[0].Y, 0, polygon);
+
+ return new Cell(x / area, y / area, 0, polygon);
+ }
+
+ class Cell
+ {
+ public float X { get; set; }
+ public float Y { get; set; }
+ public float H { get; set; }
+ public float D { get; set; }
+ public float Max { get; set; }
+ public Cell(float x, float y, float h, List polygon)
+ {
+ this.X = x;
+ this.Y = y;
+ this.H = h;
+ this.D = PointToPolygonDist(x, y, polygon);
+ this.Max = Convert.ToSingle(this.D + this.H * Math.Sqrt(2));
+ }
+
+ float PointToPolygonDist(float x, float y, List polygon)
+ {
+ bool inside = false;
+ float minDistSq = float.PositiveInfinity;
+
+ for (int i = 0, len = polygon.Count, j = len - 1; i < len; j = i++)
+ {
+ PointF a = polygon[i];
+ PointF b = polygon[j];
+
+ if ((a.Y > y != b.Y > y) && (x < (b.X - a.X) * (y - a.Y) / (b.Y - a.Y) + a.X))
+ inside = !inside;
+
+ minDistSq = Math.Min(minDistSq, GetSeqDistSq(x, y, a, b));
+ }
+
+ return Convert.ToSingle((inside ? 1 : -1) * Math.Sqrt(minDistSq));
+ }
+
+ float GetSeqDistSq(float px, float py, PointF a, PointF b)
+ {
+ float x = a.X;
+ float y = a.Y;
+ float dx = b.X - x;
+ float dy = b.Y - y;
+
+ if (dx != 0 || dy != 0)
+ {
+
+ var t = ((px - x) * dx + (py - y) * dy) / (dx * dx + dy * dy);
+
+ if (t > 1)
+ {
+ x = b.X;
+ y = b.Y;
+
+ }
+ else if (t > 0)
+ {
+ x += dx * t;
+ y += dy * t;
+ }
+ }
+
+ dx = px - x;
+ dy = py - y;
+
+ return dx * dx + dy * dy;
+ }
+ }
+ }
+}]]>
+ dataType="System.String">
//------------------------------------------------------------------------------
-[assembly: global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="SC_4664d38d6d774888963e21557351c901.Properties.Resources.get_ResourceManager():System.Resources.Resou" +
- "rceManager")]
-[assembly: global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="SC_4664d38d6d774888963e21557351c901.Properties.Resources.get_Culture():System.Globalization.CultureIn" +
- "fo")]
-[assembly: global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="SC_4664d38d6d774888963e21557351c901.Properties.Resources.set_Culture(System.Globalization.CultureInfo" +
- "):Void")]
+[assembly: global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="SC_4664d38d6d774888963e21557351c901.Properties.Settings.get_Default():SC_4664d38d6d774888963e21557351c901.Properties.Sett" +
+ "ings")]
+
+namespace SC_4664d38d6d774888963e21557351c901.Properties {
+
+
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ private static Settings defaultInstance = new Settings();
+
+ public static Settings Default {
+ get {
+ return defaultInstance;
+ }
+ }
+ }
+}
+]]>
+
+
+
+
+
+
+
+
+ SC_4664d38d6d774888963e21557351c901
+ msBuild
+ SC_4664d38d6d774888963e21557351c901
+ {19A4DA25-7A35-4FC3-9BDA-B04939D13BB1}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+]]>
+
+
+
+
+
+
+
+
+
+ {30D016F9-3734-4E33-A861-5E7D899E18F3};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ Debug
+ AnyCPU
+ 8.0.30703
+ 2.0
+ {BA45C723-8B9F-453A-A231-4AA3D2D0ECDC}
+ Library
+ Properties
+ SC_4664d38d6d774888963e21557351c901
+ SC_4664d38d6d774888963e21557351c901
+ v4.5
+ 512
+ true
+
+
+
+
+ true
+ full
+ false
+ .\bin\Debug\
+ false
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ false
+ true
+ .\bin\Release\
+ false
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+ False
+ C:\git\PSP\etl\PIMS_PROPERTY_SPATIAL_CORRECTION\PIMS_PROPERTY_SPATIAL_CORRECTION\PIMS_PROPERTY_SPATIAL_CORRECTION\Microsoft.SqlServer.Types.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Code
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+
+
+ True
+ Resources.resx
+
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+ True
+ Settings.settings
+
+
+
+
+
+
+
+
+
+
+
+ SSIS_SC140
+
+
+
+
+
+]]>
+
+
+
+// This code was generated by a tool.
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+[assembly: global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="SC_4664d38d6d774888963e21557351c901.Properties.Resources.get_ResourceManager():System.Resources.Resou" +
+ "rceManager")]
+[assembly: global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="SC_4664d38d6d774888963e21557351c901.Properties.Resources.get_Culture():System.Globalization.CultureIn" +
+ "fo")]
+[assembly: global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="SC_4664d38d6d774888963e21557351c901.Properties.Resources.set_Culture(System.Globalization.CultureInfo" +
+ "):Void")]
+
+namespace SC_4664d38d6d774888963e21557351c901.Properties {
+
+
+ ///
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ ///
+ // This class was auto-generated by the StronglyTypedResourceBuilder
+ // class via a tool like ResGen or Visual Studio.
+ // To add or remove a member, edit your .ResX file then rerun ResGen
+ // with the /str option, or rebuild your VS project.
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ internal class Resources {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources() {
+ }
+
+ ///
+ /// Returns the cached ResourceManager instance used by this class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if ((resourceMan == null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SC_4664d38d6d774888963e21557351c901.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+ }
+}
+]]>
+
+
+
+ /// A helper-interface only needed to make writing unit tests a bit easier (hence the 'internal' access modifier)
+ ///
+ internal interface IFixedSizePriorityQueue : IPriorityQueue
+ {
+ ///
+ /// Resize the queue so it can accept more nodes. All currently enqueued nodes are remain.
+ /// Attempting to decrease the queue size to a size too small to hold the existing nodes results in undefined behavior
+ ///
+ void Resize(int maxNodes);
+
+ ///
+ /// Returns the maximum number of items that can be enqueued at once in this queue. Once you hit this number (ie. once Count == MaxSize),
+ /// attempting to enqueue another item will cause undefined behavior.
+ ///
+ int MaxSize { get; }
+
+ ///
+ /// By default, nodes that have been previously added to one queue cannot be added to another queue.
+ /// If you need to do this, please call originalQueue.ResetNode(node) before attempting to add it in the new queue
+ ///
+ void ResetNode(TItem node);
+ }
+}]]>
+
+
+
+ /// The IPriorityQueue interface. This is mainly here for purists, and in case I decide to add more implementations later.
+ /// For speed purposes, it is actually recommended that you *don't* access the priority queue through this interface, since the JIT can
+ /// (theoretically?) optimize method calls from concrete-types slightly better.
+ ///
+ public interface IPriorityQueue : IEnumerable
+ {
+ ///
+ /// Enqueue a node to the priority queue. Lower values are placed in front. Ties are broken by first-in-first-out.
+ /// See implementation for how duplicates are handled.
+ ///
+ void Enqueue(TItem node, TPriority priority);
+
+ ///
+ /// Removes the head of the queue (node with minimum priority; ties are broken by order of insertion), and returns it.
+ ///
+ TItem Dequeue();
+
+ ///
+ /// Removes every node from the queue.
+ ///
+ void Clear();
+
+ ///
+ /// Returns whether the given node is in the queue.
+ ///
+ bool Contains(TItem node);
+
+ ///
+ /// Removes a node from the queue. The node does not need to be the head of the queue.
+ ///
+ void Remove(TItem node);
+
+ ///
+ /// Call this method to change the priority of a node.
+ ///
+ void UpdatePriority(TItem node, TPriority priority);
+
+ ///
+ /// Returns the head of the queue, without removing it (use Dequeue() for that).
+ ///
+ TItem First { get; }
+
+ ///
+ /// Returns the number of nodes in the queue.
+ ///
+ int Count { get; }
+ }
+}]]>
+
+
+
+ {
+ ///
+ /// The Priority to insert this node at.
+ /// Cannot be manually edited - see queue.Enqueue() and queue.UpdatePriority() instead
+ ///
+ public TPriority Priority { get; protected internal set; }
+
+ ///
+ /// Represents the current position in the queue
+ ///
+ public int QueueIndex { get; internal set; }
+
+ ///
+ /// Represents the order the node was inserted in
+ ///
+ public long InsertionIndex { get; internal set; }
+
+
+#if DEBUG
+ ///
+ /// The queue this node is tied to. Used only for debug builds.
+ ///
+ public object Queue { get; internal set; }
+#endif
+ }
+}]]>
+
+
+
+ /// A simplified priority queue implementation. Is stable, auto-resizes, and thread-safe, at the cost of being slightly slower than
+ /// FastPriorityQueue
+ /// Methods tagged as O(1) or O(log n) are assuming there are no duplicates. Duplicates may increase the algorithmic complexity.
+ ///
+ /// The type to enqueue
+ /// The priority-type to use for nodes. Must extend IComparable<TPriority>
+ public class SimplePriorityQueue : IPriorityQueue
+ {
+ private class SimpleNode : GenericPriorityQueueNode
+ {
+ public TItem Data { get; private set; }
+
+ public SimpleNode(TItem data)
+ {
+ Data = data;
+ }
+ }
+
+ private const int INITIAL_QUEUE_SIZE = 10;
+ private readonly GenericPriorityQueue _queue;
+ private readonly Dictionary> _itemToNodesCache;
+ private readonly IList _nullNodesCache;
+
+ #region Constructors
+ ///
+ /// Instantiate a new Priority Queue
+ ///
+ public SimplePriorityQueue() : this(Comparer.Default, EqualityComparer.Default) { }
+
+ ///
+ /// Instantiate a new Priority Queue
+ ///
+ /// The comparer used to compare TPriority values. Defaults to Comparer<TPriority>.default
+ public SimplePriorityQueue(IComparer priorityComparer) : this(priorityComparer.Compare, EqualityComparer.Default) { }
+
+ ///
+ /// Instantiate a new Priority Queue
+ ///
+ /// The comparison function to use to compare TPriority values
+ public SimplePriorityQueue(Comparison priorityComparer) : this(priorityComparer, EqualityComparer.Default) { }
+
+ ///
+ /// Instantiate a new Priority Queue
+ ///
+ /// The equality comparison function to use to compare TItem values
+ public SimplePriorityQueue(IEqualityComparer itemEquality) : this(Comparer.Default, itemEquality) { }
+
+ ///
+ /// Instantiate a new Priority Queue
+ ///
+ /// The comparer used to compare TPriority values. Defaults to Comparer<TPriority>.default
+ /// The equality comparison function to use to compare TItem values
+ public SimplePriorityQueue(IComparer priorityComparer, IEqualityComparer itemEquality) : this(priorityComparer.Compare, itemEquality) { }
+
+ ///
+ /// Instantiate a new Priority Queue
+ ///
+ /// The comparison function to use to compare TPriority values
+ /// The equality comparison function to use to compare TItem values
+ public SimplePriorityQueue(Comparison priorityComparer, IEqualityComparer itemEquality)
+ {
+ _queue = new GenericPriorityQueue(INITIAL_QUEUE_SIZE, priorityComparer);
+ _itemToNodesCache = new Dictionary>(itemEquality);
+ _nullNodesCache = new List();
+ }
+ #endregion
+
+ ///
+ /// Given an item of type T, returns the existing SimpleNode in the queue
+ ///
+ private SimpleNode GetExistingNode(TItem item)
+ {
+ if (item == null)
+ {
+ return _nullNodesCache.Count > 0 ? _nullNodesCache[0] : null;
+ }
+
+ IList nodes;
+ if (!_itemToNodesCache.TryGetValue(item, out nodes))
+ {
+ return null;
+ }
+ return nodes[0];
+ }
+
+ ///
+ /// Adds an item to the Node-cache to allow for many methods to be O(1) or O(log n)
+ ///
+ private void AddToNodeCache(SimpleNode node)
+ {
+ if (node.Data == null)
+ {
+ _nullNodesCache.Add(node);
+ return;
+ }
+
+ IList nodes;
+ if (!_itemToNodesCache.TryGetValue(node.Data, out nodes))
+ {
+ nodes = new List();
+ _itemToNodesCache[node.Data] = nodes;
+ }
+ nodes.Add(node);
+ }
+
+ ///
+ /// Removes an item to the Node-cache to allow for many methods to be O(1) or O(log n) (assuming no duplicates)
+ ///
+ private void RemoveFromNodeCache(SimpleNode node)
+ {
+ if (node.Data == null)
+ {
+ _nullNodesCache.Remove(node);
+ return;
+ }
+
+ IList nodes;
+ if (!_itemToNodesCache.TryGetValue(node.Data, out nodes))
+ {
+ return;
+ }
+ nodes.Remove(node);
+ if (nodes.Count == 0)
+ {
+ _itemToNodesCache.Remove(node.Data);
+ }
+ }
+
+ ///
+ /// Returns the number of nodes in the queue.
+ /// O(1)
+ ///
+ public int Count
+ {
+ get
+ {
+ lock (_queue)
+ {
+ return _queue.Count;
+ }
+ }
+ }
+
+ ///
+ /// Returns the head of the queue, without removing it (use Dequeue() for that).
+ /// Throws an exception when the queue is empty.
+ /// O(1)
+ ///
+ public TItem First
+ {
+ get
+ {
+ lock (_queue)
+ {
+ if (_queue.Count <= 0)
+ {
+ throw new InvalidOperationException("Cannot call .First on an empty queue");
+ }
+
+ return _queue.First.Data;
+ }
+ }
+ }
+
+ ///
+ /// Removes every node from the queue.
+ /// O(n)
+ ///
+ public void Clear()
+ {
+ lock (_queue)
+ {
+ _queue.Clear();
+ _itemToNodesCache.Clear();
+ _nullNodesCache.Clear();
+ }
+ }
+
+ ///
+ /// Returns whether the given item is in the queue.
+ /// O(1)
+ ///
+ public bool Contains(TItem item)
+ {
+ lock (_queue)
+ {
+ return item == null ? _nullNodesCache.Count > 0 : _itemToNodesCache.ContainsKey(item);
+ }
+ }
+
+ ///
+ /// Removes the head of the queue (node with minimum priority; ties are broken by order of insertion), and returns it.
+ /// If queue is empty, throws an exception
+ /// O(log n)
+ ///
+ public TItem Dequeue()
+ {
+ lock (_queue)
+ {
+ if (_queue.Count <= 0)
+ {
+ throw new InvalidOperationException("Cannot call Dequeue() on an empty queue");
+ }
+
+ SimpleNode node = _queue.Dequeue();
+ RemoveFromNodeCache(node);
+ return node.Data;
+ }
+ }
+
+ ///
+ /// Enqueue the item with the given priority, without calling lock(_queue) or AddToNodeCache(node)
+ ///
+ ///
+ ///
+ ///
+ private SimpleNode EnqueueNoLockOrCache(TItem item, TPriority priority)
+ {
+ SimpleNode node = new SimpleNode(item);
+ if (_queue.Count == _queue.MaxSize)
+ {
+ _queue.Resize(_queue.MaxSize * 2 + 1);
+ }
+ _queue.Enqueue(node, priority);
+ return node;
+ }
+
+ ///
+ /// Enqueue a node to the priority queue. Lower values are placed in front. Ties are broken by first-in-first-out.
+ /// This queue automatically resizes itself, so there's no concern of the queue becoming 'full'.
+ /// Duplicates and null-values are allowed.
+ /// O(log n)
+ ///
+ public void Enqueue(TItem item, TPriority priority)
+ {
+ lock (_queue)
+ {
+ IList nodes;
+ if (item == null)
+ {
+ nodes = _nullNodesCache;
+ }
+ else if (!_itemToNodesCache.TryGetValue(item, out nodes))
+ {
+ nodes = new List();
+ _itemToNodesCache[item] = nodes;
+ }
+ SimpleNode node = EnqueueNoLockOrCache(item, priority);
+ nodes.Add(node);
+ }
+ }
+
+ ///
+ /// Enqueue a node to the priority queue if it doesn't already exist. Lower values are placed in front. Ties are broken by first-in-first-out.
+ /// This queue automatically resizes itself, so there's no concern of the queue becoming 'full'. Null values are allowed.
+ /// Returns true if the node was successfully enqueued; false if it already exists.
+ /// O(log n)
+ ///
+ public bool EnqueueWithoutDuplicates(TItem item, TPriority priority)
+ {
+ lock (_queue)
+ {
+ IList nodes;
+ if (item == null)
+ {
+ if (_nullNodesCache.Count > 0)
+ {
+ return false;
+ }
+ nodes = _nullNodesCache;
+ }
+ else if (_itemToNodesCache.ContainsKey(item))
+ {
+ return false;
+ }
+ else
+ {
+ nodes = new List();
+ _itemToNodesCache[item] = nodes;
+ }
+ SimpleNode node = EnqueueNoLockOrCache(item, priority);
+ nodes.Add(node);
+ return true;
+ }
+ }
+
+ ///
+ /// Removes an item from the queue. The item does not need to be the head of the queue.
+ /// If the item is not in the queue, an exception is thrown. If unsure, check Contains() first.
+ /// If multiple copies of the item are enqueued, only the first one is removed.
+ /// O(log n)
+ ///
+ public void Remove(TItem item)
+ {
+ lock (_queue)
+ {
+ SimpleNode removeMe;
+ IList nodes;
+ if (item == null)
+ {
+ if (_nullNodesCache.Count == 0)
+ {
+ throw new InvalidOperationException("Cannot call Remove() on a node which is not enqueued: " + item);
+ }
+ removeMe = _nullNodesCache[0];
+ nodes = _nullNodesCache;
+ }
+ else
+ {
+ if (!_itemToNodesCache.TryGetValue(item, out nodes))
+ {
+ throw new InvalidOperationException("Cannot call Remove() on a node which is not enqueued: " + item);
+ }
+ removeMe = nodes[0];
+ if (nodes.Count == 1)
+ {
+ _itemToNodesCache.Remove(item);
+ }
+ }
+ _queue.Remove(removeMe);
+ nodes.Remove(removeMe);
+ }
+ }
+
+ ///
+ /// Call this method to change the priority of an item.
+ /// Calling this method on a item not in the queue will throw an exception.
+ /// If the item is enqueued multiple times, only the first one will be updated.
+ /// (If your requirements are complex enough that you need to enqueue the same item multiple times and be able
+ /// to update all of them, please wrap your items in a wrapper class so they can be distinguished).
+ /// O(log n)
+ ///
+ public void UpdatePriority(TItem item, TPriority priority)
+ {
+ lock (_queue)
+ {
+ SimpleNode updateMe = GetExistingNode(item);
+ if (updateMe == null)
+ {
+ throw new InvalidOperationException("Cannot call UpdatePriority() on a node which is not enqueued: " + item);
+ }
+ _queue.UpdatePriority(updateMe, priority);
+ }
+ }
-namespace SC_4664d38d6d774888963e21557351c901.Properties {
-
-
- ///
- /// A strongly-typed resource class, for looking up localized strings, etc.
- ///
- // This class was auto-generated by the StronglyTypedResourceBuilder
- // class via a tool like ResGen or Visual Studio.
- // To add or remove a member, edit your .ResX file then rerun ResGen
- // with the /str option, or rebuild your VS project.
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- internal class Resources {
-
- private static global::System.Resources.ResourceManager resourceMan;
-
- private static global::System.Globalization.CultureInfo resourceCulture;
-
- [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- internal Resources() {
+ ///
+ /// Returns the priority of the given item.
+ /// Calling this method on a item not in the queue will throw an exception.
+ /// If the item is enqueued multiple times, only the priority of the first will be returned.
+ /// (If your requirements are complex enough that you need to enqueue the same item multiple times and be able
+ /// to query all their priorities, please wrap your items in a wrapper class so they can be distinguished).
+ /// O(1)
+ ///
+ public TPriority GetPriority(TItem item)
+ {
+ lock (_queue)
+ {
+ SimpleNode findMe = GetExistingNode(item);
+ if (findMe == null)
+ {
+ throw new InvalidOperationException("Cannot call GetPriority() on a node which is not enqueued: " + item);
+ }
+ return findMe.Priority;
+ }
}
-
+
+ #region Try* methods for multithreading
+ /// Get the head of the queue, without removing it (use TryDequeue() for that).
+ /// Useful for multi-threading, where the queue may become empty between calls to Contains() and First
+ /// Returns true if successful, false otherwise
+ /// O(1)
+ public bool TryFirst(out TItem first)
+ {
+ if (_queue.Count > 0)
+ {
+ lock (_queue)
+ {
+ if (_queue.Count > 0)
+ {
+ first = _queue.First.Data;
+ return true;
+ }
+ }
+ }
+
+ first = default(TItem);
+ return false;
+ }
+
///
- /// Returns the cached ResourceManager instance used by this class.
+ /// Removes the head of the queue (node with minimum priority; ties are broken by order of insertion), and sets it to first.
+ /// Useful for multi-threading, where the queue may become empty between calls to Contains() and Dequeue()
+ /// Returns true if successful; false if queue was empty
+ /// O(log n)
///
- [global::System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
- internal static global::System.Resources.ResourceManager ResourceManager {
- get {
- if ((resourceMan == null)) {
- global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SC_4664d38d6d774888963e21557351c901.Properties.Resources", typeof(Resources).Assembly);
- resourceMan = temp;
+ public bool TryDequeue(out TItem first)
+ {
+ if (_queue.Count > 0)
+ {
+ lock (_queue)
+ {
+ if (_queue.Count > 0)
+ {
+ SimpleNode node = _queue.Dequeue();
+ first = node.Data;
+ RemoveFromNodeCache(node);
+ return true;
+ }
}
- return resourceMan;
}
+
+ first = default(TItem);
+ return false;
}
-
+
///
- /// Overrides the current thread's CurrentUICulture property for all
- /// resource lookups using this strongly typed resource class.
+ /// Attempts to remove an item from the queue. The item does not need to be the head of the queue.
+ /// Useful for multi-threading, where the queue may become empty between calls to Contains() and Remove()
+ /// Returns true if the item was successfully removed, false if it wasn't in the queue.
+ /// If multiple copies of the item are enqueued, only the first one is removed.
+ /// O(log n)
///
- [global::System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
- internal static global::System.Globalization.CultureInfo Culture {
- get {
- return resourceCulture;
+ public bool TryRemove(TItem item)
+ {
+ lock (_queue)
+ {
+ SimpleNode removeMe;
+ IList nodes;
+ if (item == null)
+ {
+ if (_nullNodesCache.Count == 0)
+ {
+ return false;
+ }
+ removeMe = _nullNodesCache[0];
+ nodes = _nullNodesCache;
+ }
+ else
+ {
+ if (!_itemToNodesCache.TryGetValue(item, out nodes))
+ {
+ return false;
+ }
+ removeMe = nodes[0];
+ if (nodes.Count == 1)
+ {
+ _itemToNodesCache.Remove(item);
+ }
+ }
+ _queue.Remove(removeMe);
+ nodes.Remove(removeMe);
+ return true;
}
- set {
- resourceCulture = value;
+ }
+
+ ///
+ /// Call this method to change the priority of an item.
+ /// Useful for multi-threading, where the queue may become empty between calls to Contains() and UpdatePriority()
+ /// If the item is enqueued multiple times, only the first one will be updated.
+ /// (If your requirements are complex enough that you need to enqueue the same item multiple times and be able
+ /// to update all of them, please wrap your items in a wrapper class so they can be distinguished).
+ /// Returns true if the item priority was updated, false otherwise.
+ /// O(log n)
+ ///
+ public bool TryUpdatePriority(TItem item, TPriority priority)
+ {
+ lock (_queue)
+ {
+ SimpleNode updateMe = GetExistingNode(item);
+ if (updateMe == null)
+ {
+ return false;
+ }
+ _queue.UpdatePriority(updateMe, priority);
+ return true;
+ }
+ }
+
+ ///
+ /// Attempt to get the priority of the given item.
+ /// Useful for multi-threading, where the queue may become empty between calls to Contains() and GetPriority()
+ /// If the item is enqueued multiple times, only the priority of the first will be returned.
+ /// (If your requirements are complex enough that you need to enqueue the same item multiple times and be able
+ /// to query all their priorities, please wrap your items in a wrapper class so they can be distinguished).
+ /// Returns true if the item was found in the queue, false otherwise
+ /// O(1)
+ ///
+ public bool TryGetPriority(TItem item, out TPriority priority)
+ {
+ lock (_queue)
+ {
+ SimpleNode findMe = GetExistingNode(item);
+ if (findMe == null)
+ {
+ priority = default(TPriority);
+ return false;
+ }
+ priority = findMe.Priority;
+ return true;
+ }
+ }
+ #endregion
+
+ public IEnumerator GetEnumerator()
+ {
+ List queueData = new List();
+ lock (_queue)
+ {
+ //Copy to a separate list because we don't want to 'yield return' inside a lock
+ foreach (var node in _queue)
+ {
+ queueData.Add(node.Data);
+ }
+ }
+
+ return queueData.GetEnumerator();
+ }
+
+ IEnumerator IEnumerable.GetEnumerator()
+ {
+ return GetEnumerator();
+ }
+
+ public bool IsValidQueue()
+ {
+ lock (_queue)
+ {
+ // Check all items in cache are in the queue
+ foreach (IList nodes in _itemToNodesCache.Values)
+ {
+ foreach (SimpleNode node in nodes)
+ {
+ if (!_queue.Contains(node))
+ {
+ return false;
+ }
+ }
+ }
+
+ // Check all items in queue are in cache
+ foreach (SimpleNode node in _queue)
+ {
+ if (GetExistingNode(node.Data) == null)
+ {
+ return false;
+ }
+ }
+
+ // Check queue structure itself
+ return _queue.IsValidQueue();
}
}
}
-}
-]]>
-
-
-
-
-
-]]>
+
+ ///
+ /// A simplified priority queue implementation. Is stable, auto-resizes, and thread-safe, at the cost of being slightly slower than
+ /// FastPriorityQueue
+ /// This class is kept here for backwards compatibility. It's recommended you use SimplePriorityQueue<TItem, TPriority>
+ ///
+ /// The type to enqueue
+ public class SimplePriorityQueue : SimplePriorityQueue
+ {
+ ///
+ /// Instantiate a new Priority Queue
+ ///
+ public SimplePriorityQueue() { }
+
+ ///
+ /// Instantiate a new Priority Queue
+ ///
+ /// The comparer used to compare priority values. Defaults to Comparer<float>.default
+ public SimplePriorityQueue(IComparer comparer) : base(comparer) { }
+
+ ///
+ /// Instantiate a new Priority Queue
+ ///
+ /// The comparison function to use to compare priority values
+ public SimplePriorityQueue(Comparison comparer) : base(comparer) { }
+ }
+}]]>
+ dataType="System.String">
+ /// A copy of StablePriorityQueue which also has generic priority-type
+ ///
+ /// The values in the queue. Must extend the GenericPriorityQueueNode class
+ /// The priority-type. Must extend IComparable<TPriority>
+ public sealed class GenericPriorityQueue : IFixedSizePriorityQueue
+ where TItem : GenericPriorityQueueNode
{
- public PointF Centroid { get; set; }
- public float Radius { get; set; }
+ private int _numNodes;
+ private TItem[] _nodes;
+ private long _numNodesEverEnqueued;
+ private readonly Comparison _comparer;
- public static PolyLabel GetPolyLabel(List polygon, float precision = 1.0f, bool debug = false)
+ ///
+ /// Instantiate a new Priority Queue
+ ///
+ /// The max nodes ever allowed to be enqueued (going over this will cause undefined behavior)
+ public GenericPriorityQueue(int maxNodes) : this(maxNodes, Comparer.Default) { }
+
+ ///
+ /// Instantiate a new Priority Queue
+ ///
+ /// The max nodes ever allowed to be enqueued (going over this will cause undefined behavior)
+ /// The comparer used to compare TPriority values.
+ public GenericPriorityQueue(int maxNodes, IComparer comparer) : this(maxNodes, comparer.Compare) { }
+
+ ///
+ /// Instantiate a new Priority Queue
+ ///
+ /// The max nodes ever allowed to be enqueued (going over this will cause undefined behavior)
+ /// The comparison function to use to compare TPriority values
+ public GenericPriorityQueue(int maxNodes, Comparison comparer)
{
- float minX = float.MaxValue;
- float minY = float.MaxValue;
- float maxX = float.MinValue;
- float maxY = float.MinValue;
+#if DEBUG
+ if (maxNodes <= 0)
+ {
+ throw new InvalidOperationException("New queue size cannot be smaller than 1");
+ }
+#endif
- for (int i = 0; i < polygon.Count; i++)
+ _numNodes = 0;
+ _nodes = new TItem[maxNodes + 1];
+ _numNodesEverEnqueued = 0;
+ _comparer = comparer;
+ }
+
+ ///
+ /// Returns the number of nodes in the queue.
+ /// O(1)
+ ///
+ public int Count
+ {
+ get
{
- PointF p = polygon[i];
- if (i == 0 || p.X < minX) minX = p.X;
- if (i == 0 || p.Y < minY) minY = p.Y;
- if (i == 0 || p.X > maxX) maxX = p.X;
- if (i == 0 || p.Y > maxY) maxY = p.Y;
+ return _numNodes;
+ }
+ }
+
+ ///
+ /// Returns the maximum number of items that can be enqueued at once in this queue. Once you hit this number (ie. once Count == MaxSize),
+ /// attempting to enqueue another item will cause undefined behavior. O(1)
+ ///
+ public int MaxSize
+ {
+ get
+ {
+ return _nodes.Length - 1;
+ }
+ }
+
+ ///
+ /// Removes every node from the queue.
+ /// O(n) (So, don't do this often!)
+ ///
+#if NET_VERSION_4_5
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+#endif
+ public void Clear()
+ {
+ Array.Clear(_nodes, 1, _numNodes);
+ _numNodes = 0;
+ }
+
+ ///
+ /// Returns (in O(1)!) whether the given node is in the queue.
+ /// If node is or has been previously added to another queue, the result is undefined unless oldQueue.ResetNode(node) has been called
+ /// O(1)
+ ///
+#if NET_VERSION_4_5
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+#endif
+ public bool Contains(TItem node)
+ {
+#if DEBUG
+ if (node == null)
+ {
+ throw new ArgumentNullException("node");
+ }
+ if (node.Queue != null && !Equals(node.Queue))
+ {
+ throw new InvalidOperationException("node.Contains was called on a node from another queue. Please call originalQueue.ResetNode() first");
+ }
+ if (node.QueueIndex < 0 || node.QueueIndex >= _nodes.Length)
+ {
+ throw new InvalidOperationException("node.QueueIndex has been corrupted. Did you change it manually?");
+ }
+#endif
+
+ return (_nodes[node.QueueIndex] == node);
+ }
+
+ ///
+ /// Enqueue a node to the priority queue. Lower values are placed in front. Ties are broken by first-in-first-out.
+ /// If the queue is full, the result is undefined.
+ /// If the node is already enqueued, the result is undefined.
+ /// If node is or has been previously added to another queue, the result is undefined unless oldQueue.ResetNode(node) has been called
+ /// O(log n)
+ ///
+#if NET_VERSION_4_5
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+#endif
+ public void Enqueue(TItem node, TPriority priority)
+ {
+#if DEBUG
+ if (node == null)
+ {
+ throw new ArgumentNullException("node");
+ }
+ if (_numNodes >= _nodes.Length - 1)
+ {
+ throw new InvalidOperationException("Queue is full - node cannot be added: " + node);
+ }
+ if (node.Queue != null && !Equals(node.Queue))
+ {
+ throw new InvalidOperationException("node.Enqueue was called on a node from another queue. Please call originalQueue.ResetNode() first");
+ }
+ if (Contains(node))
+ {
+ throw new InvalidOperationException("Node is already enqueued: " + node);
+ }
+ node.Queue = this;
+#endif
+
+ node.Priority = priority;
+ _numNodes++;
+ _nodes[_numNodes] = node;
+ node.QueueIndex = _numNodes;
+ node.InsertionIndex = _numNodesEverEnqueued++;
+ CascadeUp(node);
+ }
+
+#if NET_VERSION_4_5
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+#endif
+ private void CascadeUp(TItem node)
+ {
+ //aka Heapify-up
+ int parent;
+ if (node.QueueIndex > 1)
+ {
+ parent = node.QueueIndex >> 1;
+ TItem parentNode = _nodes[parent];
+ if (HasHigherPriority(parentNode, node))
+ return;
+
+ //Node has lower priority value, so move parent down the heap to make room
+ _nodes[node.QueueIndex] = parentNode;
+ parentNode.QueueIndex = node.QueueIndex;
+
+ node.QueueIndex = parent;
+ }
+ else
+ {
+ return;
+ }
+ while (parent > 1)
+ {
+ parent >>= 1;
+ TItem parentNode = _nodes[parent];
+ if (HasHigherPriority(parentNode, node))
+ break;
+
+ //Node has lower priority value, so move parent down the heap to make room
+ _nodes[node.QueueIndex] = parentNode;
+ parentNode.QueueIndex = node.QueueIndex;
+
+ node.QueueIndex = parent;
}
+ _nodes[node.QueueIndex] = node;
+ }
- float width = maxX - minX;
- float height = maxY - minY;
- float cellSize = Math.Min(width, height);
- float h = cellSize / 2;
+#if NET_VERSION_4_5
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+#endif
+ private void CascadeDown(TItem node)
+ {
+ //aka Heapify-down
+ int finalQueueIndex = node.QueueIndex;
+ int childLeftIndex = 2 * finalQueueIndex;
- SimplePriorityQueue cellQueue = new SimplePriorityQueue();
+ // If leaf node, we're done
+ if (childLeftIndex > _numNodes)
+ {
+ return;
+ }
- if (cellSize == 0)
+ // Check if the left-child is higher-priority than the current node
+ int childRightIndex = childLeftIndex + 1;
+ TItem childLeft = _nodes[childLeftIndex];
+ if (HasHigherPriority(childLeft, node))
{
- PolyLabel degeneratePoleOfInaccessibility = new PolyLabel()
+ // Check if there is a right child. If not, swap and finish.
+ if (childRightIndex > _numNodes)
{
- Centroid = new PointF(minX, minY),
- Radius = 0
- };
- return degeneratePoleOfInaccessibility;
+ node.QueueIndex = childLeftIndex;
+ childLeft.QueueIndex = finalQueueIndex;
+ _nodes[finalQueueIndex] = childLeft;
+ _nodes[childLeftIndex] = node;
+ return;
+ }
+ // Check if the left-child is higher-priority than the right-child
+ TItem childRight = _nodes[childRightIndex];
+ if (HasHigherPriority(childLeft, childRight))
+ {
+ // left is highest, move it up and continue
+ childLeft.QueueIndex = finalQueueIndex;
+ _nodes[finalQueueIndex] = childLeft;
+ finalQueueIndex = childLeftIndex;
+ }
+ else
+ {
+ // right is even higher, move it up and continue
+ childRight.QueueIndex = finalQueueIndex;
+ _nodes[finalQueueIndex] = childRight;
+ finalQueueIndex = childRightIndex;
+ }
}
-
- for (var x = minX; x < maxX; x += cellSize)
+ // Not swapping with left-child, does right-child exist?
+ else if (childRightIndex > _numNodes)
{
- for (var y = minY; y < maxY; y += cellSize)
+ return;
+ }
+ else
+ {
+ // Check if the right-child is higher-priority than the current node
+ TItem childRight = _nodes[childRightIndex];
+ if (HasHigherPriority(childRight, node))
{
- Cell cell = new Cell(x + h, y + h, h, polygon);
- cellQueue.Enqueue(cell, cell.Max);
+ childRight.QueueIndex = finalQueueIndex;
+ _nodes[finalQueueIndex] = childRight;
+ finalQueueIndex = childRightIndex;
+ }
+ // Neither child is higher-priority than current, so finish and stop.
+ else
+ {
+ return;
}
}
- Cell bestCell = GetCentroidCell(polygon);
-
- Cell bBoxCell = new Cell(minX + width / 2, minY + height / 2, 0, polygon);
- if (bBoxCell.D > bestCell.D)
- bestCell = bBoxCell;
-
- int numProbes = cellQueue.Count;
-
- while (cellQueue.Count != 0)
+ while (true)
{
- // pick the most promising cell from the queue
- var cell = cellQueue.Dequeue();
+ childLeftIndex = 2 * finalQueueIndex;
- // update the best cell if we found a better one
- if (cell.D > bestCell.D)
+ // If leaf node, we're done
+ if (childLeftIndex > _numNodes)
{
- bestCell = cell;
- if (debug)
- Console.WriteLine("found best {0} after {1} probes", Math.Round(1e4 * cell.D) / 1e4, numProbes);
+ node.QueueIndex = finalQueueIndex;
+ _nodes[finalQueueIndex] = node;
+ break;
}
- // do not drill down further if there's no chance of a better solution
- if (cell.Max - bestCell.D <= precision)
- continue;
+ // Check if the left-child is higher-priority than the current node
+ childRightIndex = childLeftIndex + 1;
+ childLeft = _nodes[childLeftIndex];
+ if (HasHigherPriority(childLeft, node))
+ {
+ // Check if there is a right child. If not, swap and finish.
+ if (childRightIndex > _numNodes)
+ {
+ node.QueueIndex = childLeftIndex;
+ childLeft.QueueIndex = finalQueueIndex;
+ _nodes[finalQueueIndex] = childLeft;
+ _nodes[childLeftIndex] = node;
+ break;
+ }
+ // Check if the left-child is higher-priority than the right-child
+ TItem childRight = _nodes[childRightIndex];
+ if (HasHigherPriority(childLeft, childRight))
+ {
+ // left is highest, move it up and continue
+ childLeft.QueueIndex = finalQueueIndex;
+ _nodes[finalQueueIndex] = childLeft;
+ finalQueueIndex = childLeftIndex;
+ }
+ else
+ {
+ // right is even higher, move it up and continue
+ childRight.QueueIndex = finalQueueIndex;
+ _nodes[finalQueueIndex] = childRight;
+ finalQueueIndex = childRightIndex;
+ }
+ }
+ // Not swapping with left-child, does right-child exist?
+ else if (childRightIndex > _numNodes)
+ {
+ node.QueueIndex = finalQueueIndex;
+ _nodes[finalQueueIndex] = node;
+ break;
+ }
+ else
+ {
+ // Check if the right-child is higher-priority than the current node
+ TItem childRight = _nodes[childRightIndex];
+ if (HasHigherPriority(childRight, node))
+ {
+ childRight.QueueIndex = finalQueueIndex;
+ _nodes[finalQueueIndex] = childRight;
+ finalQueueIndex = childRightIndex;
+ }
+ // Neither child is higher-priority than current, so finish and stop.
+ else
+ {
+ node.QueueIndex = finalQueueIndex;
+ _nodes[finalQueueIndex] = node;
+ break;
+ }
+ }
+ }
+ }
- // split the cell into four cells
- h = cell.H / 2;
+ ///
+ /// Returns true if 'higher' has higher priority than 'lower', false otherwise.
+ /// Note that calling HasHigherPriority(node, node) (ie. both arguments the same node) will return false
+ ///
+#if NET_VERSION_4_5
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+#endif
+ private bool HasHigherPriority(TItem higher, TItem lower)
+ {
+ var cmp = _comparer(higher.Priority, lower.Priority);
+ return (cmp < 0 || (cmp == 0 && higher.InsertionIndex < lower.InsertionIndex));
+ }
- Cell temp;
- temp = new Cell(cell.X - h, cell.Y - h, h, polygon);
- cellQueue.Enqueue(temp, temp.Max);
- temp = new Cell(cell.X + h, cell.Y - h, h, polygon);
- cellQueue.Enqueue(temp, temp.Max);
- temp = new Cell(cell.X - h, cell.Y + h, h, polygon);
- cellQueue.Enqueue(temp, temp.Max);
- temp = new Cell(cell.X + h, cell.Y + h, h, polygon);
- cellQueue.Enqueue(temp, temp.Max);
- numProbes += 4;
+ ///
+ /// Removes the head of the queue (node with minimum priority; ties are broken by order of insertion), and returns it.
+ /// If queue is empty, result is undefined
+ /// O(log n)
+ ///
+#if NET_VERSION_4_5
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+#endif
+ public TItem Dequeue()
+ {
+#if DEBUG
+ if (_numNodes <= 0)
+ {
+ throw new InvalidOperationException("Cannot call Dequeue() on an empty queue");
}
- if (debug)
+ if (!IsValidQueue())
{
- Console.WriteLine("num probes: " + numProbes);
- Console.WriteLine("best distance: " + bestCell.D);
+ throw new InvalidOperationException("Queue has been corrupted (Did you update a node priority manually instead of calling UpdatePriority()?" +
+ "Or add the same node to two different queues?)");
}
+#endif
- PolyLabel poleOfInaccessibility = new PolyLabel()
+ TItem returnMe = _nodes[1];
+ //If the node is already the last node, we can remove it immediately
+ if (_numNodes == 1)
{
- Centroid = new PointF(bestCell.X, bestCell.Y),
- Radius = bestCell.D
- };
+ _nodes[1] = null;
+ _numNodes = 0;
+ return returnMe;
+ }
- return poleOfInaccessibility;
+ //Swap the node with the last node
+ TItem formerLastNode = _nodes[_numNodes];
+ _nodes[1] = formerLastNode;
+ formerLastNode.QueueIndex = 1;
+ _nodes[_numNodes] = null;
+ _numNodes--;
+
+ //Now bubble formerLastNode (which is no longer the last node) down
+ CascadeDown(formerLastNode);
+ return returnMe;
}
- private static Cell GetCentroidCell(List polygon)
+ ///
+ /// Resize the queue so it can accept more nodes. All currently enqueued nodes are remain.
+ /// Attempting to decrease the queue size to a size too small to hold the existing nodes results in undefined behavior
+ /// O(n)
+ ///
+ public void Resize(int maxNodes)
{
- float area = 0;
- float x = 0;
- float y = 0;
- List points = polygon;
+#if DEBUG
+ if (maxNodes <= 0)
+ {
+ throw new InvalidOperationException("Queue size cannot be smaller than 1");
+ }
- for (int i = 0, len = points.Count, j = len - 1; i < len; j = i++)
+ if (maxNodes < _numNodes)
{
- PointF a = points[i];
- PointF b = points[j];
- float f = a.X * b.Y - b.X * a.Y;
- x += (a.X + b.X) * f;
- y += (a.Y + b.Y) * f;
- area += f * 3;
+ throw new InvalidOperationException("Called Resize(" + maxNodes + "), but current queue contains " + _numNodes + " nodes");
}
- if (area == 0)
- return new Cell(points[0].X, points[0].Y, 0, polygon);
+#endif
- return new Cell(x / area, y / area, 0, polygon);
+ TItem[] newArray = new TItem[maxNodes + 1];
+ int highestIndexToCopy = Math.Min(maxNodes, _numNodes);
+ Array.Copy(_nodes, newArray, highestIndexToCopy + 1);
+ _nodes = newArray;
}
- class Cell
+ ///
+ /// Returns the head of the queue, without removing it (use Dequeue() for that).
+ /// If the queue is empty, behavior is undefined.
+ /// O(1)
+ ///
+ public TItem First
{
- public float X { get; set; }
- public float Y { get; set; }
- public float H { get; set; }
- public float D { get; set; }
- public float Max { get; set; }
- public Cell(float x, float y, float h, List polygon)
+ get
{
- this.X = x;
- this.Y = y;
- this.H = h;
- this.D = PointToPolygonDist(x, y, polygon);
- this.Max = Convert.ToSingle(this.D + this.H * Math.Sqrt(2));
+#if DEBUG
+ if (_numNodes <= 0)
+ {
+ throw new InvalidOperationException("Cannot call .First on an empty queue");
+ }
+#endif
+
+ return _nodes[1];
}
+ }
- float PointToPolygonDist(float x, float y, List polygon)
+ ///
+ /// This method must be called on a node every time its priority changes while it is in the queue.
+ /// Forgetting to call this method will result in a corrupted queue!
+ /// Calling this method on a node not in the queue results in undefined behavior
+ /// O(log n)
+ ///
+#if NET_VERSION_4_5
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+#endif
+ public void UpdatePriority(TItem node, TPriority priority)
+ {
+#if DEBUG
+ if (node == null)
{
- bool inside = false;
- float minDistSq = float.PositiveInfinity;
+ throw new ArgumentNullException("node");
+ }
+ if (node.Queue != null && !Equals(node.Queue))
+ {
+ throw new InvalidOperationException("node.UpdatePriority was called on a node from another queue");
+ }
+ if (!Contains(node))
+ {
+ throw new InvalidOperationException("Cannot call UpdatePriority() on a node which is not enqueued: " + node);
+ }
+#endif
- for (int i = 0, len = polygon.Count, j = len - 1; i < len; j = i++)
- {
- PointF a = polygon[i];
- PointF b = polygon[j];
+ node.Priority = priority;
+ OnNodeUpdated(node);
+ }
- if ((a.Y > y != b.Y > y) && (x < (b.X - a.X) * (y - a.Y) / (b.Y - a.Y) + a.X))
- inside = !inside;
+#if NET_VERSION_4_5
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+#endif
+ private void OnNodeUpdated(TItem node)
+ {
+ //Bubble the updated node up or down as appropriate
+ int parentIndex = node.QueueIndex >> 1;
- minDistSq = Math.Min(minDistSq, GetSeqDistSq(x, y, a, b));
- }
+ if (parentIndex > 0 && HasHigherPriority(node, _nodes[parentIndex]))
+ {
+ CascadeUp(node);
+ }
+ else
+ {
+ //Note that CascadeDown will be called if parentNode == node (that is, node is the root)
+ CascadeDown(node);
+ }
+ }
- return Convert.ToSingle((inside ? 1 : -1) * Math.Sqrt(minDistSq));
+ ///
+ /// Removes a node from the queue. The node does not need to be the head of the queue.
+ /// If the node is not in the queue, the result is undefined. If unsure, check Contains() first
+ /// O(log n)
+ ///
+#if NET_VERSION_4_5
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+#endif
+ public void Remove(TItem node)
+ {
+#if DEBUG
+ if (node == null)
+ {
+ throw new ArgumentNullException("node");
+ }
+ if (node.Queue != null && !Equals(node.Queue))
+ {
+ throw new InvalidOperationException("node.Remove was called on a node from another queue");
}
+ if (!Contains(node))
+ {
+ throw new InvalidOperationException("Cannot call Remove() on a node which is not enqueued: " + node);
+ }
+#endif
- float GetSeqDistSq(float px, float py, PointF a, PointF b)
+ //If the node is already the last node, we can remove it immediately
+ if (node.QueueIndex == _numNodes)
{
- float x = a.X;
- float y = a.Y;
- float dx = b.X - x;
- float dy = b.Y - y;
+ _nodes[_numNodes] = null;
+ _numNodes--;
+ return;
+ }
- if (dx != 0 || dy != 0)
- {
+ //Swap the node with the last node
+ TItem formerLastNode = _nodes[_numNodes];
+ _nodes[node.QueueIndex] = formerLastNode;
+ formerLastNode.QueueIndex = node.QueueIndex;
+ _nodes[_numNodes] = null;
+ _numNodes--;
- var t = ((px - x) * dx + (py - y) * dy) / (dx * dx + dy * dy);
+ //Now bubble formerLastNode (which is no longer the last node) up or down as appropriate
+ OnNodeUpdated(formerLastNode);
+ }
- if (t > 1)
- {
- x = b.X;
- y = b.Y;
+ ///
+ /// By default, nodes that have been previously added to one queue cannot be added to another queue.
+ /// If you need to do this, please call originalQueue.ResetNode(node) before attempting to add it in the new queue
+ ///
+#if NET_VERSION_4_5
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+#endif
+ public void ResetNode(TItem node)
+ {
+#if DEBUG
+ if (node == null)
+ {
+ throw new ArgumentNullException("node");
+ }
+ if (node.Queue != null && !Equals(node.Queue))
+ {
+ throw new InvalidOperationException("node.ResetNode was called on a node from another queue");
+ }
+ if (Contains(node))
+ {
+ throw new InvalidOperationException("node.ResetNode was called on a node that is still in the queue");
+ }
- }
- else if (t > 0)
- {
- x += dx * t;
- y += dy * t;
- }
- }
+ node.Queue = null;
+#endif
- dx = px - x;
- dy = py - y;
+ node.QueueIndex = 0;
+ }
- return dx * dx + dy * dy;
+
+ public IEnumerator GetEnumerator()
+ {
+#if NET_VERSION_4_5 // ArraySegment does not implement IEnumerable before 4.5
+ IEnumerable e = new ArraySegment(_nodes, 1, _numNodes);
+ return e.GetEnumerator();
+#else
+ for (int i = 1; i <= _numNodes; i++)
+ yield return _nodes[i];
+#endif
+ }
+
+ IEnumerator IEnumerable.GetEnumerator()
+ {
+ return GetEnumerator();
+ }
+
+ ///
+ /// Should not be called in production code.
+ /// Checks to make sure the queue is still in a valid state. Used for testing/debugging the queue.
+ ///
+ public bool IsValidQueue()
+ {
+ for (int i = 1; i < _nodes.Length; i++)
+ {
+ if (_nodes[i] != null)
+ {
+ int childLeftIndex = 2 * i;
+ if (childLeftIndex < _nodes.Length && _nodes[childLeftIndex] != null && HasHigherPriority(_nodes[childLeftIndex], _nodes[i]))
+ return false;
+
+ int childRightIndex = childLeftIndex + 1;
+ if (childRightIndex < _nodes.Length && _nodes[childRightIndex] != null && HasHigherPriority(_nodes[childRightIndex], _nodes[i]))
+ return false;
+ }
}
+ return true;
}
}
}]]> | |
@@ -1337,203 +2671,401 @@ namespace PolyLabel
+AAAAAAAAAAAAAAA=]]>
| |
Size="275,42"
Id="Package\Correct PIMS Locations\PIMS_PROPERTY_BOUNDARY_VIEW"
TopLeft="5.5,5.5" />
+
+
+ Id="Package\Correct PIMS Locations.Paths[VALID_NEW_LOCATION]"
+ TopLeft="143,251.5">
-
+
-
-
@@ -1731,8 +3265,8 @@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]>
+ Id="Package\Correct PIMS Locations.Paths[OLE DB Source Output]"
+ TopLeft="143,47.5">
-
+
diff --git a/etl/PIMS_PROPERTY_SPATIAL_CORRECTION/PIMS_PROPERTY_SPATIAL_CORRECTION/PriorityQueue.dll b/etl/PIMS_PROPERTY_SPATIAL_CORRECTION/PIMS_PROPERTY_SPATIAL_CORRECTION/PriorityQueue.dll
deleted file mode 100644
index 2e5d11fa09..0000000000
Binary files a/etl/PIMS_PROPERTY_SPATIAL_CORRECTION/PIMS_PROPERTY_SPATIAL_CORRECTION/PriorityQueue.dll and /dev/null differ
diff --git a/etl/PIMS_PROPERTY_SPATIAL_CORRECTION/PIMS_PROPERTY_SPATIAL_CORRECTION/Project.params b/etl/PIMS_PROPERTY_SPATIAL_CORRECTION/PIMS_PROPERTY_SPATIAL_CORRECTION/Project.params
index 680ffe30da..5c660151e8 100644
--- a/etl/PIMS_PROPERTY_SPATIAL_CORRECTION/PIMS_PROPERTY_SPATIAL_CORRECTION/Project.params
+++ b/etl/PIMS_PROPERTY_SPATIAL_CORRECTION/PIMS_PROPERTY_SPATIAL_CORRECTION/Project.params
@@ -1,2 +1,2 @@
-
+
\ No newline at end of file