From f76d1f4d9e2eef4c15592d4cef5b812a91646d41 Mon Sep 17 00:00:00 2001 From: Christopher Louie Date: Mon, 23 Feb 2026 16:39:03 -0800 Subject: [PATCH 01/43] Add user Chris --- database/seeders/UserSeeder.php | 1 + 1 file changed, 1 insertion(+) diff --git a/database/seeders/UserSeeder.php b/database/seeders/UserSeeder.php index 8fb2816a..e6d11dea 100644 --- a/database/seeders/UserSeeder.php +++ b/database/seeders/UserSeeder.php @@ -27,6 +27,7 @@ public function run(): void ['name' => 'David', 'email' => 'david.okulski@gov.bc.ca'], ['name' => 'Joh', 'email' => 'johtaro.yoshida@gov.bc.ca'], ['name' => 'Josh', 'email' => 'joshua.larouche@gov.bc.ca'], + ['name' => 'Chris', 'email' => 'christopher.louie@gov.bc.ca'], ]; foreach ($users as $userData) { From 49243e80501373bcb3490d37f5c0a9e282fb8789 Mon Sep 17 00:00:00 2001 From: Christopher Louie Date: Mon, 23 Feb 2026 16:39:39 -0800 Subject: [PATCH 02/43] Fix 'Enable Variable Substitution' toggle spelling --- app/Helpers/SchemaHelper.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/Helpers/SchemaHelper.php b/app/Helpers/SchemaHelper.php index c6b2728a..b71a76d8 100644 --- a/app/Helpers/SchemaHelper.php +++ b/app/Helpers/SchemaHelper.php @@ -54,7 +54,6 @@ public static function getPlaceholderTextField(bool $disabled = false) ->label('Placeholder Text') ->autocomplete(false) ->disabled($disabled); - } public static function getLabelTextField(bool $disabled = false) @@ -94,7 +93,7 @@ public static function getPlaceholderField(bool $disabled = false) public static function getEnableVariableSubstitutionToggle(bool $disabled = false) { return Toggle::make('elementable_data.enableVarSub') - ->label('Enable Variable Subsitution') + ->label('Enable Variable Substitution') ->helperText('Use {{variableName}} syntax in the label to dynamically insert values from other form fields. Make sure you also insert the Moustache library in the Scripts tab and register the variable.') ->default(false) From 2ae0944bbd75c39247c03f77f6850b0aecfcf9bb Mon Sep 17 00:00:00 2001 From: Christopher Louie Date: Mon, 23 Feb 2026 17:00:18 -0800 Subject: [PATCH 03/43] Update package-lock.json (remove unused dependencies) --- package-lock.json | 229 ++-------------------------------------------- 1 file changed, 6 insertions(+), 223 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0f7c5500..85f3eda3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -725,8 +725,7 @@ "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@types/estree": { "version": "1.0.7", @@ -735,21 +734,6 @@ "dev": true, "license": "MIT" }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -768,34 +752,6 @@ "proxy-from-env": "^1.1.0" } }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/call-bind-apply-helpers": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", @@ -810,32 +766,6 @@ "node": ">= 0.4" } }, - "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -853,7 +783,6 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", "dev": true, - "peer": true, "dependencies": { "ms": "2.1.2" }, @@ -896,7 +825,6 @@ "integrity": "sha512-T0iLjnyNWahNyv/lcjS2y4oE358tVS/SYQNxYXGAJ9/GLgH4VCvOQ/mhTjqU88mLZCQgiG8RIegFHYCdVC+j5w==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.1", @@ -911,7 +839,6 @@ "integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=10.0.0" } @@ -1006,20 +933,6 @@ "@esbuild/win32-x64": "0.25.5" } }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/follow-redirects": { "version": "1.15.6", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", @@ -1120,20 +1033,6 @@ "node": ">= 0.4" } }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/gopd": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", @@ -1189,64 +1088,6 @@ "node": ">= 0.4" } }, - "node_modules/immutable": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.6.tgz", - "integrity": "sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.12.0" - } - }, "node_modules/laravel-echo": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/laravel-echo/-/laravel-echo-2.1.4.tgz", @@ -1322,8 +1163,7 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "peer": true + "dev": true }, "node_modules/nanoid": { "version": "3.3.11", @@ -1344,17 +1184,6 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -1415,22 +1244,9 @@ "integrity": "sha512-wp3HqIIUc1GRyu1XrP6m2dgyE9MoCsXVsWNlohj0rjSkLf+a0jLvEyVubdg58oMk7bhjBWnFClgp8jfAa6Ak4Q==", "dev": true, "license": "MIT", - "dependencies": { - "tweetnacl": "^1.0.3" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "optional": true, "peer": true, "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" + "tweetnacl": "^1.0.3" } }, "node_modules/rollup": { @@ -1473,25 +1289,6 @@ "fsevents": "~2.3.2" } }, - "node_modules/sass": { - "version": "1.77.6", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.6.tgz", - "integrity": "sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "chokidar": ">=3.0.0 <4.0.0", - "immutable": "^4.0.0", - "source-map-js": ">=0.6.2 <2.0.0" - }, - "bin": { - "sass": "sass.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, "node_modules/socket.io-client": { "version": "4.8.1", "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.8.1.tgz", @@ -1515,7 +1312,6 @@ "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.1" @@ -1572,6 +1368,7 @@ "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -1579,20 +1376,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, "node_modules/tweetnacl": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", @@ -1606,6 +1389,7 @@ "integrity": "sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.4", @@ -1706,6 +1490,7 @@ "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -1719,7 +1504,6 @@ "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=10.0.0" }, @@ -1741,7 +1525,6 @@ "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.1.2.tgz", "integrity": "sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ==", "dev": true, - "peer": true, "engines": { "node": ">=0.4.0" } From 68bb90b9c7a63bc537dc0ecb5445d3224687a159 Mon Sep 17 00:00:00 2001 From: Christopher Louie Date: Mon, 23 Feb 2026 17:01:36 -0800 Subject: [PATCH 04/43] Add postal code validation/masking to text input element --- app/Models/FormBuilding/TextInputFormElement.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/Models/FormBuilding/TextInputFormElement.php b/app/Models/FormBuilding/TextInputFormElement.php index 62174bda..c3085955 100644 --- a/app/Models/FormBuilding/TextInputFormElement.php +++ b/app/Models/FormBuilding/TextInputFormElement.php @@ -59,7 +59,8 @@ public static function getFilamentSchema(bool $disabled = false): array ->label('Input Mask Type') ->options([ 'email' => 'Email', - 'phone'=> 'Phone', + 'phone' => 'Phone', + 'postal' => 'Postal Code', 'custom' => 'Custom', ]) ->inline() @@ -68,6 +69,7 @@ public static function getFilamentSchema(bool $disabled = false): array $maskPatterns = [ 'email' => '^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$', 'phone' => '### ###-####', + 'postal' => '^[A-Z]\d[A-Z]\s\d[A-Z]\d$', 'custom' => '', ]; $set('elementable_data.mask', $maskPatterns[$state] ?? ''); @@ -81,7 +83,7 @@ public static function getFilamentSchema(bool $disabled = false): array ->label('Validation Message') ->placeholder('e.g. Only letters and spaces are allowed') ->hint('Displayed when input doesn\'t match the mask') - ->visible(fn ($get) => $get('elementable_data.maskType') === 'custom') + ->visible(fn($get) => $get('elementable_data.maskType') === 'custom') ->disabled($disabled), ]) ->columns(1), From c89c4925d47f7c3dbd4eb53f83b5b033de69857c Mon Sep 17 00:00:00 2001 From: Christopher Louie Date: Tue, 24 Feb 2026 13:40:59 -0800 Subject: [PATCH 05/43] Change postal code mask to use maska instead of regex --- app/Models/FormBuilding/TextInputFormElement.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Models/FormBuilding/TextInputFormElement.php b/app/Models/FormBuilding/TextInputFormElement.php index c3085955..8c0d17a0 100644 --- a/app/Models/FormBuilding/TextInputFormElement.php +++ b/app/Models/FormBuilding/TextInputFormElement.php @@ -69,7 +69,7 @@ public static function getFilamentSchema(bool $disabled = false): array $maskPatterns = [ 'email' => '^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$', 'phone' => '### ###-####', - 'postal' => '^[A-Z]\d[A-Z]\s\d[A-Z]\d$', + 'postal' => '@#@ #@#', 'custom' => '', ]; $set('elementable_data.mask', $maskPatterns[$state] ?? ''); From ac74c70df5c6961aa1102ca6f479bd797f77e3bf Mon Sep 17 00:00:00 2001 From: Christopher Louie Date: Tue, 24 Feb 2026 16:10:47 -0800 Subject: [PATCH 06/43] Disable form version duplication --- .../FormVersionRelationManager.php | 180 +++++++++--------- 1 file changed, 90 insertions(+), 90 deletions(-) diff --git a/app/Filament/Forms/Resources/FormResource/RelationManagers/FormVersionRelationManager.php b/app/Filament/Forms/Resources/FormResource/RelationManagers/FormVersionRelationManager.php index 6ff4da27..a3a88dfd 100644 --- a/app/Filament/Forms/Resources/FormResource/RelationManagers/FormVersionRelationManager.php +++ b/app/Filament/Forms/Resources/FormResource/RelationManagers/FormVersionRelationManager.php @@ -86,96 +86,96 @@ public function table(Tables\Table $table): Tables\Table Tables\Actions\EditAction::make() ->url(fn(FormVersion $record) => FormVersionResource::getUrl('edit', ['record' => $record])) ->visible(fn($record) => (in_array($record->status, ['draft', 'testing'])) && Gate::allows('form-developer')), - Action::make('duplicate') - ->label('Duplicate') - ->icon('heroicon-o-document-duplicate') - ->color('info') - ->visible(fn($record) => (in_array($record->status, ['draft', 'testing'])) && Gate::allows('form-developer')) - ->action(function ($record) { - // Create a new version with incremented version number - $newVersion = $record->replicate(['version_number', 'status', 'created_at', 'updated_at']); - $newVersion->version_number = FormVersion::where('form_id', $record->form_id)->max('version_number') + 1; - $newVersion->status = 'draft'; - $newVersion->form_developer_id = Auth::id(); - $newVersion->comments = 'Duplicated from version ' . $record->version_number; - $newVersion->save(); - - // Duplicate all FormElements and map new to old - $oldToNewElementMap = []; - foreach ($record->formElements()->orderBy('order')->get() as $element) { - $newElement = $element->replicate(['id', 'form_version_id', 'parent_id', 'created_at', 'updated_at']); - $newElement->form_version_id = $newVersion->id; - $newElement->parent_id = null; - $newElement->save(); - - // Map old element ID to new element for parent relationship updates - $oldToNewElementMap[$element->id] = [ - 'new_element' => $newElement, - 'old_parent_id' => $element->parent_id - ]; - - // Attach tags - $newElement->tags()->attach($element->tags->pluck('id')); - - // Duplicate data bindings - foreach ($element->dataBindings as $dataBinding) { - FormElementDataBinding::create([ - 'form_element_id' => $newElement->id, - 'form_data_source_id' => $dataBinding->form_data_source_id, - 'path' => $dataBinding->path, - 'condition' => $dataBinding->condition, - 'order' => $dataBinding->order, - ]); - } - - // Duplicate polymorphic elementable and link to new element - if ($element->elementable) { - $elementableData = $element->elementable->getData(); - $newElementable = $element->elementable_type::create($elementableData); - $newElement->update(['elementable_id' => $newElementable->id]); - } - } - - // Update parent_id relationships for nested elements - foreach ($oldToNewElementMap as $data) { - if ($data['old_parent_id'] && isset($oldToNewElementMap[$data['old_parent_id']])) { - $data['new_element']->update([ - 'parent_id' => $oldToNewElementMap[$data['old_parent_id']]['new_element']->id - ]); - } - } - - // Duplicate related models using a helper method - FormVersionHelper::duplicateRelatedModels($record->id, $newVersion->id, StyleSheet::class); - FormVersionHelper::duplicateRelatedModels($record->id, $newVersion->id, FormScript::class); - - // Duplicate form data sources with their order - foreach ($record->formVersionFormDataSources as $formDataSource) { - FormVersionFormDataSource::create([ - 'form_version_id' => $newVersion->id, - 'form_data_source_id' => $formDataSource->form_data_source_id, - 'order' => $formDataSource->order, - ]); - } - - // Duplicate form interfaces - foreach ($record->formVersionFormInterfaces as $formInterface) { - \App\Models\FormBuilding\FormVersionFormInterface::create([ - 'form_version_id' => $newVersion->id, - 'form_interface_id' => $formInterface->form_interface_id, - 'order' => $formInterface->order, - ]); - } - - // Redirect to build the new version - if (Gate::allows('form-developer')) { - return redirect()->to('/forms/form-versions/' . $newVersion->id . '/build'); - } else { - return redirect()->to(FormVersionResource::getUrl('view', ['record' => $newVersion])); - } - }) - ->requiresConfirmation() - ->modalDescription('This will create a new draft version based on this form version, including all form elements.'), + // Action::make('duplicate') + // ->label('Duplicate') + // ->icon('heroicon-o-document-duplicate') + // ->color('info') + // ->visible(fn($record) => (in_array($record->status, ['draft', 'testing'])) && Gate::allows('form-developer')) + // ->action(function ($record) { + // // Create a new version with incremented version number + // $newVersion = $record->replicate(['version_number', 'status', 'created_at', 'updated_at']); + // $newVersion->version_number = FormVersion::where('form_id', $record->form_id)->max('version_number') + 1; + // $newVersion->status = 'draft'; + // $newVersion->form_developer_id = Auth::id(); + // $newVersion->comments = 'Duplicated from version ' . $record->version_number; + // $newVersion->save(); + + // // Duplicate all FormElements and map new to old + // $oldToNewElementMap = []; + // foreach ($record->formElements()->orderBy('order')->get() as $element) { + // $newElement = $element->replicate(['id', 'form_version_id', 'parent_id', 'created_at', 'updated_at']); + // $newElement->form_version_id = $newVersion->id; + // $newElement->parent_id = null; + // $newElement->save(); + + // // Map old element ID to new element for parent relationship updates + // $oldToNewElementMap[$element->id] = [ + // 'new_element' => $newElement, + // 'old_parent_id' => $element->parent_id + // ]; + + // // Attach tags + // $newElement->tags()->attach($element->tags->pluck('id')); + + // // Duplicate data bindings + // foreach ($element->dataBindings as $dataBinding) { + // FormElementDataBinding::create([ + // 'form_element_id' => $newElement->id, + // 'form_data_source_id' => $dataBinding->form_data_source_id, + // 'path' => $dataBinding->path, + // 'condition' => $dataBinding->condition, + // 'order' => $dataBinding->order, + // ]); + // } + + // // Duplicate polymorphic elementable and link to new element + // if ($element->elementable) { + // $elementableData = $element->elementable->getData(); + // $newElementable = $element->elementable_type::create($elementableData); + // $newElement->update(['elementable_id' => $newElementable->id]); + // } + // } + + // // Update parent_id relationships for nested elements + // foreach ($oldToNewElementMap as $data) { + // if ($data['old_parent_id'] && isset($oldToNewElementMap[$data['old_parent_id']])) { + // $data['new_element']->update([ + // 'parent_id' => $oldToNewElementMap[$data['old_parent_id']]['new_element']->id + // ]); + // } + // } + + // // Duplicate related models using a helper method + // FormVersionHelper::duplicateRelatedModels($record->id, $newVersion->id, StyleSheet::class); + // FormVersionHelper::duplicateRelatedModels($record->id, $newVersion->id, FormScript::class); + + // // Duplicate form data sources with their order + // foreach ($record->formVersionFormDataSources as $formDataSource) { + // FormVersionFormDataSource::create([ + // 'form_version_id' => $newVersion->id, + // 'form_data_source_id' => $formDataSource->form_data_source_id, + // 'order' => $formDataSource->order, + // ]); + // } + + // // Duplicate form interfaces + // foreach ($record->formVersionFormInterfaces as $formInterface) { + // \App\Models\FormBuilding\FormVersionFormInterface::create([ + // 'form_version_id' => $newVersion->id, + // 'form_interface_id' => $formInterface->form_interface_id, + // 'order' => $formInterface->order, + // ]); + // } + + // // Redirect to build the new version + // if (Gate::allows('form-developer')) { + // return redirect()->to('/forms/form-versions/' . $newVersion->id . '/build'); + // } else { + // return redirect()->to(FormVersionResource::getUrl('view', ['record' => $newVersion])); + // } + // }) + // ->requiresConfirmation() + // ->modalDescription('This will create a new draft version based on this form version, including all form elements.'), Tables\Actions\Action::make('archive') ->label('Archive') ->icon('heroicon-o-archive-box-arrow-down') From d5d1f714f0ae746466edbd4c5ea032641d751819 Mon Sep 17 00:00:00 2001 From: Christopher Louie Date: Wed, 25 Feb 2026 11:07:03 -0800 Subject: [PATCH 07/43] Add reason for disabling duplicate form version comment --- .../FormResource/RelationManagers/FormVersionRelationManager.php | 1 + 1 file changed, 1 insertion(+) diff --git a/app/Filament/Forms/Resources/FormResource/RelationManagers/FormVersionRelationManager.php b/app/Filament/Forms/Resources/FormResource/RelationManagers/FormVersionRelationManager.php index a3a88dfd..38f6c083 100644 --- a/app/Filament/Forms/Resources/FormResource/RelationManagers/FormVersionRelationManager.php +++ b/app/Filament/Forms/Resources/FormResource/RelationManagers/FormVersionRelationManager.php @@ -86,6 +86,7 @@ public function table(Tables\Table $table): Tables\Table Tables\Actions\EditAction::make() ->url(fn(FormVersion $record) => FormVersionResource::getUrl('edit', ['record' => $record])) ->visible(fn($record) => (in_array($record->status, ['draft', 'testing'])) && Gate::allows('form-developer')), + // Duplicate form version currently disabled due to ADO bugs 3302 and 3303 // Action::make('duplicate') // ->label('Duplicate') // ->icon('heroicon-o-document-duplicate') From fe0aa91d9529fd9f742ee80abaafd37d35465597 Mon Sep 17 00:00:00 2001 From: JohYoshidaBCGov Date: Mon, 2 Mar 2026 16:00:07 -0800 Subject: [PATCH 08/43] Autolinter --- app/Services/FormVersionJsonService.php | 66 +++++++++++++++---------- 1 file changed, 39 insertions(+), 27 deletions(-) diff --git a/app/Services/FormVersionJsonService.php b/app/Services/FormVersionJsonService.php index 037f587a..e47d2fa8 100644 --- a/app/Services/FormVersionJsonService.php +++ b/app/Services/FormVersionJsonService.php @@ -143,9 +143,11 @@ protected function getStylesPreMigration(FormVersion $formVersion): array // Append all attached stylesheets to the web CSS foreach ($formVersion->styleSheets as $sheet) { - if (!$sheet) continue; + if (!$sheet) + continue; $key = $sheet->id ? ('style:' . $sheet->id) : null; - if ($key && isset($added[$key])) continue; + if ($key && isset($added[$key])) + continue; $css = $sheet->getCssContent() ?? ''; if ($css !== '') { @@ -153,7 +155,8 @@ protected function getStylesPreMigration(FormVersion $formVersion): array . "/* Attached stylesheet */\n" . $css; } - if ($key) $added[$key] = true; + if ($key) + $added[$key] = true; } if ($webCss !== '') { @@ -189,9 +192,11 @@ protected function getScriptsPreMigration(FormVersion $formVersion): array // Append all attached form scripts to the web JS foreach ($formVersion->formScripts as $script) { - if (!$script) continue; + if (!$script) +continue; $key = $script->id ? ('script:' . $script->id) : null; - if ($key && isset($added[$key])) continue; + if ($key && isset($added[$key])) +continue; $js = $script->getJsContent() ?? ''; if ($js !== '') { @@ -199,7 +204,8 @@ protected function getScriptsPreMigration(FormVersion $formVersion): array . "/* Attached form script */\n" . $js; } - if ($key) $added[$key] = true; + if ($key) +$added[$key] = true; } if ($webJs !== '') { @@ -250,16 +256,19 @@ protected function getStyles(FormVersion $formVersion): array // 3) Append all attached stylesheets (deduping) foreach ($formVersion->styleSheets as $sheet) { - if (!$sheet) continue; + if (!$sheet) +continue; $key = $sheet->id ? ('style:' . $sheet->id) : null; - if ($key && isset($added[$key])) continue; + if ($key && isset($added[$key])) +continue; $styles[] = [ 'type' => $sheet->type ?? 'web', 'filename' => $sheet->filename, 'content' => $sheet->getCssContent() ?? '' ]; - if ($key) $added[$key] = true; + if ($key) +$added[$key] = true; } return $styles; @@ -296,16 +305,19 @@ protected function getScripts(FormVersion $formVersion): array // 3) Append all attached form scripts (deduping) foreach ($formVersion->formScripts as $script) { - if (!$script) continue; + if (!$script) +continue; $key = $script->id ? ('script:' . $script->id) : null; - if ($key && isset($added[$key])) continue; + if ($key && isset($added[$key])) +continue; $scripts[] = [ 'type' => $script->type ?? 'web', 'filename' => $script->filename, 'content' => $script->getJsContent() ?? '' ]; - if ($key) $added[$key] = true; + if ($key) +$added[$key] = true; } return $scripts; @@ -470,7 +482,7 @@ protected function transformContainerElement(FormElement $element, array $elemen return $this->transformRepeatableContainerAsGroup($element, $elementData); } - $elementData['containerId'] = (string)($element->id ?? ''); + $elementData['containerId'] = (string) ($element->id ?? ''); $elementData['clear_button'] = false; $elementData['codeContext'] = [ 'name' => $this->generateCodeContextName($element->name ?? 'container') @@ -521,7 +533,7 @@ protected function transformRepeatableContainerAsGroup(FormElement $element, arr // Transform repeatable container to group format for renderer compatibility $elementData['type'] = 'group'; // Override type to group $elementData['label'] = $element->elementable?->legend ?? null; - $elementData['groupId'] = (string)($element->id ?? '1'); + $elementData['groupId'] = (string) ($element->id ?? '1'); $elementData['repeater'] = true; // Always true for repeatable containers $elementData['repeaterLabel'] = $element->elementable?->legend ?? null; $elementData['repeaterItemLabel'] = $element->elementable?->repeater_item_label; @@ -588,7 +600,7 @@ protected function transformRepeatableContainerAsGroup(FormElement $element, arr protected function transformGroupElement(FormElement $element, array $elementData): array { $elementData['label'] = $element->elementable?->legend ?? null; - $elementData['groupId'] = (string)($element->id ?? '1'); + $elementData['groupId'] = (string) ($element->id ?? '1'); $elementData['repeater'] = $element->elementable?->is_repeatable ?? false; $elementData['repeaterLabel'] = $element->elementable?->legend ?? null; $elementData['repeaterItemLabel'] = $element->elementable?->repeater_item_label; @@ -767,7 +779,7 @@ protected function addElementSpecificProperties(array &$elementData, FormElement // Add default value for boolean elements $attributes = $this->getElementAttributes($element); if (isset($attributes['default_value'])) { - $elementData['defaultValue'] = (bool)$attributes['default_value']; + $elementData['defaultValue'] = (bool) $attributes['default_value']; } break; case 'radio-input': @@ -851,7 +863,7 @@ protected function transformValidationRules(FormElement $element): array if (isset($attributes['required']) && $attributes['required'] || $element->is_required) { $validation[] = [ 'type' => 'required', - 'value' => (bool)($attributes['required'] ?? $element->is_required), + 'value' => (bool) ($attributes['required'] ?? $element->is_required), 'errorMessage' => $attributes['required_message'] ?? 'This field is required!' ]; } @@ -860,7 +872,7 @@ protected function transformValidationRules(FormElement $element): array if (isset($attributes['min_length'])) { $validation[] = [ 'type' => 'minLength', - 'value' => (string)$attributes['min_length'], + 'value' => (string) $attributes['min_length'], 'errorMessage' => $attributes['min_length_message'] ?? "Minimum length is {$attributes['min_length']}" ]; } @@ -868,7 +880,7 @@ protected function transformValidationRules(FormElement $element): array if (isset($attributes['max_length'])) { $validation[] = [ 'type' => 'maxLength', - 'value' => (string)$attributes['max_length'], + 'value' => (string) $attributes['max_length'], 'errorMessage' => $attributes['max_length_message'] ?? "Maximum length is {$attributes['max_length']}" ]; } @@ -877,7 +889,7 @@ protected function transformValidationRules(FormElement $element): array if (isset($attributes['min_value'])) { $validation[] = [ 'type' => 'minValue', - 'value' => (string)$attributes['min_value'], + 'value' => (string) $attributes['min_value'], 'errorMessage' => $attributes['min_value_message'] ?? "Minimum value is {$attributes['min_value']}" ]; } @@ -885,7 +897,7 @@ protected function transformValidationRules(FormElement $element): array if (isset($attributes['max_value'])) { $validation[] = [ 'type' => 'maxValue', - 'value' => (string)$attributes['max_value'], + 'value' => (string) $attributes['max_value'], 'errorMessage' => $attributes['max_value_message'] ?? "Maximum value is {$attributes['max_value']}" ]; } @@ -1086,7 +1098,7 @@ protected function getFormInterfaceActions(FormInterface $formInterface): array protected function convertKeyValueArrayToObject($keyValueArray): object { if (!is_array($keyValueArray)) { - return (object)[]; + return (object) []; } $result = []; @@ -1096,7 +1108,7 @@ protected function convertKeyValueArrayToObject($keyValueArray): object } } - return (object)$result; + return (object) $result; } /** @@ -1120,16 +1132,16 @@ protected function decodeJsonField($jsonString): array|object } if (empty($jsonString) || !is_string($jsonString)) { - return (object)[]; + return (object) []; } $decoded = json_decode($jsonString, true); if (json_last_error() !== JSON_ERROR_NONE) { - return (object)[]; + return (object) []; } - return is_array($decoded) ? (object)$decoded : (object)[]; + return is_array($decoded) ? (object) $decoded : (object) []; } /** @@ -1151,7 +1163,7 @@ protected function customAttributeMapping(string $key, $value): ?array case 'min': case 'step': if (is_numeric($value)) { - return [$key, (float)$value]; + return [$key, (float) $value]; } return [$key, $value]; case 'dateFormat': From 06cc09b78183d72f343fe5a50357107f061919f6 Mon Sep 17 00:00:00 2001 From: Christopher Louie Date: Thu, 26 Feb 2026 17:37:23 -0800 Subject: [PATCH 09/43] Add formatting and validation to the number and currency input's fields --- .../FormBuilding/CurrencyInputFormElement.php | 134 ++++++++++- .../FormBuilding/NumberInputFormElement.php | 213 ++++++++++++++++-- 2 files changed, 332 insertions(+), 15 deletions(-) diff --git a/app/Models/FormBuilding/CurrencyInputFormElement.php b/app/Models/FormBuilding/CurrencyInputFormElement.php index 38973af4..9fabb60c 100644 --- a/app/Models/FormBuilding/CurrencyInputFormElement.php +++ b/app/Models/FormBuilding/CurrencyInputFormElement.php @@ -7,9 +7,10 @@ use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Database\Eloquent\Relations\MorphOne; +use Filament\Forms\Get; use Filament\Forms\Components\Fieldset; use Filament\Forms\Components\TextInput; -use Filament\Forms\Components\ToggleButtons; +use Closure; class CurrencyInputFormElement extends Model { @@ -35,12 +36,95 @@ class CurrencyInputFormElement extends Model protected $attributes = [ 'hideLabel' => false, ]; + /* + * Format the value as currency + */ + protected static function formatCurrency(string $target): \Closure + { + return function ($state, callable $set) use ($target) { + if ($state === null) return; + + $raw = trim((string) $state); + + // Normalize incomplete forms to 0.00 + if (in_array($raw, ['-', '.', '-.'], true)) { + $set($target, '0.00'); + return; + } + + // Only allow plain decimals: optional leading '-', digits, optional single dot, digits + // (Rejects scientific notation, commas, spaces, letters, etc.) + if (!preg_match('/^-?\d*\.?\d*$/', $raw)) { + return; // let validation flag invalid format + } + + // Separate sign and body + $neg = str_starts_with($raw, '-'); + $body = ltrim($raw, '-'); + + // Split into integer and fractional parts + $int = $body; + $frac = ''; + if (strpos($body, '.') !== false) { + [$int, $frac] = explode('.', $body, 2); + } + + // Trim leading zeros in the integer part but keep at least one + $int = ltrim($int, '0'); + if ($int === '') { + $int = '0'; + } + + // If no fractional part → pad to 2 decimals + if ($frac === '') { + $out = ($neg && $int === '0') ? '0.00' : (($neg ? '-' : '') . $int . '.00'); + $set($target, $out); + return; + } + + // If 1 fractional digit → pad to 2 + if (preg_match('/^\d$/', $frac)) { + $out = ($neg && $int === '0' && $frac === '0') + ? '0.00' + : (($neg ? '-' : '') . $int . '.' . $frac . '0'); + $set($target, $out); + return; + } + + // If exactly 2 fractional digits → keep as-is (normalize -0.00) + if (preg_match('/^\d{2}$/', $frac)) { + $out = ($neg ? '-' : '') . $int . '.' . $frac; + if ($out === '-0.00') $out = '0.00'; + $set($target, $out); + return; + } + + // More than 2 fractional digits: + // - If extras are all zeros, trim to 2 (e.g., 0.2500 → 0.25) + // - Else leave unchanged (validation should flag), and DO NOT round + if (strlen($frac) > 2) { + $first2 = substr($frac, 0, 2); + $extra = substr($frac, 2); + if (preg_match('/^0+$/', $extra)) { + $out = ($neg ? '-' : '') . $int . '.' . $first2; + if ($out === '-0.00') $out = '0.00'; + $set($target, $out); + } + // else: non-zero beyond 2 decimals → do nothing (let validation show error) + return; + } + }; + } /** * Get the Filament form schema for this element type. */ public static function getFilamentSchema(bool $disabled = false): array { + + $noSci = 'not_regex:/[eE]/'; // forbid scientific notation + $currencyRegex = 'regex:/^-?\d+(\.\d{1,2})?$/'; + return array_merge( SchemaHelper::getCommonCarbonFields($disabled), [ @@ -48,20 +132,68 @@ public static function getFilamentSchema(bool $disabled = false): array ->schema([ SchemaHelper::getPlaceholderTextField($disabled) ->columnSpan(3), + TextInput::make('elementable_data.defaultValue') ->label('Default Value') ->numeric() + ->nullable() ->step(.01) + ->live(onBlur: true) + ->afterStateUpdated(self::formatCurrency('elementable_data.defaultValue')) + // Keep your base rules; add min/max comparisons only if present + ->rules(function (Get $get) use ($currencyRegex, $noSci) { + $rules = ['numeric', $currencyRegex, $noSci]; + + if (filled($get('elementable_data.min'))) { + $rules[] = 'gte:elementable_data.min'; + } + if (filled($get('elementable_data.max'))) { + $rules[] = 'lte:elementable_data.max'; + } + + return $rules; + }) + ->columnSpan(1) ->disabled($disabled), + TextInput::make('elementable_data.min') ->label('Minimum Value') ->numeric() + ->nullable() ->step(.01) + ->live(onBlur: true) + ->afterStateUpdated(self::formatCurrency('elementable_data.min')) + ->rules(function (Get $get) use ($currencyRegex, $noSci) { + $rules = ['numeric', $currencyRegex, $noSci]; + + // Only enforce min <= max if max is provided + if (filled($get('elementable_data.max'))) { + $rules[] = 'lte:elementable_data.max'; + } + + return $rules; + }) + ->columnSpan(1) ->disabled($disabled), + TextInput::make('elementable_data.max') ->label('Maximum Value') ->numeric() + ->nullable() ->step(.01) + ->live(onBlur: true) + ->afterStateUpdated(self::formatCurrency('elementable_data.max')) + ->rules(function (Get $get) use ($currencyRegex, $noSci) { + $rules = ['numeric', $currencyRegex, $noSci]; + + // Only enforce max >= min if min is provided + if (filled($get('elementable_data.min'))) { + $rules[] = 'gte:elementable_data.min'; + } + + return $rules; + }) + ->columnSpan(1) ->disabled($disabled), ]) ->columns(3), diff --git a/app/Models/FormBuilding/NumberInputFormElement.php b/app/Models/FormBuilding/NumberInputFormElement.php index 41c5a01a..13e04de0 100644 --- a/app/Models/FormBuilding/NumberInputFormElement.php +++ b/app/Models/FormBuilding/NumberInputFormElement.php @@ -7,9 +7,11 @@ use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Database\Eloquent\Relations\MorphOne; +use Filament\Forms\Get; use Filament\Forms\Components\Fieldset; use Filament\Forms\Components\TextInput; use Filament\Forms\Components\ToggleButtons; +use Closure; class NumberInputFormElement extends Model { @@ -41,11 +43,123 @@ class NumberInputFormElement extends Model 'maskType' => 'integer', ]; + /** + * Format the number input according to the selected mask type (integer or decimal) + */ + protected static function formatNumberByMask(string $target): Closure + { + return function ($state, callable $set, Get $get) use ($target) { + if ($state === null) return; + + $raw = trim((string) $state); + $mask = strtolower((string) ($get('elementable_data.maskType') ?? 'integer')); // 'integer' | 'decimal' + + // Do not "fix" scientific notation or thousands separators; let validation reject them. + if (preg_match('/[eE, ]/', $raw)) { + return; + } + + // Treat "-", "-0", "-0.0", etc. as zero (both modes) + if ($raw === '-' || preg_match('/^-\s*0*(?:\.0*)?$/', $raw)) { + $set($target, '0'); + return; + } + + if ($mask === 'integer') { + // ---- INTEGER MODE (truncate; do not round), negatives allowed ---- + // If it's not numeric at all, leave it for validation. + if (!is_numeric($raw)) return; + + // Keep sign if present + $sign = ($raw !== '' && $raw[0] === '-') ? '-' : ''; + $body = ltrim($raw, '-'); + + // Keep digits and dot; then take the integer part before any dot + $tmp = preg_replace('/[^0-9.]/', '', $body) ?? ''; + $int = explode('.', $tmp, 2)[0] ?? ''; + $int = preg_replace('/\D/', '', $int) ?? ''; // safety + $int = ltrim($int, '0'); + + // Empty integer part becomes 0 + if ($int === '') $int = '0'; + + // Avoid "-0" + if ($int === '0') $sign = ''; + + $set($target, $sign . $int); + return; + } + + // ---- DECIMAL MODE (no forced rounding), negatives allowed ---- + // Normalize incomplete forms to zero-ish decimal + if (in_array($raw, ['.', '-.'], true)) { + $set($target, '0'); + return; + } + + // If not numeric at all, let validation handle it. + if (!is_numeric($raw)) return; + + // Keep only one leading '-' and only the first '.' + $val = preg_replace('/[^\d.\-]/', '', $raw) ?? ''; + $val = preg_replace('/(?!^)-/', '', $val) ?? ''; // remove extra '-' not at start + $val = preg_replace('/\.(?=.*\.)/', '', $val) ?? ''; // keep only first '.' + + // If empty or just "-", normalize to 0 + if ($val === '' || $val === '-') { + $set($target, '0'); + return; + } + + $sign = ($val[0] === '-') ? '-' : ''; + $tmp = ltrim($val, '-'); + + if (strpos($tmp, '.') !== false) { + [$int, $frac] = explode('.', $tmp, 2); + + // sanitize integer and fractional parts + $int = preg_replace('/\D/', '', $int) ?? ''; + $frac = preg_replace('/\D/', '', $frac) ?? ''; + + // Normalize leading zeros in integer part + $int = ltrim($int, '0'); + if ($int === '') $int = '0'; + + // Trim trailing zeros in fractional part; drop dot if empty + $frac = rtrim($frac, '0'); + + $normalized = $frac === '' + ? $sign . $int + : $sign . $int . '.' . $frac; + } else { + // No dot: integer-like in decimal context + $int = preg_replace('/\D/', '', $tmp) ?? ''; + $int = ltrim($int, '0'); + if ($int === '') $int = '0'; + $normalized = $sign . $int; + } + + // Normalize "-0" + if ($normalized === '-0') { + $normalized = '0'; + } + + $set($target, $normalized); + }; + } + /** * Get the Filament form schema for this element type. */ public static function getFilamentSchema(bool $disabled = false): array { + + $isDecimal = fn(Get $get) => strtolower($get('elementable_data.maskType') ?? 'integer') === 'decimal'; + + $noSci = 'not_regex:/[eE]/'; // forbid scientific notation + $plainDecimal = 'regex:/^-?\d+(\.\d+)?$/'; // allow optional leading '-', digits, and one dot + + return array_merge( SchemaHelper::getCommonCarbonFields($disabled), [ @@ -56,19 +170,66 @@ public static function getFilamentSchema(bool $disabled = false): array TextInput::make('elementable_data.defaultValue') ->label('Default Value') ->numeric() - ->step(fn ($get) => $get('elementable_data.step') ?? 1) + ->nullable() + ->step(fn(Get $get) => $get('elementable_data.step') ?? 1) + ->live(onBlur: true) + ->afterStateUpdated(self::formatNumberByMask('elementable_data.defaultValue')) + ->rules(function (Get $get) use ($isDecimal, $noSci, $plainDecimal) { + $rules = $isDecimal($get) + ? ['nullable', 'numeric', $noSci, $plainDecimal] + : ['nullable', 'integer']; + + if (filled($get('elementable_data.min'))) { + $rules[] = 'gte:elementable_data.min'; + } + if (filled($get('elementable_data.max'))) { + $rules[] = 'lte:elementable_data.max'; + } + + return $rules; + }) ->columnSpan(2) ->disabled($disabled), TextInput::make('elementable_data.min') ->label('Minimum Value') ->numeric() - ->step(fn ($get) => $get('elementable_data.step') ?? 1) + ->nullable() + ->step(fn(Get $get) => $get('elementable_data.step') ?? 1) + ->live(onBlur: true) + ->afterStateUpdated(self::formatNumberByMask('elementable_data.min')) + ->rules(function (Get $get) use ($isDecimal, $noSci, $plainDecimal) { + $rules = $isDecimal($get) + ? ['nullable', 'numeric', $noSci, $plainDecimal] + : ['nullable', 'integer']; + + // Only require min <= max if max is provided + if (filled($get('elementable_data.max'))) { + $rules[] = 'lte:elementable_data.max'; + } + + return $rules; + }) ->columnSpan(2) ->disabled($disabled), TextInput::make('elementable_data.max') ->label('Maximum Value') ->numeric() - ->step(fn ($get) => $get('elementable_data.step') ?? 1) + ->nullable() + ->step(fn(Get $get) => $get('elementable_data.step') ?? 1) + ->live(onBlur: true) + ->afterStateUpdated(self::formatNumberByMask('elementable_data.max')) + ->rules(function (Get $get) use ($isDecimal, $noSci, $plainDecimal) { + $rules = $isDecimal($get) + ? ['nullable', 'numeric', $noSci, $plainDecimal] + : ['nullable', 'integer']; + + // Only require max >= min if min is provided + if (filled($get('elementable_data.min'))) { + $rules[] = 'gte:elementable_data.min'; + } + + return $rules; + }) ->columnSpan(2) ->disabled($disabled), ToggleButtons::make('elementable_data.maskType') @@ -80,24 +241,48 @@ public static function getFilamentSchema(bool $disabled = false): array ->inline() ->default('integer') ->live() - ->columnSpan(2) - ->afterStateUpdated(function ($state, callable $set) { - $stepValues = [ - 'integer' => 1, - 'decimal' => 0.01, - ]; - $set('elementable_data.step', $stepValues[$state] ?? 1); + ->columnSpan(3) + ->afterStateUpdated(function (string $state, callable $set, Get $get) { + if ($state === 'integer') { + // Force step = 1 for integer mode + $set('elementable_data.step', 1); + + // Coerce existing values to integers (if set) + foreach (['defaultValue', 'min', 'max'] as $key) { + $path = "elementable_data.$key"; + $val = $get($path); + if (filled($val)) { + $set($path, (int) round((float) $val)); + } + } + } else { + // Decimal mode: keep or set a reasonable decimal step + $currentStep = $get('elementable_data.step'); + $set('elementable_data.step', filled($currentStep) ? $currentStep : 0.01); + } }), TextInput::make('elementable_data.step') + ->required() ->label('Step Size') ->numeric() ->default(1) - ->minValue(0) - ->live() - ->columnSpan(4) + ->live(onBlur: true) + // Ensure UI "step" attribute makes sense (1 for integer; any step otherwise) + ->step(fn(Get $get) => $isDecimal($get) ? null : 1) + ->afterStateUpdated(self::formatNumberByMask('elementable_data.step')) + // Validation: integer & >=1 in integer mode; numeric & >0 in decimal mode + ->rule(fn(Get $get) => $isDecimal($get) + ? [ + 'numeric', + 'gt:0', + $noSci, + 'regex:/^\d+(\.\d+)?$/', // only digits and one dot + ] + : ['integer', 'min:1']) + ->columnSpan(3) ->disabled($disabled), ]) - ->columns(3), + ->columns(6), ] ); } From eb4d23ed627c3c789a25c4baa2192ac701015c26 Mon Sep 17 00:00:00 2001 From: Christopher Louie Date: Wed, 4 Mar 2026 17:26:05 -0800 Subject: [PATCH 10/43] Fix visibility toggles being reset on import --- app/Jobs/ImportFormVersionElementsJob.php | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/app/Jobs/ImportFormVersionElementsJob.php b/app/Jobs/ImportFormVersionElementsJob.php index 69a47cf3..1b16e548 100644 --- a/app/Jobs/ImportFormVersionElementsJob.php +++ b/app/Jobs/ImportFormVersionElementsJob.php @@ -797,6 +797,8 @@ protected function importElementsRecursive(array $elements, $parentId, $formVers 'help_text' => $attributes['help_text'] ?? '', 'is_read_only' => $attributes['is_read_only'] ? true : false, 'custom_read_only' => $attributes['is_read_only'] ? true : false, + 'visible_web' => $attributes['visible_web'] ?? true, + 'visible_pdf' => $attributes['visible_pdf'] ?? true, 'is_required' => $attributes['is_required'] ?? false, 'save_on_submit' => $attributes['save_on_submit'] ?? true, ]; @@ -807,14 +809,6 @@ protected function importElementsRecursive(array $elements, $parentId, $formVers 'import_source' => 'template', ]; - $elementData['visible_pdf'] = !( - isset($element['pdfStyles']['display']) && $element['pdfStyles']['display'] === 'none' - ); - - $elementData['visible_web'] = !( - isset($element['webStyles']['display']) && $element['webStyles']['display'] === 'none' - ); - $formElement = null; if ($type === \App\Models\FormBuilding\ContainerFormElement::class) { From 3ff3b2f929b0f67eceae47cbb032cfd3a8f4bc87 Mon Sep 17 00:00:00 2001 From: Christopher Louie Date: Wed, 4 Mar 2026 17:26:56 -0800 Subject: [PATCH 11/43] Fix data binding source defaulting to first source on import --- app/Jobs/ImportFormVersionElementsJob.php | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/app/Jobs/ImportFormVersionElementsJob.php b/app/Jobs/ImportFormVersionElementsJob.php index 1b16e548..b131033d 100644 --- a/app/Jobs/ImportFormVersionElementsJob.php +++ b/app/Jobs/ImportFormVersionElementsJob.php @@ -923,6 +923,7 @@ private function extractDataBindingInfo(array $element): ?array if (isset($dataBinding['dataBindingPath'])) { $dataBindingInfo = [ + 'source' => $dataBinding['source'] ?? null, 'path' => $dataBinding['dataBindingPath'], 'type' => $dataBinding['dataBindingType'] ?? 'jsonpath' ]; @@ -931,6 +932,7 @@ private function extractDataBindingInfo(array $element): ?array // Format 2: direct dataBinding string (legacy support) elseif (isset($element['dataBinding']) && is_string($element['dataBinding'])) { $dataBindingInfo = [ + 'source' => $element['source'] ?? null, // Replace with actual field name 'path' => $element['dataBinding'], 'type' => 'jsonpath' ]; @@ -941,6 +943,7 @@ private function extractDataBindingInfo(array $element): ?array $firstBinding = reset($element['dataBindings']); if ($firstBinding && isset($firstBinding['path'])) { $dataBindingInfo = [ + 'source' => $firstBinding['source'] ?? null, 'path' => $firstBinding['path'], 'type' => 'jsonpath' ]; @@ -949,6 +952,7 @@ private function extractDataBindingInfo(array $element): ?array // Format 4: binding_ref (alternative format) elseif (isset($element['binding_ref']) && is_string($element['binding_ref'])) { $dataBindingInfo = [ + 'source' => $element['source'] ?? null, // Replace with actual field name 'path' => $element['binding_ref'], 'type' => 'jsonpath' ]; @@ -958,6 +962,7 @@ private function extractDataBindingInfo(array $element): ?array $first = reset($element['databindings']); if (is_array($first) && isset($first['path'])) { $dataBindingInfo = [ + 'source' => $first['source'] ?? null, 'path' => $first['path'], 'type' => $first['type'] ?? 'jsonpath', ]; @@ -973,7 +978,10 @@ private function extractDataBindingInfo(array $element): ?array private function createDataBinding($formElement, array $dataBindingInfo, $formVersion): void { try { - $formDataSource = $formVersion->formDataSources()->first(); + $formDataSourceName = $dataBindingInfo['source']; + $formDataSource = $formVersion->formDataSources() + ->where('form_data_sources.name', $formDataSourceName) + ->first(); if (!$formDataSource) { $formDataSource = \App\Models\FormMetadata\FormDataSource::firstOrCreate([ @@ -990,6 +998,7 @@ private function createDataBinding($formElement, array $dataBindingInfo, $formVe $formVersion->formDataSources()->attach($formDataSource->id, ['order' => 1]); } + \App\Models\FormBuilding\FormElementDataBinding::create([ 'form_element_id' => $formElement->id, 'form_data_source_id' => $formDataSource->id, From 7c4e83f64952f1207db5cd4d9ade0d9c60b7091f Mon Sep 17 00:00:00 2001 From: Christopher Louie Date: Fri, 6 Mar 2026 10:28:43 -0800 Subject: [PATCH 12/43] Fix: create fallback "Imported Data Source" with correct next ID on fresh installs --- app/Jobs/ImportFormVersionElementsJob.php | 40 ++++++++++++++--------- database/seeders/FormDataSourceSeeder.php | 35 +++++++++++++------- 2 files changed, 47 insertions(+), 28 deletions(-) diff --git a/app/Jobs/ImportFormVersionElementsJob.php b/app/Jobs/ImportFormVersionElementsJob.php index b131033d..ac8048c5 100644 --- a/app/Jobs/ImportFormVersionElementsJob.php +++ b/app/Jobs/ImportFormVersionElementsJob.php @@ -8,12 +8,15 @@ use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\SerializesModels; use Illuminate\Support\Facades\Cache; +use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Log; use Illuminate\Foundation\Bus\Dispatchable; use App\Models\FormBuilding\FormElement; use App\Events\FormVersionUpdateEvent; +use App\Models\FormBuilding\FormElementDataBinding; use App\Models\FormBuilding\FormScript; use App\Models\FormBuilding\StyleSheet; +use App\Models\FormMetadata\FormDataSource; class ImportFormVersionElementsJob implements ShouldQueue { @@ -978,36 +981,41 @@ private function extractDataBindingInfo(array $element): ?array private function createDataBinding($formElement, array $dataBindingInfo, $formVersion): void { try { - $formDataSourceName = $dataBindingInfo['source']; + DB::transaction(function () use ($formElement, $dataBindingInfo, $formVersion) { + $formDataSourceName = $dataBindingInfo['source']; + $formDataSource = $formVersion->formDataSources() ->where('form_data_sources.name', $formDataSourceName) ->first(); if (!$formDataSource) { - $formDataSource = \App\Models\FormMetadata\FormDataSource::firstOrCreate([ - 'name' => 'Imported Data Source', - 'type' => 'json', - ], [ - 'description' => 'Auto-created data source for imported form elements', - 'endpoint' => null, - 'params' => null, - 'body' => null, - 'headers' => null, - 'host' => null, - ]); - - $formVersion->formDataSources()->attach($formDataSource->id, ['order' => 1]); + $defaultDataSource = 'Imported Data Source'; + + $formDataSource = FormDataSource::firstOrCreate([ + 'name' => $defaultDataSource, + 'type' => 'json', + ], [ + 'description' => 'Auto-created data source for imported form elements', + 'endpoint' => null, + 'params' => null, + 'body' => null, + 'headers' => null, + 'host' => null, + ]); + + $formVersion->formDataSources()->syncWithoutDetaching($formDataSource->id, ['order' => 1]); } - \App\Models\FormBuilding\FormElementDataBinding::create([ + FormElementDataBinding::updateOrCreate([ 'form_element_id' => $formElement->id, 'form_data_source_id' => $formDataSource->id, 'path' => $dataBindingInfo['path'], 'condition' => $dataBindingInfo['condition'] ?? null, 'order' => 1, ]); + }); } catch (\Exception $e) { - Log::warning('Failed to create data binding for imported element', [ + Log::error('Failed to create data binding for imported element.', [ 'element_id' => $formElement->id, 'data_binding_info' => $dataBindingInfo, 'error' => $e->getMessage() diff --git a/database/seeders/FormDataSourceSeeder.php b/database/seeders/FormDataSourceSeeder.php index c1e0f95c..ed047812 100644 --- a/database/seeders/FormDataSourceSeeder.php +++ b/database/seeders/FormDataSourceSeeder.php @@ -4,6 +4,8 @@ use Illuminate\Database\Console\Seeds\WithoutModelEvents; use Illuminate\Database\Seeder; +use Illuminate\Support\Facades\DB; + class FormDataSourceSeeder extends Seeder { @@ -13,10 +15,10 @@ class FormDataSourceSeeder extends Seeder */ public function run() { - \DB::table('form_data_sources')->delete(); + DB::table('form_data_sources')->delete(); - \DB::table('form_data_sources')->insert(array ( - 0 => + DB::table('form_data_sources')->insert(array( + 0 => array( 'id' => 1, 'name' => 'Case', @@ -27,7 +29,7 @@ public function run() 'headers' => '{"Authorization":"Bearer @@token@@"}', 'host' => 'SIEBEL_ICM_API_HOST', ), - 1 => + 1 => array( 'id' => 2, 'name' => 'Contact', @@ -38,7 +40,7 @@ public function run() 'headers' => '{"Authorization":"Bearer @@token@@"}', 'host' => 'SIEBEL_ICM_API_HOST', ), - 2 => + 2 => array( 'id' => 3, 'name' => 'Service Request', @@ -49,7 +51,7 @@ public function run() 'headers' => '{"Authorization":"Bearer @@token@@"}', 'host' => 'SIEBEL_ICM_API_HOST', ), - 3 => + 3 => array( 'id' => 4, 'name' => 'Benefit Plan', @@ -60,7 +62,7 @@ public function run() 'headers' => '{"Authorization":"Bearer @@token@@"}', 'host' => 'SIEBEL_ICM_API_HOST', ), - 4 => + 4 => array( 'id' => 5, 'name' => 'Case Review', @@ -71,7 +73,7 @@ public function run() 'headers' => '{"Authorization":"Bearer @@token@@"}', 'host' => 'SIEBEL_ICM_API_HOST', ), - 5 => + 5 => array( 'id' => 6, 'name' => 'Incident', @@ -82,7 +84,7 @@ public function run() 'headers' => '{"Authorization":"Bearer @@token@@"}', 'host' => 'SIEBEL_ICM_API_HOST', ), - 6 => + 6 => array( 'id' => 7, 'name' => 'Service Order', @@ -93,7 +95,7 @@ public function run() 'headers' => '{"Authorization":"Bearer @@token@@"}', 'host' => 'SIEBEL_ICM_API_HOST', ), - 7 => + 7 => array( 'id' => 8, 'name' => 'Service Plan', @@ -104,7 +106,7 @@ public function run() 'headers' => '{"Authorization":"Bearer @@token@@"}', 'host' => 'SIEBEL_ICM_API_HOST', ), - 8 => + 8 => array( 'id' => 9, 'name' => 'Service Provider', @@ -115,7 +117,7 @@ public function run() 'headers' => '{"Authorization":"Bearer @@token@@"}', 'host' => 'SIEBEL_ICM_API_HOST', ), - 9 => + 9 => array( 'id' => 10, 'name' => 'Transacation Summary', @@ -127,5 +129,14 @@ public function run() 'host' => 'SIEBEL_ICM_API_HOST', ), )); + + // Reset the ID sequence to avoid conflicts with future inserts + DB::statement(" + SELECT setval( + pg_get_serial_sequence('form_data_sources', 'id'), + COALESCE((SELECT MAX(id) FROM form_data_sources), 0) + 1, + false + ) + "); } } From dfd97851588f78cc4e35210967422685487ca043 Mon Sep 17 00:00:00 2001 From: Christopher Louie Date: Mon, 9 Mar 2026 16:07:44 -0700 Subject: [PATCH 13/43] Add warning log message and notification when "Imported Data Source" creation fails --- app/Jobs/ImportFormVersionElementsJob.php | 27 ++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/app/Jobs/ImportFormVersionElementsJob.php b/app/Jobs/ImportFormVersionElementsJob.php index ac8048c5..ab3c6c83 100644 --- a/app/Jobs/ImportFormVersionElementsJob.php +++ b/app/Jobs/ImportFormVersionElementsJob.php @@ -18,6 +18,8 @@ use App\Models\FormBuilding\StyleSheet; use App\Models\FormMetadata\FormDataSource; +use Filament\Notifications\Notification; + class ImportFormVersionElementsJob implements ShouldQueue { use Dispatchable; @@ -30,6 +32,8 @@ class ImportFormVersionElementsJob implements ShouldQueue protected $cacheKey; protected $userId; + private $defaultDataSourceError = false; + public function __construct($formVersionId, $schemaContent, $cacheKey, $userId) { $this->formVersionId = $formVersionId; @@ -910,6 +914,14 @@ protected function importElementsRecursive(array $elements, $parentId, $formVers } } + if ($this->defaultDataSourceError) { + Notification::make() + ->title("Failed to create the default data source 'Imported Data Source'") + ->body("Please reseed the form_data_sources table using the following command: sail artisan db:seed --class=FormDataSourceSeeder") + ->warning() + ->send(); + } + return $processedElements; } @@ -991,6 +1003,8 @@ private function createDataBinding($formElement, array $dataBindingInfo, $formVe if (!$formDataSource) { $defaultDataSource = 'Imported Data Source'; + // Specific catch for creating the default data source + try { $formDataSource = FormDataSource::firstOrCreate([ 'name' => $defaultDataSource, 'type' => 'json', @@ -1002,6 +1016,17 @@ private function createDataBinding($formElement, array $dataBindingInfo, $formVe 'headers' => null, 'host' => null, ]); + } catch (\Exception $e) { + Log::warning('Failed to create the default data source "{source}". Please reseed the form_data_sources table' + . ' using the following command: sail artisan db:seed --class=FormDataSourceSeeder', [ + 'source' => $defaultDataSource, + 'error' => $e->getMessage(), + ]); + + $this->defaultDataSourceError = true; + + throw $e; // ensure transaction rolls back + } $formVersion->formDataSources()->syncWithoutDetaching($formDataSource->id, ['order' => 1]); } @@ -1015,7 +1040,7 @@ private function createDataBinding($formElement, array $dataBindingInfo, $formVe ]); }); } catch (\Exception $e) { - Log::error('Failed to create data binding for imported element.', [ + Log::warning('Failed to create data binding for imported element.', [ 'element_id' => $formElement->id, 'data_binding_info' => $dataBindingInfo, 'error' => $e->getMessage() From bf12e8dcd2c4a215cc5506467e675feaa34c099d Mon Sep 17 00:00:00 2001 From: Christopher Louie Date: Mon, 9 Mar 2026 16:14:00 -0700 Subject: [PATCH 14/43] Update existing form elements during reimport so data bindings can be added if they failed initially --- app/Jobs/ImportFormVersionElementsJob.php | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/app/Jobs/ImportFormVersionElementsJob.php b/app/Jobs/ImportFormVersionElementsJob.php index ab3c6c83..4335ae57 100644 --- a/app/Jobs/ImportFormVersionElementsJob.php +++ b/app/Jobs/ImportFormVersionElementsJob.php @@ -819,49 +819,49 @@ protected function importElementsRecursive(array $elements, $parentId, $formVers $formElement = null; if ($type === \App\Models\FormBuilding\ContainerFormElement::class) { - $containerModel = \App\Models\FormBuilding\ContainerFormElement::create($attributes['attributes']); + $containerModel = \App\Models\FormBuilding\ContainerFormElement::updateOrCreate($attributes['attributes']); $elementData['elementable_id'] = $containerModel->id; $formElement = FormElement::create($elementData); } else if ($type === \App\Models\FormBuilding\TextInputFormElement::class) { - $textInputModel = \App\Models\FormBuilding\TextInputFormElement::create($attributes['attributes']); + $textInputModel = \App\Models\FormBuilding\TextInputFormElement::updateOrCreate($attributes['attributes']); $elementData['elementable_id'] = $textInputModel->id; $formElement = FormElement::create($elementData); } else if ($type === \App\Models\FormBuilding\TextareaInputFormElement::class) { - $textareModel = \App\Models\FormBuilding\TextareaInputFormElement::create($attributes['attributes']); + $textareModel = \App\Models\FormBuilding\TextareaInputFormElement::updateOrCreate($attributes['attributes']); $elementData['elementable_id'] = $textareModel->id; $formElement = FormElement::create($elementData); } elseif ($type === \App\Models\FormBuilding\TextInfoFormElement::class) { - $textInfoModel = \App\Models\FormBuilding\TextInfoFormElement::create($attributes['attributes']); + $textInfoModel = \App\Models\FormBuilding\TextInfoFormElement::updateOrCreate($attributes['attributes']); $elementData['elementable_id'] = $textInfoModel->id; $formElement = FormElement::create($elementData); } else if ($type === \App\Models\FormBuilding\DateSelectInputFormElement::class) { - $dateSelectModel = \App\Models\FormBuilding\DateSelectInputFormElement::create($attributes['attributes']); + $dateSelectModel = \App\Models\FormBuilding\DateSelectInputFormElement::updateOrCreate($attributes['attributes']); $elementData['elementable_id'] = $dateSelectModel->id; $formElement = FormElement::create($elementData); } else if ($type === \App\Models\FormBuilding\CheckboxInputFormElement::class) { - $checkboxInputModel = \App\Models\FormBuilding\CheckboxInputFormElement::create($attributes['attributes']); + $checkboxInputModel = \App\Models\FormBuilding\CheckboxInputFormElement::updateOrCreate($attributes['attributes']); $elementData['elementable_id'] = $checkboxInputModel->id; $formElement = FormElement::create($elementData); } else if ($type === \App\Models\FormBuilding\SelectInputFormElement::class) { - $selectModel = \App\Models\FormBuilding\SelectInputFormElement::create($attributes['attributes']); + $selectModel = \App\Models\FormBuilding\SelectInputFormElement::updateOrCreate($attributes['attributes']); $elementData['elementable_id'] = $selectModel->id; $formElement = FormElement::create($elementData); $this->createSelectOptions($selectModel, $options); } elseif ($type === \App\Models\FormBuilding\RadioInputFormElement::class) { - $radioModel = \App\Models\FormBuilding\RadioInputFormElement::create($attributes['attributes']); + $radioModel = \App\Models\FormBuilding\RadioInputFormElement::updateOrCreate($attributes['attributes']); $elementData['elementable_id'] = $radioModel->id; $formElement = FormElement::create($elementData); $this->createRadioOptions($radioModel, $options); } else if ($type === \App\Models\FormBuilding\NumberInputFormElement::class) { - $numberInputModel = \App\Models\FormBuilding\NumberInputFormElement::create($attributes['attributes']); + $numberInputModel = \App\Models\FormBuilding\NumberInputFormElement::updateOrCreate($attributes['attributes']); $elementData['elementable_id'] = $numberInputModel->id; $formElement = FormElement::create($elementData); } else if ($type === \App\Models\FormBuilding\ButtonInputFormElement::class) { - $buttonModel = \App\Models\FormBuilding\ButtonInputFormElement::create($attributes['attributes']); + $buttonModel = \App\Models\FormBuilding\ButtonInputFormElement::updateOrCreate($attributes['attributes']); $elementData['elementable_id'] = $buttonModel->id; $formElement = FormElement::create($elementData); } else if ($type === \App\Models\FormBuilding\HTMLFormElement::class) { - $htmlModel = \App\Models\FormBuilding\HTMLFormElement::create($attributes['attributes']); + $htmlModel = \App\Models\FormBuilding\HTMLFormElement::updateOrCreate($attributes['attributes']); $elementData['elementable_id'] = $htmlModel->id; $formElement = FormElement::create($elementData); } else { From 4d787d1c052f429d0fc95bb0977980b9d347c5e3 Mon Sep 17 00:00:00 2001 From: Christopher Louie Date: Mon, 9 Mar 2026 16:16:38 -0700 Subject: [PATCH 15/43] Add checkbox groups and currency inputs to the importer --- app/Jobs/ImportFormVersionElementsJob.php | 56 ++++++++++++++--------- 1 file changed, 35 insertions(+), 21 deletions(-) diff --git a/app/Jobs/ImportFormVersionElementsJob.php b/app/Jobs/ImportFormVersionElementsJob.php index 4335ae57..3af95ee6 100644 --- a/app/Jobs/ImportFormVersionElementsJob.php +++ b/app/Jobs/ImportFormVersionElementsJob.php @@ -704,10 +704,14 @@ protected function importElementsRecursive(array $elements, $parentId, $formVers 'select-input' => \App\Models\FormBuilding\SelectInputFormElement::class, 'checkbox' => \App\Models\FormBuilding\CheckboxInputFormElement::class, 'checkbox-input' => \App\Models\FormBuilding\CheckboxInputFormElement::class, + 'checkbox-group' => \App\Models\FormBuilding\CheckboxGroupFormElement::class, + 'checkbox-group-input' => \App\Models\FormBuilding\CheckboxGroupFormElement::class, 'date' => \App\Models\FormBuilding\DateSelectInputFormElement::class, 'date-select-input' => \App\Models\FormBuilding\DateSelectInputFormElement::class, 'number' => \App\Models\FormBuilding\NumberInputFormElement::class, 'number-input' => \App\Models\FormBuilding\NumberInputFormElement::class, + 'currency' => \App\Models\FormBuilding\CurrencyInputFormElement::class, + 'currency-input' => \App\Models\FormBuilding\CurrencyInputFormElement::class, 'html' => \App\Models\FormBuilding\HTMLFormElement::class, 'text-info' => \App\Models\FormBuilding\TextInfoFormElement::class, 'button' => \App\Models\FormBuilding\ButtonInputFormElement::class, @@ -842,6 +846,10 @@ protected function importElementsRecursive(array $elements, $parentId, $formVers $checkboxInputModel = \App\Models\FormBuilding\CheckboxInputFormElement::updateOrCreate($attributes['attributes']); $elementData['elementable_id'] = $checkboxInputModel->id; $formElement = FormElement::create($elementData); + } else if ($type === \App\Models\FormBuilding\CheckboxGroupFormElement::class) { + $checkboxGroupModel = \App\Models\FormBuilding\CheckboxGroupFormElement::updateOrCreate($attributes['attributes']); + $elementData['elementable_id'] = $checkboxGroupModel->id; + $formElement = FormElement::create($elementData); } else if ($type === \App\Models\FormBuilding\SelectInputFormElement::class) { $selectModel = \App\Models\FormBuilding\SelectInputFormElement::updateOrCreate($attributes['attributes']); $elementData['elementable_id'] = $selectModel->id; @@ -856,6 +864,10 @@ protected function importElementsRecursive(array $elements, $parentId, $formVers $numberInputModel = \App\Models\FormBuilding\NumberInputFormElement::updateOrCreate($attributes['attributes']); $elementData['elementable_id'] = $numberInputModel->id; $formElement = FormElement::create($elementData); + } else if ($type === \App\Models\FormBuilding\CurrencyInputFormElement::class) { + $currencyInputModel = \App\Models\FormBuilding\CurrencyInputFormElement::updateOrCreate($attributes['attributes']); + $elementData['elementable_id'] = $currencyInputModel->id; + $formElement = FormElement::create($elementData); } else if ($type === \App\Models\FormBuilding\ButtonInputFormElement::class) { $buttonModel = \App\Models\FormBuilding\ButtonInputFormElement::updateOrCreate($attributes['attributes']); $elementData['elementable_id'] = $buttonModel->id; @@ -996,26 +1008,26 @@ private function createDataBinding($formElement, array $dataBindingInfo, $formVe DB::transaction(function () use ($formElement, $dataBindingInfo, $formVersion) { $formDataSourceName = $dataBindingInfo['source']; - $formDataSource = $formVersion->formDataSources() - ->where('form_data_sources.name', $formDataSourceName) - ->first(); + $formDataSource = $formVersion->formDataSources() + ->where('form_data_sources.name', $formDataSourceName) + ->first(); - if (!$formDataSource) { + if (!$formDataSource) { $defaultDataSource = 'Imported Data Source'; // Specific catch for creating the default data source try { - $formDataSource = FormDataSource::firstOrCreate([ + $formDataSource = FormDataSource::firstOrCreate([ 'name' => $defaultDataSource, - 'type' => 'json', - ], [ - 'description' => 'Auto-created data source for imported form elements', - 'endpoint' => null, - 'params' => null, - 'body' => null, - 'headers' => null, - 'host' => null, - ]); + 'type' => 'json', + ], [ + 'description' => 'Auto-created data source for imported form elements', + 'endpoint' => null, + 'params' => null, + 'body' => null, + 'headers' => null, + 'host' => null, + ]); } catch (\Exception $e) { Log::warning('Failed to create the default data source "{source}". Please reseed the form_data_sources table' . ' using the following command: sail artisan db:seed --class=FormDataSourceSeeder', [ @@ -1029,15 +1041,15 @@ private function createDataBinding($formElement, array $dataBindingInfo, $formVe } $formVersion->formDataSources()->syncWithoutDetaching($formDataSource->id, ['order' => 1]); - } + } FormElementDataBinding::updateOrCreate([ - 'form_element_id' => $formElement->id, - 'form_data_source_id' => $formDataSource->id, - 'path' => $dataBindingInfo['path'], - 'condition' => $dataBindingInfo['condition'] ?? null, - 'order' => 1, - ]); + 'form_element_id' => $formElement->id, + 'form_data_source_id' => $formDataSource->id, + 'path' => $dataBindingInfo['path'], + 'condition' => $dataBindingInfo['condition'] ?? null, + 'order' => 1, + ]); }); } catch (\Exception $e) { Log::warning('Failed to create data binding for imported element.', [ @@ -1056,9 +1068,11 @@ private function resolveElementableType(string $elementType): ?string 'TextInfoFormElements' => \App\Models\FormBuilding\TextInfoFormElement::class, 'DateSelectInputFormElements' => \App\Models\FormBuilding\DateSelectInputFormElement::class, 'CheckboxInputFormElements' => \App\Models\FormBuilding\CheckboxInputFormElement::class, + 'CheckboxGroupFormElements' => \App\Models\FormBuilding\CheckboxGroupFormElement::class, 'SelectInputFormElements' => \App\Models\FormBuilding\SelectInputFormElement::class, 'RadioInputFormElements' => \App\Models\FormBuilding\RadioInputFormElement::class, 'NumberInputFormElements' => \App\Models\FormBuilding\NumberInputFormElement::class, + 'CurrencyInputFormElements' => \App\Models\FormBuilding\CurrencyInputFormElement::class, 'ButtonInputFormElements' => \App\Models\FormBuilding\ButtonInputFormElement::class, 'HTMLFormElements' => \App\Models\FormBuilding\HTMLFormElement::class, 'ContainerFormElements' => \App\Models\FormBuilding\ContainerFormElement::class, From 381e3403da443193d242c1c848a652e061bafeed Mon Sep 17 00:00:00 2001 From: Christopher Louie Date: Tue, 10 Mar 2026 18:14:26 -0700 Subject: [PATCH 16/43] Fix number and currency input's field constraint validations --- app/Filament/Forms/Helpers/NumericRules.php | 128 +++++++++++++ .../FormBuilding/CurrencyInputFormElement.php | 179 +++++++++--------- .../FormBuilding/NumberInputFormElement.php | 158 +++++++--------- 3 files changed, 291 insertions(+), 174 deletions(-) create mode 100644 app/Filament/Forms/Helpers/NumericRules.php diff --git a/app/Filament/Forms/Helpers/NumericRules.php b/app/Filament/Forms/Helpers/NumericRules.php new file mode 100644 index 00000000..8ecb8618 --- /dev/null +++ b/app/Filament/Forms/Helpers/NumericRules.php @@ -0,0 +1,128 @@ + max + * } $options + * + * @return Closure(Get): Closure(string, mixed, Closure): void + */ + + public static function compareWith(?string $minPath, ?string $maxPath, array $options = []): Closure + { + $defaults = [ + // When both min & max are present and the value is out of range: + 'msgBetween' => __('The :attribute must be between :min and :max.'), + + // When only min is present (or you want distinct messages regardless): + 'msgLessThanMin' => __('The :attribute must be greater than or equal to the minimum value :min.'), + + // When only max is present (or you want distinct messages regardless): + 'msgGreaterThanMax' => __('The :attribute must be less than or equal to the maximum value :max.'), + + // Optional number formatting for messages (e.g., show 2 decimals). + // Signature: fn(float $n): string + 'format' => null, // e.g., fn (float $n) => number_format($n, 2, '.', '') + ]; + $opts = array_replace($defaults, $options); + + $fmt = $opts['format'] instanceof Closure + ? $opts['format'] + : (function (float $n): string { + return (string) $n; + }); + + return function (Get $get) use ($minPath, $maxPath, $opts, $fmt) { + return function (string $attribute, $value, Closure $fail) use ($get, $minPath, $maxPath, $opts, $fmt) { + if ($value === null || $value === '') { + // Let 'nullable' / 'required' handle empties; nothing to compare. + return; + } + + $current = (float) $value; + + // Pull sibling values (if any) + $minRaw = $minPath ? $get($minPath) : null; + $maxRaw = $maxPath ? $get($maxPath) : null; + + $hasMin = ($minRaw !== null && $minRaw !== ''); + $hasMax = ($maxRaw !== null && $maxRaw !== ''); + + // If both min and max exist, do a single between check. + if ($hasMin && $hasMax) { + $min = (float) $minRaw; + $max = (float) $maxRaw; + + // Optionally normalize order if min > max (defensive) + if ($min > $max) { + [$min, $max] = [$max, $min]; + } + + $inRange = ($current >= $min && $current <= $max); + + if (! $inRange) { + $message = $opts['msgBetween']; + + // Replace placeholders with formatted values (if present in the string) + $message = strtr($message, [ + ':min' => $fmt($min), + ':max' => $fmt($max), + ]); + + $fail($message); + } + + return; // We’re done—single combined message for the between check. + } + + // If only min exists → check lower bound + if ($hasMin) { + $min = (float) $minRaw; + + $ok = ($current >= $min); + if (! $ok) { + $message = $opts['msgLessThanMin']; + // If you want to show the concrete min value, support :min here too: + $message = strtr($message, [ + ':min' => $fmt($min), + ]); + $fail($message); + return; + } + } + + // If only max exists → check upper bound + if ($hasMax) { + $max = (float) $maxRaw; + + $ok = ($current <= $max); + if (! $ok) { + $message = $opts['msgGreaterThanMax']; + // If you want to show the concrete max value, support :max here too: + $message = strtr($message, [ + ':max' => $fmt($max), + ]); + $fail($message); + return; + } + } + }; + }; + } +} diff --git a/app/Models/FormBuilding/CurrencyInputFormElement.php b/app/Models/FormBuilding/CurrencyInputFormElement.php index 9fabb60c..82dacbe4 100644 --- a/app/Models/FormBuilding/CurrencyInputFormElement.php +++ b/app/Models/FormBuilding/CurrencyInputFormElement.php @@ -2,14 +2,15 @@ namespace App\Models\FormBuilding; +use App\Filament\Forms\Helpers\NumericRules; use App\Helpers\SchemaHelper; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Database\Eloquent\Relations\MorphOne; -use Filament\Forms\Get; use Filament\Forms\Components\Fieldset; use Filament\Forms\Components\TextInput; + use Closure; class CurrencyInputFormElement extends Model @@ -36,83 +37,100 @@ class CurrencyInputFormElement extends Model protected $attributes = [ 'hideLabel' => false, ]; + /* * Format the value as currency */ - protected static function formatCurrency(string $target): \Closure + protected static function formatCurrency(string $target): Closure { - return function ($state, callable $set) use ($target) { + return function ($state, callable $set) use ($target): void { if ($state === null) return; $raw = trim((string) $state); - // Normalize incomplete forms to 0.00 - if (in_array($raw, ['-', '.', '-.'], true)) { + // Reject sci-notation, commas, or spaces (let validation show error) + if (preg_match('/[eE, ]/', $raw)) { + return; + } + + // Collapse lone sign/dot or all-zero forms to "0.00" + $isZeroish = static function (string $s): bool { + $s = trim($s); + if ($s === '') return false; + + // remove leading sign + $s = ltrim($s, "+-"); + + // empty after sign or just a dot -> zero-ish + if ($s === '' || $s === '.') return true; + + // keep only digits and a single dot + $clean = preg_replace('/[^\d.]/', '', $s) ?? ''; + if ($clean === '' || substr_count($clean, '.') > 1) return false; + + // if all remaining digits are zeros, it's zero-ish + $digitsOnly = str_replace('.', '', $clean); + return $digitsOnly !== '' && preg_match('/^0+$/', $digitsOnly) === 1; + }; + + if ($isZeroish($raw)) { $set($target, '0.00'); return; } - // Only allow plain decimals: optional leading '-', digits, optional single dot, digits - // (Rejects scientific notation, commas, spaces, letters, etc.) - if (!preg_match('/^-?\d*\.?\d*$/', $raw)) { - return; // let validation flag invalid format + // Shape check: optional sign, digits, optional single dot and digits + // (allows ".5", "5.", "-.5", etc.) + if (!preg_match('/^[+-]?\d*(?:\.\d*)?$/', $raw)) { + // Not a plain numeric string -> leave it; validation will flag it. + return; } - // Separate sign and body - $neg = str_starts_with($raw, '-'); - $body = ltrim($raw, '-'); + // Extract sign once; operate on a signless body + $neg = ($raw !== '' && $raw[0] === '-'); + $body = ltrim($raw, '+-'); - // Split into integer and fractional parts - $int = $body; + // Split into integer + fractional segments + $int = $body; $frac = ''; if (strpos($body, '.') !== false) { [$int, $frac] = explode('.', $body, 2); } - // Trim leading zeros in the integer part but keep at least one + // Normalize integer: strip extra leading zeros, keep at least one '0' $int = ltrim($int, '0'); - if ($int === '') { - $int = '0'; - } + if ($int === '') $int = '0'; - // If no fractional part → pad to 2 decimals + // Fraction handling: + // - If <= 2 digits: pad to exactly 2 + // - If > 2 digits: leave as-is (no rounding/trimming) if ($frac === '') { - $out = ($neg && $int === '0') ? '0.00' : (($neg ? '-' : '') . $int . '.00'); - $set($target, $out); - return; + $frac = '00'; + } else { + $len = strlen($frac); + if ($len === 1) { + $frac = str_pad($frac, 2, '0'); // '5' -> '50' + } elseif ($len >= 3) { + // leave as-is + } // len == 2 -> keep as-is } - // If 1 fractional digit → pad to 2 - if (preg_match('/^\d$/', $frac)) { - $out = ($neg && $int === '0' && $frac === '0') - ? '0.00' - : (($neg ? '-' : '') . $int . '.' . $frac . '0'); - $set($target, $out); - return; - } + // Final negative-zero normalization: + // If magnitude is exactly zero (int == '0' and fraction all zeros), + // drop the negative sign. + $isZeroMagnitude = ($int === '0') && preg_match('/^0+$/', $frac) === 1; + $prefix = ($neg && !$isZeroMagnitude) ? '-' : ''; - // If exactly 2 fractional digits → keep as-is (normalize -0.00) - if (preg_match('/^\d{2}$/', $frac)) { - $out = ($neg ? '-' : '') . $int . '.' . $frac; - if ($out === '-0.00') $out = '0.00'; - $set($target, $out); - return; - } + // Build output + // - For <= 2 original fraction, it's exactly 2 now. + // - For > 2, it's unchanged as typed. + $out = $int . '.' . $frac; - // More than 2 fractional digits: - // - If extras are all zeros, trim to 2 (e.g., 0.2500 → 0.25) - // - Else leave unchanged (validation should flag), and DO NOT round - if (strlen($frac) > 2) { - $first2 = substr($frac, 0, 2); - $extra = substr($frac, 2); - if (preg_match('/^0+$/', $extra)) { - $out = ($neg ? '-' : '') . $int . '.' . $first2; - if ($out === '-0.00') $out = '0.00'; - $set($target, $out); - } - // else: non-zero beyond 2 decimals → do nothing (let validation show error) - return; + // Ensure canonical "0.00" for true zero when <= 2 frac + if ($isZeroMagnitude && strlen($frac) <= 2) { + $out = '0.00'; } + + $set($target, $prefix . $out); }; } @@ -121,7 +139,6 @@ protected static function formatCurrency(string $target): \Closure */ public static function getFilamentSchema(bool $disabled = false): array { - $noSci = 'not_regex:/[eE]/'; // forbid scientific notation $currencyRegex = 'regex:/^-?\d+(\.\d{1,2})?$/'; @@ -132,7 +149,6 @@ public static function getFilamentSchema(bool $disabled = false): array ->schema([ SchemaHelper::getPlaceholderTextField($disabled) ->columnSpan(3), - TextInput::make('elementable_data.defaultValue') ->label('Default Value') ->numeric() @@ -140,22 +156,16 @@ public static function getFilamentSchema(bool $disabled = false): array ->step(.01) ->live(onBlur: true) ->afterStateUpdated(self::formatCurrency('elementable_data.defaultValue')) - // Keep your base rules; add min/max comparisons only if present - ->rules(function (Get $get) use ($currencyRegex, $noSci) { - $rules = ['numeric', $currencyRegex, $noSci]; - - if (filled($get('elementable_data.min'))) { - $rules[] = 'gte:elementable_data.min'; - } - if (filled($get('elementable_data.max'))) { - $rules[] = 'lte:elementable_data.max'; - } - - return $rules; - }) + ->rules([$currencyRegex, $noSci]) + ->rule(NumericRules::compareWith( + minPath: 'elementable_data.min', + maxPath: 'elementable_data.max', + options: [ + 'format' => fn(float $n) => number_format($n, 2, '.', ''), + ] + )) ->columnSpan(1) ->disabled($disabled), - TextInput::make('elementable_data.min') ->label('Minimum Value') ->numeric() @@ -163,19 +173,16 @@ public static function getFilamentSchema(bool $disabled = false): array ->step(.01) ->live(onBlur: true) ->afterStateUpdated(self::formatCurrency('elementable_data.min')) - ->rules(function (Get $get) use ($currencyRegex, $noSci) { - $rules = ['numeric', $currencyRegex, $noSci]; - - // Only enforce min <= max if max is provided - if (filled($get('elementable_data.max'))) { - $rules[] = 'lte:elementable_data.max'; - } - - return $rules; - }) + ->rules([$currencyRegex, $noSci]) + ->rule(NumericRules::compareWith( + minPath: null, + maxPath: 'elementable_data.max', + options: [ + 'format' => fn(float $n) => number_format($n, 2, '.', ''), + ] + )) ->columnSpan(1) ->disabled($disabled), - TextInput::make('elementable_data.max') ->label('Maximum Value') ->numeric() @@ -183,16 +190,14 @@ public static function getFilamentSchema(bool $disabled = false): array ->step(.01) ->live(onBlur: true) ->afterStateUpdated(self::formatCurrency('elementable_data.max')) - ->rules(function (Get $get) use ($currencyRegex, $noSci) { - $rules = ['numeric', $currencyRegex, $noSci]; - - // Only enforce max >= min if min is provided - if (filled($get('elementable_data.min'))) { - $rules[] = 'gte:elementable_data.min'; - } - - return $rules; - }) + ->rules([$currencyRegex, $noSci]) + ->rule(NumericRules::compareWith( + minPath: 'elementable_data.min', + maxPath: null, + options: [ + 'format' => fn(float $n) => number_format($n, 2, '.', ''), + ] + )) ->columnSpan(1) ->disabled($disabled), ]) diff --git a/app/Models/FormBuilding/NumberInputFormElement.php b/app/Models/FormBuilding/NumberInputFormElement.php index 13e04de0..918ed675 100644 --- a/app/Models/FormBuilding/NumberInputFormElement.php +++ b/app/Models/FormBuilding/NumberInputFormElement.php @@ -2,6 +2,7 @@ namespace App\Models\FormBuilding; +use App\Filament\Forms\Helpers\NumericRules; use App\Helpers\SchemaHelper; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; @@ -55,99 +56,91 @@ protected static function formatNumberByMask(string $target): Closure $mask = strtolower((string) ($get('elementable_data.maskType') ?? 'integer')); // 'integer' | 'decimal' // Do not "fix" scientific notation or thousands separators; let validation reject them. - if (preg_match('/[eE, ]/', $raw)) { + if (preg_match('/[eE, ]/', $state)) { return; } // Treat "-", "-0", "-0.0", etc. as zero (both modes) - if ($raw === '-' || preg_match('/^-\s*0*(?:\.0*)?$/', $raw)) { - $set($target, '0'); - return; - } - if ($mask === 'integer') { - // ---- INTEGER MODE (truncate; do not round), negatives allowed ---- - // If it's not numeric at all, leave it for validation. - if (!is_numeric($raw)) return; - - // Keep sign if present - $sign = ($raw !== '' && $raw[0] === '-') ? '-' : ''; - $body = ltrim($raw, '-'); - - // Keep digits and dot; then take the integer part before any dot - $tmp = preg_replace('/[^0-9.]/', '', $body) ?? ''; - $int = explode('.', $tmp, 2)[0] ?? ''; - $int = preg_replace('/\D/', '', $int) ?? ''; // safety - $int = ltrim($int, '0'); + $isZeroish = static function (string $s): bool { + $s = trim($s); + if ($s === '') return false; - // Empty integer part becomes 0 - if ($int === '') $int = '0'; + $s = ltrim($s, "+-"); + if ($s === '' || $s === '.') return true; - // Avoid "-0" - if ($int === '0') $sign = ''; + $clean = preg_replace('/[^\d.]/', '', $s) ?? ''; + if ($clean === '' || substr_count($clean, '.') > 1) return false; - $set($target, $sign . $int); + $digitsOnly = str_replace('.', '', $clean); + return $digitsOnly !== '' && preg_match('/^0+$/', $digitsOnly) === 1; + }; + + if ($isZeroish($raw)) { + $set($target, '0'); return; } - // ---- DECIMAL MODE (no forced rounding), negatives allowed ---- - // Normalize incomplete forms to zero-ish decimal - if (in_array($raw, ['.', '-.'], true)) { - $set($target, '0'); + // Only allow plain numeric form at this stage + if (!preg_match('/^[+-]?\d*(?:\.\d*)?$/', $raw)) { + // Not a plain numeric string → leave it; validation will flag it. return; } - // If not numeric at all, let validation handle it. - if (!is_numeric($raw)) return; + // Extract sign once; operate on a signless body + $sign = ($raw !== '' && $raw[0] === '-') ? '-' : ''; + $body = ltrim($raw, '+-'); - // Keep only one leading '-' and only the first '.' - $val = preg_replace('/[^\d.\-]/', '', $raw) ?? ''; - $val = preg_replace('/(?!^)-/', '', $val) ?? ''; // remove extra '-' not at start - $val = preg_replace('/\.(?=.*\.)/', '', $val) ?? ''; // keep only first '.' + // INTEGER MODE (string-only truncation; no numeric conversions) + if ($mask === 'integer') { + // take integer part before any dot + $int = explode('.', $body, 2)[0] ?? ''; - // If empty or just "-", normalize to 0 - if ($val === '' || $val === '-') { - $set($target, '0'); - return; - } + // strip leading zeros; keep at least one '0' + $int = ltrim($int, '0'); + if ($int === '') { + $int = '0'; + } - $sign = ($val[0] === '-') ? '-' : ''; - $tmp = ltrim($val, '-'); + // avoid "-0" + if ($int === '0') { + $sign = ''; + } - if (strpos($tmp, '.') !== false) { - [$int, $frac] = explode('.', $tmp, 2); + $set($target, $sign . $int); + return; + } - // sanitize integer and fractional parts - $int = preg_replace('/\D/', '', $int) ?? ''; - $frac = preg_replace('/\D/', '', $frac) ?? ''; + // DECIMAL MODE (string-only, unlimited decimals, trim extras) + if (strpos($body, '.') !== false) { + [$int, $frac] = explode('.', $body, 2); - // Normalize leading zeros in integer part + // normalize leading zeros in integer part $int = ltrim($int, '0'); if ($int === '') $int = '0'; - // Trim trailing zeros in fractional part; drop dot if empty + // trim trailing zeros in fractional part; drop the dot if empty $frac = rtrim($frac, '0'); - $normalized = $frac === '' - ? $sign . $int - : $sign . $int . '.' . $frac; + $out = ($frac === '') ? $int : ($int . '.' . $frac); } else { - // No dot: integer-like in decimal context - $int = preg_replace('/\D/', '', $tmp) ?? ''; + // integer-like in decimal context + $int = preg_replace('/\D/', '', $body) ?? ''; $int = ltrim($int, '0'); if ($int === '') $int = '0'; - $normalized = $sign . $int; + $out = $int; } - // Normalize "-0" - if ($normalized === '-0') { - $normalized = '0'; + // avoid "-0" + if ($out === '0') { + $sign = ''; } - $set($target, $normalized); + $set($target, $sign . $out); }; } + /** * Get the Filament form schema for this element type. */ @@ -176,18 +169,14 @@ public static function getFilamentSchema(bool $disabled = false): array ->afterStateUpdated(self::formatNumberByMask('elementable_data.defaultValue')) ->rules(function (Get $get) use ($isDecimal, $noSci, $plainDecimal) { $rules = $isDecimal($get) - ? ['nullable', 'numeric', $noSci, $plainDecimal] - : ['nullable', 'integer']; - - if (filled($get('elementable_data.min'))) { - $rules[] = 'gte:elementable_data.min'; - } - if (filled($get('elementable_data.max'))) { - $rules[] = 'lte:elementable_data.max'; - } - + ? ['numeric', $noSci, $plainDecimal] + : ['integer']; return $rules; }) + ->rule(NumericRules::compareWith( + minPath: 'elementable_data.min', + maxPath: 'elementable_data.max', + )) ->columnSpan(2) ->disabled($disabled), TextInput::make('elementable_data.min') @@ -199,16 +188,14 @@ public static function getFilamentSchema(bool $disabled = false): array ->afterStateUpdated(self::formatNumberByMask('elementable_data.min')) ->rules(function (Get $get) use ($isDecimal, $noSci, $plainDecimal) { $rules = $isDecimal($get) - ? ['nullable', 'numeric', $noSci, $plainDecimal] - : ['nullable', 'integer']; - - // Only require min <= max if max is provided - if (filled($get('elementable_data.max'))) { - $rules[] = 'lte:elementable_data.max'; - } - + ? ['numeric', $noSci, $plainDecimal] + : ['integer']; return $rules; }) + ->rule(NumericRules::compareWith( + minPath: null, + maxPath: 'elementable_data.max', + )) ->columnSpan(2) ->disabled($disabled), TextInput::make('elementable_data.max') @@ -220,16 +207,14 @@ public static function getFilamentSchema(bool $disabled = false): array ->afterStateUpdated(self::formatNumberByMask('elementable_data.max')) ->rules(function (Get $get) use ($isDecimal, $noSci, $plainDecimal) { $rules = $isDecimal($get) - ? ['nullable', 'numeric', $noSci, $plainDecimal] - : ['nullable', 'integer']; - - // Only require max >= min if min is provided - if (filled($get('elementable_data.min'))) { - $rules[] = 'gte:elementable_data.min'; - } - + ? ['numeric', $noSci, $plainDecimal] + : ['integer']; return $rules; }) + ->rule(NumericRules::compareWith( + minPath: 'elementable_data.min', + maxPath: null, + )) ->columnSpan(2) ->disabled($disabled), ToggleButtons::make('elementable_data.maskType') @@ -257,8 +242,7 @@ public static function getFilamentSchema(bool $disabled = false): array } } else { // Decimal mode: keep or set a reasonable decimal step - $currentStep = $get('elementable_data.step'); - $set('elementable_data.step', filled($currentStep) ? $currentStep : 0.01); + $set('elementable_data.step', 0.01); } }), TextInput::make('elementable_data.step') @@ -268,7 +252,7 @@ public static function getFilamentSchema(bool $disabled = false): array ->default(1) ->live(onBlur: true) // Ensure UI "step" attribute makes sense (1 for integer; any step otherwise) - ->step(fn(Get $get) => $isDecimal($get) ? null : 1) + ->step(fn(Get $get) => $isDecimal($get) ? "any" : 1) ->afterStateUpdated(self::formatNumberByMask('elementable_data.step')) // Validation: integer & >=1 in integer mode; numeric & >0 in decimal mode ->rule(fn(Get $get) => $isDecimal($get) From b389ebd54b4a9c3d48a968978bcd3e6f3da81104 Mon Sep 17 00:00:00 2001 From: JohYoshidaBCGov Date: Wed, 11 Mar 2026 14:27:49 -0700 Subject: [PATCH 17/43] Add readonly/required toggle buttons for Always and Portal options --- app/Helpers/GeneralTabHelper.php | 193 +++++++++++------- app/Models/FormBuilding/FormElement.php | 6 +- ...en_and_read_only_when_to_form_elements.php | 96 +++++++++ 3 files changed, 219 insertions(+), 76 deletions(-) create mode 100644 database/migrations/2026_02_25_191737_add_required_when_and_read_only_when_to_form_elements.php diff --git a/app/Helpers/GeneralTabHelper.php b/app/Helpers/GeneralTabHelper.php index 6041b743..a4d23089 100644 --- a/app/Helpers/GeneralTabHelper.php +++ b/app/Helpers/GeneralTabHelper.php @@ -86,11 +86,14 @@ public static function getGeneralTabSchema( $set('description', $template->description); $set('help_text', $template->help_text); $set('elementable_type', $template->elementable_type); + $set('is_required_toggle', $template->is_required !== null && $template->is_required !== ''); $set('is_required', $template->is_required); + $set('is_read_only_toggle', $template->is_read_only !== null && $template->is_read_only !== ''); + $set('is_read_only', $template->is_read_only); $set('visible_web', $template->visible_web); $set('visible_pdf', $template->visible_pdf); $set('is_template', false); // New element should not be a template by default - + // Prefill tags if ($template->tags->isNotEmpty()) { $set('tags', $template->tags->pluck('id')->toArray()); @@ -219,8 +222,8 @@ public static function getGeneralTabSchema( ->tooltip(fn($get) => $get('reference_id_locked') ? '' : 'Click to unlock and edit the Reference ID. Changing this value may break ICM data bindings.')->action(function ($set, $get) { - $set('reference_id_locked', true); - }) + $set('reference_id_locked', true); + }) ) ->disabled(fn($get) => !$get('reference_id_locked')) ->suffix(function ($get) { @@ -402,50 +405,50 @@ public static function getGeneralTabSchema( // For create and view modes $elementTypeField = $isCreate ? ToggleButtons::make('elementable_type') - ->label(function (?string $state): string { - $elementType = $state ? FormElement::getElementTypeName($state) : ''; - if ($elementType) { - return "Element Type: {$elementType}"; - } else { - return 'Element Type'; - } - }) - ->options(FormElement::getAvailableElementTypes()) - ->inline() - ->icons([ - 'App\Models\FormBuilding\TextInputFormElement' => 'heroicon-o-pencil-square', - 'App\Models\FormBuilding\TextareaInputFormElement' => 'heroicon-o-document-text', - 'App\Models\FormBuilding\SelectInputFormElement' => 'heroicon-o-queue-list', - 'App\Models\FormBuilding\RadioInputFormElement' => 'heroicon-o-radio', - 'App\Models\FormBuilding\CheckboxInputFormElement' => 'heroicon-o-check-circle', - 'App\Models\FormBuilding\CheckboxGroupFormElement' => 'heroicon-o-list-bullet', - 'App\Models\FormBuilding\DateSelectInputFormElement' => 'heroicon-o-calendar', - 'App\Models\FormBuilding\NumberInputFormElement' => 'heroicon-o-calculator', - 'App\Models\FormBuilding\CurrencyInputFormElement' => 'heroicon-o-currency-dollar', - 'App\Models\FormBuilding\ContainerFormElement' => 'heroicon-o-rectangle-group', - 'App\Models\FormBuilding\TextInfoFormElement' => 'heroicon-o-information-circle', - 'App\Models\FormBuilding\ButtonInputFormElement' => 'heroicon-o-cursor-arrow-ripple', - 'App\Models\FormBuilding\HTMLFormElement' => 'heroicon-o-code-bracket', - ]) - ->required() - ->live() - ->disabled($disabled || ($disabledCallback && $disabledCallback())) - ->afterStateUpdated(function ($state, callable $set) { - // Clear existing elementable data when type changes - $set('elementable_data', []); + ->label(function (?string $state): string { + $elementType = $state ? FormElement::getElementTypeName($state) : ''; + if ($elementType) { + return "Element Type: {$elementType}"; + } else { + return 'Element Type'; + } + }) + ->options(FormElement::getAvailableElementTypes()) + ->inline() + ->icons([ + 'App\Models\FormBuilding\TextInputFormElement' => 'heroicon-o-pencil-square', + 'App\Models\FormBuilding\TextareaInputFormElement' => 'heroicon-o-document-text', + 'App\Models\FormBuilding\SelectInputFormElement' => 'heroicon-o-queue-list', + 'App\Models\FormBuilding\RadioInputFormElement' => 'heroicon-o-radio', + 'App\Models\FormBuilding\CheckboxInputFormElement' => 'heroicon-o-check-circle', + 'App\Models\FormBuilding\CheckboxGroupFormElement' => 'heroicon-o-list-bullet', + 'App\Models\FormBuilding\DateSelectInputFormElement' => 'heroicon-o-calendar', + 'App\Models\FormBuilding\NumberInputFormElement' => 'heroicon-o-calculator', + 'App\Models\FormBuilding\CurrencyInputFormElement' => 'heroicon-o-currency-dollar', + 'App\Models\FormBuilding\ContainerFormElement' => 'heroicon-o-rectangle-group', + 'App\Models\FormBuilding\TextInfoFormElement' => 'heroicon-o-information-circle', + 'App\Models\FormBuilding\ButtonInputFormElement' => 'heroicon-o-cursor-arrow-ripple', + 'App\Models\FormBuilding\HTMLFormElement' => 'heroicon-o-code-bracket', + ]) + ->required() + ->live() + ->disabled($disabled || ($disabledCallback && $disabledCallback())) + ->afterStateUpdated(function ($state, callable $set) { + // Clear existing elementable data when type changes + $set('elementable_data', []); - // Populate with defaults from the new element type - if ($state && class_exists($state)) { - $defaults = self::getElementTypeDefaults($state); + // Populate with defaults from the new element type + if ($state && class_exists($state)) { + $defaults = self::getElementTypeDefaults($state); - if (!empty($defaults)) { - $set('elementable_data', $defaults); + if (!empty($defaults)) { + $set('elementable_data', $defaults); + } } - } - }) + }) : TextInput::make('elementable_type') - ->label('Element Type') - ->disabled(true); + ->label('Element Type') + ->disabled(true); } // Add tooltip if callback is provided @@ -478,17 +481,15 @@ public static function getGeneralTabSchema( $schema[] = $helpTextField; // Visibility toggles - $schema[] = Grid::make(2) - ->schema([ - Toggle::make('visible_web') - ->label('Visible on Web') - ->default(true) - ->disabled($disabled || ($disabledCallback && $disabledCallback())), - Toggle::make('visible_pdf') - ->label('Visible on PDF') - ->default(true) - ->disabled($disabled || ($disabledCallback && $disabledCallback())), - ]); + $visibleWebToggle = Toggle::make('visible_web') + ->label('Visible on Web') + ->default(true) + ->disabled($disabled || ($disabledCallback && $disabledCallback())); + + $visiblePdfToggle = Toggle::make('visible_pdf') + ->label('Visible on PDF') + ->default(true) + ->disabled($disabled || ($disabledCallback && $disabledCallback())); // Required and Template toggles $templateToggle = Toggle::make('is_template') @@ -503,27 +504,68 @@ public static function getGeneralTabSchema( }); } - $requirementToggle = Toggle::make('is_required') + $requirementToggle = Toggle::make('is_required_toggle') ->label('Is Required') - ->default(false); + ->default(false) + ->live() + ->afterStateHydrated(function (Toggle $component, callable $set, callable $get) { + $isRequired = $get('is_required'); + // Set toggle to true if is_required has any non-null value ('always' or 'portal') + if ($isRequired !== null && $isRequired !== '') { + $set('is_required_toggle', true); + } + }); + + $requirementToggleButtons = ToggleButtons::make('is_required') + ->label('Required When') + ->options([ + 'always' => 'Always', + 'portal' => 'On Portal Forms' + ]) + ->default('always') + ->inline() + ->disabled(fn($get) => !$get('is_required_toggle')) + ->afterStateHydrated(function (callable $set, callable $get) { + $value = $get('is_required'); + if ($value === null || $value === '') { + $set('is_required', 'always'); + } + }); // For view mode or when disabled callback is true, disable the is_required toggle too if ($disabled || ($disabledCallback && $disabledCallback())) { $requirementToggle = $requirementToggle->disabled(true); } - $schema[] = Grid::make(2) - ->schema([ - $requirementToggle, - $templateToggle, - ]); - // Read Only and Save on Submit toggles - $readOnlyToggle = Toggle::make('is_read_only') + $readOnlyBool = Toggle::make('is_read_only_toggle') ->label('Is Read Only') ->default(false) ->live() - ->disabled($disabled || ($disabledCallback && $disabledCallback())); + ->disabled($disabled || ($disabledCallback && $disabledCallback())) + ->afterStateHydrated(function (Toggle $component, callable $set, callable $get) { + $isReadOnly = $get('is_read_only'); + // Set toggle to true if is_read_only has any non-null value ('always' or 'portal') + if ($isReadOnly !== null && $isReadOnly !== '') { + $set('is_read_only_toggle', true); + } + }); + + $readOnlyToggleButtons = ToggleButtons::make('is_read_only') + ->label('Read Only When') + ->options([ + 'always' => 'Always', + 'portal' => 'On Portal Forms' + ]) + ->default('always') + ->inline() + ->disabled(fn($get) => !$get('is_read_only_toggle')) + ->afterStateHydrated(function (callable $set, callable $get) { + $value = $get('is_read_only'); + if ($value === null || $value === '') { + $set('is_read_only', 'always'); + } + }); $saveOnSubmitToggle = Toggle::make('save_on_submit') ->label('Save on Submit') @@ -537,13 +579,7 @@ public static function getGeneralTabSchema( }); } - $schema[] = Grid::make(2) - ->schema([ - $readOnlyToggle, - $saveOnSubmitToggle, - ]); - - $schema[] = Grid::make(1) + $customReadOnlyField = Grid::make(1) ->schema([ TextArea::make('custom_read_only') ->label('Custom Read Only Script') @@ -604,7 +640,20 @@ public static function getGeneralTabSchema( } } - $schema[] = $tagsField; + // Organize visibility, validation, behaviour, and metadata fields + $schema[] = Grid::make(2) + ->schema([ + $visibleWebToggle, + $visiblePdfToggle, + $requirementToggle, + $requirementToggleButtons, + $readOnlyBool, + $readOnlyToggleButtons, + $customReadOnlyField, + $templateToggle, + $saveOnSubmitToggle, + $tagsField->columnSpanFull(), + ]); return $schema; } diff --git a/app/Models/FormBuilding/FormElement.php b/app/Models/FormBuilding/FormElement.php index 263684b4..e1218510 100644 --- a/app/Models/FormBuilding/FormElement.php +++ b/app/Models/FormBuilding/FormElement.php @@ -43,8 +43,6 @@ class FormElement extends Model protected $casts = [ 'order' => 'integer', 'parent_id' => 'integer', - 'is_read_only' => 'boolean', - 'is_required' => 'boolean', 'save_on_submit' => 'boolean', 'visible_web' => 'boolean', 'visible_pdf' => 'boolean', @@ -491,7 +489,7 @@ public static function createNumber(array $elementData, array $numberData): self return self::create($elementData); } -/** + /** * Create a currency input form element */ public static function createCurrency(array $elementData, array $currencyData): self @@ -501,7 +499,7 @@ public static function createCurrency(array $elementData, array $currencyData): $elementData['elementable_id'] = $currency->id; return self::create($elementData); - } + } /** * Create a date select input form element diff --git a/database/migrations/2026_02_25_191737_add_required_when_and_read_only_when_to_form_elements.php b/database/migrations/2026_02_25_191737_add_required_when_and_read_only_when_to_form_elements.php new file mode 100644 index 00000000..f83e1732 --- /dev/null +++ b/database/migrations/2026_02_25_191737_add_required_when_and_read_only_when_to_form_elements.php @@ -0,0 +1,96 @@ +columns as $column) { + $table->string("{$column}_new")->nullable()->after($column); + } + }); + + // Step 2: Migrate data: true → 'always', false/null → null + foreach ($this->columns as $column) { + DB::table('form_elements')->chunkById(1000, function ($rows) use ($column) { + foreach ($rows as $row) { + $newValue = match ($row->{$column}) { + true => 'always', + default => null, + }; + + DB::table('form_elements') + ->where('id', $row->id) + ->update(["{$column}_new" => $newValue]); + } + }); + } + + // Step 3: Drop old boolean columns + Schema::table('form_elements', function (Blueprint $table) { + foreach ($this->columns as $column) { + $table->dropColumn($column); + } + }); + + // Step 4: Rename new columns to original names + Schema::table('form_elements', function (Blueprint $table) { + foreach ($this->columns as $column) { + $table->renameColumn("{$column}_new", $column); + } + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + // Step 1: Add temporary boolean columns + Schema::table('form_elements', function (Blueprint $table) { + foreach ($this->columns as $column) { + $table->boolean("{$column}_new")->default(false)->after($column); + } + }); + + // Step 2: Reverse migrate: 'always' → true, null → false + foreach ($this->columns as $column) { + DB::table('form_elements')->chunkById(1000, function ($rows) use ($column) { + foreach ($rows as $row) { + $newValue = $row->{$column} === 'always'; + + DB::table('form_elements') + ->where('id', $row->id) + ->update(["{$column}_new" => $newValue]); + } + }); + } + + // Step 3: Drop enum columns + Schema::table('form_elements', function (Blueprint $table) { + foreach ($this->columns as $column) { + $table->dropColumn($column); + } + }); + + // Step 4: Rename boolean columns back + Schema::table('form_elements', function (Blueprint $table) { + foreach ($this->columns as $column) { + $table->renameColumn("{$column}_new", $column); + } + }); + } +}; \ No newline at end of file From 355b71d8b842f54ae9966522fc0817b0de709a5d Mon Sep 17 00:00:00 2001 From: JohYoshidaBCGov Date: Wed, 11 Mar 2026 16:02:41 -0700 Subject: [PATCH 18/43] Swap positions of dev and test --- .../Components/FormDeploymentsManager.php | 50 +++++++++++-------- app/Filament/Forms/Resources/FormResource.php | 22 ++++---- 2 files changed, 39 insertions(+), 33 deletions(-) diff --git a/app/Filament/Components/FormDeploymentsManager.php b/app/Filament/Components/FormDeploymentsManager.php index 7a61827a..a5682523 100644 --- a/app/Filament/Components/FormDeploymentsManager.php +++ b/app/Filament/Components/FormDeploymentsManager.php @@ -27,17 +27,18 @@ public static function schema() ->schema([ Grid::make(3) ->schema([ - // Test Environment - Section::make('Test Environment') - ->icon('heroicon-o-beaker') + // Dev Environment + Section::make('Development Environment') + ->icon('heroicon-o-cog') ->compact() ->schema([ - Placeholder::make('test_deployment_info') + Placeholder::make('dev_deployment_info') ->label('') ->content(function ($record) { - if (!$record) return 'No deployment details yet'; + if (!$record) + return 'No deployment details yet'; - $deployment = FormDeployment::getDeploymentForFormAndEnvironment($record->id, 'test'); + $deployment = FormDeployment::getDeploymentForFormAndEnvironment($record->id, 'dev'); if (!$deployment) { return 'No deployment details yet'; } @@ -46,7 +47,7 @@ public static function schema() }) ->extraAttributes(['class' => 'text-sm']), Actions::make([ - Action::make('deploy_to_test') + Action::make('deploy_to_dev') ->label('Deploy') ->icon('heroicon-o-rocket-launch') ->color('warning') @@ -56,7 +57,8 @@ public static function schema() Select::make('form_version_id') ->label('Form Version') ->options(function ($record) { - if (!$record) return []; + if (!$record) + return []; return $record->formVersions() ->whereIn('status', ['approved', 'published']) ->get() @@ -73,26 +75,27 @@ public static function schema() ->action(function (array $data, $record) { FormDeployment::deployToEnvironment( $data['form_version_id'], - 'test', + 'dev', Carbon::parse($data['deployed_at']) ); }) - ->successNotificationTitle('Successfully deployed to Test environment'), + ->successNotificationTitle('Successfully deployed to Development environment'), ]) ->alignment(Alignment::Left), ]), - // Dev Environment - Section::make('Development Environment') - ->icon('heroicon-o-cog') + // Test Environment + Section::make('Test Environment') + ->icon('heroicon-o-beaker') ->compact() ->schema([ - Placeholder::make('dev_deployment_info') + Placeholder::make('test_deployment_info') ->label('') ->content(function ($record) { - if (!$record) return 'No deployment details yet'; + if (!$record) + return 'No deployment details yet'; - $deployment = FormDeployment::getDeploymentForFormAndEnvironment($record->id, 'dev'); + $deployment = FormDeployment::getDeploymentForFormAndEnvironment($record->id, 'test'); if (!$deployment) { return 'No deployment details yet'; } @@ -101,7 +104,7 @@ public static function schema() }) ->extraAttributes(['class' => 'text-sm']), Actions::make([ - Action::make('deploy_to_dev') + Action::make('deploy_to_test') ->label('Deploy') ->icon('heroicon-o-rocket-launch') ->color('info') @@ -111,7 +114,8 @@ public static function schema() Select::make('form_version_id') ->label('Form Version') ->options(function ($record) { - if (!$record) return []; + if (!$record) + return []; return $record->formVersions() ->whereIn('status', ['approved', 'published']) ->get() @@ -128,11 +132,11 @@ public static function schema() ->action(function (array $data, $record) { FormDeployment::deployToEnvironment( $data['form_version_id'], - 'dev', + 'test', Carbon::parse($data['deployed_at']) ); }) - ->successNotificationTitle('Successfully deployed to Development environment'), + ->successNotificationTitle('Successfully deployed to Test environment'), ]) ->alignment(Alignment::Left), ]), @@ -145,7 +149,8 @@ public static function schema() Placeholder::make('prod_deployment_info') ->label('') ->content(function ($record) { - if (!$record) return 'No deployment details yet'; + if (!$record) + return 'No deployment details yet'; $deployment = FormDeployment::getDeploymentForFormAndEnvironment($record->id, 'prod'); if (!$deployment) { @@ -166,7 +171,8 @@ public static function schema() Select::make('form_version_id') ->label('Form Version') ->options(function ($record) { - if (!$record) return []; + if (!$record) + return []; return $record->formVersions() ->whereIn('status', ['approved', 'published']) ->get() diff --git a/app/Filament/Forms/Resources/FormResource.php b/app/Filament/Forms/Resources/FormResource.php index 6ab033aa..6c6456c6 100644 --- a/app/Filament/Forms/Resources/FormResource.php +++ b/app/Filament/Forms/Resources/FormResource.php @@ -113,8 +113,8 @@ public static function infolist(Infolist $infolist): Infolist ->hidden( fn($record): bool => empty($record->formFrequency?->name) && - empty($record->userTypes?->pluck('name')->filter()->toArray()) && - empty($record->formReach?->name) + empty($record->userTypes?->pluck('name')->filter()->toArray()) && + empty($record->formReach?->name) ) ->schema([ InfolistGrid::make(1) @@ -199,16 +199,16 @@ public static function infolist(Infolist $infolist): Infolist ]) ->hidden(fn() => !Gate::allows('admin') && !Gate::allows('form-developer')), - Section::make('Deployments') + Section::make('Deployments TEST') ->collapsible() ->collapsed(false) ->schema([ InfolistGrid::make(1) ->schema([ - TextEntry::make('test_deployment') - ->label(new HtmlString(self::formatLabel('Test Environment'))) + TextEntry::make('dev_deployment') + ->label(new HtmlString(self::formatLabel('Development Environment'))) ->getStateUsing(function ($record) { - $deployment = \App\Models\FormDeployment::getDeploymentForFormAndEnvironment($record->id, 'test'); + $deployment = \App\Models\FormDeployment::getDeploymentForFormAndEnvironment($record->id, 'dev'); if ($deployment) { return "Version {$deployment->formVersion->version_number} deployed at {$deployment->deployed_at->format('M j, Y g:i A')}"; } @@ -216,13 +216,13 @@ public static function infolist(Infolist $infolist): Infolist }) ->badge() ->color(function ($record) { - $deployment = \App\Models\FormDeployment::getDeploymentForFormAndEnvironment($record->id, 'test'); + $deployment = \App\Models\FormDeployment::getDeploymentForFormAndEnvironment($record->id, 'dev'); return $deployment ? 'warning' : 'gray'; }), - TextEntry::make('dev_deployment') - ->label(new HtmlString(self::formatLabel('Development Environment'))) + TextEntry::make('test_deployment') + ->label(new HtmlString(self::formatLabel('Test Environment'))) ->getStateUsing(function ($record) { - $deployment = \App\Models\FormDeployment::getDeploymentForFormAndEnvironment($record->id, 'dev'); + $deployment = \App\Models\FormDeployment::getDeploymentForFormAndEnvironment($record->id, 'test'); if ($deployment) { return "Version {$deployment->formVersion->version_number} deployed at {$deployment->deployed_at->format('M j, Y g:i A')}"; } @@ -230,7 +230,7 @@ public static function infolist(Infolist $infolist): Infolist }) ->badge() ->color(function ($record) { - $deployment = \App\Models\FormDeployment::getDeploymentForFormAndEnvironment($record->id, 'dev'); + $deployment = \App\Models\FormDeployment::getDeploymentForFormAndEnvironment($record->id, 'test'); return $deployment ? 'info' : 'gray'; }), TextEntry::make('prod_deployment') From 25a7c657bd44e4101fe423c8664b768411adb599 Mon Sep 17 00:00:00 2001 From: JohYoshidaBCGov Date: Thu, 12 Mar 2026 11:21:42 -0700 Subject: [PATCH 19/43] Factor out template selector --- app/Helpers/GeneralTabHelper.php | 169 +++++++++++++++++-------------- 1 file changed, 91 insertions(+), 78 deletions(-) diff --git a/app/Helpers/GeneralTabHelper.php b/app/Helpers/GeneralTabHelper.php index a4d23089..54602589 100644 --- a/app/Helpers/GeneralTabHelper.php +++ b/app/Helpers/GeneralTabHelper.php @@ -40,84 +40,7 @@ public static function getGeneralTabSchema( // Template selector (only for create mode when explicitly requested) if ($includeTemplateSelector && $isCreate) { - $templateField = Select::make('template_id') - ->label('Start from template') - ->placeholder('Select a template (optional)') - ->options(function () { - $templates = FormElement::templates() - ->with('elementable') - ->get(); - - $availableTypes = FormElement::getAvailableElementTypes(); - $groupedOptions = []; - - foreach ($templates as $template) { - $elementType = $template->elementable_type; - $groupName = $availableTypes[$elementType] ?? class_basename($elementType); - $typeName = $availableTypes[$elementType] ?? class_basename($elementType); - - if (!isset($groupedOptions[$groupName])) { - $groupedOptions[$groupName] = []; - } - - $groupedOptions[$groupName][$template->id] = $template->name . ' (' . $typeName . ')'; - } - - // Sort groups alphabetically - ksort($groupedOptions); - - return $groupedOptions; - }) - ->live() - ->afterStateUpdated(function ($state, callable $set, callable $get) { - if (!$state) { - return; - } - - // Load the template element with its relationships - $template = FormElement::with(['elementable', 'tags'])->find($state); - - if (!$template) { - return; - } - - // Prefill basic form element data - $set('name', $template->name); - $set('description', $template->description); - $set('help_text', $template->help_text); - $set('elementable_type', $template->elementable_type); - $set('is_required_toggle', $template->is_required !== null && $template->is_required !== ''); - $set('is_required', $template->is_required); - $set('is_read_only_toggle', $template->is_read_only !== null && $template->is_read_only !== ''); - $set('is_read_only', $template->is_read_only); - $set('visible_web', $template->visible_web); - $set('visible_pdf', $template->visible_pdf); - $set('is_template', false); // New element should not be a template by default - - // Prefill tags - if ($template->tags->isNotEmpty()) { - $set('tags', $template->tags->pluck('id')->toArray()); - } - - // Prefill elementable data if it exists - if ($template->elementable) { - $elementableData = $template->elementable->toArray(); - // Remove timestamps and primary key - unset($elementableData['id'], $elementableData['created_at'], $elementableData['updated_at']); - $set('elementable_data', $elementableData); - } - }) - ->searchable() - ->columnSpanFull(); - - // Add tooltip if callback is provided - if ($shouldShowTooltipsCallback) { - $templateField = $templateField->when($shouldShowTooltipsCallback, function ($component) { - return $component->hintIcon('heroicon-m-question-mark-circle', tooltip: 'Select a template to start with pre-configured settings. For containers, this will also clone all child elements.'); - }); - } - - $schema[] = $templateField; + $schema[] = self::makeTemplateField($shouldShowTooltipsCallback); } // Name field @@ -658,6 +581,86 @@ public static function getGeneralTabSchema( return $schema; } + private static function makeTemplateField(?callable $shouldShowTooltipsCallback) + { + $field = Select::make('template_id') + ->label('Start from template') + ->placeholder('Select a template (optional)') + ->options(function () { + $templates = FormElement::templates() + ->with('elementable') + ->get(); + + $availableTypes = FormElement::getAvailableElementTypes(); + $groupedOptions = []; + + foreach ($templates as $template) { + $elementType = $template->elementable_type; + $groupName = $availableTypes[$elementType] ?? class_basename($elementType); + $typeName = $availableTypes[$elementType] ?? class_basename($elementType); + + if (!isset($groupedOptions[$groupName])) { + $groupedOptions[$groupName] = []; + } + + $groupedOptions[$groupName][$template->id] = $template->name . ' (' . $typeName . ')'; + } + + // Sort groups alphabetically + ksort($groupedOptions); + + return $groupedOptions; + }) + ->live() + ->afterStateUpdated(function ($state, callable $set, callable $get) { + if (!$state) { + return; + } + + // Load the template element with its relationships + $template = FormElement::with(['elementable', 'tags'])->find($state); + + if (!$template) { + return; + } + + // Prefill basic form element data + $set('name', $template->name); + $set('description', $template->description); + $set('help_text', $template->help_text); + $set('elementable_type', $template->elementable_type); + $set('is_required_toggle', $template->is_required !== null && $template->is_required !== ''); + $set('is_required', $template->is_required); + $set('is_read_only_toggle', $template->is_read_only !== null && $template->is_read_only !== ''); + $set('is_read_only', $template->is_read_only); + $set('visible_web', $template->visible_web); + $set('visible_pdf', $template->visible_pdf); + $set('is_template', false); // New element should not be a template by default + + // Prefill tags + if ($template->tags->isNotEmpty()) { + $set('tags', $template->tags->pluck('id')->toArray()); + } + + // Prefill elementable data if it exists + if ($template->elementable) { + $elementableData = $template->elementable->toArray(); + // Remove timestamps and primary key + unset($elementableData['id'], $elementableData['created_at'], $elementableData['updated_at']); + $set('elementable_data', $elementableData); + } + }) + ->searchable() + ->columnSpanFull(); + + // Add tooltip if callback is provided + return self::withOptionalTooltip( + $field, + $shouldShowTooltipsCallback, + 'Select a template to start with pre-configured settings. For containers, this will also clone all child elements.' + ); + } + /** * Get the General tab schema for create forms (BuildFormVersion) * @@ -736,4 +739,14 @@ private static function getElementTypeDefaults(string $elementType): array return $defaults; } + + private static function withOptionalTooltip( + Forms\Components\Component $component, + ?callable $shouldShowTooltipsCallback, + string $tooltip + ): Forms\Components\Component { + return $shouldShowTooltipsCallback + ? $component->when($shouldShowTooltipsCallback, fn($c) => $c->hintIcon('heroicon-m-question-mark-circle', tooltip: $tooltip)) + : $component; + } } From 58909065cbcdc9c144c1b10600bddc617eb63834 Mon Sep 17 00:00:00 2001 From: JohYoshidaBCGov Date: Thu, 12 Mar 2026 11:22:41 -0700 Subject: [PATCH 20/43] Factor out Name field --- app/Helpers/GeneralTabHelper.php | 67 ++++++++++++++++++-------------- 1 file changed, 38 insertions(+), 29 deletions(-) diff --git a/app/Helpers/GeneralTabHelper.php b/app/Helpers/GeneralTabHelper.php index 54602589..8329f5be 100644 --- a/app/Helpers/GeneralTabHelper.php +++ b/app/Helpers/GeneralTabHelper.php @@ -44,36 +44,9 @@ public static function getGeneralTabSchema( } // Name field - $nameField = TextInput::make('name') - ->required() - ->maxLength(255) - ->label('Element Name') - ->autocomplete(false) - ->disabled($disabled || ($disabledCallback && $disabledCallback())); - - // Add auto-generation logic for create mode - if ($isCreate) { - $nameField = $nameField - ->live(onBlur: true) - ->afterStateUpdated(function ($state, callable $set, callable $get) { - // Auto-generate reference_id if it's empty and we have a name - if (!empty($state) && empty($get('reference_id'))) { - // Replace slashes and backslashes with dashes before slugifying - $preparedState = preg_replace('/[\/\\\\]/', '-', $state); - $slug = \Illuminate\Support\Str::slug($preparedState, '-'); - $set('reference_id', $slug); - } - }); - } + $schema[] = self::makeNameField($isCreate, $disabled, $disabledCallback, $shouldShowTooltipsCallback); - // Add tooltip if callback is provided - if ($shouldShowTooltipsCallback) { - $nameField = $nameField->when($shouldShowTooltipsCallback, function ($component) { - return $component->hintIcon('heroicon-m-question-mark-circle', tooltip: 'Human friendly identifier to help you find and reference this element'); - }); - } - - $schema[] = $nameField; + // Hidden ID field $schema[] = Hidden::make('id')->dehydrated(false); // Reference ID field - editable on create and edit @@ -661,6 +634,42 @@ private static function makeTemplateField(?callable $shouldShowTooltipsCallback) ); } + private static function makeNameField( + bool $isCreate, + bool $disabled, + ?callable $disabledCallback, + ?callable $shouldShowTooltipsCallback + ) { + $field = TextInput::make('name') + ->required() + ->maxLength(255) + ->label('Element Name') + ->autocomplete(false) + ->disabled($disabled || ($disabledCallback && $disabledCallback())); + + // Add auto-generation logic for create mode + if ($isCreate) { + $field = $field + ->live(onBlur: true) + ->afterStateUpdated(function ($state, callable $set, callable $get) { + // Auto-generate reference_id if it's empty and we have a name + if (!empty($state) && empty($get('reference_id'))) { + // Replace slashes and backslashes with dashes before slugifying + $preparedState = preg_replace('/[\/\\\\]/', '-', $state); + $slug = \Illuminate\Support\Str::slug($preparedState, '-'); + $set('reference_id', $slug); + } + }); + } + + // Add tooltip if callback is provided + return self::withOptionalTooltip( + $field, + $shouldShowTooltipsCallback, + 'Human friendly identifier to help you find and reference this element' + ); + } + /** * Get the General tab schema for create forms (BuildFormVersion) * From 494e984505d53ee633203ccc044400054f0fb375 Mon Sep 17 00:00:00 2001 From: JohYoshidaBCGov Date: Thu, 12 Mar 2026 11:48:34 -0700 Subject: [PATCH 21/43] Factor out Reference ID field --- app/Helpers/GeneralTabHelper.php | 422 ++++++++++++++----------------- 1 file changed, 188 insertions(+), 234 deletions(-) diff --git a/app/Helpers/GeneralTabHelper.php b/app/Helpers/GeneralTabHelper.php index 8329f5be..478ae42f 100644 --- a/app/Helpers/GeneralTabHelper.php +++ b/app/Helpers/GeneralTabHelper.php @@ -14,6 +14,7 @@ use Filament\Forms\Components\Actions\Action; use Filament\Forms; use App\Livewire\FormElementTreeBuilder as Builder; +use Illuminate\Support\Str; class GeneralTabHelper { @@ -50,240 +51,7 @@ public static function getGeneralTabSchema( $schema[] = Hidden::make('id')->dehydrated(false); // Reference ID field - editable on create and edit - $referenceIdField = TextInput::make('reference_id') - ->label('Reference ID') - ->rules(['alpha_dash']) - ->live() - ->autocomplete(false) - ->disabled($disabled || ($disabledCallback && $disabledCallback())) - ->suffixIcon(function (Forms\Get $get, TextInput $component) { - $lw = method_exists($component, 'getLivewire') ? $component->getLivewire() : null; - if ($lw instanceof Builder && $lw->isFieldInvalid((int) $get('id'), 'reference_id')) { - return 'heroicon-o-exclamation-triangle'; - } - return null; - }) - ->hint(function (Forms\Get $get, TextInput $component) { - $lw = method_exists($component, 'getLivewire') ? $component->getLivewire() : null; - if ($lw instanceof Builder && $lw->isFieldInvalid((int) $get('id'), 'reference_id')) { - return 'Invalid: ' . ($lw->invalidReason((int) $get('id'), 'reference_id') ?? ''); - } - return null; - }) - // make the "?" mark color back to normal when clean - ->hintColor(function (Forms\Get $get, TextInput $component) { - $lw = method_exists($component, 'getLivewire') ? $component->getLivewire() : null; - return ($lw instanceof Builder && $lw->isFieldInvalid((int) $get('id'), 'reference_id')) ? 'danger' : 'gray'; - }) - ->extraAttributes(function (Forms\Get $get, TextInput $component) { - $lw = method_exists($component, 'getLivewire') ? $component->getLivewire() : null; - if ($lw instanceof Builder && $lw->isFieldInvalid((int) $get('id'), 'reference_id')) { - return ['class' => 'ring-1 ring-danger-500 bg-danger-50/50']; - } - return []; - }) - ->afterStateUpdated(function ($state, $set, $get, TextInput $component) { - $lw = method_exists($component, 'getLivewire') ? $component->getLivewire() : null; - if (!($lw instanceof Builder)) - return; - - $id = (int) $get('id'); - $value = is_string($state) ? trim($state) : ''; - - if ($value !== '' && !preg_match('/^\d/', $value)) { - $lw->clearInvalidMarker($id, 'reference_id'); - } else { - $lw->markInvalid($id, 'reference_id', $value === '' ? 'empty' : 'starts with a number', $value); - } - - // update row highlights in the child builder - $lw->dispatch('ff-markers-updated', markers: $lw->invalidByElement ?? []) - ->to('form-element-tree-builder'); - }); - - // Add tooltip if callback is provided - if ($shouldShowTooltipsCallback) { - $referenceIdField = $referenceIdField->when($shouldShowTooltipsCallback, function ($component) { - return $component->hintIcon('heroicon-m-question-mark-circle', tooltip: 'Human-readable identifier to aid creating ICM data bindings'); - }); - } - - // Add suffix and actions for edit mode - if ($isEdit) { - $schema[] = Hidden::make('reference_id_locked'); - $referenceIdField = $referenceIdField - ->prefixAction( - Action::make('toggleLock') - ->icon(fn($get) => $get('reference_id_locked') ? 'heroicon-s-lock-open' : 'heroicon-s-lock-closed') - ->tooltip(fn($get) => $get('reference_id_locked') - ? '' - : 'Click to unlock and edit the Reference ID. Changing this value may break ICM data bindings.')->action(function ($set, $get) { - $set('reference_id_locked', true); - }) - ) - ->disabled(fn($get) => !$get('reference_id_locked')) - ->suffix(function ($get) { - return $get('uuid') ? $get('uuid') : ''; - }) - ->autocomplete(false) - ->suffixActions([ - // Copy script format: '' /* Name (Type) */ - Action::make('copyScript') - ->icon('heroicon-s-clipboard') - ->tooltip('Copy script snippet') - ->action(function ($livewire, $state, $get) { - $base = FormElement::buildFullReferenceId($state, $get('uuid')); - - $nameBase = (string) ($get('label') ?? $get('name') ?? ''); - $elementType = (string) ($get('elementable_type') ?? ''); - $availableTypes = FormElement::getAvailableElementTypes(); - $typeDisplay = $availableTypes[$elementType] ?? $elementType ?? 'Element'; - - $label = trim($nameBase) !== '' ? ($nameBase . ' (' . $typeDisplay . ')') : $typeDisplay; - $label = addslashes($label); - $snippet = "'{$base}' /* {$label} */"; - - $livewire->dispatch('copy-to-clipboard', text: $snippet); - }), - - // Copy CSS selector format: [id=''] /* Name (Type) */ - Action::make('copyCss') - ->icon('heroicon-s-code-bracket-square') - ->tooltip('Copy CSS selector') - ->action(function ($livewire, $state, $get) { - $base = FormElement::buildFullReferenceId($state, $get('uuid')); - - $nameBase = (string) ($get('label') ?? $get('name') ?? ''); - $elementType = (string) ($get('elementable_type') ?? ''); - $availableTypes = FormElement::getAvailableElementTypes(); - $typeDisplay = $availableTypes[$elementType] ?? $elementType ?? 'Element'; - - $label = trim($nameBase) !== '' ? ($nameBase . ' (' . $typeDisplay . ')') : $typeDisplay; - $label = addslashes($label); - $snippet = "[id='{$base}'] /* {$label} */"; - - $livewire->dispatch('copy-to-clipboard', text: $snippet); - }), - ]) - ->extraAttributes([ - 'x-data' => '{ - copyToClipboard(text) { - if (navigator.clipboard && navigator.clipboard.writeText) { - navigator.clipboard.writeText(text).then(() => { - $tooltip("Copied to clipboard", { timeout: 1500 }); - }).catch(() => { - $tooltip("Failed to copy", { timeout: 1500 }); - }); - } else { - const textArea = document.createElement("textarea"); - textArea.value = text; - textArea.style.position = "fixed"; - textArea.style.opacity = "0"; - document.body.appendChild(textArea); - textArea.select(); - try { - document.execCommand("copy"); - $tooltip("Copied to clipboard", { timeout: 1500 }); - } catch (err) { - $tooltip("Failed to copy", { timeout: 1500 }); - } - document.body.removeChild(textArea); - } - } - }', - 'x-on:copy-to-clipboard.window' => 'copyToClipboard($event.detail.text)', - ]); - } elseif ($isCreate) { - // Add regenerate action for create mode - $referenceIdField = $referenceIdField->suffixAction( - Action::make('regenerate_reference_id') - ->icon('heroicon-o-arrow-path') - ->tooltip('Regenerate from Element Name') - ->action(function (callable $set, callable $get) { - $name = $get('name'); - if (!empty($name)) { - $slug = \Illuminate\Support\Str::slug($name, '-'); - $set('reference_id', $slug); - } - }) - ); - } elseif ($mode === 'view') { - // Add copy functionality for view mode - $referenceIdField = $referenceIdField - ->suffix(function ($get) { - return $get('uuid') ? $get('uuid') : ''; - }) - ->suffixActions([ - // Copy script format: '' /* Name (Type) */ - Action::make('copyScript') - ->icon('heroicon-s-clipboard') - ->tooltip('Copy script snippet') - ->action(function ($livewire, $state, $get) { - $base = FormElement::buildFullReferenceId($state, $get('uuid')); - - $nameBase = (string) ($get('label') ?? $get('name') ?? ''); - $elementType = (string) ($get('elementable_type') ?? ''); - $availableTypes = FormElement::getAvailableElementTypes(); - $typeDisplay = $availableTypes[$elementType] ?? $elementType ?? 'Element'; - - $label = trim($nameBase) !== '' ? ($nameBase . ' (' . $typeDisplay . ')') : $typeDisplay; - $label = addslashes($label); - $snippet = "'{$base}' /* {$label} */"; - - $livewire->dispatch('copy-to-clipboard', text: $snippet); - }), - - // Copy CSS selector format: [id=''] /* Name (Type) */ - Action::make('copyCss') - ->icon('heroicon-s-code-bracket-square') - ->tooltip('Copy CSS selector') - ->action(function ($livewire, $state, $get) { - $base = FormElement::buildFullReferenceId($state, $get('uuid')); - - $nameBase = (string) ($get('label') ?? $get('name') ?? ''); - $elementType = (string) ($get('elementable_type') ?? ''); - $availableTypes = FormElement::getAvailableElementTypes(); - $typeDisplay = $availableTypes[$elementType] ?? $elementType ?? 'Element'; - - $label = trim($nameBase) !== '' ? ($nameBase . ' (' . $typeDisplay . ')') : $typeDisplay; - $label = addslashes($label); - $snippet = "[id='{$base}'] /* {$label} */"; - - $livewire->dispatch('copy-to-clipboard', text: $snippet); - }), - ]) - - ->extraAttributes([ - 'x-data' => '{ - copyToClipboard(text) { - if (navigator.clipboard && navigator.clipboard.writeText) { - navigator.clipboard.writeText(text).then(() => { - $tooltip("Copied to clipboard", { timeout: 1500 }); - }).catch(() => { - $tooltip("Failed to copy", { timeout: 1500 }); - }); - } else { - const textArea = document.createElement("textarea"); - textArea.value = text; - textArea.style.position = "fixed"; - textArea.style.opacity = "0"; - document.body.appendChild(textArea); - textArea.select(); - try { - document.execCommand("copy"); - $tooltip("Copied to clipboard", { timeout: 1500 }); - } catch (err) { - $tooltip("Failed to copy", { timeout: 1500 }); - } - document.body.removeChild(textArea); - } - } - }', - 'x-on:copy-to-clipboard.window' => 'copyToClipboard($event.detail.text)', - ]); - } - - $schema[] = $referenceIdField; + $schema[] = self::makeReferenceIdField($mode, $disabled, $disabledCallback, $shouldShowTooltipsCallback); // Element type field (different handling for edit vs create/view) if ($isEdit) { @@ -670,6 +438,118 @@ private static function makeNameField( ); } + private static function makeReferenceIdField( + string $mode, + bool $disabled, + ?callable $disabledCallback, + ?callable $shouldShowTooltipsCallback + ) { + $field = TextInput::make('reference_id') + ->label('Reference ID') + ->rules(['alpha_dash']) + ->live() + ->autocomplete(false) + ->disabled($disabled || ($disabledCallback && $disabledCallback())) + ->suffixIcon(function (Forms\Get $get, TextInput $component) { + $lw = method_exists($component, 'getLivewire') ? $component->getLivewire() : null; + if ($lw instanceof Builder && $lw->isFieldInvalid((int) $get('id'), 'reference_id')) { + return 'heroicon-o-exclamation-triangle'; + } + return null; + }) + ->hint(function (Forms\Get $get, TextInput $component) { + $lw = method_exists($component, 'getLivewire') ? $component->getLivewire() : null; + if ($lw instanceof Builder && $lw->isFieldInvalid((int) $get('id'), 'reference_id')) { + return 'Invalid: ' . ($lw->invalidReason((int) $get('id'), 'reference_id') ?? ''); + } + return null; + }) + // make the "?" mark color back to normal when clean + ->hintColor(function (Forms\Get $get, TextInput $component) { + $lw = method_exists($component, 'getLivewire') ? $component->getLivewire() : null; + return ($lw instanceof Builder && $lw->isFieldInvalid((int) $get('id'), 'reference_id')) ? 'danger' : 'gray'; + }) + ->extraAttributes(function (Forms\Get $get, TextInput $component) { + $lw = method_exists($component, 'getLivewire') ? $component->getLivewire() : null; + if ($lw instanceof Builder && $lw->isFieldInvalid((int) $get('id'), 'reference_id')) { + return ['class' => 'ring-1 ring-danger-500 bg-danger-50/50']; + } + return []; + }) + ->afterStateUpdated(function ($state, $set, $get, TextInput $component) { + $lw = method_exists($component, 'getLivewire') ? $component->getLivewire() : null; + if (!($lw instanceof Builder)) + return; + + $id = (int) $get('id'); + $value = is_string($state) ? trim($state) : ''; + + if ($value !== '' && !preg_match('/^\d/', $value)) { + $lw->clearInvalidMarker($id, 'reference_id'); + } else { + $lw->markInvalid($id, 'reference_id', $value === '' ? 'empty' : 'starts with a number', $value); + } + + // update row highlights in the child builder + $lw->dispatch('ff-markers-updated', markers: $lw->invalidByElement ?? []) + ->to('form-element-tree-builder'); + }); + + // Add tooltip if callback is provided + $field = self::withOptionalTooltip( + $field, + $shouldShowTooltipsCallback, + 'Human-readable identifier to aid creating ICM data bindings' + ); + + // Add suffix and actions for edit mode + if ($mode === 'edit') { + // $schema[] = Hidden::make('reference_id_locked'); + return $field + ->prefixAction( + Action::make('toggleLock') + ->icon(fn($get) => $get('reference_id_locked') ? 'heroicon-s-lock-open' : 'heroicon-s-lock-closed') + ->tooltip(fn($get) => $get('reference_id_locked') ? '' : 'Click to unlock and edit the Reference ID. Changing this value may break ICM data bindings, scripts, and/or styles.') + ->action(fn($set) => $set('reference_id_locked', true)) + ) + ->disabled(fn($get) => !$get('reference_id_locked')) + ->suffix(function ($get) { + return $get('uuid') ? $get('uuid') : ''; + }) + ->autocomplete(false) + ->suffixActions([ + self::makeCopyScriptAction(), + self::makeCopyCssAction(), + ]) + ->extraAttributes(self::getCopyToClipboardText()); + } elseif ($mode === 'create') { + // Add regenerate action for create mode + return $field->suffixAction( + Action::make('regenerate_reference_id') + ->icon('heroicon-o-arrow-path') + ->tooltip('Regenerate from Element Name') + ->action(function (callable $set, callable $get) { + $name = $get('name'); + if (!empty($name)) { + $slug = Str::slug($name, '-'); + $set('reference_id', $slug); + } + }) + ); + } elseif ($mode === 'view') { + // Add copy functionality for view mode + return $field + ->suffix(function ($get) { + return $get('uuid') ? $get('uuid') : ''; + }) + ->suffixActions([ + self::makeCopyScriptAction(), + self::makeCopyCssAction(), + ]) + ->extraAttributes(self::getCopyToClipboardText()); + } + } + /** * Get the General tab schema for create forms (BuildFormVersion) * @@ -758,4 +638,78 @@ private static function withOptionalTooltip( ? $component->when($shouldShowTooltipsCallback, fn($c) => $c->hintIcon('heroicon-m-question-mark-circle', tooltip: $tooltip)) : $component; } + + private static function makeCopyScriptAction(): Action + { + // Copy script format: '' /* Name (Type) */ + return Action::make('copyScript') + ->icon('heroicon-s-clipboard') + ->tooltip('Copy script snippet') + ->action(function ($livewire, $state, $get) { + $base = FormElement::buildFullReferenceId($state, $get('uuid')); + + $nameBase = (string) ($get('label') ?? $get('name') ?? ''); + $elementType = (string) ($get('elementable_type') ?? ''); + $availableTypes = FormElement::getAvailableElementTypes(); + $typeDisplay = $availableTypes[$elementType] ?? $elementType ?? 'Element'; + + $label = trim($nameBase) !== '' ? ($nameBase . ' (' . $typeDisplay . ')') : $typeDisplay; + $label = addslashes($label); + $snippet = "'{$base}' /* {$label} */"; + + $livewire->dispatch('copy-to-clipboard', text: $snippet); + }); + } + + private static function makeCopyCssAction(): Action + { + // Copy CSS selector format: [id=''] /* Name (Type) */ + return Action::make('copyCss') + ->icon('heroicon-s-code-bracket-square') + ->tooltip('Copy CSS selector') + ->action(function ($livewire, $state, $get) { + $base = FormElement::buildFullReferenceId($state, $get('uuid')); + + $nameBase = (string) ($get('label') ?? $get('name') ?? ''); + $elementType = (string) ($get('elementable_type') ?? ''); + $availableTypes = FormElement::getAvailableElementTypes(); + $typeDisplay = $availableTypes[$elementType] ?? $elementType ?? 'Element'; + + $label = trim($nameBase) !== '' ? ($nameBase . ' (' . $typeDisplay . ')') : $typeDisplay; + $label = addslashes($label); + $snippet = "[id='{$base}'] /* {$label} */"; + + $livewire->dispatch('copy-to-clipboard', text: $snippet); + }); + } + + private static function getCopyToClipboardText(): array + { + return [ + 'x-data' => '{ + copyToClipboard(text) { + if (navigator.clipboard?.writeText) { + navigator.clipboard.writeText(text) + .then(() => $tooltip("Copied to clipboard", { timeout: 1500 })) + .catch(() => $tooltip("Failed to copy", { timeout: 1500 })); + } else { + const textArea = document.createElement("textarea"); + textArea.value = text; + textArea.style.position = "fixed"; + textArea.style.opacity = "0"; + document.body.appendChild(textArea); + textArea.select(); + try { + document.execCommand("copy"); + $tooltip("Copied to clipboard", { timeout: 1500 }); + } catch (err) { + $tooltip("Failed to copy", { timeout: 1500 }); + } + document.body.removeChild(textArea); + } + } + }', + 'x-on:copy-to-clipboard.window' => 'copyToClipboard($event.detail.text)', + ]; + } } From 90e760993977d6e9cf3c8f391aecd891a38e5cae Mon Sep 17 00:00:00 2001 From: JohYoshidaBCGov Date: Thu, 12 Mar 2026 14:07:43 -0700 Subject: [PATCH 22/43] Factor out Element Type field --- app/Helpers/GeneralTabHelper.php | 163 +++++++++++++++++-------------- 1 file changed, 92 insertions(+), 71 deletions(-) diff --git a/app/Helpers/GeneralTabHelper.php b/app/Helpers/GeneralTabHelper.php index 478ae42f..fbcc125b 100644 --- a/app/Helpers/GeneralTabHelper.php +++ b/app/Helpers/GeneralTabHelper.php @@ -53,76 +53,8 @@ public static function getGeneralTabSchema( // Reference ID field - editable on create and edit $schema[] = self::makeReferenceIdField($mode, $disabled, $disabledCallback, $shouldShowTooltipsCallback); - // Element type field (different handling for edit vs create/view) - if ($isEdit) { - // For edit mode, we need both hidden and display fields - $schema[] = Hidden::make('elementable_type'); - $elementTypeField = TextInput::make('elementable_type_display') - ->label('Element Type') - ->disabled(true) - ->dehydrated(false) - ->formatStateUsing(function ($state, callable $get) { - $elementType = $get('elementable_type'); - return FormElement::getAvailableElementTypes()[$elementType] ?? $elementType; - }); - } else { - // For create and view modes - $elementTypeField = $isCreate - ? ToggleButtons::make('elementable_type') - ->label(function (?string $state): string { - $elementType = $state ? FormElement::getElementTypeName($state) : ''; - if ($elementType) { - return "Element Type: {$elementType}"; - } else { - return 'Element Type'; - } - }) - ->options(FormElement::getAvailableElementTypes()) - ->inline() - ->icons([ - 'App\Models\FormBuilding\TextInputFormElement' => 'heroicon-o-pencil-square', - 'App\Models\FormBuilding\TextareaInputFormElement' => 'heroicon-o-document-text', - 'App\Models\FormBuilding\SelectInputFormElement' => 'heroicon-o-queue-list', - 'App\Models\FormBuilding\RadioInputFormElement' => 'heroicon-o-radio', - 'App\Models\FormBuilding\CheckboxInputFormElement' => 'heroicon-o-check-circle', - 'App\Models\FormBuilding\CheckboxGroupFormElement' => 'heroicon-o-list-bullet', - 'App\Models\FormBuilding\DateSelectInputFormElement' => 'heroicon-o-calendar', - 'App\Models\FormBuilding\NumberInputFormElement' => 'heroicon-o-calculator', - 'App\Models\FormBuilding\CurrencyInputFormElement' => 'heroicon-o-currency-dollar', - 'App\Models\FormBuilding\ContainerFormElement' => 'heroicon-o-rectangle-group', - 'App\Models\FormBuilding\TextInfoFormElement' => 'heroicon-o-information-circle', - 'App\Models\FormBuilding\ButtonInputFormElement' => 'heroicon-o-cursor-arrow-ripple', - 'App\Models\FormBuilding\HTMLFormElement' => 'heroicon-o-code-bracket', - ]) - ->required() - ->live() - ->disabled($disabled || ($disabledCallback && $disabledCallback())) - ->afterStateUpdated(function ($state, callable $set) { - // Clear existing elementable data when type changes - $set('elementable_data', []); - - // Populate with defaults from the new element type - if ($state && class_exists($state)) { - $defaults = self::getElementTypeDefaults($state); - - if (!empty($defaults)) { - $set('elementable_data', $defaults); - } - } - }) - : TextInput::make('elementable_type') - ->label('Element Type') - ->disabled(true); - } - - // Add tooltip if callback is provided - if ($shouldShowTooltipsCallback) { - $elementTypeField = $elementTypeField->when($shouldShowTooltipsCallback, function ($component) { - return $component->hintIcon('heroicon-m-question-mark-circle', tooltip: 'Various inputs, containers for grouping and repeating, text info for paragraphs, or custom HTML'); - }); - } - - $schema[] = $elementTypeField; + // Element Type field (different handling for edit vs create/view) + $schema[] = self::makeElementTypeField($mode, $disabled, $disabledCallback, $shouldShowTooltipsCallback); // Description field $schema[] = Textarea::make('description') @@ -424,7 +356,7 @@ private static function makeNameField( if (!empty($state) && empty($get('reference_id'))) { // Replace slashes and backslashes with dashes before slugifying $preparedState = preg_replace('/[\/\\\\]/', '-', $state); - $slug = \Illuminate\Support\Str::slug($preparedState, '-'); + $slug = Str::slug($preparedState, '-'); $set('reference_id', $slug); } }); @@ -522,6 +454,7 @@ private static function makeReferenceIdField( self::makeCopyCssAction(), ]) ->extraAttributes(self::getCopyToClipboardText()); + } elseif ($mode === 'create') { // Add regenerate action for create mode return $field->suffixAction( @@ -536,6 +469,7 @@ private static function makeReferenceIdField( } }) ); + } elseif ($mode === 'view') { // Add copy functionality for view mode return $field @@ -550,6 +484,93 @@ private static function makeReferenceIdField( } } + private static function makeElementTypeField( + string $mode, + bool $disabled, + ?callable $disabledCallback, + ?callable $shouldShowTooltipsCallback + ) { + $tooltip = 'Various inputs, containers for grouping and repeating, text info for paragraphs, or custom HTML'; + + if ($mode === 'edit') { + $field = TextInput::make('elementable_type_display') + ->label('Element Type') + ->disabled(true) + ->dehydrated(false) + ->formatStateUsing(function ($state, callable $get) { + $elementType = $get('elementable_type'); + return FormElement::getAvailableElementTypes()[$elementType] ?? $elementType; + }); + + // For edit mode, we need both hidden and display fields + return Grid::make(1) + ->schema([ + Hidden::make('elementable_type'), + self::withOptionalTooltip( + $field, + $shouldShowTooltipsCallback, + $tooltip, + ), + ]); + + } else if ($mode === 'create') { + $field = ToggleButtons::make('elementable_type') + ->label(function (?string $state): string { + $elementType = $state ? FormElement::getElementTypeName($state) : ''; + return $elementType ? "Element Type: {$elementType}" : 'Element Type'; + }) + ->options(FormElement::getAvailableElementTypes()) + ->inline() + ->icons([ + 'App\Models\FormBuilding\TextInputFormElement' => 'heroicon-o-pencil-square', + 'App\Models\FormBuilding\TextareaInputFormElement' => 'heroicon-o-document-text', + 'App\Models\FormBuilding\SelectInputFormElement' => 'heroicon-o-queue-list', + 'App\Models\FormBuilding\RadioInputFormElement' => 'heroicon-o-radio', + 'App\Models\FormBuilding\CheckboxInputFormElement' => 'heroicon-o-check-circle', + 'App\Models\FormBuilding\CheckboxGroupFormElement' => 'heroicon-o-list-bullet', + 'App\Models\FormBuilding\DateSelectInputFormElement' => 'heroicon-o-calendar', + 'App\Models\FormBuilding\NumberInputFormElement' => 'heroicon-o-calculator', + 'App\Models\FormBuilding\CurrencyInputFormElement' => 'heroicon-o-currency-dollar', + 'App\Models\FormBuilding\ContainerFormElement' => 'heroicon-o-rectangle-group', + 'App\Models\FormBuilding\TextInfoFormElement' => 'heroicon-o-information-circle', + 'App\Models\FormBuilding\ButtonInputFormElement' => 'heroicon-o-cursor-arrow-ripple', + 'App\Models\FormBuilding\HTMLFormElement' => 'heroicon-o-code-bracket', + ]) + ->required() + ->live() + ->disabled($disabled || ($disabledCallback && $disabledCallback())) + ->afterStateUpdated(function ($state, callable $set) { + // Clear existing elementable data when type changes + $set('elementable_data', []); + // Populate with defaults from the new element type + if ($state && class_exists($state)) { + $defaults = self::getElementTypeDefaults($state); + if (!empty($defaults)) { + $set('elementable_data', $defaults); + } + } + }); + + return self::withOptionalTooltip( + $field, + $shouldShowTooltipsCallback, + $tooltip, + ); + + } else if ($mode === 'view') { + $field = TextInput::make('elementable_type') + ->label('Element Type') + ->disabled(true); + + // Add tooltip if callback is provided + return self::withOptionalTooltip( + $field, + $shouldShowTooltipsCallback, + $tooltip, + ); + } + } + /** * Get the General tab schema for create forms (BuildFormVersion) * From 6ce827bcf5a5c25bc873ab7a68646d97b7dac040 Mon Sep 17 00:00:00 2001 From: JohYoshidaBCGov Date: Thu, 12 Mar 2026 14:19:20 -0700 Subject: [PATCH 23/43] Factor out Help Text field --- app/Helpers/GeneralTabHelper.php | 37 +++++++++++++++++++------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/app/Helpers/GeneralTabHelper.php b/app/Helpers/GeneralTabHelper.php index fbcc125b..ff5013fc 100644 --- a/app/Helpers/GeneralTabHelper.php +++ b/app/Helpers/GeneralTabHelper.php @@ -4,6 +4,7 @@ use App\Models\FormBuilding\FormElement; use App\Models\FormBuilding\FormElementTag; +use Filament\Forms\Components\Component; use Filament\Forms\Components\Grid; use Filament\Forms\Components\Hidden; use Filament\Forms\Components\Select; @@ -62,19 +63,7 @@ public static function getGeneralTabSchema( ->disabled($disabled || ($disabledCallback && $disabledCallback())); // Help text field - $helpTextField = TextInput::make('help_text') - ->maxLength(500) - ->autocomplete(false) - ->disabled($disabled || ($disabledCallback && $disabledCallback())); - - // Add tooltip if callback is provided - if ($shouldShowTooltipsCallback) { - $helpTextField = $helpTextField->when($shouldShowTooltipsCallback, function ($component) { - return $component->hintIcon('heroicon-m-question-mark-circle', tooltip: 'This text is read aloud by screen readers to describe the element'); - }); - } - - $schema[] = $helpTextField; + $schema[] = self::makeHelpTextField($disabled, $disabledCallback, $shouldShowTooltipsCallback); // Visibility toggles $visibleWebToggle = Toggle::make('visible_web') @@ -571,6 +560,24 @@ private static function makeElementTypeField( } } + private static function makeHelpTextField( + bool $disabled, + ?callable $disabledCallback, + ?callable $shouldShowTooltipsCallback + ) { + $field = TextInput::make('help_text') + ->maxLength(500) + ->autocomplete(false) + ->disabled($disabled || ($disabledCallback && $disabledCallback())); + + // Add tooltip if callback is provided + return self::withOptionalTooltip( + $field, + $shouldShowTooltipsCallback, + 'This text is read aloud by screen readers to describe the element', + ); + } + /** * Get the General tab schema for create forms (BuildFormVersion) * @@ -651,10 +658,10 @@ private static function getElementTypeDefaults(string $elementType): array } private static function withOptionalTooltip( - Forms\Components\Component $component, + Component $component, ?callable $shouldShowTooltipsCallback, string $tooltip - ): Forms\Components\Component { + ): Component { return $shouldShowTooltipsCallback ? $component->when($shouldShowTooltipsCallback, fn($c) => $c->hintIcon('heroicon-m-question-mark-circle', tooltip: $tooltip)) : $component; From f66128cae60899e012baa881cb5fdb2a2c744ee2 Mon Sep 17 00:00:00 2001 From: JohYoshidaBCGov Date: Thu, 12 Mar 2026 14:22:20 -0700 Subject: [PATCH 24/43] Require functions to return Components --- app/Helpers/GeneralTabHelper.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/app/Helpers/GeneralTabHelper.php b/app/Helpers/GeneralTabHelper.php index ff5013fc..71879064 100644 --- a/app/Helpers/GeneralTabHelper.php +++ b/app/Helpers/GeneralTabHelper.php @@ -243,7 +243,7 @@ public static function getGeneralTabSchema( return $schema; } - private static function makeTemplateField(?callable $shouldShowTooltipsCallback) + private static function makeTemplateField(?callable $shouldShowTooltipsCallback): Component { $field = Select::make('template_id') ->label('Start from template') @@ -328,7 +328,7 @@ private static function makeNameField( bool $disabled, ?callable $disabledCallback, ?callable $shouldShowTooltipsCallback - ) { + ): Component { $field = TextInput::make('name') ->required() ->maxLength(255) @@ -364,7 +364,7 @@ private static function makeReferenceIdField( bool $disabled, ?callable $disabledCallback, ?callable $shouldShowTooltipsCallback - ) { + ): Component { $field = TextInput::make('reference_id') ->label('Reference ID') ->rules(['alpha_dash']) @@ -459,7 +459,7 @@ private static function makeReferenceIdField( }) ); - } elseif ($mode === 'view') { + } else { // $mode === 'view' // Add copy functionality for view mode return $field ->suffix(function ($get) { @@ -478,7 +478,7 @@ private static function makeElementTypeField( bool $disabled, ?callable $disabledCallback, ?callable $shouldShowTooltipsCallback - ) { + ): Component { $tooltip = 'Various inputs, containers for grouping and repeating, text info for paragraphs, or custom HTML'; if ($mode === 'edit') { @@ -546,7 +546,7 @@ private static function makeElementTypeField( $tooltip, ); - } else if ($mode === 'view') { + } else { // $mode === 'view' $field = TextInput::make('elementable_type') ->label('Element Type') ->disabled(true); @@ -564,7 +564,7 @@ private static function makeHelpTextField( bool $disabled, ?callable $disabledCallback, ?callable $shouldShowTooltipsCallback - ) { + ): Component { $field = TextInput::make('help_text') ->maxLength(500) ->autocomplete(false) From 90173326e3d5e4266cdc273d88e8cd57ed08a680 Mon Sep 17 00:00:00 2001 From: JohYoshidaBCGov Date: Thu, 12 Mar 2026 14:35:50 -0700 Subject: [PATCH 25/43] Factor out Visibility toggles --- app/Helpers/GeneralTabHelper.php | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/app/Helpers/GeneralTabHelper.php b/app/Helpers/GeneralTabHelper.php index 71879064..9b9d4d82 100644 --- a/app/Helpers/GeneralTabHelper.php +++ b/app/Helpers/GeneralTabHelper.php @@ -65,16 +65,8 @@ public static function getGeneralTabSchema( // Help text field $schema[] = self::makeHelpTextField($disabled, $disabledCallback, $shouldShowTooltipsCallback); - // Visibility toggles - $visibleWebToggle = Toggle::make('visible_web') - ->label('Visible on Web') - ->default(true) - ->disabled($disabled || ($disabledCallback && $disabledCallback())); - - $visiblePdfToggle = Toggle::make('visible_pdf') - ->label('Visible on PDF') - ->default(true) - ->disabled($disabled || ($disabledCallback && $disabledCallback())); + // Visibility grid + $schema[] = self::makeVisibilityGrid($disabled, $disabledCallback); // Required and Template toggles $templateToggle = Toggle::make('is_template') @@ -228,8 +220,6 @@ public static function getGeneralTabSchema( // Organize visibility, validation, behaviour, and metadata fields $schema[] = Grid::make(2) ->schema([ - $visibleWebToggle, - $visiblePdfToggle, $requirementToggle, $requirementToggleButtons, $readOnlyBool, @@ -578,6 +568,21 @@ private static function makeHelpTextField( ); } + private static function makeVisibilityGrid(bool $disabled, ?callable $disabledCallback): Component + { + return Grid::make(2) + ->schema([ + Toggle::make('visible_web') + ->label('Visible on Web') + ->default(true) + ->disabled($disabled || ($disabledCallback && $disabledCallback())), + Toggle::make('visible_pdf') + ->label('Visible on PDF') + ->default(true) + ->disabled($disabled || ($disabledCallback && $disabledCallback())), + ]); + } + /** * Get the General tab schema for create forms (BuildFormVersion) * From 8aadfe091314a6df794c2e74681a217c57febc13 Mon Sep 17 00:00:00 2001 From: JohYoshidaBCGov Date: Thu, 12 Mar 2026 15:04:55 -0700 Subject: [PATCH 26/43] Factor out Required grid --- app/Helpers/GeneralTabHelper.php | 78 +++++++++++++++++--------------- 1 file changed, 42 insertions(+), 36 deletions(-) diff --git a/app/Helpers/GeneralTabHelper.php b/app/Helpers/GeneralTabHelper.php index 9b9d4d82..71b06279 100644 --- a/app/Helpers/GeneralTabHelper.php +++ b/app/Helpers/GeneralTabHelper.php @@ -68,7 +68,10 @@ public static function getGeneralTabSchema( // Visibility grid $schema[] = self::makeVisibilityGrid($disabled, $disabledCallback); - // Required and Template toggles + // Required grid + $schema[] = self::makeRequiredGrid($disabled, $disabledCallback); + + // Template toggles $templateToggle = Toggle::make('is_template') ->label('Is Template') ->default(false) @@ -81,39 +84,6 @@ public static function getGeneralTabSchema( }); } - $requirementToggle = Toggle::make('is_required_toggle') - ->label('Is Required') - ->default(false) - ->live() - ->afterStateHydrated(function (Toggle $component, callable $set, callable $get) { - $isRequired = $get('is_required'); - // Set toggle to true if is_required has any non-null value ('always' or 'portal') - if ($isRequired !== null && $isRequired !== '') { - $set('is_required_toggle', true); - } - }); - - $requirementToggleButtons = ToggleButtons::make('is_required') - ->label('Required When') - ->options([ - 'always' => 'Always', - 'portal' => 'On Portal Forms' - ]) - ->default('always') - ->inline() - ->disabled(fn($get) => !$get('is_required_toggle')) - ->afterStateHydrated(function (callable $set, callable $get) { - $value = $get('is_required'); - if ($value === null || $value === '') { - $set('is_required', 'always'); - } - }); - - // For view mode or when disabled callback is true, disable the is_required toggle too - if ($disabled || ($disabledCallback && $disabledCallback())) { - $requirementToggle = $requirementToggle->disabled(true); - } - // Read Only and Save on Submit toggles $readOnlyBool = Toggle::make('is_read_only_toggle') ->label('Is Read Only') @@ -220,8 +190,6 @@ public static function getGeneralTabSchema( // Organize visibility, validation, behaviour, and metadata fields $schema[] = Grid::make(2) ->schema([ - $requirementToggle, - $requirementToggleButtons, $readOnlyBool, $readOnlyToggleButtons, $customReadOnlyField, @@ -583,6 +551,44 @@ private static function makeVisibilityGrid(bool $disabled, ?callable $disabledCa ]); } + private static function makeRequiredGrid(bool $disabled, ?callable $disabledCallback): Component + { + $toggle = Toggle::make('is_required_toggle') + ->label('Is Required') + ->default(false) + ->live() + ->disabled($disabled || ($disabledCallback && $disabledCallback())) + ->afterStateHydrated(function (Toggle $component, callable $set, callable $get) { + $isRequired = $get('is_required'); + // Set toggle to true if is_required has any non-null value ('always' or 'portal') + if ($isRequired !== null && $isRequired !== '') { + $set('is_required_toggle', true); + } + }); + + $buttons = ToggleButtons::make('is_required') + ->label('Required When') + ->options([ + 'always' => 'Always', + 'portal' => 'On Portal Forms' + ]) + ->default('always') + ->inline() + ->disabled(fn($get) => !$get('is_required_toggle')) + ->afterStateHydrated(function (callable $set, callable $get) { + $value = $get('is_required'); + if ($value === null || $value === '') { + $set('is_required', 'always'); + } + }); + + return Grid::make(2) + ->schema([ + $toggle, + $buttons, + ]); + } + /** * Get the General tab schema for create forms (BuildFormVersion) * From dc5c08f679a6208c17200f041756cfcbf11817dd Mon Sep 17 00:00:00 2001 From: JohYoshidaBCGov Date: Thu, 12 Mar 2026 15:10:54 -0700 Subject: [PATCH 27/43] Factor out ReadOnly grid --- app/Helpers/GeneralTabHelper.php | 95 +++++++++++++++++--------------- 1 file changed, 51 insertions(+), 44 deletions(-) diff --git a/app/Helpers/GeneralTabHelper.php b/app/Helpers/GeneralTabHelper.php index 71b06279..09703085 100644 --- a/app/Helpers/GeneralTabHelper.php +++ b/app/Helpers/GeneralTabHelper.php @@ -71,6 +71,9 @@ public static function getGeneralTabSchema( // Required grid $schema[] = self::makeRequiredGrid($disabled, $disabledCallback); + // Read Only grid + $schema[] = self::makeReadOnlyGrid($disabled, $disabledCallback); + // Template toggles $templateToggle = Toggle::make('is_template') ->label('Is Template') @@ -84,36 +87,7 @@ public static function getGeneralTabSchema( }); } - // Read Only and Save on Submit toggles - $readOnlyBool = Toggle::make('is_read_only_toggle') - ->label('Is Read Only') - ->default(false) - ->live() - ->disabled($disabled || ($disabledCallback && $disabledCallback())) - ->afterStateHydrated(function (Toggle $component, callable $set, callable $get) { - $isReadOnly = $get('is_read_only'); - // Set toggle to true if is_read_only has any non-null value ('always' or 'portal') - if ($isReadOnly !== null && $isReadOnly !== '') { - $set('is_read_only_toggle', true); - } - }); - - $readOnlyToggleButtons = ToggleButtons::make('is_read_only') - ->label('Read Only When') - ->options([ - 'always' => 'Always', - 'portal' => 'On Portal Forms' - ]) - ->default('always') - ->inline() - ->disabled(fn($get) => !$get('is_read_only_toggle')) - ->afterStateHydrated(function (callable $set, callable $get) { - $value = $get('is_read_only'); - if ($value === null || $value === '') { - $set('is_read_only', 'always'); - } - }); - + // Save on Submit toggles $saveOnSubmitToggle = Toggle::make('save_on_submit') ->label('Save on Submit') ->default(true) @@ -126,17 +100,6 @@ public static function getGeneralTabSchema( }); } - $customReadOnlyField = Grid::make(1) - ->schema([ - TextArea::make('custom_read_only') - ->label('Custom Read Only Script') - ->visible(fn($get) => $get('is_read_only')) - ->reactive() - ->disabled($disabled || ($disabledCallback && $disabledCallback())) - ->hintIcon('heroicon-m-question-mark-circle', tooltip: 'Custom read only script to control when this element is read only. Use the format: "if (condition) { return true; } else { return false; }". This will be evaluated in the browser.'), - ]); - - // Tags field $tagsField = Select::make('tags') ->label('Tags') @@ -190,9 +153,6 @@ public static function getGeneralTabSchema( // Organize visibility, validation, behaviour, and metadata fields $schema[] = Grid::make(2) ->schema([ - $readOnlyBool, - $readOnlyToggleButtons, - $customReadOnlyField, $templateToggle, $saveOnSubmitToggle, $tagsField->columnSpanFull(), @@ -589,6 +549,53 @@ private static function makeRequiredGrid(bool $disabled, ?callable $disabledCall ]); } + private static function makeReadOnlyGrid(bool $disabled, ?callable $disabledCallback): Component + { + $toggle = Toggle::make('is_read_only_toggle') + ->label('Is Read Only') + ->default(false) + ->live() + ->disabled($disabled || ($disabledCallback && $disabledCallback())) + ->afterStateHydrated(function (Toggle $component, callable $set, callable $get) { + $isReadOnly = $get('is_read_only'); + // Set toggle to true if is_read_only has any non-null value ('always' or 'portal') + if ($isReadOnly !== null && $isReadOnly !== '') { + $set('is_read_only_toggle', true); + } + }); + + $buttons = ToggleButtons::make('is_read_only') + ->label('Read Only When') + ->options([ + 'always' => 'Always', + 'portal' => 'On Portal Forms' + ]) + ->default('always') + ->inline() + ->disabled(fn($get) => !$get('is_read_only_toggle')) + ->afterStateHydrated(function (callable $set, callable $get) { + $value = $get('is_read_only'); + if ($value === null || $value === '') { + $set('is_read_only', 'always'); + } + }); + + $customScript = TextArea::make('custom_read_only') + ->label('Custom Read Only Script') + ->visible(fn($get) => $get('is_read_only')) + ->reactive() + ->disabled(fn($get) => !$get('is_read_only_toggle')) + ->hintIcon('heroicon-m-question-mark-circle', tooltip: 'Custom read only script to control when this element is read only. Use the format: "if (condition) { return true; } else { return false; }". This will be evaluated in the browser.') + ->columnSpanFull(); + + return Grid::make(2) + ->schema([ + $toggle, + $buttons, + $customScript + ]); + } + /** * Get the General tab schema for create forms (BuildFormVersion) * From c5423f9badb3b0db0603491c36a31fdbb65d5e66 Mon Sep 17 00:00:00 2001 From: JohYoshidaBCGov Date: Thu, 12 Mar 2026 15:20:24 -0700 Subject: [PATCH 28/43] Factor out Template and SaveOnSubmit toggles --- app/Helpers/GeneralTabHelper.php | 70 ++++++++++++++++++++------------ 1 file changed, 43 insertions(+), 27 deletions(-) diff --git a/app/Helpers/GeneralTabHelper.php b/app/Helpers/GeneralTabHelper.php index 09703085..de4aded6 100644 --- a/app/Helpers/GeneralTabHelper.php +++ b/app/Helpers/GeneralTabHelper.php @@ -74,31 +74,12 @@ public static function getGeneralTabSchema( // Read Only grid $schema[] = self::makeReadOnlyGrid($disabled, $disabledCallback); - // Template toggles - $templateToggle = Toggle::make('is_template') - ->label('Is Template') - ->default(false) - ->disabled($disabled || ($disabledCallback && $disabledCallback())); - - // Add tooltip if callback is provided - if ($shouldShowTooltipsCallback) { - $templateToggle = $templateToggle->when($shouldShowTooltipsCallback, function ($component) { - return $component->hintIcon('heroicon-m-question-mark-circle', tooltip: 'If this element should be a template for later reuse'); - }); - } - - // Save on Submit toggles - $saveOnSubmitToggle = Toggle::make('save_on_submit') - ->label('Save on Submit') - ->default(true) - ->disabled($disabled || ($disabledCallback && $disabledCallback())); - - // Add tooltip if callback is provided - if ($shouldShowTooltipsCallback) { - $saveOnSubmitToggle = $saveOnSubmitToggle->when($shouldShowTooltipsCallback, function ($component) { - return $component->hintIcon('heroicon-m-question-mark-circle', tooltip: 'If this element\'s data should be saved when the form is submitted'); - }); - } + // Template and Save On Submit toggles + $schema[] = Grid::make(2) + ->schema([ + self::makeTemplateToggle($disabled, $disabledCallback, $shouldShowTooltipsCallback), + self::makeSaveOnSubmitToggle($disabled, $disabledCallback, $shouldShowTooltipsCallback), + ]); // Tags field $tagsField = Select::make('tags') @@ -153,8 +134,6 @@ public static function getGeneralTabSchema( // Organize visibility, validation, behaviour, and metadata fields $schema[] = Grid::make(2) ->schema([ - $templateToggle, - $saveOnSubmitToggle, $tagsField->columnSpanFull(), ]); @@ -596,6 +575,43 @@ private static function makeReadOnlyGrid(bool $disabled, ?callable $disabledCall ]); } + private static function makeTemplateToggle( + bool $disabled, + ?callable $disabledCallback, + ?callable $shouldShowTooltipsCallback + ): Component { + $toggle = Toggle::make('is_template') + ->label('Is Template') + ->default(false) + ->disabled($disabled || ($disabledCallback && $disabledCallback())); + + // Add tooltip if callback is provided + return self::withOptionalTooltip( + $toggle, + $shouldShowTooltipsCallback, + 'If this element should be a template for later reuse', + ); + } + + private static function makeSaveOnSubmitToggle( + bool $disabled, + ?callable $disabledCallback, + ?callable $shouldShowTooltipsCallback + ): Component { + // Save on Submit toggles + $toggle = Toggle::make('save_on_submit') + ->label('Save on Submit') + ->default(true) + ->disabled($disabled || ($disabledCallback && $disabledCallback())); + + // Add tooltip if callback is provided + return self::withOptionalTooltip( + $toggle, + $shouldShowTooltipsCallback, + 'If this element\'s data should be saved when the form is submitted', + ); + } + /** * Get the General tab schema for create forms (BuildFormVersion) * From f07b5bd963dbc0b499a238238df2ea9ab7fc76fb Mon Sep 17 00:00:00 2001 From: JohYoshidaBCGov Date: Thu, 12 Mar 2026 15:42:18 -0700 Subject: [PATCH 29/43] Factor out Tags field --- app/Helpers/GeneralTabHelper.php | 111 ++++++++++++++++--------------- 1 file changed, 57 insertions(+), 54 deletions(-) diff --git a/app/Helpers/GeneralTabHelper.php b/app/Helpers/GeneralTabHelper.php index de4aded6..860979a2 100644 --- a/app/Helpers/GeneralTabHelper.php +++ b/app/Helpers/GeneralTabHelper.php @@ -82,60 +82,7 @@ public static function getGeneralTabSchema( ]); // Tags field - $tagsField = Select::make('tags') - ->label('Tags') - ->multiple() - ->searchable() - ->disabled($disabled || ($disabledCallback && $disabledCallback())); - - // Add tooltip if callback is provided - if ($shouldShowTooltipsCallback) { - $tagsField = $tagsField->when($shouldShowTooltipsCallback, function ($component) { - return $component->hintIcon('heroicon-m-question-mark-circle', tooltip: 'Categorize related fields (use camelCase)'); - }); - } - - // Different handling for edit vs create modes - if ($isEdit || $mode === 'view') { - $tagsField = $tagsField->relationship('tags', 'name'); - if ($mode === 'view') { - $tagsField = $tagsField->preload(); - } - } - - if ($isCreate || $isEdit) { - $tagsField = $tagsField - ->options(fn() => FormElementTag::pluck('name', 'id')->toArray()) - ->preload(); - - // Only add createOptionAction for create mode to avoid modal stacking issues - if ($isCreate) { - $tagsField = $tagsField - ->createOptionAction( - fn(Forms\Components\Actions\Action $action) => $action - ->modalHeading('Create Tag') - ->modalWidth('md') - ) - ->createOptionForm([ - TextInput::make('name') - ->required() - ->maxLength(255) - ->unique(FormElementTag::class, 'name'), - Textarea::make('description') - ->rows(3), - ]) - ->createOptionUsing(function (array $data) { - $tag = FormElementTag::create($data); - return $tag->id; - }); - } - } - - // Organize visibility, validation, behaviour, and metadata fields - $schema[] = Grid::make(2) - ->schema([ - $tagsField->columnSpanFull(), - ]); + $schema[] = self::makeTagsfield($mode, $disabled, $disabledCallback, $shouldShowTooltipsCallback); return $schema; } @@ -612,6 +559,62 @@ private static function makeSaveOnSubmitToggle( ); } + private static function makeTagsField( + string $mode, + bool $disabled, + ?callable $disabledCallback, + ?callable $shouldShowTooltipsCallback + ): Component { + $field = Select::make('tags') + ->label('Tags') + ->multiple() + ->searchable() + ->disabled($disabled || ($disabledCallback && $disabledCallback())); + + // Different handling for edit vs create modes + if ($mode === 'edit' || $mode === 'view') { + $field = $field->relationship('tags', 'name'); + if ($mode === 'view') { + $field = $field->preload(); + } + } + + if ($mode === 'create' || $mode === 'edit') { + $field = $field + ->options(fn() => FormElementTag::pluck('name', 'id')->toArray()) + ->preload(); + + // Only add createOptionAction for create mode to avoid modal stacking issues + if ($mode === 'create') { + $field = $field + ->createOptionAction( + fn(Action $action) => $action + ->modalHeading('Create Tag') + ->modalWidth('md') + ) + ->createOptionForm([ + TextInput::make('name') + ->required() + ->maxLength(255) + ->unique(FormElementTag::class, 'name'), + Textarea::make('description') + ->rows(3), + ]) + ->createOptionUsing(function (array $data) { + $tag = FormElementTag::create($data); + return $tag->id; + }); + } + } + + // Add tooltip if callback is provided + return self::withOptionalTooltip( + $field, + $shouldShowTooltipsCallback, + 'Categorize related fields (use camelCase)', + ); + } + /** * Get the General tab schema for create forms (BuildFormVersion) * From 5e7577f0eda08894bf246ca2a7045cff895199fb Mon Sep 17 00:00:00 2001 From: JohYoshidaBCGov Date: Thu, 12 Mar 2026 15:44:34 -0700 Subject: [PATCH 30/43] Simplify by passing mode instead of isCreate --- app/Helpers/GeneralTabHelper.php | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/app/Helpers/GeneralTabHelper.php b/app/Helpers/GeneralTabHelper.php index 860979a2..d3f6f4d4 100644 --- a/app/Helpers/GeneralTabHelper.php +++ b/app/Helpers/GeneralTabHelper.php @@ -35,18 +35,16 @@ public static function getGeneralTabSchema( ?callable $disabledCallback = null ): array { $disabled = $mode === 'view'; - $isEdit = $mode === 'edit'; - $isCreate = $mode === 'create'; $schema = []; // Template selector (only for create mode when explicitly requested) - if ($includeTemplateSelector && $isCreate) { + if ($includeTemplateSelector && $mode === 'create') { $schema[] = self::makeTemplateField($shouldShowTooltipsCallback); } // Name field - $schema[] = self::makeNameField($isCreate, $disabled, $disabledCallback, $shouldShowTooltipsCallback); + $schema[] = self::makeNameField($mode, $disabled, $disabledCallback, $shouldShowTooltipsCallback); // Hidden ID field $schema[] = Hidden::make('id')->dehydrated(false); @@ -168,7 +166,7 @@ private static function makeTemplateField(?callable $shouldShowTooltipsCallback) } private static function makeNameField( - bool $isCreate, + string $mode, bool $disabled, ?callable $disabledCallback, ?callable $shouldShowTooltipsCallback @@ -181,7 +179,7 @@ private static function makeNameField( ->disabled($disabled || ($disabledCallback && $disabledCallback())); // Add auto-generation logic for create mode - if ($isCreate) { + if ($mode === 'create') { $field = $field ->live(onBlur: true) ->afterStateUpdated(function ($state, callable $set, callable $get) { From 4c3ee7b11614069fb10b2bd77109aab9ad2f0a42 Mon Sep 17 00:00:00 2001 From: JohYoshidaBCGov Date: Thu, 12 Mar 2026 15:58:37 -0700 Subject: [PATCH 31/43] Bugfix --- app/Helpers/GeneralTabHelper.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Helpers/GeneralTabHelper.php b/app/Helpers/GeneralTabHelper.php index d3f6f4d4..d328b911 100644 --- a/app/Helpers/GeneralTabHelper.php +++ b/app/Helpers/GeneralTabHelper.php @@ -80,7 +80,7 @@ public static function getGeneralTabSchema( ]); // Tags field - $schema[] = self::makeTagsfield($mode, $disabled, $disabledCallback, $shouldShowTooltipsCallback); + $schema[] = self::makeTagsField($mode, $disabled, $disabledCallback, $shouldShowTooltipsCallback); return $schema; } From 5d584c0cd81eba8b83cb2218b56bcabb57b78a09 Mon Sep 17 00:00:00 2001 From: JohYoshidaBCGov Date: Thu, 12 Mar 2026 15:59:13 -0700 Subject: [PATCH 32/43] Bugfix --- app/Filament/Forms/Resources/FormResource.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Filament/Forms/Resources/FormResource.php b/app/Filament/Forms/Resources/FormResource.php index 6c6456c6..e695501f 100644 --- a/app/Filament/Forms/Resources/FormResource.php +++ b/app/Filament/Forms/Resources/FormResource.php @@ -199,7 +199,7 @@ public static function infolist(Infolist $infolist): Infolist ]) ->hidden(fn() => !Gate::allows('admin') && !Gate::allows('form-developer')), - Section::make('Deployments TEST') + Section::make('Deployments') ->collapsible() ->collapsed(false) ->schema([ From b421c6b8139fa3afc3dcc4a5512b30d5d39fb3e9 Mon Sep 17 00:00:00 2001 From: Christopher Louie Date: Thu, 26 Feb 2026 11:53:35 -0800 Subject: [PATCH 33/43] Fix checkbox group nullable defaultSelected field missing from $nullableFields --- app/Livewire/FormElementTreeBuilder.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Livewire/FormElementTreeBuilder.php b/app/Livewire/FormElementTreeBuilder.php index 328e6022..77aacad1 100644 --- a/app/Livewire/FormElementTreeBuilder.php +++ b/app/Livewire/FormElementTreeBuilder.php @@ -390,7 +390,7 @@ protected function mutateFormDataBeforeSave(array $data): array // But convert null values to empty strings for text fields that the user might want to clear $textFields = ['labelText', 'placeholder', 'helperText', 'mask', 'maskErrorMessage', 'content', 'legend', 'repeater_item_label']; $numericFields = ['min', 'max', 'step', 'defaultValue', 'maxCount', 'rows', 'cols', 'order']; - $nullableFields = ['level']; + $nullableFields = ['level', 'defaultSelected']; $filteredElementableData = []; foreach ($elementableData as $key => $value) { @@ -559,7 +559,7 @@ protected function mutateFormDataBeforeCreate(array $data): array // But convert null values to empty strings for text fields that the user might want to clear $textFields = ['labelText', 'placeholder', 'helperText', 'mask', 'maskErrorMessage', 'content', 'legend', 'repeater_item_label']; $numericFields = ['min', 'max', 'step', 'defaultValue', 'maxCount', 'rows', 'cols', 'order']; - $nullableFields = ['level']; + $nullableFields = ['level', 'defaultSelected']; $filteredElementableData = []; foreach ($elementableData as $key => $value) { From 3d4f5af3677bee22b7e9946d968c0b1c2e67cde1 Mon Sep 17 00:00:00 2001 From: Christopher Louie Date: Thu, 12 Mar 2026 16:21:07 -0700 Subject: [PATCH 34/43] Add support for min and max instance limits in repeaters --- app/Livewire/FormElementTreeBuilder.php | 4 +- .../FormBuilding/ContainerFormElement.php | 84 ++++++++++++++++++- app/Services/FormVersionJsonService.php | 26 +++--- ...n_max_to_container_form_elements_table.php | 29 +++++++ 4 files changed, 129 insertions(+), 14 deletions(-) create mode 100644 database/migrations/2026_03_12_174057_add_repeater_min_max_to_container_form_elements_table.php diff --git a/app/Livewire/FormElementTreeBuilder.php b/app/Livewire/FormElementTreeBuilder.php index 77aacad1..81a44e59 100644 --- a/app/Livewire/FormElementTreeBuilder.php +++ b/app/Livewire/FormElementTreeBuilder.php @@ -389,7 +389,7 @@ protected function mutateFormDataBeforeSave(array $data): array // Filter out null values from elementable data to let model defaults apply // But convert null values to empty strings for text fields that the user might want to clear $textFields = ['labelText', 'placeholder', 'helperText', 'mask', 'maskErrorMessage', 'content', 'legend', 'repeater_item_label']; - $numericFields = ['min', 'max', 'step', 'defaultValue', 'maxCount', 'rows', 'cols', 'order']; + $numericFields = ['min', 'max', 'step', 'defaultValue', 'maxCount', 'rows', 'cols', 'order', 'min_repeats', 'max_repeats']; $nullableFields = ['level', 'defaultSelected']; $filteredElementableData = []; @@ -558,7 +558,7 @@ protected function mutateFormDataBeforeCreate(array $data): array // Filter out null values from elementable data to let model defaults apply // But convert null values to empty strings for text fields that the user might want to clear $textFields = ['labelText', 'placeholder', 'helperText', 'mask', 'maskErrorMessage', 'content', 'legend', 'repeater_item_label']; - $numericFields = ['min', 'max', 'step', 'defaultValue', 'maxCount', 'rows', 'cols', 'order']; + $numericFields = ['min', 'max', 'step', 'defaultValue', 'maxCount', 'rows', 'cols', 'order', 'min_repeats', 'max_repeats']; $nullableFields = ['level', 'defaultSelected']; $filteredElementableData = []; diff --git a/app/Models/FormBuilding/ContainerFormElement.php b/app/Models/FormBuilding/ContainerFormElement.php index 4325622b..b7423c71 100644 --- a/app/Models/FormBuilding/ContainerFormElement.php +++ b/app/Models/FormBuilding/ContainerFormElement.php @@ -2,17 +2,21 @@ namespace App\Models\FormBuilding; +use App\Filament\Forms\Helpers\NumericRules; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Database\Eloquent\Relations\MorphOne; use Filament\Forms\Components\Actions\Action; use App\Helpers\SchemaHelper; +use Filament\Forms\Get; use Filament\Forms\Components\Fieldset; use Filament\Forms\Components\Select; use Filament\Forms\Components\TextInput; use Filament\Forms\Components\Toggle; +use Closure; + class ContainerFormElement extends Model { use HasFactory, SoftDeletes; @@ -21,6 +25,8 @@ class ContainerFormElement extends Model 'container_type', 'is_repeatable', 'repeater_item_label', + 'min_repeats', + 'max_repeats', 'legend', 'enableVarSub', 'level' @@ -28,6 +34,8 @@ class ContainerFormElement extends Model protected $casts = [ 'is_repeatable' => 'boolean', + 'min_repeats' => 'integer', + 'max_repeats' => 'integer', ]; protected $attributes = [ @@ -35,33 +43,103 @@ class ContainerFormElement extends Model 'is_repeatable' => false, ]; + protected static function formatInteger(string $target): Closure + { + return function ($state, callable $set, Get $get) use ($target) { + if ($state === null) return; + + $raw = trim((string) $state); + + // Do not "fix" scientific notation or thousands separators; let validation reject them. + if (preg_match('/[eE, ]/', $raw)) { + return; + } + + // Strip everything except digits + $digits = preg_replace('/\D/', '', $raw) ?? ''; + + // Remove leading zeros + $digits = ltrim($digits, '0'); + + // If nothing remains (e.g., input was "0", "000", "-", etc.), normalize to null + if ($digits === '') { + $set($target, null); + return; + } + + // Positive integer (no sign), no leading zeros + $set($target, $digits); + }; + } + /** * Get the Filament form schema for this element type. */ public static function getFilamentSchema(bool $disabled = false): array { + $noSci = 'not_regex:/[eE]/'; // forbid scientific notation + return [ Fieldset::make('Container Settings') ->schema([ Select::make('elementable_data.container_type') ->label('Container Type') + ->columnSpan(2) ->options(static::getContainerTypes()) ->default('section') ->required(true) ->disabled($disabled), Toggle::make('elementable_data.is_repeatable') ->label('Repeatable') + ->columnSpan(2) ->helperText('Allow users to add multiple instances of this container') ->default(false) ->live() ->disabled($disabled), TextInput::make('elementable_data.repeater_item_label') ->label('Repeater Item Label') + ->columnSpan(2) ->helperText('Label for individual repeater items (e.g., "Item", "Entry")') ->disabled($disabled) ->visible(fn(callable $get) => $get('elementable_data.is_repeatable')), + TextInput::make('elementable_data.min_repeats') + ->label('Minimum Repeats') + ->integer() + ->nullable() + ->minValue(1) + ->live(onBlur: true) + ->afterStateUpdated(self::formatInteger('elementable_data.min_repeats')) + ->rule($noSci) + ->rule(NumericRules::compareWith( + minPath: null, + maxPath: 'elementable_data.max_repeats', + options: [ + // Ensure error message always show integers + 'format' => fn(float $n) => number_format($n, 0, '.', ''), + ] + )) + ->disabled($disabled) + ->visible(fn(callable $get) => $get('elementable_data.is_repeatable')), + TextInput::make('elementable_data.max_repeats') + ->label('Maximum Repeats') + ->integer() + ->nullable() + ->minValue(1) + ->live(onBlur: true) + ->afterStateUpdated(self::formatInteger('elementable_data.max_repeats')) + ->rule($noSci) + ->rule(NumericRules::compareWith( + minPath: 'elementable_data.min_repeats', + maxPath: null, + options: [ + // Ensure error message always show integers + 'format' => fn(float $n) => number_format($n, 0, '.', ''), + ] + )) + ->disabled($disabled) + ->visible(fn(callable $get) => $get('elementable_data.is_repeatable')), ]) - ->columns(1), + ->columns(2), Fieldset::make('Label') ->schema([ Select::make('elementable_data.level') @@ -113,6 +191,8 @@ public function getData(): array 'container_type' => $this->container_type, 'is_repeatable' => $this->is_repeatable, 'repeater_item_label' => $this->repeater_item_label, + 'min_repeats' => $this->min_repeats, + 'max_repeats' => $this->max_repeats, 'legend' => $this->legend, 'enableVarSub' => $this->enableVarSub, 'level' => $this->level, @@ -144,6 +224,8 @@ public static function getDefaultData(): array 'legend' => '', 'enableVarSub' => false, 'repeater_item_label' => '', + 'min_repeats' => null, + 'max_repeats' => null, 'level' => null, ]; } diff --git a/app/Services/FormVersionJsonService.php b/app/Services/FormVersionJsonService.php index e47d2fa8..8cafddc6 100644 --- a/app/Services/FormVersionJsonService.php +++ b/app/Services/FormVersionJsonService.php @@ -193,10 +193,10 @@ protected function getScriptsPreMigration(FormVersion $formVersion): array // Append all attached form scripts to the web JS foreach ($formVersion->formScripts as $script) { if (!$script) -continue; + continue; $key = $script->id ? ('script:' . $script->id) : null; if ($key && isset($added[$key])) -continue; + continue; $js = $script->getJsContent() ?? ''; if ($js !== '') { @@ -205,7 +205,7 @@ protected function getScriptsPreMigration(FormVersion $formVersion): array . $js; } if ($key) -$added[$key] = true; + $added[$key] = true; } if ($webJs !== '') { @@ -257,10 +257,10 @@ protected function getStyles(FormVersion $formVersion): array // 3) Append all attached stylesheets (deduping) foreach ($formVersion->styleSheets as $sheet) { if (!$sheet) -continue; + continue; $key = $sheet->id ? ('style:' . $sheet->id) : null; if ($key && isset($added[$key])) -continue; + continue; $styles[] = [ 'type' => $sheet->type ?? 'web', @@ -268,7 +268,7 @@ protected function getStyles(FormVersion $formVersion): array 'content' => $sheet->getCssContent() ?? '' ]; if ($key) -$added[$key] = true; + $added[$key] = true; } return $styles; @@ -306,10 +306,10 @@ protected function getScripts(FormVersion $formVersion): array // 3) Append all attached form scripts (deduping) foreach ($formVersion->formScripts as $script) { if (!$script) -continue; + continue; $key = $script->id ? ('script:' . $script->id) : null; if ($key && isset($added[$key])) -continue; + continue; $scripts[] = [ 'type' => $script->type ?? 'web', @@ -317,7 +317,7 @@ protected function getScripts(FormVersion $formVersion): array 'content' => $script->getJsContent() ?? '' ]; if ($key) -$added[$key] = true; + $added[$key] = true; } return $scripts; @@ -536,7 +536,9 @@ protected function transformRepeatableContainerAsGroup(FormElement $element, arr $elementData['groupId'] = (string) ($element->id ?? '1'); $elementData['repeater'] = true; // Always true for repeatable containers $elementData['repeaterLabel'] = $element->elementable?->legend ?? null; - $elementData['repeaterItemLabel'] = $element->elementable?->repeater_item_label; + $elementData['repeaterItemLabel'] = $element->elementable?->repeater_item_label ?? null; + $elementData['minRepeats'] = $element->elementable?->min_repeats ?? null; + $elementData['maxRepeats'] = $element->elementable?->max_repeats ?? null; $elementData['clear_button'] = $element->elementable?->clear_button ?? false; $elementData['codeContext'] = [ 'name' => $this->generateCodeContextName($element->name ?? 'group') @@ -603,7 +605,9 @@ protected function transformGroupElement(FormElement $element, array $elementDat $elementData['groupId'] = (string) ($element->id ?? '1'); $elementData['repeater'] = $element->elementable?->is_repeatable ?? false; $elementData['repeaterLabel'] = $element->elementable?->legend ?? null; - $elementData['repeaterItemLabel'] = $element->elementable?->repeater_item_label; + $elementData['repeaterItemLabel'] = $element->elementable?->repeater_item_label ?? null; + $elementData['minRepeats'] = $element->elementable?->min_repeats ?? null; + $elementData['maxRepeats'] = $element->elementable?->max_repeats ?? null; $elementData['clear_button'] = $element->elementable?->clear_button ?? false; $elementData['codeContext'] = [ 'name' => $this->generateCodeContextName($element->name ?? 'group') diff --git a/database/migrations/2026_03_12_174057_add_repeater_min_max_to_container_form_elements_table.php b/database/migrations/2026_03_12_174057_add_repeater_min_max_to_container_form_elements_table.php new file mode 100644 index 00000000..a3045d88 --- /dev/null +++ b/database/migrations/2026_03_12_174057_add_repeater_min_max_to_container_form_elements_table.php @@ -0,0 +1,29 @@ +integer('min_repeats')->nullable()->after('repeater_item_label'); + $table->integer('max_repeats')->nullable()->after('min_repeats'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('container_form_elements', function (Blueprint $table) { + $table->dropColumn(['min_repeats', 'max_repeats']); + }); + } +}; From 20d913bee2158410ad0db33b9a0e98b8db7a7d36 Mon Sep 17 00:00:00 2001 From: Christopher Louie Date: Tue, 24 Mar 2026 16:13:09 -0700 Subject: [PATCH 35/43] Update FormsTableSeeder to add the forms only on Klamm Prod --- database/seeders/FormsTableSeeder.php | 38357 +++++++++++++----------- 1 file changed, 20862 insertions(+), 17495 deletions(-) diff --git a/database/seeders/FormsTableSeeder.php b/database/seeders/FormsTableSeeder.php index ce14a606..89732f06 100644 --- a/database/seeders/FormsTableSeeder.php +++ b/database/seeders/FormsTableSeeder.php @@ -3,6 +3,7 @@ namespace Database\Seeders; use Illuminate\Database\Seeder; +use Illuminate\Support\Facades\DB; class FormsTableSeeder extends Seeder { @@ -16,16 +17,61 @@ public function run() { - \DB::table('forms')->delete(); + DB::table('forms')->delete(); - \DB::table('forms')->insert(array ( - 0 => - array ( - 'id' => 1, - 'form_id' => 'AC Reminder - BC Mail Data Form', - 'form_title' => 'AC Reminder - BC Mail Data Form', + DB::table('forms')->insert([ + 0 => [ + 'id' => 498, + 'form_id' => 'CF0282A', + 'form_title' => 'Initial Assessment', + 'ministry_id' => 1, + 'form_purpose' => NULL, + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 1 => [ + 'id' => 547, + 'form_id' => 'CF0608', + 'form_title' => 'Unknown', 'ministry_id' => 1, 'form_purpose' => NULL, + 'notes' => 'inDesign', + 'fill_type_id' => NULL, + 'decommissioned' => true, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => '', + 'dcv_material_number' => ' ', + 'orbeon_functions' => '', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 2 => [ + 'id' => 687, + 'form_id' => 'CF1340', + 'form_title' => 'Unknown', + 'ministry_id' => 3, + 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => true, @@ -39,10 +85,103 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 1 => - array ( + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 3 => [ + 'id' => 34, + 'form_id' => 'CF1072', + 'form_title' => 'Eco-Map/Risk & Resilience Scan', + 'ministry_id' => 1, + 'form_purpose' => NULL, + 'notes' => 'Unused in ICM at this time', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 4 => [ + 'id' => 2059, + 'form_id' => 'S2528', + 'form_title' => 'EI Assignment', + 'ministry_id' => NULL, + 'form_purpose' => NULL, + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 5 => [ + 'id' => 35, + 'form_id' => 'CF2044', + 'form_title' => 'Referral to Child Care Subsidy under CFCSA', + 'ministry_id' => 3, + 'form_purpose' => NULL, + 'notes' => 'ADO 2989: business advises that they would like this form decommissioned from ICM', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => 4, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 6 => [ + 'id' => 1, + 'form_id' => 'AC Reminder - BC Mail Data Form', + 'form_title' => 'AC Reminder - BC Mail Data Form', + 'ministry_id' => 1, + 'form_purpose' => NULL, + 'notes' => 'BC Mail Data Form ', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 7 => [ 'id' => 2, 'form_id' => 'Bus Pass Barcode Cover Page', 'form_title' => 'Bus Pass Barcode Cover Page', @@ -62,31 +201,33 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => true, - ), - 2 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 8 => [ 'id' => 3, 'form_id' => 'Bus Pass Online Form', 'form_title' => 'Bus Pass Online Form', 'ministry_id' => 2, - 'form_purpose' => NULL, + 'form_purpose' => 'Online application', 'notes' => 'Template for Integration Purpose', 'fill_type_id' => NULL, 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, + 'form_frequency_id' => 4, + 'form_reach_id' => 2, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 3 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 9 => [ 'id' => 4, 'form_id' => 'Bus Pass Online Service for Request', 'form_title' => 'Bus Pass Online Service for Request', @@ -105,10 +246,11 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 4 => - array ( + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 10 => [ 'id' => 5, 'form_id' => 'Bus Pass-BC Mail Data Form', 'form_title' => 'Bus Pass-BC Mail Data Form', @@ -127,10 +269,11 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 5 => - array ( + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 11 => [ 'id' => 6, 'form_id' => 'Bus Pass-BC Mail Residency Form', 'form_title' => 'Bus Pass-BC Mail Residency Form', @@ -149,16 +292,17 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 6 => - array ( + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 12 => [ 'id' => 7, 'form_id' => 'CF0322', 'form_title' => 'Voluntary Care/Special Needs Agreement', 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', + 'form_purpose' => 'Set up an agreement, or renew an agreement, which the parents voluntarily enter with the Ministry, to place their children into care. The length and scope of the agreement is documented in the form.', + 'notes' => '0322a existed', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => 3, @@ -167,14 +311,15 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 7 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 13 => [ 'id' => 8, 'form_id' => 'CF0609', 'form_title' => 'Consent to Disclosure of Information', @@ -194,9 +339,10 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => true, - ), - 8 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 14 => [ 'id' => 9, 'form_id' => 'CF0611', 'form_title' => 'Consent to Collection of Information', @@ -216,15 +362,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => true, - ), - 9 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 15 => [ 'id' => 10, 'form_id' => 'CF0630', 'form_title' => 'Vulnerability Assessment', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'This form is no longer used by MCFD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -233,20 +380,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 10 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 16 => [ 'id' => 11, 'form_id' => 'CF0631', 'form_title' => 'FSN Assessment', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'This form is no longer used by MCFD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -255,20 +403,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 11 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 17 => [ 'id' => 12, 'form_id' => 'CF0632', 'form_title' => 'Vulnerability Re-Assessment', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'barcode', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -277,20 +426,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 12 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 18 => [ 'id' => 13, 'form_id' => 'CF0633', 'form_title' => 'Reunification Assessment', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -299,42 +449,44 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 13 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 19 => [ 'id' => 14, 'form_id' => 'CF0640', 'form_title' => 'Screening Assessment', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, + 'form_frequency_id' => 3, + 'form_reach_id' => 1, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 14 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 20 => [ 'id' => 15, 'form_id' => 'CF0658', 'form_title' => 'Case Review Decision', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -343,20 +495,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 15 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 21 => [ 'id' => 16, 'form_id' => 'CF0659', 'form_title' => 'Reportable Circumstances', - 'ministry_id' => 3, + 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -365,20 +518,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 16 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 22 => [ 'id' => 17, 'form_id' => 'CF0671', 'form_title' => 'Priority for Service Tool', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Generate via CYSN Family Service case type -> CYSN -> PST applet -> New -> Finalize -> Print. Unsure if affected by AEM, cannot find details in current Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -388,13 +542,14 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 17 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 23 => [ 'id' => 18, 'form_id' => 'CF0672', 'form_title' => 'Health and Safety Request', @@ -414,15 +569,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => true, - ), - 18 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 24 => [ 'id' => 19, 'form_id' => 'CF0700', 'form_title' => 'Youth Agreement', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -431,14 +587,15 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 19 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 25 => [ 'id' => 20, 'form_id' => 'CF0700A', 'form_title' => 'Youth Agreement Schedule A', @@ -458,9 +615,10 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => true, - ), - 20 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 26 => [ 'id' => 21, 'form_id' => 'CF0701', 'form_title' => 'Plan for Independence - Youth Agreement', @@ -480,15 +638,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => true, - ), - 21 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 27 => [ 'id' => 22, 'form_id' => 'CF0702', 'form_title' => 'Modification Agreement - Youth Agreement', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -498,19 +657,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 22 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 28 => [ 'id' => 23, 'form_id' => 'CF0711', 'form_title' => 'Agreement with Young Adult', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Obsolete. AYA ended Apr 1, 2025', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -520,13 +680,14 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 23 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 29 => [ 'id' => 24, 'form_id' => 'CF0711A', 'form_title' => 'Agreement with Young Adults - Budget and Payment Distribution - Schedule A', @@ -546,9 +707,10 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => true, - ), - 24 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 30 => [ 'id' => 25, 'form_id' => 'CF0711B', 'form_title' => 'Agreement with Young Adult Schedule "B" - Program Plan', @@ -568,15 +730,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => true, - ), - 25 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 31 => [ 'id' => 26, 'form_id' => 'CF0712', 'form_title' => 'Modification Agreement for Agreement with Young Adult', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -586,13 +749,14 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 26 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 32 => [ 'id' => 27, 'form_id' => 'CF0925', 'form_title' => 'Request to Pay Service Providers/Suppliers', @@ -612,9 +776,10 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => true, - ), - 27 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 33 => [ 'id' => 28, 'form_id' => 'CF0925A', 'form_title' => 'Request to Amend Invoice Authorization', @@ -634,15 +799,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => true, - ), - 28 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 34 => [ 'id' => 29, 'form_id' => 'CF0926', 'form_title' => 'Reimbursement for Autism Expenses', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -652,19 +818,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 29 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 35 => [ 'id' => 30, 'form_id' => 'CF0928', 'form_title' => 'Request for Portal Access - AFU', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Generated in ICM (triggered by service request, mail, e-mail, fax), and Sent to Portal as PDF', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -674,19 +841,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 30 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 36 => [ 'id' => 31, 'form_id' => 'CF0929', 'form_title' => 'Request for Portal Access - CCS', - 'ministry_id' => 1, + 'ministry_id' => 3, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -697,18 +865,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'E:\\Adobe\\Fragments\\CCS_crsp_Footer.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 31 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 37 => [ 'id' => 32, 'form_id' => 'CF1070', 'form_title' => 'Safety Assessment', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -717,20 +886,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 32 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 38 => [ 'id' => 33, 'form_id' => 'CF1071', 'form_title' => 'Service Plan', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'MCFD FDD 2016 10 17 lists this form as inactive', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -739,80 +909,38 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 33 => - array ( - 'id' => 34, - 'form_id' => 'CF1072', - 'form_title' => 'Eco-Map/Risk & Resilience Scan', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 34 => - array ( - 'id' => 35, - 'form_id' => 'CF2044', - 'form_title' => 'Referral to Child Care Subsidy under CFCSA', - 'ministry_id' => 3, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 35 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 39 => [ 'id' => 36, 'form_id' => 'CF2166', 'form_title' => 'Respite Benefits Funding Agreement', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, + 'form_frequency_id' => 3, + 'form_reach_id' => 2, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 36 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 40 => [ 'id' => 37, 'form_id' => 'CF2186', 'form_title' => 'Support Services Income Test', @@ -827,14 +955,15 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 37 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 41 => [ 'id' => 38, 'form_id' => 'CF2190', 'form_title' => 'Extended Family Program Dental and Optical Benefits', @@ -849,20 +978,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 38 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 42 => [ 'id' => 39, 'form_id' => 'CF2191', 'form_title' => 'Extended Family Program Plan / Section 8 Agreement', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -872,13 +1002,14 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 39 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 43 => [ 'id' => 40, 'form_id' => 'CF2200', 'form_title' => 'Extended Family Program Funding Agreement', @@ -898,9 +1029,10 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => true, - ), - 40 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 44 => [ 'id' => 41, 'form_id' => 'CF2201', 'form_title' => 'Extended Family Program/Section 8 Agreement - Schedule A', @@ -920,9 +1052,10 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => true, - ), - 41 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 45 => [ 'id' => 42, 'form_id' => 'CF2593', 'form_title' => 'Court Plan of Care', @@ -942,9 +1075,33 @@ public function run() 'dcv_material_number' => '7530804083', 'orbeon_functions' => '', 'icm_generated' => true, - ), - 42 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 46 => [ + 'id' => 1828, + 'form_id' => 'HR3578', + 'form_title' => 'Reserved for ELMSD', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => '', + 'fill_type_id' => NULL, + 'decommissioned' => true, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => '', + 'dcv_material_number' => ' ', + 'orbeon_functions' => '', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 47 => [ 'id' => 43, 'form_id' => 'CF2595', 'form_title' => 'Court Plan of Care - For a Child in Custody of a Care Provider', @@ -964,9 +1121,10 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => true, - ), - 43 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 48 => [ 'id' => 44, 'form_id' => 'CF2599', 'form_title' => 'Support Services Renewal Agreement', @@ -986,9 +1144,10 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => true, - ), - 44 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 49 => [ 'id' => 45, 'form_id' => 'CF2606', 'form_title' => 'Support Services Agreement', @@ -1003,14 +1162,15 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 45 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 50 => [ 'id' => 46, 'form_id' => 'CF2612', 'form_title' => 'Termination of Support Services Agreement', @@ -1030,9 +1190,10 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => true, - ), - 46 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 51 => [ 'id' => 47, 'form_id' => 'CF2615', 'form_title' => 'Child Maintenance Agreement', @@ -1052,9 +1213,10 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => true, - ), - 47 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 52 => [ 'id' => 48, 'form_id' => 'CF2631', 'form_title' => 'Independent Living Agreement', @@ -1074,15 +1236,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => true, - ), - 48 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 53 => [ 'id' => 49, 'form_id' => 'CF2900', - 'form_title' => 'Affordable Chile Care Benefit Application', + 'form_title' => 'Affordable Child Care Benefit Application', 'ministry_id' => 3, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -1092,13 +1255,14 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 49 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 54 => [ 'id' => 50, 'form_id' => 'CF2901', 'form_title' => 'Child Care Subsidy Renewal', @@ -1117,16 +1281,17 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 50 => - array ( + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 55 => [ 'id' => 51, 'form_id' => 'CF2910', 'form_title' => 'Affordable Child Care Benefit - Work Search Record', 'ministry_id' => 3, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -1135,21 +1300,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 51 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 56 => [ 'id' => 52, 'form_id' => 'CF4051', 'form_title' => 'Application for an Order', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'Court�?FORM 2 -', + 'notes' => 'Court Form 2', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -1158,44 +1323,44 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 52 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 57 => [ 'id' => 53, 'form_id' => 'CF4056', 'form_title' => 'Affidavit', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'Court�?FORM 7 -', + 'notes' => 'Court Form 7', 'fill_type_id' => NULL, 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, + 'form_frequency_id' => 4, + 'form_reach_id' => 1, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 53 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 58 => [ 'id' => 54, 'form_id' => 'CF4058', 'form_title' => 'Certificate of Service', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'Court�?FORM 9 -', + 'notes' => 'Court Form 9', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -1204,21 +1369,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 54 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 59 => [ 'id' => 55, 'form_id' => 'CF4060', 'form_title' => 'Written Consent', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'Court�?FORM 11 -', + 'notes' => 'Court Form 11', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -1227,21 +1392,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 55 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 60 => [ 'id' => 56, 'form_id' => 'CF4061', 'form_title' => 'Form A Report to Provincial Court of BC', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'Court�?FORM A -', + 'notes' => 'Court Form A', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -1250,21 +1415,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 56 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 61 => [ 'id' => 57, 'form_id' => 'CF4062', 'form_title' => 'Report to Provincial Court of BC', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'Court�?FORM B -', + 'notes' => 'Court Form B', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -1273,21 +1438,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 57 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 62 => [ 'id' => 58, 'form_id' => 'CF4063', 'form_title' => 'Form F Report to Provincial Court of BC', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'Court�?FORM F -', + 'notes' => 'Court Form F', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -1296,20 +1461,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 58 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 63 => [ 'id' => 59, 'form_id' => 'CF4064', 'form_title' => 'Protection Order', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'Court�?FORM 10.1 (Previous Name =�Protective Intervention Order?)', + 'notes' => 'Court Form 10.1 (Previous Name "Protective Intervention Order")', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => 3, @@ -1318,20 +1484,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 59 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 64 => [ 'id' => 60, 'form_id' => 'CF4066', 'form_title' => 'Hotel Placement for Children in Care', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -1340,20 +1507,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 60 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 65 => [ 'id' => 61, 'form_id' => 'CF4116', 'form_title' => 'Support Plan', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'there is an Orbeon version but it appears Adobe version is the active one in ICM', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => 2, @@ -1362,14 +1530,15 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 61 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 66 => [ 'id' => 62, 'form_id' => 'CFDRT001', 'form_title' => 'Case Recording Form', @@ -1384,14 +1553,15 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 62 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 67 => [ 'id' => 63, 'form_id' => 'CFL000001', 'form_title' => 'Blank Letterhead', @@ -1399,7 +1569,7 @@ public function run() 'form_purpose' => NULL, 'notes' => 'Related to CFL000001, CFL000001AA? (last 2012) -', +Managed by the business', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -1409,19 +1579,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 63 => - array ( + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 68 => [ 'id' => 64, 'form_id' => 'CFL00510', 'form_title' => 'Autism Admission', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Created in ICM, sent to Portal as PDF', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -1432,18 +1603,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\AFU_crsp_Footer.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 64 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 69 => [ 'id' => 65, 'form_id' => 'CFL00511', 'form_title' => 'Autism Amendment', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Generated in ICM (triggered by service request, mail, e-mail, fax) and Sent to Portal as PDF', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -1454,20 +1626,22 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\AFU_crsp_Footer.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 65 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 70 => [ 'id' => 66, 'form_id' => 'CFL00512', 'form_title' => 'Autism Appeal Response', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Crystal Hui confirmed on 2025 Aug 18, form to be decommissioned +https://dev.azure.com/BC-SDPR/Forms%20Modernization/_workitems/edit/3720', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -1476,18 +1650,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\AFU_crsp_Footer.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 66 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 71 => [ 'id' => 67, 'form_id' => 'CFL00513', 'form_title' => 'Autism close case - Age Out', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Generated in ICM (triggered by service request, mail, e-mail, fax) and Sent to Portal as PDF', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -1498,18 +1673,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\AFU_crsp_Footer.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 67 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 72 => [ 'id' => 68, 'form_id' => 'CFL00514', 'form_title' => 'Autism Invoice return', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Created in ICM , triggered from Service Request, from Childs Case', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -1520,18 +1696,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\AFU_crsp_Footer.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 68 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 73 => [ 'id' => 69, 'form_id' => 'CFL00515', 'form_title' => 'Justification for equipment approval', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Generated in MYFS or offline (PDF) (triggered by mail, e-mail fax) and Sent to Portal as PDF.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -1542,18 +1719,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\AFU_crsp_Footer.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 69 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 74 => [ 'id' => 70, 'form_id' => 'CFL00516', 'form_title' => 'letter for CSA_CSS Modification Agreements for CICs', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'BIP report - Printed and sent to client through portal', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -1564,18 +1742,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\AFU_crsp_Footer.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 70 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 75 => [ 'id' => 71, 'form_id' => 'CFL00517', 'form_title' => 'Autism Reimbursement denial for services', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Generated in ICM (triggered by service request, mail, e-mail fax) and Sent to Portal as PDF', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -1586,18 +1765,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\AFU_crsp_Footer.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 71 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 76 => [ 'id' => 72, 'form_id' => 'CFL00518', 'form_title' => 'Autism Reimbursement exception parent reachable/unreachable', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Printed and sent to client through portal', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -1608,18 +1788,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\AFU_crsp_Footer.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 72 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 77 => [ 'id' => 73, 'form_id' => 'CFL00519', 'form_title' => 'Autism Reimbursement Return', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Generated in ICM (triggered by service request, mail, e-mail, fax) and Sent to Portal as PDF', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -1630,18 +1811,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\AFU_crsp_Footer.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 73 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 78 => [ 'id' => 74, 'form_id' => 'CFL00520', 'form_title' => 'Autism Request to Pay - Approval', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Generated manually and via an activity plan (more frequent case).', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -1652,18 +1834,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\AFU_crsp_Footer.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 74 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 79 => [ 'id' => 75, 'form_id' => 'CFL00521', 'form_title' => 'Autism Request to pay - Denial', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -1672,20 +1855,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => false, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\AFU_crsp_Footer.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 75 => - array ( + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 80 => [ 'id' => 76, 'form_id' => 'CFL00522', 'form_title' => 'Autism Request to pay or amend return', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Generated in ICM (triggered by service request, mail, e-mail fax) and Sent to Portal as PDF', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -1696,18 +1880,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\AFU_crsp_Footer.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 76 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 81 => [ 'id' => 77, 'form_id' => 'CFL00523', 'form_title' => 'Autism Preadmission', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Generated in ICM (triggered by service request, mail, e-mail fax) and Sent to Portal as PDF', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -1718,18 +1903,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\AFU_crsp_Footer.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 77 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 82 => [ 'id' => 78, 'form_id' => 'CFL00524', - 'form_title' => 'Autism Admission � Direct Payment', + 'form_title' => 'Autism Admission - Direct Payment', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Generated in ICM (triggered by service request, mail, e-mail fax) and Sent to Portal as PDF', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -1740,18 +1926,42 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\AFU_crsp_Footer.xdp', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 83 => [ + 'id' => 148, + 'form_id' => 'CFL04555', + 'form_title' => 'MBP Orthodontic Approval - D077034', + 'ministry_id' => 1, + 'form_purpose' => NULL, + 'notes' => '', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\MBP_crsp_Footer.xdp', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 78 => - array ( + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 84 => [ 'id' => 79, 'form_id' => 'CFL00541', 'form_title' => 'Accountant Confirmation Incomplete', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Manually generated in ICM and sent to client through Portal', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -1762,18 +1972,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\AFU_crsp_Footer.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 79 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 85 => [ 'id' => 80, 'form_id' => 'CFL00542', 'form_title' => 'Accountant Confirmation Complete', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Generated in ICM (triggered by service request, mail, e-mail fax) and Sent to Portal as PDF', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -1784,18 +1995,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\AFB_crsp_Footer.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 80 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 86 => [ 'id' => 81, 'form_id' => 'CFL00550', 'form_title' => 'DP Pre Admission Letter', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Generated in ICM (triggered by service request, mail, e-mail fax) and Sent to Portal as PDF', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -1805,65 +2017,71 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 81 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 87 => [ 'id' => 82, 'form_id' => 'CFL00551', 'form_title' => 'Audit Results Issues Not Found', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Crystal Hui confirmed on 2025 Aug 18 form to be decommissioned, +https://dev.azure.com/BC-SDPR/Forms%20Modernization/_workitems/edit/3720', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 82 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 88 => [ 'id' => 83, 'form_id' => 'CFL00552', 'form_title' => 'Audit Results Issues Found', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Crystal Hui confirmed on 2025 Aug 18 form to be decommissioned, +https://dev.azure.com/BC-SDPR/Forms%20Modernization/_workitems/edit/3720', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 83 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 89 => [ 'id' => 84, 'form_id' => 'CFL00553', 'form_title' => 'Audit Results Missing Documentation', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Crystal Hui confirmed on 2025 Aug 18 form to be decommissioned, +https://dev.azure.com/BC-SDPR/Forms%20Modernization/_workitems/edit/3720', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -1871,21 +2089,23 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 84 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 90 => [ 'id' => 85, 'form_id' => 'CFL00554', 'form_title' => 'Audit Results Recovery', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Crystal Hui confirmed on 2025 Aug 18 form to be decommissioned, +https://dev.azure.com/BC-SDPR/Forms%20Modernization/_workitems/edit/3720', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -1893,13 +2113,14 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 85 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 91 => [ 'id' => 86, 'form_id' => 'CFL01010', 'form_title' => 'CCS Benefit Plan Letter - Service Provider', @@ -1919,9 +2140,10 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => true, - ), - 86 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 92 => [ 'id' => 87, 'form_id' => 'CFL01013', 'form_title' => 'CCS Cover Letter', @@ -1941,9 +2163,10 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => true, - ), - 87 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 93 => [ 'id' => 88, 'form_id' => 'CFL01014', 'form_title' => 'CCS Reinstatement Letter', @@ -1963,9 +2186,10 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => true, - ), - 88 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 94 => [ 'id' => 89, 'form_id' => 'CFL01015', 'form_title' => 'CCS EFT Application Cover Letter', @@ -1985,9 +2209,10 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => true, - ), - 89 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 95 => [ 'id' => 90, 'form_id' => 'CFL01016', 'form_title' => 'CCS Contact Us-Clarification Letters', @@ -2007,9 +2232,10 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => true, - ), - 90 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 96 => [ 'id' => 91, 'form_id' => 'CFL01017', 'form_title' => 'CCS Missing Info/Unable to Process Letters', @@ -2029,9 +2255,10 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => true, - ), - 91 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 97 => [ 'id' => 92, 'form_id' => 'CFL01018', 'form_title' => 'CCS Work Search Letters', @@ -2051,9 +2278,10 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => true, - ), - 92 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 98 => [ 'id' => 93, 'form_id' => 'CFL01019', 'form_title' => 'CCS Reduction in Subsidy Letters', @@ -2073,9 +2301,10 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => true, - ), - 93 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 99 => [ 'id' => 94, 'form_id' => 'CFL01020', 'form_title' => 'CCS Denial Letters', @@ -2095,9 +2324,10 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => true, - ), - 94 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 100 => [ 'id' => 95, 'form_id' => 'CFL01021', 'form_title' => 'CCS Benefit Plan Letter - Applicant', @@ -2117,15 +2347,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => true, - ), - 95 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 101 => [ 'id' => 96, 'form_id' => 'CFL01022', 'form_title' => 'Affordable Child Care Benefit Eligibility Summary', 'ministry_id' => 3, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'CFL01022A also exists', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -2136,18 +2367,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\CCS_crsp_Footer.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 96 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 102 => [ 'id' => 97, 'form_id' => 'CFL01022A', 'form_title' => 'CCS Assessment', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => ' in ICM as of June 28, 2021 (Release 4.8)', + 'notes' => ' in ICM as of June 28, 2021 (Release 4.8)', 'fill_type_id' => NULL, 'decommissioned' => true, 'form_frequency_id' => NULL, @@ -2160,16 +2392,17 @@ public function run() 'footer_fragment_path' => 'N/A', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 97 => - array ( + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 103 => [ 'id' => 98, 'form_id' => 'CFL01040', 'form_title' => 'L40 - General Welcome Letter Applicant', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -2178,20 +2411,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => false, 'footer_fragment_path' => 'E:\\Adobe\\Fragments\\CCS_crsp_Footer.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 98 => - array ( + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 104 => [ 'id' => 99, 'form_id' => 'CFL01041', - 'form_title' => 'CCS Welcome Letter � Care Provider � ICH Care', + 'form_title' => 'CCS Welcome Letter - Care Provider - ICH Care', 'ministry_id' => 3, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -2202,18 +2436,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\CCS_crsp_Footer.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 99 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 105 => [ 'id' => 100, 'form_id' => 'CFL01042', - 'form_title' => 'CCS Welcome Letter � Applicant � ICH Care', + 'form_title' => 'CCS Welcome Letter - Applicant - ICH Care', 'ministry_id' => 3, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -2224,18 +2459,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\CCS_crsp_Footer.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 100 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 106 => [ 'id' => 101, 'form_id' => 'CFL01043', - 'form_title' => 'CCS Welcome Letter � Applicant � Combo ICH and Other', + 'form_title' => 'CCS Welcome Letter - Applicant - Combo ICH and Other', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -2244,20 +2480,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => false, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\CCS_crsp_Footer.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 101 => - array ( + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 107 => [ 'id' => 102, 'form_id' => 'CFL01044', - 'form_title' => 'CCS Welcome Letter � Care Provider - RLNR or LNR', + 'form_title' => 'CCS Welcome Letter - Care Provider - RLNR or LNR', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -2266,20 +2503,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => false, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\CCS_crsp_Footer.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 102 => - array ( + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 108 => [ 'id' => 103, 'form_id' => 'CFL01045', - 'form_title' => 'CCS Welcome Letter � Applicant � Care Other Than ICH', + 'form_title' => 'CCS Welcome Letter - Applicant - Care Other Than ICH', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -2288,14 +2526,15 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => false, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\CCS_crsp_Footer.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 103 => - array ( + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 109 => [ 'id' => 104, 'form_id' => 'CFL01048', 'form_title' => 'Reduction from full to L2 half for ws', @@ -2315,9 +2554,10 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => true, - ), - 104 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 110 => [ 'id' => 105, 'form_id' => 'CFL01071', 'form_title' => 'ACCB Benefit Plan Cancellation Notice - Parents', @@ -2337,9 +2577,10 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => true, - ), - 105 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 111 => [ 'id' => 106, 'form_id' => 'CFL01072', 'form_title' => 'ACCB Benefit Plan Cancellation Notice - Service Providers', @@ -2359,15 +2600,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => true, - ), - 106 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 112 => [ 'id' => 107, 'form_id' => 'CFL02010', - 'form_title' => 'Letter to Reporter � Incident Outcome', + 'form_title' => 'Letter to Reporter - Incident Outcome', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Manual-New Template; on Incident; Form letter; completed by worker; finalized; printed', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -2377,19 +2619,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 107 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 113 => [ 'id' => 108, 'form_id' => 'CFL02012', 'form_title' => '2 Investigation Complete - not in need of protection', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Manual-New Template; on Incident; Form letter; completed by worker; finalized; printed', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -2399,19 +2642,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 108 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 114 => [ 'id' => 109, 'form_id' => 'CFL02014', - 'form_title' => 'Letter to RCMP � Request for Information', + 'form_title' => 'Letter to RCMP - Request for Information', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Manual letter managed by business', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -2421,19 +2665,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 109 => - array ( + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 115 => [ 'id' => 110, 'form_id' => 'CFL02016', - 'form_title' => 'Letter to School � Child Removed', + 'form_title' => 'Letter to School - Child Removed', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Manual-New Template; on Incident; Form letter; completed by worker; finalized; printed', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -2443,13 +2688,14 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 110 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 116 => [ 'id' => 111, 'form_id' => 'CFL02019', 'form_title' => 'CP_CSSapplicant_CF2044', @@ -2464,20 +2710,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 111 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 117 => [ 'id' => 112, 'form_id' => 'CFL02021', 'form_title' => 'Support Service Plan', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Filled inside ICM : generated from CYSN FS Case -> Case Documents applet', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -2487,19 +2734,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 112 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 118 => [ 'id' => 113, 'form_id' => 'CFL04010', 'form_title' => 'At Home AHA Respite Only', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Unable to locate in iConnect, MCFD Forms FDD ICM', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -2509,19 +2757,43 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 119 => [ + 'id' => 1829, + 'form_id' => 'HR3579', + 'form_title' => 'Reserved for ELMSD', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => '', + 'fill_type_id' => NULL, + 'decommissioned' => true, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 113 => - array ( + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 120 => [ 'id' => 114, 'form_id' => 'CFL04510', 'form_title' => 'MBP New Admission', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Generated in ICM (Pre-Population (data bindings)) On Case, Attachments. - Finalized as read only.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -2532,18 +2804,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\MBP_crsp_Footer.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 114 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 121 => [ 'id' => 115, 'form_id' => 'CFL04511', 'form_title' => 'At Home Dental Approval.doc', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Unable to locate in iConnect, MCFD Forms FDD ICM', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -2553,19 +2826,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 115 => - array ( + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 122 => [ 'id' => 116, 'form_id' => 'CFL04512', 'form_title' => 'MBP Six Months to Age Out', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Generated in ICM (Pre-Population (data bindings) - Finalized as read only. Form requires ability to select from drop down to change wording/default values so it can be used for other age out date(s).', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -2576,18 +2850,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\MBP_crsp_Footer.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 116 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 123 => [ 'id' => 117, 'form_id' => 'CFL04513', - 'form_title' => 'Equipment - Approved (Biomedical).pdf', + 'form_title' => 'Equipment - Approved (Biomedical).pdf', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Unable to locate in iConnect, MCFD Forms FDD ICM', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -2597,19 +2872,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 117 => - array ( + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 124 => [ 'id' => 118, 'form_id' => 'CFL04514', 'form_title' => 'CIC Dental Over Limit $700 AB and $190 EMERGENCY POST APPROVAL.doc', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Unable to locate in iConnect, MCFD Forms FDD ICM', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -2619,19 +2895,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 118 => - array ( + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 125 => [ 'id' => 119, 'form_id' => 'CFL04515', 'form_title' => 'MB Optical Approval', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Generated in ICM ((Pre-Population (data bindings) - Finalized as read only.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -2642,18 +2919,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\MBP_crsp_Footer.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 119 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 126 => [ 'id' => 120, 'form_id' => 'CFL04516', 'form_title' => 'MB Reimbursement', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Generated in ICM ((Pre-Population (data bindings)) - Finalized as read only.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -2664,18 +2942,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\MBP_crsp_Footer.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 120 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 127 => [ 'id' => 121, 'form_id' => 'CFL04517', 'form_title' => 'Therapy Approval - Chiro and Massage.pdf', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Unable to locate in iConnect, MCFD Forms FDD ICM', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -2685,19 +2964,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 121 => - array ( + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 128 => [ 'id' => 122, 'form_id' => 'CFL04519', 'form_title' => 'AHP Respite Only', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Unable to locate in iConnect, MCFD Forms FDD ICM', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -2707,19 +2987,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 122 => - array ( + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 129 => [ 'id' => 123, 'form_id' => 'CFL04520', 'form_title' => 'AHP Medical Only', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Unable to locate in iConnect, MCFD Forms FDD ICM', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -2729,19 +3010,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 123 => - array ( + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 130 => [ 'id' => 124, 'form_id' => 'CFL04521', 'form_title' => 'AHP Not Eligible', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Unable to locate in iConnect, MCFD Forms FDD ICM', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -2751,19 +3033,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 124 => - array ( + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 131 => [ 'id' => 125, 'form_id' => 'CFL04522', 'form_title' => 'AHP Fully Eligible', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Unable to locate in iConnect, MCFD Forms FDD ICM', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -2773,19 +3056,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 125 => - array ( + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 132 => [ 'id' => 126, 'form_id' => 'CFL04523', 'form_title' => 'MB Dental Approval', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Filled inside ICM', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -2796,18 +3080,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\MBP_crsp_Footer.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 126 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 133 => [ 'id' => 127, 'form_id' => 'CFL04524', 'form_title' => 'MB Dental Denial', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Filled inside ICM', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -2818,18 +3103,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\MBP_crsp_Footer.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 127 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 134 => [ 'id' => 128, 'form_id' => 'CFL04525', 'form_title' => 'At Home Optical Approval.doc', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Unable to locate in iConnect, MCFD Forms FDD ICM', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -2840,18 +3126,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'E:\\Adobe\\Fragments\\MBP_crsp_Footer.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 128 => - array ( + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 135 => [ 'id' => 129, 'form_id' => 'CFL04526', 'form_title' => 'MB Orthodontic Approval ', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Filled inside ICM', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -2862,18 +3149,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\MBP_crsp_Footer.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 129 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 136 => [ 'id' => 130, 'form_id' => 'CFL04527', - 'form_title' => 'MB Optical� (no order)', + 'form_title' => 'MB Optical -(no order)', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Filled inside ICM', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -2884,18 +3172,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\MBP_crsp_Footer.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 130 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 137 => [ 'id' => 131, 'form_id' => 'CFL04528', 'form_title' => 'MB Orthodontic Denial', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Filled inside ICM', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -2906,18 +3195,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\MBP_crsp_Footer.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 131 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 138 => [ 'id' => 132, 'form_id' => 'CFL04529', 'form_title' => 'MB Equipment Biomedical Approval ', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Filled inside ICM', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -2928,18 +3218,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\MBP_crsp_Footer.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 132 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 139 => [ 'id' => 133, 'form_id' => 'CFL04530', 'form_title' => 'MB Equipment Approval ', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Filled inside ICM', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -2950,18 +3241,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\MBP_crsp_Footer.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 133 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 140 => [ 'id' => 134, 'form_id' => 'CFL04531', 'form_title' => 'MBP Equipment Custom Non Recycled - AM/CS', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Unable to locate in iConnect, MCFD Forms FDD ICM', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -2972,18 +3264,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\MBP_crsp_Footer.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 134 => - array ( + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 141 => [ 'id' => 135, 'form_id' => 'CFL04532', 'form_title' => 'MBP Equipment Custom - AM/CS', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Unable to locate in iConnect, MCFD Forms FDD ICM', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -2994,18 +3287,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\MBP_crsp_Footer.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 135 => - array ( + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 142 => [ 'id' => 136, 'form_id' => 'CFL04533', 'form_title' => 'MB Equipment Denial', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Filled inside ICM', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -3016,18 +3310,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\MBP_crsp_Footer.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 136 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 143 => [ 'id' => 137, 'form_id' => 'CFL04534', 'form_title' => 'MBP Equipment Rental Approval - AM/CS', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Unable to locate in iConnect, MCFD Forms FDD ICM', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -3038,18 +3333,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\MBP_crsp_Footer.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 137 => - array ( + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 144 => [ 'id' => 138, 'form_id' => 'CFL04535', 'form_title' => 'MBP Equipment Repair Approval - AM/CS', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Unable to locate in iConnect, MCFD Forms FDD ICM', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -3060,18 +3356,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\MBP_crsp_Footer.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 138 => - array ( + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 145 => [ 'id' => 139, 'form_id' => 'CFL04536', 'form_title' => 'MB Hearing Aids Approval', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Filled inside ICM', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -3082,18 +3379,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\MBP_crsp_Footer.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 139 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 146 => [ 'id' => 140, 'form_id' => 'CFL04541', 'form_title' => 'MB Therapy Approval ', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Generated in ICM', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -3104,18 +3402,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\MBP_crsp_Footer.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 140 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 147 => [ 'id' => 141, 'form_id' => 'CFL04542', 'form_title' => 'MBP Therapy - Speech and Physio and OT - AM', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Unable to locate in iConnect, MCFD Forms FDD ICM', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -3126,18 +3425,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\MBP_crsp_Footer.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 141 => - array ( + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 148 => [ 'id' => 142, 'form_id' => 'CFL04543', 'form_title' => 'MB Therapy - All Types Denial', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Filled inside ICM. generated on Case, Contact, Must have benefit Plan. Prefilled Data, auto populated text, manual text field.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -3148,18 +3448,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\MBP_crsp_Footer.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 142 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 149 => [ 'id' => 143, 'form_id' => 'CFL04550', 'form_title' => 'MBP Dental Emergency Over Limit - CS', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Unable to locate in iConnect, MCFD Forms FDD ICM', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -3170,18 +3471,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\MBP_crsp_Footer.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 143 => - array ( + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 150 => [ 'id' => 144, 'form_id' => 'CFL04551', 'form_title' => 'MBP Dental Routine Over Limit - CS', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Unable to locate in iConnect, MCFD Forms FDD ICM', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -3192,18 +3494,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\MBP_crsp_Footer.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 144 => - array ( + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 151 => [ 'id' => 145, 'form_id' => 'CFL04552', 'form_title' => 'MBP Dental Routine Modified Treatment - CS', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Unable to locate in iConnect, MCFD Forms FDD ICM', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -3214,18 +3517,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\MBP_crsp_Footer.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 145 => - array ( + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 152 => [ 'id' => 146, 'form_id' => 'CFL04553', 'form_title' => 'MBP Dental More Info on Treatment - CS', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Unable to locate in iConnect, MCFD Forms FDD ICM', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -3235,19 +3539,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 146 => - array ( + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 153 => [ 'id' => 147, 'form_id' => 'CFL04554', 'form_title' => 'MB Orthodontic Approval ', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Filled inside ICM. Generated on Case, Contact, must have Service Order; Data pre-filled from ICM, some data editable;', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -3258,34 +3563,13 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\MBP_crsp_Footer.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 147 => - array ( - 'id' => 148, - 'form_id' => 'CFL04555', - 'form_title' => 'MBP Orthodontic Approval - D077034', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\MBP_crsp_Footer.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 148 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 154 => [ 'id' => 149, 'form_id' => 'CFL04556', 'form_title' => 'MB Orthodontic Denial', @@ -3305,9 +3589,10 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => true, - ), - 149 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 155 => [ 'id' => 150, 'form_id' => 'CFL04557', 'form_title' => 'MBP Orthodontic Denial - D077034', @@ -3326,16 +3611,17 @@ public function run() 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\MBP_crsp_Footer.xdp', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 150 => - array ( + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 156 => [ 'id' => 151, 'form_id' => 'CFL04558', - 'form_title' => 'Medical Benefits Program Dental Program for Children in (Foster) Care and Youth Agreements', + 'form_title' => 'Medical Benefits Program Dental Program for Children in (Foster) Care and Youth Agreements', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -3344,14 +3630,15 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 151 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 157 => [ 'id' => 152, 'form_id' => 'CFL04559', 'form_title' => 'MBP Generic Custom Approval - AM/CS', @@ -3370,38 +3657,40 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 152 => - array ( + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 158 => [ 'id' => 153, 'form_id' => 'CTI Automated Telephone Inquiry', 'form_title' => 'CTI Automated Telephone Inquiry', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, - 'form_frequency_id' => NULL, + 'form_frequency_id' => 4, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 153 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 159 => [ 'id' => 154, 'form_id' => 'HR0001', 'form_title' => 'Request for Executive Approval', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -3410,20 +3699,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 154 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 160 => [ 'id' => 155, 'form_id' => 'HR0024', 'form_title' => 'Declaration and Undertaking for a Client Lost or Stolen Payment', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '', + 'form_purpose' => 'Captures Information on Lost or Stolen Payments for a client.', + 'notes' => 'Worker fills, Printed, Signed ,Scan; Client fills, Returns, Scan', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => 3, @@ -3432,20 +3722,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 155 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 161 => [ 'id' => 156, 'form_id' => 'HR0077', 'form_title' => 'Work Search Activity Record', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '', + 'form_purpose' => 'Form', + 'notes' => 'Form with barcode, signature, and table. Worker fills, Print, Scan. Client fills, Returns, Scan', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -3454,108 +3745,113 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 156 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 162 => [ 'id' => 157, 'form_id' => 'HR0080', 'form_title' => 'Application for Income / Disability Assistance Part 2', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, - 'form_frequency_id' => NULL, + 'form_frequency_id' => 4, 'form_reach_id' => 3, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 157 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 163 => [ 'id' => 158, 'form_id' => 'HR0080A', 'form_title' => 'Application for Income / Disability Assistance Part 1', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '', + 'form_purpose' => 'The applicant and dependent spouse (if applicable) are required to complete the Application Part 1 form to provide basic information, including the applicant\'s name, social insurance number, birth date, and asks if there are any outstanding warrants. Sections include details related to search for employment requirements, BC government\'s responsibilities, protection of personal information, rights and responsibilities, declarations and consents.', + 'notes' => 'Portal integration', 'fill_type_id' => NULL, 'decommissioned' => false, - 'form_frequency_id' => NULL, + 'form_frequency_id' => 4, 'form_reach_id' => 3, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 158 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => 'Intake', + 'deleted_at' => NULL, + ], + 164 => [ 'id' => 159, 'form_id' => 'HR0080B', - 'form_title' => 'Application for Assistance - Consents (Part 1)', + 'form_title' => 'Application for Assistance - Consents (Part 1)', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '', + 'form_purpose' => 'This form is required for all Income assistance applications which are created manually or via worker override feature from MYSS. The form will be available in ICM and will be generated from SSAA Activity plan. The form will also have barcode encoded to Profile it to the right entity in ICM. ', + 'notes' => 'barcode', 'fill_type_id' => NULL, 'decommissioned' => false, - 'form_frequency_id' => NULL, + 'form_frequency_id' => 4, 'form_reach_id' => 3, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 159 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => 'Intake', + 'deleted_at' => NULL, + ], + 165 => [ 'id' => 160, 'form_id' => 'HR0080R', 'form_title' => 'Employment and Assistance Review or Employment Assistance for Persons with Disabilities Review', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '', + 'form_purpose' => 'This form is a combination of the HR0080 and HR0080A. The BCEA Application for Income Assistance (Part 2) form is a legal document. This form captures the applicant\'s family composition, personal, financial, shelter and ID details. It also includes a Medical Services Plan client release, a declaration and a release to verify and obtain information to confirm eligibility. As the HR0080 will also be part of the Self Service Application, and will be the container for all of the SSA data during the application process. Therefore, the HR0080R form data and appearance are subject to change as well.', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, - 'form_frequency_id' => NULL, + 'form_frequency_id' => 4, 'form_reach_id' => 2, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 160 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 166 => [ 'id' => 161, 'form_id' => 'HR0081', 'form_title' => 'Monthly Report', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => 'AKA *SD0081', + 'form_purpose' => 'reporting', + 'notes' => 'AKA SD0081', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -3564,20 +3860,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 161 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 167 => [ 'id' => 162, 'form_id' => 'HR0081A', 'form_title' => 'Tele-Monthly Report', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in RF, PPM, ICM, SR FDD, Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -3586,20 +3883,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 162 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 168 => [ 'id' => 163, 'form_id' => 'HR0095', - 'form_title' => 'Release of Personal Information', + 'form_title' => 'Summary of Assistance', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '', + 'form_purpose' => 'Captures information regarding access to personal information to a Third Party. ', + 'notes' => 'Worker fills, Print, Scan; Client fills, Returns, Scan', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => 3, @@ -3608,20 +3906,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 163 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 169 => [ 'id' => 164, 'form_id' => 'HR0100', 'form_title' => 'Employment and Assistance Request for Reconsideration', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Worker fills, Print, Scan; Client fills, Returns, Scan', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -3630,42 +3929,44 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 164 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 170 => [ 'id' => 165, 'form_id' => 'HR2049', 'form_title' => 'Request for Replacement Cheque Lost, Destroyed or Stolen Assistance Cheque', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Worker fills, Print, Scan; Client fills, Returns, Scan', 'fill_type_id' => NULL, 'decommissioned' => false, - 'form_frequency_id' => NULL, + 'form_frequency_id' => 3, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 165 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 171 => [ 'id' => 166, 'form_id' => 'HR2138', 'form_title' => 'Medical equipment Request and Justification', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -3674,14 +3975,15 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 166 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => 'Worker fills, Print, Scan; Client fills, Returns, Scan', + 'deleted_at' => NULL, + ], + 172 => [ 'id' => 167, 'form_id' => 'HR2150', 'form_title' => 'Confirmation of ID for Financial Institution', @@ -3700,10 +4002,11 @@ public function run() 'footer_fragment_path' => 'N/A', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 167 => - array ( + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 173 => [ 'id' => 168, 'form_id' => 'HR2150A', 'form_title' => 'Case Assessment Supplement', @@ -3722,13 +4025,14 @@ public function run() 'footer_fragment_path' => 'N/A', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 168 => - array ( + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 174 => [ 'id' => 169, 'form_id' => 'HR2186', - 'form_title' => 'Authorization to Obtain/Search Court Documents (Maintenance)', + 'form_title' => 'Authorization to Obtain/Search Court Documents (Maintenance)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -3744,10 +4048,11 @@ public function run() 'footer_fragment_path' => 'N/A', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 169 => - array ( + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 175 => [ 'id' => 170, 'form_id' => 'HR2188', 'form_title' => 'Advice to Client - Family Maintenance Program', @@ -3766,10 +4071,11 @@ public function run() 'footer_fragment_path' => 'N/A', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 170 => - array ( + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 176 => [ 'id' => 171, 'form_id' => 'HR2194', 'form_title' => 'Paternity Test Authorization', @@ -3788,13 +4094,14 @@ public function run() 'footer_fragment_path' => 'N/A', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 171 => - array ( + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 177 => [ 'id' => 172, 'form_id' => 'HR2230', - 'form_title' => 'Government Response to Application to Change (FMP)', + 'form_title' => 'Government Response to Application to Change (FMP)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -3810,16 +4117,17 @@ public function run() 'footer_fragment_path' => 'N/A', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 172 => - array ( + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 178 => [ 'id' => 173, 'form_id' => 'HR2528', 'form_title' => 'Assignment of Benefits/Employment Insurance Benefits', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -3828,42 +4136,45 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 173 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 179 => [ 'id' => 174, 'form_id' => 'HR2648', 'form_title' => 'EA or EAPWD Application for Direct Deposit Request', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Form with barcode, signature, and a mailing label. Worker fills, Print, Scan. Client fills, Returns Scan. +mailing label generated from javascript', 'fill_type_id' => NULL, 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, + 'form_frequency_id' => 4, + 'form_reach_id' => 3, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 174 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 180 => [ 'id' => 175, 'form_id' => 'HR2663A', - 'form_title' => 'Repayment Agreement Acknowledgement of Debt (Repayable) (For Open File)', + 'form_title' => 'Repayment Agreement Acknowledgement of Debt (Repayable) (For Open File)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Worker fills, Print, Scan; Client fills, Returns, Scan', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -3872,19 +4183,43 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => false, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSIDynamicIFooterPLMS_FormWidth7.5Arial10.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 175 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 181 => [ 'id' => 176, 'form_id' => 'HR2724', - 'form_title' => 'Transfer to Counsel (FMP)', + 'form_title' => 'Transfer to Counsel (FMP)', 'ministry_id' => 2, 'form_purpose' => NULL, + 'notes' => 'old form?', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 182 => [ + 'id' => 407, + 'form_id' => 'CF0025', + 'form_title' => 'Authorization to Pay Contacts', + 'ministry_id' => 1, + 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, @@ -3896,18 +4231,20 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', + 'dcv_material_number' => '7530912029', 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 176 => - array ( + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 183 => [ 'id' => 177, 'form_id' => 'HR2737', 'form_title' => 'Promise to Pay - Benefits while Awaiting Reconsideration/Appeal Decision', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'MIS, +Worker fills, Print, Scan; Client fills, Returns, Scan', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -3916,21 +4253,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 177 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 184 => [ 'id' => 178, 'form_id' => 'HR2748', 'form_title' => 'Assignment of Maintenance Rights', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'PDC material number:�7530903037? -', + 'notes' => 'PDC material number:�7530903037?', 'fill_type_id' => NULL, 'decommissioned' => true, 'form_frequency_id' => NULL, @@ -3943,10 +4280,11 @@ public function run() 'footer_fragment_path' => 'N/A', 'dcv_material_number' => '7530903037', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 178 => - array ( + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 185 => [ 'id' => 179, 'form_id' => 'HR2751', 'form_title' => 'Notice of Termination of Assignment of Maintenance Rights', @@ -3954,7 +4292,7 @@ public function run() 'form_purpose' => NULL, 'notes' => 'Not for Wide Release', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -3962,19 +4300,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 179 => - array ( + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 186 => [ 'id' => 180, 'form_id' => 'HR2752', - 'form_title' => 'Notice of Assignment of Maintenance Rights (FMP) (Revised)', + 'form_title' => 'Notice of Assignment of Maintenance Rights (FMP) (Revised)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Not for Wide Release', + 'notes' => 'Not for Wide Release. Form is crossed off in Forms FDD. Not located in RF, PPM ICM', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -3984,16 +4323,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 180 => - array ( + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 187 => [ 'id' => 181, 'form_id' => 'HR2768', - 'form_title' => 'Request to Continue an Action in Progress (FMP)', + 'form_title' => 'Request to Continue an Action in Progress (FMP)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -4009,10 +4349,11 @@ public function run() 'footer_fragment_path' => 'N/A', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 181 => - array ( + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 188 => [ 'id' => 182, 'form_id' => 'HR2769', 'form_title' => 'Request for Income Information', @@ -4031,13 +4372,14 @@ public function run() 'footer_fragment_path' => 'N/A', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 182 => - array ( + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 189 => [ 'id' => 183, 'form_id' => 'HR2770', - 'form_title' => 'FMEP Enrollment Cover (FMP)', + 'form_title' => 'FMEP Enrollment Cover (FMP)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -4053,16 +4395,17 @@ public function run() 'footer_fragment_path' => 'N/A', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 183 => - array ( + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 190 => [ 'id' => 184, 'form_id' => 'HR2771', 'form_title' => 'Undertaking Sponsorship Letter: Applicant/Client Sponsorship', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Letter', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -4071,20 +4414,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 184 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 191 => [ 'id' => 185, 'form_id' => 'HR2772', 'form_title' => 'Sponsorship Undertaking Letter: Sponsor', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Sponsor gets letter', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -4093,22 +4437,23 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 185 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 192 => [ 'id' => 186, 'form_id' => 'HR2777', 'form_title' => 'AD HOC Legal Counsel Appointment Request', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -4116,19 +4461,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 186 => - array ( + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 193 => [ 'id' => 187, 'form_id' => 'HR2786', 'form_title' => 'Sponsorship Verification letter', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '', + 'form_purpose' => 'The HR2786 is intended for FASB workers of the Ministry of Social Development and Poverty Reduction to contact IRCC to receive information and documentation regarding a Sponsor who has sponsored relatives relying on social assistance programs.', + 'notes' => 'Verification of sponsorship (federal government)', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -4138,21 +4484,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => false, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 187 => - array ( + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 194 => [ 'id' => 188, 'form_id' => 'HR2790', 'form_title' => 'Risk Assessment - Violence', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -4160,19 +4507,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 188 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 195 => [ 'id' => 189, 'form_id' => 'HR2797', 'form_title' => 'Employability Screen', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Forms FDD indicates HR2797 was removed for release 4.5.1 policy change', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -4182,19 +4530,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 189 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 196 => [ 'id' => 190, 'form_id' => 'HR2818', 'form_title' => 'Application for Special Transportation Subsidy', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Form not in ICM, PPM or RF.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -4204,13 +4553,14 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 190 => - array ( + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 197 => [ 'id' => 191, 'form_id' => 'HR2835', 'form_title' => 'Request for Orthodontic Care', @@ -4229,10 +4579,11 @@ public function run() 'footer_fragment_path' => 'N/A', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 191 => - array ( + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 198 => [ 'id' => 192, 'form_id' => 'HR2836', 'form_title' => 'Orthodontic Assessment', @@ -4251,16 +4602,17 @@ public function run() 'footer_fragment_path' => 'N/A', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 192 => - array ( + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 199 => [ 'id' => 193, 'form_id' => 'HR2847', 'form_title' => 'Application for Monthly Nutritional Supplement', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Barcode', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -4270,16 +4622,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 193 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 200 => [ 'id' => 194, 'form_id' => 'HR2856', - 'form_title' => 'Release of Information (CRA)', + 'form_title' => 'Release of Information (CRA)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -4295,16 +4648,17 @@ public function run() 'footer_fragment_path' => 'N/A', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 194 => - array ( + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 201 => [ 'id' => 195, 'form_id' => 'HR2863', 'form_title' => 'Employment Plan', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -4314,19 +4668,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 195 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 202 => [ 'id' => 196, 'form_id' => 'HR2865', 'form_title' => 'Client Employability Profile', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -4336,19 +4691,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 196 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 203 => [ 'id' => 197, 'form_id' => 'HR2883', 'form_title' => 'Persons with Disabilities Designation Application', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '', + 'form_purpose' => 'Sample form for determining eligibility for the Persons with Disabilities designation.', + 'notes' => 'program: PWD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -4357,20 +4713,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 197 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 204 => [ 'id' => 198, 'form_id' => 'HR2892', 'form_title' => 'Medical Report - Persons with Persistent Multiple Barriers', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '', + 'form_purpose' => 'The PPMB application form is made up of two sections. Section 1 is completed by the health professional and describes the client’s health conditions affecting their employability. Section 2 is completed by the client and lists their barriers to employment. While the form is produced in a fillable format in ICM, it is typically printed and filled out by hand by the health professional and client.', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -4379,20 +4736,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 198 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 205 => [ 'id' => 199, 'form_id' => 'HR2892A', - 'form_title' => 'Persons with Multiple Barriers (PPMB) Checklist', + 'form_title' => 'Persons with Multiple Barriers (PPMB) Checklist', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '', + 'form_purpose' => 'The PPMB Checklist contains the adjudicator’s decision and rationale when determining an applicant’s eligibility for Persons with Persistent Multiple Barriers. ', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -4401,20 +4759,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 199 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 206 => [ 'id' => 200, 'form_id' => 'HR2894', 'form_title' => 'Orthosis Request and Justification', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Digital Signature', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -4424,19 +4783,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 200 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 207 => [ 'id' => 201, 'form_id' => 'HR2916', - 'form_title' => 'Voluntary Participation Plan (for use when MIS is not available)', + 'form_title' => 'Voluntary Participation Plan (for use when MIS is not available)', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '', + 'form_purpose' => 'The Voluntary Participation Plan (VPP) outlines the activites intended to result in employment or increased employability for clients who currently have no employment-related obligations.', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -4445,20 +4805,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 201 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 208 => [ 'id' => 202, 'form_id' => 'HR2940', 'form_title' => 'Inter-Agency Reciprocal Routing', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in RF, PPM, ICM, SR FDD Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -4468,16 +4829,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 202 => - array ( + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 209 => [ 'id' => 203, 'form_id' => 'HR2954', - 'form_title' => 'Consent/Order (one child)', + 'form_title' => 'Consent/Order (one child)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -4494,12 +4856,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => true, - ), - 203 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 210 => [ 'id' => 204, 'form_id' => 'HR2956', - 'form_title' => 'Consent/Order to Vary (one child)', + 'form_title' => 'Consent/Order to Vary (one child)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -4515,18 +4878,19 @@ public function run() 'footer_fragment_path' => 'N/A', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 204 => - array ( + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 211 => [ 'id' => 205, 'form_id' => 'HR3033', 'form_title' => 'Family Maintenance Questionnaire', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'HR3033A is the active version of this form. FMEP was discontinued as a program', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -4534,19 +4898,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 205 => - array ( + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 212 => [ 'id' => 206, 'form_id' => 'HR3034', 'form_title' => 'Information/Documentation Checklist', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Barcode', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => 3, @@ -4556,19 +4921,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 206 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 213 => [ 'id' => 207, 'form_id' => 'HR3037', 'form_title' => 'Shelter Information', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '', + 'form_purpose' => 'Form to assist applicants or clients to provide the information required to determine actual shelter costs.', + 'notes' => 'Worker fills, Printed, Scan; Client fills, Returns, Scan, MySS', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -4577,20 +4943,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 207 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 214 => [ 'id' => 208, 'form_id' => 'HR3042', 'form_title' => 'Letter for Client Initiated Overpayments', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '', + 'form_purpose' => 'The HR3042 is intended for the Ministry of Social Development and Poverty Reduction to inform the client that an overpayment might have occurred and needs to be reviewed.', + 'notes' => 'letter. Worker fills, Printed', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -4599,20 +4966,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => false, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSIDynamicIFooterPLMS_FormWidth7.5Arial10.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 208 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 215 => [ 'id' => 209, 'form_id' => 'HR3043', 'form_title' => 'Letter for Ministry Initiated Overpayments', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '', + 'form_purpose' => 'The HR3043 is intended for the Ministry of Social Development and Poverty Reduction to inform the client that an overpayment might have occurred and needs to be reviewed.', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -4621,20 +4989,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => false, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSIDynamicIFooterPLMS_FormWidth7.5Arial10.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 209 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 216 => [ 'id' => 210, 'form_id' => 'HR3049', 'form_title' => 'Financial Eligibility Review Checklist', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Barcode', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -4644,16 +5013,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 210 => - array ( - 'id' => 211, - 'form_id' => 'HR3069', - 'form_title' => 'Medical Report � Employability', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 217 => [ + 'id' => 262, + 'form_id' => 'HR3318A', + 'form_title' => 'Original Ministry Decision - EA & PWD', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -4666,19 +5036,43 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', + 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSIDynamicIFooter_CorrespWidth7.5Arial8.xdp', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => true, - ), - 211 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 218 => [ + 'id' => 211, + 'form_id' => 'HR3069', + 'form_title' => 'Medical Report - Employability', + 'ministry_id' => 2, + 'form_purpose' => 'For clients requiring a medical report to determine if the client\'s condition interferes with seeking, accepting or continuing employment', + 'notes' => 'Worker fills, Print; Client fills, Returns, Scan', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 219 => [ 'id' => 212, 'form_id' => 'HR3081', 'form_title' => 'Bus Pass Request For Documentation', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Barcode', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -4688,41 +5082,43 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 212 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 220 => [ 'id' => 213, 'form_id' => 'HR3112', 'form_title' => 'Compliance Review Checklist', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'form no longer in use as of Dec 2019', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 213 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 221 => [ 'id' => 214, 'form_id' => 'HR3115', 'form_title' => 'Reasonable Work Search Activities Guidelines', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '', + 'form_purpose' => 'This HR3115 is provided to clients upon intake into the Employment and Assistance program unless they are exempt from the work search requirement. The form informs clients of what are considered reasonable work search activities and identifies which of those activities they are expected to complete. This form is completed by the worker. Typically within the Service Request for the client’s intake application.', + 'notes' => 'Worker fills, Print. Client fills, Returns, Scan', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -4731,20 +5127,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 214 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 222 => [ 'id' => 215, 'form_id' => 'HR3116', 'form_title' => 'Work Search Review', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '', + 'form_purpose' => 'This HR3116 is used by workers to review a clients work search activities upon completing the required work search period. This form is completed by the EAW.', + 'notes' => 'Worker fills, Print. Ministry use only', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => 3, @@ -4753,20 +5150,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 215 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 223 => [ 'id' => 216, 'form_id' => 'HR3125', 'form_title' => 'Consent to Release Information to MHR from INAC', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Worker fills, Print; Client fills, Returns, Scan', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -4775,20 +5173,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 216 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 224 => [ 'id' => 217, 'form_id' => 'HR3143', 'form_title' => 'CPP Early Retirement Initial Contact Letter Instructions', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => ' inactive in ICM. Forms FDD = This template was deactivated for release 4.6.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -4797,20 +5196,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => false, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSI_CPP_DynamicIFooter_CorrespWidth7Arial8.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 217 => - array ( + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 225 => [ 'id' => 218, 'form_id' => 'HR3162', 'form_title' => 'Retroactive Payment Letter', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not found in EA Case or SR attachments New from Template. ', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -4819,20 +5219,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 218 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 226 => [ 'id' => 219, 'form_id' => 'HR3163', 'form_title' => 'Notification of Sanctions - Overpayment for PWD', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '', + 'form_purpose' => 'Letter advising client of sanction for inaccurate or incomplete reporting. This letter is Notification of sanctions-overpayment for BCEA Clients and PWD clients. This correspondence can be autogenerated for the Key player, Spouse, or both (2 forms).', + 'notes' => 'Letter. Worker fills, Printed, Signed ,Scan', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -4841,20 +5242,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => false, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSIDynamicIFooterPLMS_FormWidth7.5Arial10.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 219 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 227 => [ 'id' => 220, 'form_id' => 'HR3164', 'form_title' => 'Notification of Sanctions - Overpayment for BCEA', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '', + 'form_purpose' => 'Letter advising client of sanction for inaccurate or incomplete reporting. This letter is Notification of sanctions-overpayment for BCEA Clients and PWD clients. This correspondence can be autogenerated for the Key player, Spouse, or both (2 forms).', + 'notes' => 'Worker fills, Printed, Signed ,Scan', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -4863,42 +5265,45 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => false, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSIDynamicIFooterPLMS_FormWidth7.5Arial10.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 220 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 228 => [ 'id' => 221, 'form_id' => 'HR3183', 'form_title' => 'Youth Transition Consent: Youth with Intellectual Disabilities', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'digital signature, barcode', 'fill_type_id' => NULL, 'decommissioned' => false, - 'form_frequency_id' => NULL, + 'form_frequency_id' => 4, 'form_reach_id' => 2, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => false, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSIDynamicIFooter_Form.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 221 => - array ( + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 229 => [ 'id' => 222, 'form_id' => 'HR3189', 'form_title' => 'Consent to Disclosure of Information', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Clients that are SR. language barriers physical barrier relative acting on their behalf, +Digital Signature', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -4907,14 +5312,15 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 222 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 230 => [ 'id' => 223, 'form_id' => 'HR3194A', 'form_title' => '1st CRV Appointment-Scheduled', @@ -4933,10 +5339,11 @@ public function run() 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSIDynamicIFooter_CorrespWidth7.5Arial8.xdp', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 223 => - array ( + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 231 => [ 'id' => 224, 'form_id' => 'HR3194B', 'form_title' => '1st CRV Appointment-Unscheduled', @@ -4955,16 +5362,17 @@ public function run() 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSIDynamicIFooter_CorrespWidth7.5Arial8.xdp', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 224 => - array ( + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 232 => [ 'id' => 225, 'form_id' => 'HR3196', 'form_title' => '1st Request for Information', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Worker fills, Print', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -4973,20 +5381,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => false, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSI_PLMS_DynamicIFooter_CorrespWidth7Arial8.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 225 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 233 => [ 'id' => 226, 'form_id' => 'HR3197', 'form_title' => '2nd Request for Information', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '', + 'form_purpose' => 'PLMS letter to request that a recipient provide information that will assist with a compliance review (2nd request).', + 'notes' => 'Letter. Worker fills, Print', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -4995,20 +5404,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => false, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSI_PLMS_DynamicIFooter_CorrespWidth7Arial8.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 226 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 234 => [ 'id' => 227, 'form_id' => 'HR3198', 'form_title' => 'Notice of Decision-S.10 Denial', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '', + 'form_purpose' => 'PLMS letter to advise recipients of a decision to deny assistance as a result of their failure to provide information as requested. This letter also advises the recipient of their right to reconsideration or appeal.', + 'notes' => 'Letter. Worker fills, Print', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -5017,20 +5427,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => false, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSI_PLMS_DynamicIFooter_CorrespWidth7Arial8.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 227 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 235 => [ 'id' => 228, 'form_id' => 'HR3199', 'form_title' => 'Notice of Decision-Overpayment', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '', + 'form_purpose' => 'PLMS form to notify clients with Open or Closed cases of an overpayment and to inform them of their right to reconsideration of this decision.', + 'notes' => 'Letter. Worker fills, Printed', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -5039,20 +5450,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => false, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSIDynamicIFooterPLMS_FormWidth7.5Arial10Updated.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 228 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 236 => [ 'id' => 229, 'form_id' => 'HR3200', 'form_title' => 'Notice of Eligibility Decision', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '', + 'form_purpose' => 'PLMS letter to advise recipients of a decision affecting their eligibility and their right to reconsideration or appeal.', + 'notes' => 'Letter. Worker fills, Print', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -5061,20 +5473,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => false, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSIDynamicIFooterPLMS_FormWidth7.5Arial10Updated.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 229 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 237 => [ 'id' => 230, 'form_id' => 'HR3218', 'form_title' => 'Bank Profile Information Sheet', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '', + 'form_purpose' => 'Letter advising recipient to provide a copy of bank statement and bank profile. To confirm eligibility for assistance, clients may need to submit a bank profile and a 60-day bank statement.', + 'notes' => 'Contains barcode. Worker fills, Prints.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -5083,42 +5496,44 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => false, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSIDynamicIFooter_CorrespWidth7.5Arial8.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 230 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 238 => [ 'id' => 231, 'form_id' => 'HR3228A', 'form_title' => 'Old Age Program Benefits Letter', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '', + 'form_purpose' => 'Client letter to inform them to apply for OAS/GIS. Old Age Security Program Benefits Letter is generated by workers to notify clients they will be transitioning off assistance around the time of their 65th birthday and they need to apply for OAS, GIS and other supports.', + 'notes' => 'Letter, worker fills, prints. Worked on at the moment (reviewing the letter content due to program update)', 'fill_type_id' => NULL, 'decommissioned' => false, - 'form_frequency_id' => NULL, + 'form_frequency_id' => 4, 'form_reach_id' => 2, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 231 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 239 => [ 'id' => 232, 'form_id' => 'HR3228B', 'form_title' => 'Old Age Program Transistion Letter', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '', + 'form_purpose' => 'Old Age Security Program Transition Letter is generated by workers to notify clients they will be transitioning off assistance around the time of their 65th birthday. The letter advises the client of the assistance they may transition to based on their assistance type.', + 'notes' => 'Letter, worker fills and prints. Income Assistance (comes out of ICM), Generic OAS/GIS letter', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -5127,20 +5542,22 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 232 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 240 => [ 'id' => 233, 'form_id' => 'HR3231', 'form_title' => '1st Appointment Eligibility Review', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'sent to MySS, +Worker fills, Print', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -5149,22 +5566,23 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => false, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSIDynamicIFooter_CorrespWidth7Arial8.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 233 => - array ( - 'id' => 234, - 'form_id' => 'HR3232', - 'form_title' => 'First Appointment � PPMB Review', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 241 => [ + 'id' => 406, + 'form_id' => 'CF0021', + 'form_title' => 'In Province Travel Authorization', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -5175,16 +5593,17 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 234 => - array ( - 'id' => 235, - 'form_id' => 'HR3234', - 'form_title' => '2nd Appointment Eligibility Review', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 242 => [ + 'id' => 234, + 'form_id' => 'HR3232', + 'form_title' => 'First Appointment - PPMB Review', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '', + 'form_purpose' => 'Template letter for scheduling appointments for reviewing PPMB. Clients who qualify for the Persons with Persistent Multiple Barriers (PPMB) category may have their status reviewed. The letter advises them of the requirements for that review.', + 'notes' => 'Letter. Worker fills, Print', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -5193,20 +5612,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSIDynamicIFooter_CorrespWidth7.5Arial8.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 235 => - array ( - 'id' => 236, - 'form_id' => 'HR3235', - 'form_title' => 'Second Appointment - PPMB Review', + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 243 => [ + 'id' => 235, + 'form_id' => 'HR3234', + 'form_title' => '2nd Appointment Eligibility Review', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'barcode', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -5216,19 +5636,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSIDynamicIFooter_CorrespWidth7.5Arial8.xdp', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 236 => - array ( - 'id' => 285, - 'form_id' => 'HR3364E', - 'form_title' => 'Client Financial Agreement Wage Subsidy', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 244 => [ + 'id' => 236, + 'form_id' => 'HR3235', + 'form_title' => 'Second Appointment - PPMB Review', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -5238,19 +5659,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 237 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 245 => [ 'id' => 237, 'form_id' => 'HR3237', 'form_title' => 'Information Required - Medical', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Worker fills, Print', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -5259,20 +5681,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => false, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSIDynamicIFooter_CorrespWidth7.5Arial8.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 238 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 246 => [ 'id' => 238, 'form_id' => 'HR3238', 'form_title' => 'Information Request - General', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Barcode', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -5283,40 +5706,42 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSI_PLMS_DynamicIFooter_CorrespWidth7Arial8.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 239 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 247 => [ 'id' => 239, 'form_id' => 'HR3240', 'form_title' => 'Special Transportation Subsidy Denial Letter', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'program terminated', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => false, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSIDynamicIFooter_CorrespWidth7Arial8.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 240 => - array ( + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 248 => [ 'id' => 240, 'form_id' => 'HR3250', - 'form_title' => 'CPP Early Retirement Second Letter (Instructions)', + 'form_title' => 'CPP Early Retirement Second Letter (Instructions)', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '', + 'form_purpose' => 'Ministry of Social Development clients aged 60 (or nearing 60) to 65 years, may be eligible for Canada Pension Plan (CPP) early retirement benefits. This is a follow up letter when MSD has no record that the client has applied for the benefits yet.', + 'notes' => 'Letter. Worker fills, Print', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -5325,22 +5750,23 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => false, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSIDynamicIFooter_CorrespWidth7.5Arial8.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 241 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 249 => [ 'id' => 241, 'form_id' => 'HR3265', 'form_title' => 'Notice of End of Assignment of Maintenance Rights', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in RF or ICM or PPM. FMEP was discontinued.', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -5348,19 +5774,21 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 242 => - array ( + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 250 => [ 'id' => 242, 'form_id' => 'HR3266', 'form_title' => 'Client Identification Level 1', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'special features: attachment, +Worker fills, Print; Client digital signature', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -5369,22 +5797,23 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 243 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 251 => [ 'id' => 243, 'form_id' => 'HR3267', 'form_title' => 'Two Year Independence Assessment', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Inactivated in ICM, not in RF, not in PPM. Two Year independence policy repealed in 2019', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -5392,19 +5821,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 244 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 252 => [ 'id' => 244, 'form_id' => 'HR3271', 'form_title' => 'Identification Verification Checklist', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '', + 'form_purpose' => 'Captures information regarding Information required for Identification ', + 'notes' => 'form, barcode, Worker fills, Print', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -5413,14 +5843,15 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 245 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => 'Prevention & Loss Management Services', + 'deleted_at' => NULL, + ], + 253 => [ 'id' => 245, 'form_id' => 'HR3274', 'form_title' => 'Initial Letter to Respondent - No Order', @@ -5439,10 +5870,11 @@ public function run() 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSIDynamicIFooter_CorrespWidth7.5Arial8.xdp', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 246 => - array ( + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 254 => [ 'id' => 246, 'form_id' => 'HR3276', 'form_title' => 'General Letter for More Information', @@ -5461,10 +5893,11 @@ public function run() 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSIDynamicIFooter_CorrespWidth7.5Arial8.xdp', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 247 => - array ( + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 255 => [ 'id' => 247, 'form_id' => 'HR3277', 'form_title' => 'No Consent Reached', @@ -5483,10 +5916,11 @@ public function run() 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSIDynamicIFooter_CorrespWidth7.5Arial8.xdp', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 248 => - array ( + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 256 => [ 'id' => 248, 'form_id' => 'HR3278', 'form_title' => 'Consent Offer', @@ -5505,10 +5939,11 @@ public function run() 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSIDynamicIFooter_CorrespWidth7.5Arial8.xdp', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 249 => - array ( + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 257 => [ 'id' => 249, 'form_id' => 'HR3279', 'form_title' => 'Consent Reached', @@ -5527,10 +5962,11 @@ public function run() 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSIDynamicIFooter_CorrespWidth7.5Arial8.xdp', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 250 => - array ( + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 258 => [ 'id' => 250, 'form_id' => 'HR3280', 'form_title' => 'Existing Order No Change Necessary', @@ -5549,10 +5985,11 @@ public function run() 'footer_fragment_path' => 'N/A', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 251 => - array ( + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 259 => [ 'id' => 251, 'form_id' => 'HR3281', 'form_title' => 'Court Missed/New Court Date', @@ -5571,10 +6008,11 @@ public function run() 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSIDynamicIFooter_CorrespWidth7.5Arial8.xdp', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 252 => - array ( + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 260 => [ 'id' => 252, 'form_id' => 'HR3282', 'form_title' => 'Maintenance Order and File with FMEP', @@ -5593,10 +6031,11 @@ public function run() 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSIDynamicIFooter_CorrespWidth7.5Arial8.xdp', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 253 => - array ( + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 261 => [ 'id' => 253, 'form_id' => 'HR3283', 'form_title' => 'DNA Respondent Request', @@ -5615,10 +6054,11 @@ public function run() 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSIDynamicIFooter_CorrespWidth7.5Arial8.xdp', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 254 => - array ( + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 262 => [ 'id' => 254, 'form_id' => 'HR3296', 'form_title' => 'FMEP File Review Letter - Respondent', @@ -5637,10 +6077,11 @@ public function run() 'footer_fragment_path' => 'N/A', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 255 => - array ( + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 263 => [ 'id' => 255, 'form_id' => 'HR3298', 'form_title' => 'Advice to Family Maintenance Worker', @@ -5659,18 +6100,19 @@ public function run() 'footer_fragment_path' => 'N/A', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 256 => - array ( + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 264 => [ 'id' => 256, 'form_id' => 'HR3301', 'form_title' => 'Provincial Affidavit for Family Maintenance Worker', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'FMEP discontinued mid 2010s, there are no Family Maintenance workers any more, not active in ICM, RF, PPM', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -5678,21 +6120,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 257 => - array ( + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 265 => [ 'id' => 257, 'form_id' => 'HR3302', 'form_title' => 'Maintenance Order and File with FMEP', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'FMEP discontinued mid 2010s, not active in ICM, RF or PPM', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -5700,13 +6143,14 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 258 => - array ( + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 266 => [ 'id' => 258, 'form_id' => 'HR3309', 'form_title' => 'FMEP Court Date', @@ -5725,16 +6169,17 @@ public function run() 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSIDynamicIFooter_CorrespWidth7.5Arial8.xdp', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 259 => - array ( + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 267 => [ 'id' => 259, 'form_id' => 'HR3315', 'form_title' => 'Notice of Change due to Reconsideration or Appeal', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '', + 'form_purpose' => 'This letter is to inform the client of changes that have been implemented to their assistance file as a result of a decision on their appeal or reconsideration.', + 'notes' => 'letter', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -5743,20 +6188,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => false, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSIDynamicIFooterPLMS_FormWidth7.5Arial10.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 260 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 268 => [ 'id' => 260, 'form_id' => 'HR3317', 'form_title' => 'MSO Eligibility - PWD Clients Letter', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '', + 'form_purpose' => 'MSO Notification: Letter regarding qualification for MSO. ', + 'notes' => 'Letter. Worker fills, Print', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -5765,20 +6211,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => false, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSIDynamicIFooter_Corresp_RightalighWidth7Arial8.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 261 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 269 => [ 'id' => 261, 'form_id' => 'HR3317B', 'form_title' => 'MSO Eligibility - PPMB Clients letter', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '', + 'form_purpose' => 'MSO Eligibility - PPMB Clients Letter', + 'notes' => 'Letter. Worker fills, Print', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -5787,42 +6234,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => false, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSIDynamicIFooter_Corresp_RightalighWidth7Arial8.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 262 => - array ( - 'id' => 262, - 'form_id' => 'HR3318A', - 'form_title' => 'Original Ministry Decision - EA & PWD', - 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSIDynamicIFooter_CorrespWidth7.5Arial8.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 263 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 270 => [ 'id' => 263, 'form_id' => 'HR3320', 'form_title' => 'Request for Non-Local Medical Transportation Assistance', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Digital Signature', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -5832,16 +6258,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 264 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 271 => [ 'id' => 264, 'form_id' => 'HR3323', - 'form_title' => 'Court Clerk (agreement)', + 'form_title' => 'Court Clerk (agreement)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => 'Footer fragment path: ?C:\\ICMAdobeFragments\\SDSIDynamicIFooter_CorrespWidth7.5Arial8.xdp', @@ -5857,18 +6284,19 @@ public function run() 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSIDynamicIFooter_CorrespWidth7.5Arial8.xdp', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 265 => - array ( + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 272 => [ 'id' => 265, 'form_id' => 'HR3324', 'form_title' => 'Legal Counsel Review', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'FMEP discontinued mid 2010s. Form not in ICM, RF or PPM.', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -5876,13 +6304,14 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 266 => - array ( + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 273 => [ 'id' => 266, 'form_id' => 'HR3325', 'form_title' => 'Child Support Agreement', @@ -5901,10 +6330,11 @@ public function run() 'footer_fragment_path' => 'N/A', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 267 => - array ( + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 274 => [ 'id' => 267, 'form_id' => 'HR3326', 'form_title' => 'Child Support Agreement Letter', @@ -5923,13 +6353,14 @@ public function run() 'footer_fragment_path' => 'N/A', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 268 => - array ( + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 275 => [ 'id' => 268, 'form_id' => 'HR3341', - 'form_title' => 'CPPD Information Letter for Approved PWD Applicants � Second Letter', + 'form_title' => 'CPPD Information Letter for Approved PWD Applicants - Second Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => 'Footer fragment path: ?C:\\ICMAdobeFragments\\SDSIDynamicIFooter_CorrespWidth7.5Arial8.xdp', @@ -5941,20 +6372,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => false, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSIDynamicIFooter_CorrespWidth7.5Arial8.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 269 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 276 => [ 'id' => 269, 'form_id' => 'HR3342', - 'form_title' => 'CPPD Package & Consent to Deduct and Payment Form � Second Letter', + 'form_title' => 'CPPD Package & Consent to Deduct and Payment Form - Second Letter', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '', + 'form_purpose' => 'A second letter in regard to the client applying for Canada Pension Plan Disability (CPPD) benefits. MSD sent a Canada Pension Plan Disability (CPPD) Application Package as well as the Consent to Deduct Payment form (ISP1613) for the client to complete.The CPPD package had not been returned MSD office by the client.', + 'notes' => 'letter acknowledgement required, mailed to client. 2nd request for CPPD application with cheque hold indication.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -5963,20 +6395,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => false, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSI_CPP_DynamicIFooter_CorrespWidth7Arial8.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 270 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 277 => [ 'id' => 270, 'form_id' => 'HR3343', - 'form_title' => 'CPPD Package & Consent to Deduct and Payment Form � Initial Letter', + 'form_title' => 'CPPD Package & Consent to Deduct and Payment Form - Initial Letter', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '', + 'form_purpose' => 'An intial letter in regard to the client applying for Canada Pension Plan Disability (CPPD) benefits. MSD sent a Canada Pension Plan Disability (CPPD) Application Package as well as the Consent to Deduct Payment form (ISP1613) for the client to complete.', + 'notes' => 'Has barcode. Letter mailed to client with acknowledgement required. Initial CPPD application request letter.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -5985,20 +6418,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => false, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSI_CPP_DynamicIFooter_CorrespWidth7Arial8.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 271 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 278 => [ 'id' => 271, 'form_id' => 'HR3344', - 'form_title' => 'CPPD Information Letter for Approved PWD Applicants � Initial Letter', + 'form_title' => 'CPPD Information Letter for Approved PWD Applicants - Initial Letter', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '', + 'form_purpose' => 'A letter in regard to the client applying for Canada Pension Plan Disability (CPPD) benefits. As a Persons with Disabilities (PWD) client, they may also be eligible for CPPD benefits through the federal government. The ministry is committed to assisting all new PWD clients determine their eligibility for this program.', + 'notes' => 'Has barcode. Letter is printed and mailed to client, acknowledgement required. Initial letter requesting ISP1613 and ISP2000 or SOC', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -6007,14 +6441,15 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => false, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSI_CPP_DynamicIFooter_CorrespWidth7Arial8.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 272 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 279 => [ 'id' => 272, 'form_id' => 'HR3351AE', 'form_title' => 'Section 25 Referral', @@ -6034,9 +6469,10 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => true, - ), - 273 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 280 => [ 'id' => 273, 'form_id' => 'HR3351E', 'form_title' => 'Section 25 Referral', @@ -6056,17 +6492,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => true, - ), - 274 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 281 => [ 'id' => 274, 'form_id' => 'HR3353E', 'form_title' => 'Essential Financial Supports', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -6074,21 +6511,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 275 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 282 => [ 'id' => 275, 'form_id' => 'HR3354E', 'form_title' => 'Client Consent to Release Information', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -6096,21 +6534,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 276 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 283 => [ 'id' => 276, 'form_id' => 'HR3355E', 'form_title' => 'Training - Client Authorization to Pay Institution Directly', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -6118,21 +6557,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 277 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 284 => [ 'id' => 277, 'form_id' => 'HR3356E', 'form_title' => 'Client Application - Wage Subsidy & JCP', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -6140,21 +6580,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 278 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 285 => [ 'id' => 278, 'form_id' => 'HR3357E', 'form_title' => 'Authorization to Quit', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -6162,21 +6603,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 279 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 286 => [ 'id' => 279, 'form_id' => 'HR3358E', 'form_title' => 'Apprentice Application and Agreement', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -6184,21 +6626,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 280 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 287 => [ 'id' => 280, 'form_id' => 'HR3359E', 'form_title' => 'Client Eligibility Check', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -6206,21 +6649,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 281 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 288 => [ 'id' => 281, 'form_id' => 'HR3360E', 'form_title' => 'Debt Assignment Agreement', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -6228,21 +6672,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 282 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 289 => [ 'id' => 282, 'form_id' => 'HR3361E', 'form_title' => 'Authorization to Collect Information from Training Institution', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -6250,21 +6695,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 283 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 290 => [ 'id' => 283, 'form_id' => 'HR3362E', 'form_title' => 'Agreement Self-employment', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -6272,21 +6718,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 284 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 291 => [ 'id' => 284, 'form_id' => 'HR3363E', 'form_title' => 'Agreement Training', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -6294,21 +6741,45 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 285 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 292 => [ + 'id' => 285, + 'form_id' => 'HR3364E', + 'form_title' => 'Client Financial Agreement Wage Subsidy', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => '2025 June: business area identified as inactive', + 'fill_type_id' => NULL, + 'decommissioned' => true, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 293 => [ 'id' => 286, 'form_id' => 'HR3365E', 'form_title' => 'Client Application - Training', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -6316,21 +6787,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 286 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 294 => [ 'id' => 287, 'form_id' => 'HR3366E', 'form_title' => 'Client Application - Self Employment', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -6338,19 +6810,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 287 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 295 => [ 'id' => 288, 'form_id' => 'HR3367AE', 'form_title' => 'Employment Readiness Information Questionnaire', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'barcode, digital signature', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -6359,22 +6832,23 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 288 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 296 => [ 'id' => 289, 'form_id' => 'HR3368E', 'form_title' => 'Agreement Unpaid work experience placement', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -6382,21 +6856,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 289 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 297 => [ 'id' => 290, 'form_id' => 'HR3369E', 'form_title' => 'Agreement Employer Wage Subsidy', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Not on Resource Finder', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -6404,21 +6879,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 290 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 298 => [ 'id' => 291, 'form_id' => 'HR3370E', 'form_title' => 'Self Employment - Participant Monthly Report', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -6426,21 +6902,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 291 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 299 => [ 'id' => 292, 'form_id' => 'HR3372E', 'form_title' => 'Direct Deposit Application', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -6448,21 +6925,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 292 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 300 => [ 'id' => 293, 'form_id' => 'HR3379E', 'form_title' => 'Agreement JCP', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -6470,21 +6948,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 293 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 301 => [ 'id' => 294, 'form_id' => 'HR3380E', 'form_title' => 'Client Action Plan', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -6492,19 +6971,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 294 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 302 => [ 'id' => 295, 'form_id' => 'HR3381E', 'form_title' => 'Application For Service Not Approved', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'June 2/2025 - Business advised ISD BA that form is no longer used.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -6514,21 +6994,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 295 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 303 => [ 'id' => 296, 'form_id' => 'HR3382E', 'form_title' => 'Referral to Specialized Assessments', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -6536,21 +7017,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 296 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 304 => [ 'id' => 297, 'form_id' => 'HR3383E', 'form_title' => 'Information Missing from Application', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -6558,21 +7040,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 297 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 305 => [ 'id' => 298, 'form_id' => 'HR3384E', 'form_title' => 'Application for Service Approved', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -6580,21 +7063,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 298 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 306 => [ 'id' => 299, 'form_id' => 'HR3385E', 'form_title' => 'Contract Requirement - Receipt Required', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -6602,21 +7086,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 299 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 307 => [ 'id' => 300, 'form_id' => 'HR3386E', 'form_title' => 'Overpayment Established', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -6624,21 +7109,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 300 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 308 => [ 'id' => 301, 'form_id' => 'HR3387E', 'form_title' => 'Application Received Too early', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -6646,21 +7132,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 301 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 309 => [ 'id' => 302, 'form_id' => 'HR3388E', 'form_title' => 'Termination of Agreement', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -6668,21 +7155,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 302 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 310 => [ 'id' => 303, 'form_id' => 'HR3389E', 'form_title' => 'Letter to Trustee: Participant in Bankruptcy', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -6691,20 +7179,21 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\ELMSD_Ministry_Name_Fragment.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 303 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 311 => [ 'id' => 304, 'form_id' => 'HR3390E', 'form_title' => 'Appointment Reminder', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -6712,21 +7201,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 304 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 312 => [ 'id' => 305, 'form_id' => 'HR3391E', 'form_title' => 'Case Management File Closure: To client', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -6734,21 +7224,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 305 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 313 => [ 'id' => 306, 'form_id' => 'HR3392E', 'form_title' => 'Case Management File Closure: To Agency', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -6756,21 +7247,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 306 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 314 => [ 'id' => 307, 'form_id' => 'HR3393E', 'form_title' => 'Additional Information for Alternative Funder', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -6778,21 +7270,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 307 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 315 => [ 'id' => 308, 'form_id' => 'HR3394E', 'form_title' => 'Letter to External Source - Additional Information Required', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -6800,21 +7293,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 308 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 316 => [ 'id' => 309, 'form_id' => 'HR3395E', - 'form_title' => 'Letter to Apprentice - Approval Letter (Financial Breakdown)', + 'form_title' => 'Letter to Apprentice - Approval Letter (Financial Breakdown)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -6822,21 +7316,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 309 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 317 => [ 'id' => 310, 'form_id' => 'HR3396E', 'form_title' => 'Letter to External Source - Verification of Information', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -6844,21 +7339,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 310 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 318 => [ 'id' => 311, 'form_id' => 'HR3397E', 'form_title' => 'ATQ Approved', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -6866,21 +7362,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 311 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 319 => [ 'id' => 312, 'form_id' => 'HR3398E', 'form_title' => 'ATQ Denied', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -6888,21 +7385,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 312 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 320 => [ 'id' => 313, 'form_id' => 'HR3399E', 'form_title' => 'Template Correspondence', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -6910,21 +7408,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 313 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 321 => [ 'id' => 314, 'form_id' => 'HR3400E', 'form_title' => 'Letter to Self Employment Clients', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -6932,21 +7431,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 314 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 322 => [ 'id' => 315, 'form_id' => 'HR3450E', 'form_title' => 'ESC Workshop Tracking Form', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -6954,21 +7454,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 315 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 323 => [ 'id' => 316, 'form_id' => 'HR3452E', 'form_title' => 'Self Employment - Out of Area Travel Request', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -6976,21 +7477,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 316 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 324 => [ 'id' => 317, 'form_id' => 'HR3453E', 'form_title' => 'Self Employment - Out of Area Travel Report', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -6998,21 +7500,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 317 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 325 => [ 'id' => 318, 'form_id' => 'HR3454E', 'form_title' => 'Self Employment - Business Concept Proposal', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -7020,21 +7523,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 318 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 326 => [ 'id' => 319, 'form_id' => 'HR3456E', 'form_title' => 'Undertaking and Indemnity payment not received and Affadavit cheque or Direct Deposit', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -7042,21 +7546,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 319 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 327 => [ 'id' => 320, 'form_id' => 'HR3457E', 'form_title' => 'Client Financial Assessment Worksheet', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -7064,19 +7569,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 320 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 328 => [ 'id' => 321, 'form_id' => 'HR3459E', 'form_title' => 'Client Application - Job Starts / Job Seach Financial Supports', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Bar code, Dig Sig, HTML5, OES portal checkbox', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -7085,20 +7591,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 321 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 329 => [ 'id' => 322, 'form_id' => 'HR3460', - 'form_title' => 'Apprentice Online Portal � Application for Support - NCM Apprentice', + 'form_title' => 'Apprentice Online Portal - Application for Support - NCM Apprentice', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Is this the same form as HR3460E?', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -7108,19 +7615,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 322 => - array ( + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 330 => [ 'id' => 323, 'form_id' => 'HR3461', 'form_title' => 'PWD/MNS Denial Letter', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -7131,18 +7639,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSIDynamicIFooter_CorrespWidth7.5Arial8.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 323 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 331 => [ 'id' => 324, 'form_id' => 'HR3462', 'form_title' => 'Health Supplement Cancellation Letter', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -7152,19 +7661,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 324 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 332 => [ 'id' => 325, 'form_id' => 'HR3463', 'form_title' => 'Health Supplement Denial Letter', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not found in EA Case or SR attachments New from Template - likely this is on a Health Supplement-related SR. ', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -7173,20 +7683,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => false, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSIDynamicIFooter_CorrespWidth7.5Arial8.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 325 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 333 => [ 'id' => 326, 'form_id' => 'HR3464', 'form_title' => 'Health Supplement More Information Letter', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -7196,19 +7707,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 326 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 334 => [ 'id' => 327, 'form_id' => 'HR3465', 'form_title' => 'SDSI PWD/MNS Approval Letter', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Worker fills, Printed. ', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => 3, @@ -7217,19 +7729,43 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => false, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSIDynamicIFooter_CorrespWidth7.5Arial8.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 327 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 335 => [ 'id' => 328, 'form_id' => 'HR3466', 'form_title' => 'Health Supplement Approval Letter', 'ministry_id' => 2, 'form_purpose' => NULL, + 'notes' => 'Not found in EA Case or SR attachments New from Template - likely this is on a Health Supplement-related SR attachments New from Template. ', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSIDynamicIFooter_CorrespWidth7.5Arial8.xdp', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 336 => [ + 'id' => 441, + 'form_id' => 'CF0219', + 'form_title' => 'Search of Persons Entering a Custody Centre', + 'ministry_id' => 1, + 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, @@ -7240,13 +7776,14 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSIDynamicIFooter_CorrespWidth7.5Arial8.xdp', + 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 328 => - array ( + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 337 => [ 'id' => 329, 'form_id' => 'HR3468', 'form_title' => 'Second Request of Statement of Contribution', @@ -7266,15 +7803,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => true, - ), - 329 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 338 => [ 'id' => 330, 'form_id' => 'HR3470', 'form_title' => 'Request for Status of CPP Application letter', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '', + 'form_purpose' => 'A letter sent to the client inquiring about the status of their CPP Application. Request for CPPD application status', + 'notes' => 'Has barcode. Letter printed and mailed to client, acknowledgement required.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -7283,20 +7821,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => false, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSI_CPP_DynamicIFooter_CorrespWidth7Arial8.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 330 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 339 => [ 'id' => 331, 'form_id' => 'HR3472', 'form_title' => 'Tax Exemption Letter', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '', + 'form_purpose' => 'letter to client regarding cheque issued for tax exemption', + 'notes' => 'Letter printed and mailed to client, no acknowledgement required.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -7305,20 +7844,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 331 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 340 => [ 'id' => 332, 'form_id' => 'HR3473', 'form_title' => 'Bus Pass IMM Application Form', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Barcode', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -7328,13 +7868,14 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 332 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 341 => [ 'id' => 333, 'form_id' => 'HR3474', 'form_title' => 'IMM Ten Year Residency Reached', @@ -7354,17 +7895,42 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => true, - ), - 333 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 342 => [ 'id' => 334, 'form_id' => 'HR3475', 'form_title' => 'Bus Pass Denial Letter', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Letter', 'fill_type_id' => NULL, 'decommissioned' => false, + 'form_frequency_id' => 1, + 'form_reach_id' => 1, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 343 => [ + 'id' => 639, + 'form_id' => 'CF1013A', + 'form_title' => 'Unknown', + 'ministry_id' => 1, + 'form_purpose' => NULL, + 'notes' => 'inDesign, +?', + 'fill_type_id' => NULL, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -7375,16 +7941,18 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 334 => - array ( + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 344 => [ 'id' => 335, 'form_id' => 'HR3500', 'form_title' => 'Bus Pass Consent Form', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '', + 'form_purpose' => 'Form that gives the ministry consent to the disclosure of any personal information to a designated third party that is relevant to eligibility for the BC Bus Pass Program.', + 'notes' => 'Barcode, +Client fills, Returns, Scan', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -7393,20 +7961,23 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 335 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 345 => [ 'id' => 336, 'form_id' => 'HR3502', 'form_title' => 'Administrative Payment Coupon', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Generated by Script Object, +Print form +Barcode', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -7415,20 +7986,22 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 336 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 346 => [ 'id' => 337, 'form_id' => 'HR3503', 'form_title' => 'OAS Inquiry', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '', + 'form_purpose' => 'This form is an OAS/GIS Inquiry form submitted to Service Canada to get the client’s past OAS/GIS entitlements.', + 'notes' => 'program: Senior\'s Supplement, +print form, Worker fills', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -7437,20 +8010,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 337 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 347 => [ 'id' => 338, 'form_id' => 'HR3504', 'form_title' => 'OPR Address Inquiry', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Barcode', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -7460,21 +8034,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 338 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 348 => [ 'id' => 339, 'form_id' => 'HR3526E', 'form_title' => 'Project Based Labour Market Training Agreement', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -7482,13 +8057,14 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 339 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 349 => [ 'id' => 340, 'form_id' => 'HR3541', 'form_title' => 'Application to Obtain an Order', @@ -7507,10 +8083,11 @@ public function run() 'footer_fragment_path' => 'N/A', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 340 => - array ( + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 350 => [ 'id' => 341, 'form_id' => 'HR3542', 'form_title' => 'Application Respecting Existing Orders or Agreements', @@ -7529,10 +8106,11 @@ public function run() 'footer_fragment_path' => 'N/A', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 341 => - array ( + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 351 => [ 'id' => 342, 'form_id' => 'HR3545', 'form_title' => 'FMEP List of Payments', @@ -7551,10 +8129,11 @@ public function run() 'footer_fragment_path' => 'N/A', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 342 => - array ( + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 352 => [ 'id' => 343, 'form_id' => 'HR3546', 'form_title' => 'FMEP Direct Deposit Form', @@ -7573,10 +8152,11 @@ public function run() 'footer_fragment_path' => 'N/A', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 343 => - array ( + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 353 => [ 'id' => 344, 'form_id' => 'HR3547', 'form_title' => 'FMEP Payment History', @@ -7595,16 +8175,17 @@ public function run() 'footer_fragment_path' => 'N/A', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 344 => - array ( + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 354 => [ 'id' => 345, 'form_id' => 'HR3548', 'form_title' => 'EPBC Referral from Combined EP', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '', + 'form_purpose' => 'Template letter to advise client of shift from ATI or SIWS to WorkBC ES portion of Dual EP, and requirement to attend WorkBC ES following initial six month period.', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -7613,20 +8194,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => false, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSIDynamicIFooter_CorrespWidth7Arial8.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 345 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 355 => [ 'id' => 346, 'form_id' => 'HR3549', 'form_title' => 'EPBC Self-Referral from Combined EP', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '', + 'form_purpose' => 'Template letter to advise client of shift from ATI or SIWS to WorkBC ES portion of Dual EP, following WorkBC ES acceptance for case management within initial six month period.', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -7635,42 +8217,44 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => false, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSIDynamicIFooter_CorrespWidth7Arial8.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 346 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 356 => [ 'id' => 347, 'form_id' => 'HR3552', 'form_title' => 'Employment Assistance Benefits', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'decommissioned on 2024 Nov 20', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 347 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 357 => [ 'id' => 348, 'form_id' => 'HR3554', 'form_title' => 'OPA Decision Report', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -7679,86 +8263,67 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 348 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 358 => [ 'id' => 349, 'form_id' => 'HR3557', 'form_title' => '1st In Person Appt', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'retired', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => false, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSI_PLMS_DynamicIFooter_CorrespWidth7Arial8.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 349 => - array ( - 'id' => 1013, - 'form_id' => 'CF4178', - 'form_title' => '', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 350 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 359 => [ 'id' => 350, 'form_id' => 'HR3558', 'form_title' => '1st Telephone Appt', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'retired', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => false, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSI_PLMS_DynamicIFooter_CorrespWidth7Arial8.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 351 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 360 => [ 'id' => 351, 'form_id' => 'HR3559', 'form_title' => '2nd In Person Appt', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -7767,20 +8332,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => false, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSI_PLMS_DynamicIFooter_CorrespWidth7Arial8.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 352 => - array ( + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 361 => [ 'id' => 352, 'form_id' => 'HR3560', 'form_title' => '2nd Telephone Appt', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -7789,20 +8355,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => false, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSI_PLMS_DynamicIFooter_CorrespWidth7Arial8.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 353 => - array ( + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 362 => [ 'id' => 353, 'form_id' => 'HR3561', 'form_title' => 'CRV No-Show Denial', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '', + 'form_purpose' => 'PLMS Notice of Decision – Denial for CRV Non-Attendance', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -7811,20 +8378,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => false, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSI_PLMS_DynamicIFooter_CorrespWidth7Arial8.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 354 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 363 => [ 'id' => 354, 'form_id' => 'HR3562', 'form_title' => 'SD Safety Assessment', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Is this still an active form? (Not in PPM, RF, ICM or SR FDD)', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -7834,19 +8402,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 355 => - array ( + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 364 => [ 'id' => 355, 'form_id' => 'HR3563', 'form_title' => 'Respondent Detail', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Is this still an active form? (Not in PPM, RF, ICM or SR FDD)', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -7856,19 +8425,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 356 => - array ( + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 365 => [ 'id' => 356, 'form_id' => 'HR3637', 'form_title' => 'School Start Up Assistance', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Digital Signature', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -7878,19 +8448,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 357 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 366 => [ 'id' => 357, 'form_id' => 'HR3644', 'form_title' => 'AEE Exhausted to MSO letter', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Letter', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -7899,20 +8470,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => false, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\SDSIDynamicIFooter_Corresp_RightalighWidth7Arial8.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 358 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 367 => [ 'id' => 358, 'form_id' => 'HR3687E', 'form_title' => 'Disability Related Employment Needs Assessment', - 'ministry_id' => 2, + 'ministry_id' => 4, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -7923,18 +8495,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\ELMSD_Renewal_Logo_Footer_Frag.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 359 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 368 => [ 'id' => 359, 'form_id' => 'HR3688E', 'form_title' => 'Client Needs Assessment', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => ' June 2/2025 - Business advised ISD BA that form is no longer used.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -7945,18 +8518,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\ELMSD_Renewal_Logo_Footer_Frag.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 360 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 369 => [ 'id' => 360, 'form_id' => 'HR3688R', - 'form_title' => 'Client Needs ASsessment (ICM Version)', + 'form_title' => 'Client Needs ASsessment (ICM Version)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Filled inside ICM. Generated via Program Referral SR Activity Plan (ELM-304 - WorkBC Referral)', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -7966,19 +8540,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 361 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 370 => [ 'id' => 361, 'form_id' => 'HR3689E', - 'form_title' => 'Assistive Technology Intake', + 'form_title' => 'Assistive Technology Services Client Intake', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -7989,18 +8564,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\ELMSD_Renewal_Logo_Footer_Frag.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 362 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 371 => [ 'id' => 362, 'form_id' => 'HR3690E', 'form_title' => 'Assistive Technology Services Client Agreement Form', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Digital Signature', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -8011,18 +8587,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\ELMSD_Renewal_Logo_Footer_Frag.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 363 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 372 => [ 'id' => 363, 'form_id' => 'HR3691E', 'form_title' => 'Client Service Application', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Digital Signature', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -8033,18 +8610,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\ELMSD_Renewal_Logo_Footer_Frag.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 364 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 373 => [ 'id' => 364, 'form_id' => 'HR3692E', 'form_title' => 'Client Service Agreement', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Digital Signature', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -8055,18 +8633,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\ELMSD_Renewal_Logo_Footer_Frag.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 365 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 374 => [ 'id' => 365, 'form_id' => 'HR3693E', 'form_title' => 'Self-Employment Out of Area Travel Request/Report', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Digital Signature', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -8077,18 +8656,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\ELMSD_Renewal_Logo_Footer_Frag.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 366 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 375 => [ 'id' => 366, 'form_id' => 'HR3694E', 'form_title' => 'Work Experience Agreement', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Digital Signature', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -8099,18 +8679,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\ELMSD_Renewal_Logo_Footer_Frag.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 367 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 376 => [ 'id' => 367, 'form_id' => 'HR3695AE', 'form_title' => 'Section 25 Referral', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Digital Signature, HTML5', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -8121,18 +8702,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\ELMSD_Renewal_Logo_Footer_Frag.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 368 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 377 => [ 'id' => 368, 'form_id' => 'HR3695E', 'form_title' => 'Section 25 Referral', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Digital Signature, HTML5', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -8143,18 +8725,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\ELMSD_Renewal_Logo_Footer_Frag.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 369 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 378 => [ 'id' => 369, 'form_id' => 'HR3696E', 'form_title' => 'Work Experience - Wage Subsidy Employer Application', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -8165,40 +8748,43 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\ELMSD_Renewal_Logo_Footer_Frag.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 370 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 379 => [ 'id' => 370, 'form_id' => 'HR3697E', 'form_title' => 'Essential Financial Supports', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Livecycle and Orbeon versions exist, +Digital Signature', 'fill_type_id' => NULL, 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, + 'form_frequency_id' => 4, + 'form_reach_id' => 3, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => false, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\ELMSD_Renewal_Logo_Footer_Frag.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 371 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 380 => [ 'id' => 371, 'form_id' => 'HR3698E', - 'form_title' => 'Client Consent to Collect, Use and Disclose Information', - 'ministry_id' => 2, + 'form_title' => 'WorkBC Employment Services Client Consent to Collect, Use and Disclose Information', + 'ministry_id' => 4, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Digital Signature, HTML5', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -8209,18 +8795,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\ELMSD_Renewal_Logo_Footer_Frag.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 372 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 381 => [ 'id' => 372, 'form_id' => 'HR3699E', 'form_title' => 'Request for Authorization to Quit Employment', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Digital Signature', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -8231,18 +8818,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\ELMSD_Renewal_Logo_Footer_Frag.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 373 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 382 => [ 'id' => 373, 'form_id' => 'HR3700E', 'form_title' => 'Debt Assignment Agreement', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Signature enabled portal form', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -8253,18 +8841,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\ELMSD_Renewal_Logo_Footer_Frag.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 374 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 383 => [ 'id' => 374, 'form_id' => 'HR3701E', 'form_title' => 'Work Experience - Wage Subsidy Claim Form', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'This is a form used by Employers and submitted to WorkBC', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -8275,12 +8864,13 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\ELMSD_Renewal_Logo_Footer_Frag.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 375 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 384 => [ 'id' => 375, 'form_id' => 'HR3702E', 'form_title' => 'Action Plan', @@ -8297,18 +8887,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\ELMSD_Renewal_Logo_Footer_Frag.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 376 => - array ( + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 385 => [ 'id' => 376, 'form_id' => 'HR3703E', 'form_title' => 'Self-Employment Business Concept Development and Acceptance', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Digital Signature, HTML5', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -8319,18 +8910,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\ELMSD_Renewal_Logo_Footer_Frag.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 377 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 386 => [ 'id' => 377, 'form_id' => 'HR3704E', 'form_title' => 'Apprentice Services Application', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Received in ICM from Portal', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -8341,18 +8933,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\ELMSD_Renewal_Logo_Footer_Frag.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 378 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 387 => [ 'id' => 378, 'form_id' => 'HR3709E', 'form_title' => 'Client Consent to Publication', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -8361,20 +8954,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => false, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\ELMSD_Renewal_Logo_Footer_Frag.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 379 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 388 => [ 'id' => 379, 'form_id' => 'HR3710E', 'form_title' => 'Direct Deposit Application/Change Request', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Received in ICM from Portal', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -8385,18 +8979,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => 'C:\\ICMAdobeFragments\\ELMSD_Renewal_Logo_Footer_Frag.xdp', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 380 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 389 => [ 'id' => 380, 'form_id' => 'HR3721', 'form_title' => 'CPP Acknowledgment Letter', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '', + 'form_purpose' => 'A letter notifying SDPR clients that their CPP application has been sent to Service Canada for review.', + 'notes' => 'Letter printed and mailed to client, acknowledgement required. Letter to client acknowledging receipt of CPPD application and next steps', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -8405,44 +9000,47 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 381 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 390 => [ 'id' => 381, 'form_id' => 'HR3727', 'form_title' => 'Breathing Device Request and Justification', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Worker fills, Printed, Scan; Client fills, Returns, Scan', 'fill_type_id' => NULL, 'decommissioned' => false, - 'form_frequency_id' => NULL, + 'form_frequency_id' => 4, 'form_reach_id' => 1, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 382 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 391 => [ 'id' => 382, 'form_id' => 'HR3736E', - 'form_title' => 'Work Experience Opportunity � Client Agreement', + 'form_title' => 'Work Experience Opportunity - Client Agreement', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Both in ICM and in Extranet as a Standalone', + 'notes' => 'Both in ICM and in Extranet as a Standalone, +2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -8450,21 +9048,24 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 383 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 392 => [ 'id' => 383, 'form_id' => 'HR3737E', - 'form_title' => 'Work Experience Opportunity � Host Application', + 'form_title' => 'Work Experience Opportunity Host Application', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Both in ICM and in Extranet as a Standalone', + 'notes' => 'Both in ICM and in Extranet as a Standalone, +digital signature +2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -8472,21 +9073,23 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 384 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 393 => [ 'id' => 384, 'form_id' => 'HR3738E', - 'form_title' => 'Work Experience Opportunity � Client Application', + 'form_title' => 'Work Experience Opportunity - Client Application', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Both in ICM and in Extranet as a Standalone', + 'notes' => 'Both in ICM and in Extranet as a Standalone, +2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -8494,21 +9097,23 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 385 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 394 => [ 'id' => 385, 'form_id' => 'HR3739E', 'form_title' => 'Work Experience Opportunity Agreement', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Both in ICM and in Extranet as a Standalone', + 'notes' => 'Both in ICM and in Extranet as a Standalone, +2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -8516,19 +9121,21 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 386 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 395 => [ 'id' => 386, 'form_id' => 'HR4034', 'form_title' => 'Signal Letter', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'storeXML, +Worker fills, Printed', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -8537,22 +9144,23 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 387 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 396 => [ 'id' => 387, - 'form_id' => 'HR3505', - 'form_title' => 'Threat Response Immediate Protocol (TRIP)', + 'form_id' => 'Deleted', + 'form_title' => 'Deleted', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -8560,21 +9168,23 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 388 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 397 => [ 'id' => 388, 'form_id' => 'HR5620E', 'form_title' => 'Client Consent to Publication', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'digital signature, +2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -8582,19 +9192,21 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 389 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 398 => [ 'id' => 389, 'form_id' => 'HRWS01', 'form_title' => 'Administrative Under payments / Error', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '', + 'form_purpose' => 'Legislation is silent on the topic of administrative error underpayments. In the spirit of fairness, accountability, and providing client centered service the Ministry will backdate payments for up to 12 calendar months where an administrative error underpayment has been identified.', + 'notes' => 'Letter, +Worker fills, no print', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -8603,20 +9215,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 390 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 399 => [ 'id' => 390, 'form_id' => 'PLMS Online Form', 'form_title' => 'PLMS Online Form', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Is this still an active form? (Not in PPM, RF, ICM or SR FDD). Is there a Form Number?', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -8626,13 +9239,14 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => true, - ), - 391 => - array ( + 'program' => NULL, + 'deleted_at' => NULL, + ], + 400 => [ 'id' => 391, 'form_id' => 'Accountant Confirmation - 60 Day Reminder', 'form_title' => 'AC Reminder - BC Mail Data Form', @@ -8651,32 +9265,34 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 392 => - array ( + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 401 => [ 'id' => 392, 'form_id' => 'Bus Pass 10 Year Residency Letter', 'form_title' => 'Bus Pass 10 Year Residency Letter', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => 'Bus Pass-BC Mail Residency Form', + 'form_purpose' => 'Letter when IMM status expires', + 'notes' => 'Bus Pass-BC Mail Residency Form. Is this HR3473?', 'fill_type_id' => NULL, 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, + 'form_frequency_id' => 1, + 'form_reach_id' => 2, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 393 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 402 => [ 'id' => 393, 'form_id' => 'Bus Pass Application', 'form_title' => 'Bus Pass Application', @@ -8695,34 +9311,36 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 394 => - array ( + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 403 => [ 'id' => 394, 'form_id' => 'Bus Pass IMM Renewal Letter', 'form_title' => 'Bus Pass IMM Renewal Letter', 'ministry_id' => 2, - 'form_purpose' => NULL, + 'form_purpose' => 'Yearly Renewal letter for immigrants', 'notes' => 'Bus Pass-BC Mail Data Form', 'fill_type_id' => NULL, 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, + 'form_frequency_id' => 1, + 'form_reach_id' => 3, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 395 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 404 => [ 'id' => 395, - 'form_id' => 'Bus Pass Initial Application', + 'form_id' => 'HR2848', 'form_title' => 'Bus Pass Initial Application', 'ministry_id' => 2, 'form_purpose' => NULL, @@ -8735,108 +9353,114 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 396 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 405 => [ 'id' => 396, 'form_id' => 'Bus Pass NSF Application', 'form_title' => 'Bus Pass NSF Application', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => 'Bus Pass-BC Mail Data Form', + 'form_purpose' => 'Bus Pass Application Fee failed', + 'notes' => 'Bus Pass-BC Mail Data Form. Is this HR3479?', 'fill_type_id' => NULL, 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, + 'form_frequency_id' => 4, + 'form_reach_id' => 2, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 397 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 406 => [ 'id' => 397, 'form_id' => 'Bus Pass Re-Activation Application', 'form_title' => 'Bus Pass Re-Activation Application', 'ministry_id' => 2, - 'form_purpose' => NULL, + 'form_purpose' => 'Restarting a Bus Pass', 'notes' => 'Bus Pass-BC Mail Data Form', 'fill_type_id' => NULL, 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, + 'form_frequency_id' => 4, + 'form_reach_id' => 2, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 398 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 407 => [ 'id' => 398, 'form_id' => 'Bus Pass Renewal Application', 'form_title' => 'Bus Pass Renewal Application', 'ministry_id' => 2, - 'form_purpose' => NULL, + 'form_purpose' => 'Yearly Renewal for Non IMM users', 'notes' => 'Bus Pass-BC Mail Data Form', 'fill_type_id' => NULL, 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, + 'form_frequency_id' => 1, + 'form_reach_id' => 3, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 399 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 408 => [ 'id' => 399, 'form_id' => 'Bus Pass Renewal Ineligibility Letter', 'form_title' => 'Bus Pass Renewal Ineligibility Letter', 'ministry_id' => 2, - 'form_purpose' => NULL, + 'form_purpose' => 'Denial of Bus Pass', 'notes' => 'Bus Pass-BC Mail Data Form', 'fill_type_id' => NULL, 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, + 'form_frequency_id' => 1, + 'form_reach_id' => 1, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 400 => - array ( + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 409 => [ 'id' => 400, 'form_id' => 'Bus Pass Replacement Application', 'form_title' => 'Bus Pass Replacement Application', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Bus Pass-BC Mail Data Form', + 'notes' => 'Bus Pass-BC Mail Data For, +Not found in EA/Bus Pass Case or SR attachments New from Template.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -8845,22 +9469,23 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 401 => - array ( - 'id' => 1014, - 'form_id' => 'CFL000001AA', - 'form_title' => 'Blank Letterhead', - 'ministry_id' => 1, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 410 => [ + 'id' => 401, + 'form_id' => 'CF(asterix)', + 'form_title' => 'First Appointment - PPMB Review (HR3232)', + 'ministry_id' => NULL, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'this is apparently a record that Deloitte ... they named it "CF*" for some reason, which causes various problems because * will often be read as a wildcard ... this sharepoint is a prime example of something that can\'t handle that :)', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -8871,2172 +9496,14 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 402 => - array ( - 'id' => 401, - 'form_id' => 'CF(asterix)', - 'form_title' => 'First Appointment - PPMB Review (HR3232)', - 'ministry_id' => NULL, - 'form_purpose' => NULL, - 'notes' => 'this is apparently a record that Deloitte ... they named it "CF*" for some reason, which causes various problems because * will often be read as a wildcard ... this sharepoint is a prime example of something that can\'t handle that :)', - 'fill_type_id' => NULL, - 'decommissioned' => true, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 403 => - array ( - 'id' => 402, - 'form_id' => 'CF0002', - 'form_title' => 'Overtime Report', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 404 => - array ( - 'id' => 403, - 'form_id' => 'CF0004', - 'form_title' => 'PCAT Request Form', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 405 => - array ( - 'id' => 404, - 'form_id' => 'CF0010', - 'form_title' => 'Closed Volume Report', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 406 => - array ( - 'id' => 405, - 'form_id' => 'CF0020', - 'form_title' => 'Public Money Received Transmittal Record', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 407 => - array ( - 'id' => 406, - 'form_id' => 'CF0021', - 'form_title' => 'In Province Travel Authorization', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => true, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 408 => - array ( - 'id' => 407, - 'form_id' => 'CF0025', - 'form_title' => 'Authorization to Pay Contacts', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => '7530912029', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 409 => - array ( - 'id' => 408, - 'form_id' => 'CF0026', - 'form_title' => 'Travel Pre-approval Form', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 410 => - array ( - 'id' => 409, - 'form_id' => 'CF0035', - 'form_title' => 'Statement of Homemaker/Home Support Worker Services', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => '7530912043', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 411 => - array ( - 'id' => 410, - 'form_id' => 'CF0050', - 'form_title' => 'Roots Re-Exploration Planning Guide', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 412 => - array ( - 'id' => 411, - 'form_id' => 'CF0051', - 'form_title' => 'Roots Statistics and Outcomes Monthly Report', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 413 => - array ( - 'id' => 412, - 'form_id' => 'CF0074', - 'form_title' => 'Documentation for New Employees', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 414 => - array ( - 'id' => 413, - 'form_id' => 'CF0075', - 'form_title' => 'Telework Checklist', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => 'iConnect - linked through pdf: "Telework: Policy, Principles and Guidelines"', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 415 => - array ( - 'id' => 414, - 'form_id' => 'CF0092', - 'form_title' => 'Notice of Significant Measure to Parent, Care Provider and Indigenous Governing Body', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 416 => - array ( - 'id' => 415, - 'form_id' => 'CF0118', - 'form_title' => 'Openness Agreement', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 417 => - array ( - 'id' => 416, - 'form_id' => 'CF0118A', - 'form_title' => 'Openness Agreement - Schedule A', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 418 => - array ( - 'id' => 417, - 'form_id' => 'CF0118B', - 'form_title' => 'Openness Agreement - Registration for Exchange of Information', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 419 => - array ( - 'id' => 418, - 'form_id' => 'CF0118C', - 'form_title' => 'Openness Agreement - Procedures for Exchange of Information', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 420 => - array ( - 'id' => 419, - 'form_id' => 'CF0120', - 'form_title' => 'Informed Consent to Services', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => 'inDesign', - 'fill_type_id' => NULL, - 'decommissioned' => true, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 421 => - array ( - 'id' => 420, - 'form_id' => 'CF0122', - 'form_title' => 'Child Care Subsidy Application/Income Test', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => true, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 422 => - array ( - 'id' => 421, - 'form_id' => 'CF0134', - 'form_title' => 'Youth Community Risk/Needs Assessment', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => true, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 423 => - array ( - 'id' => 422, - 'form_id' => 'CF0135', - 'form_title' => 'Request For Support Tool box', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 424 => - array ( - 'id' => 423, - 'form_id' => 'CF0136', - 'form_title' => 'Community Youth Justice Policy Exemption Request', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 425 => - array ( - 'id' => 424, - 'form_id' => 'CF0137', - 'form_title' => 'Individualized Behaviour Support Plan', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 426 => - array ( - 'id' => 425, - 'form_id' => 'CF0139', - 'form_title' => 'File Transfer Coordination', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => true, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 427 => - array ( - 'id' => 426, - 'form_id' => 'CF0140', - 'form_title' => 'Record Transfer or Destruction Request', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => 'No reference on iConnect', - 'fill_type_id' => NULL, - 'decommissioned' => true, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 428 => - array ( - 'id' => 427, - 'form_id' => 'CF0149', - 'form_title' => 'Purchase Authorization', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => '7530801004', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 429 => - array ( - 'id' => 428, - 'form_id' => 'CF0166', - 'form_title' => 'Comprehensive Plan of Care Case Recording Document', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => 'Replaced by CF2594', - 'fill_type_id' => NULL, - 'decommissioned' => true, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 430 => - array ( - 'id' => 429, - 'form_id' => 'CF0202', - 'form_title' => 'Community Living Services Mortality Information Summary', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => true, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 431 => - array ( - 'id' => 430, - 'form_id' => 'CF0206', - 'form_title' => 'Air Escort Security Assessment', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 432 => - array ( - 'id' => 431, - 'form_id' => 'CF0207', - 'form_title' => 'Youth Justice File Review', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 433 => - array ( - 'id' => 432, - 'form_id' => 'CF0208', - 'form_title' => 'Complaints Administation Tracking', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 434 => - array ( - 'id' => 433, - 'form_id' => 'CF0209', - 'form_title' => 'Incident Report to Director', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 435 => - array ( - 'id' => 434, - 'form_id' => 'CF0210', - 'form_title' => 'Individualized Crisis Management Plan', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 436 => - array ( - 'id' => 435, - 'form_id' => 'CF0211', - 'form_title' => 'Provincial Director Placement Direction', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 437 => - array ( - 'id' => 436, - 'form_id' => 'CF0212', - 'form_title' => 'Provincial Director Sec. 93 YCJA Placement Order', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 438 => - array ( - 'id' => 437, - 'form_id' => 'CF0214', - 'form_title' => 'Resident Communication Monitoring Form', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 439 => - array ( - 'id' => 438, - 'form_id' => 'CF0215', - 'form_title' => 'Authorization for Transfer', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 440 => - array ( - 'id' => 439, - 'form_id' => 'CF0217', - 'form_title' => 'Transer to Secure Custody', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 441 => - array ( - 'id' => 440, - 'form_id' => 'CF0218', - 'form_title' => 'Escape Notification Form', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 442 => - array ( - 'id' => 441, - 'form_id' => 'CF0219', - 'form_title' => 'Search of Persons Entering a Custody Centre', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 443 => - array ( - 'id' => 442, - 'form_id' => 'CF0221', - 'form_title' => 'Bomb Threat Call Checklist', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 444 => - array ( - 'id' => 443, - 'form_id' => 'CF0222', - 'form_title' => 'Transfer Healthcare Record by Non-Health Personnell', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => true, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 445 => - array ( - 'id' => 444, - 'form_id' => 'CF0223', - 'form_title' => 'Report of Youth Injury', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 446 => - array ( - 'id' => 445, - 'form_id' => 'CF0224', - 'form_title' => 'Interim Incident Report', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 447 => - array ( - 'id' => 446, - 'form_id' => 'CF0225', - 'form_title' => 'Critical Incident Review', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 448 => - array ( - 'id' => 447, - 'form_id' => 'CF0226', - 'form_title' => 'Admission to Pre-Court Detention', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 449 => - array ( - 'id' => 448, - 'form_id' => 'CF0227', - 'form_title' => 'Application by the Provincial Director to Transfer a Remanded Youth to an Adult Provincial Correctional Centre', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => true, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 450 => - array ( - 'id' => 449, - 'form_id' => 'CF0228', - 'form_title' => 'Spring Order', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 451 => - array ( - 'id' => 450, - 'form_id' => 'CF0229', - 'form_title' => 'Application to Review Placement Sec. 76(7) YCJA', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 452 => - array ( - 'id' => 451, - 'form_id' => 'CF0230', - 'form_title' => 'Notice of Placement Review', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 453 => - array ( - 'id' => 452, - 'form_id' => 'CF0237', - 'form_title' => 'Application by the Provincial Director to Transfer a Remanded Youth to an Adult Provincial Correctional Centre', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => true, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 454 => - array ( - 'id' => 453, - 'form_id' => 'CF0238', - 'form_title' => 'Inter-Provincial Transfer Order', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => true, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 455 => - array ( - 'id' => 454, - 'form_id' => 'CF0239', - 'form_title' => 'Consent and Authorization for Transfer of Jurisdication', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => true, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 456 => - array ( - 'id' => 455, - 'form_id' => 'CF0240', - 'form_title' => 'Youth Justice Court Reports Face Sheet Template', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 457 => - array ( - 'id' => 456, - 'form_id' => 'CF0241', - 'form_title' => 'Application for Renintegration Leave', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 458 => - array ( - 'id' => 457, - 'form_id' => 'CF0242', - 'form_title' => 'Authorization for Reintegration Leave', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 459 => - array ( - 'id' => 458, - 'form_id' => 'CF0243', - 'form_title' => 'Revocation of Reintegration Leave', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 460 => - array ( - 'id' => 459, - 'form_id' => 'CF0244', - 'form_title' => 'Request for Leave', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 461 => - array ( - 'id' => 460, - 'form_id' => 'CF0245', - 'form_title' => 'Notice of Application for Review', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 462 => - array ( - 'id' => 461, - 'form_id' => 'CF0246', - 'form_title' => 'Youth Complaint Form', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => 'was "Resident Complaint Form (before Jan 9, 2018)"', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 463 => - array ( - 'id' => 462, - 'form_id' => 'CF0247', - 'form_title' => 'Application for Review of Detention', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 464 => - array ( - 'id' => 463, - 'form_id' => 'CF0248', - 'form_title' => 'Separate Confinement Order Form - Up to 72 Hours', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 465 => - array ( - 'id' => 464, - 'form_id' => 'CF0248D', - 'form_title' => 'Separate Confinement Order Form - Order to 72 Hours', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 466 => - array ( - 'id' => 465, - 'form_id' => 'CF0249', - 'form_title' => 'Youth Custody Risk Assessment', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => 'i?nDesign -', - 'fill_type_id' => NULL, - 'decommissioned' => true, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 467 => - array ( - 'id' => 466, - 'form_id' => 'CF0250', - 'form_title' => 'Case Information Collection Form', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 468 => - array ( - 'id' => 467, - 'form_id' => 'CF0251', - 'form_title' => 'Application to Place a Youth Subject to an Order for Remand in an Adult Provincial Correctional Centre', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 469 => - array ( - 'id' => 468, - 'form_id' => 'CF0252', - 'form_title' => 'Supervision in the Community Following Custody', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 470 => - array ( - 'id' => 469, - 'form_id' => 'CF0253', - 'form_title' => 'Application for Warrant', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 471 => - array ( - 'id' => 470, - 'form_id' => 'CF0254', - 'form_title' => 'Warrant of Apprehension', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 472 => - array ( - 'id' => 471, - 'form_id' => 'CF0255', - 'form_title' => 'Provincial Director Review', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 473 => - array ( - 'id' => 472, - 'form_id' => 'CF0256', - 'form_title' => 'Witness List', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 474 => - array ( - 'id' => 473, - 'form_id' => 'CF0257', - 'form_title' => 'Notice of Application to Continue Custody', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 475 => - array ( - 'id' => 474, - 'form_id' => 'CF0258', - 'form_title' => 'Notice of Review Application', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 476 => - array ( - 'id' => 475, - 'form_id' => 'CF0259', - 'form_title' => 'Transfer of Sentence and Record', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 477 => - array ( - 'id' => 476, - 'form_id' => 'CF0260', - 'form_title' => 'Consent and Authorization for Transfer of Jurisdication', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 478 => - array ( - 'id' => 477, - 'form_id' => 'CF0261', - 'form_title' => 'Inter-Provincial Transfer Order', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 479 => - array ( - 'id' => 478, - 'form_id' => 'CF0262', - 'form_title' => 'Application by Provincial Director to Place a Sentenced Youth in an Adult Provincial Correction Centre', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 480 => - array ( - 'id' => 479, - 'form_id' => 'CF0263', - 'form_title' => 'Full-Time Attendance Program Referral', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => 'Cornet-client forms screen', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 481 => - array ( - 'id' => 480, - 'form_id' => 'CF0264', - 'form_title' => 'Notice of Court Review of Suspension', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 482 => - array ( - 'id' => 481, - 'form_id' => 'CF0265', - 'form_title' => 'Community Service Work Referral/Intake', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 483 => - array ( - 'id' => 482, - 'form_id' => 'CF0266', - 'form_title' => 'Community Service Work Client Contract', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 484 => - array ( - 'id' => 483, - 'form_id' => 'CF0267', - 'form_title' => 'Community Service Work Monthly/Termination Summary Report', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 485 => - array ( - 'id' => 484, - 'form_id' => 'CF0268', - 'form_title' => 'Community Service Work Placement Monthly Report', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 486 => - array ( - 'id' => 485, - 'form_id' => 'CF0269', - 'form_title' => 'Community Service Work Information Sharing Contract', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 487 => - array ( - 'id' => 486, - 'form_id' => 'CF0270', - 'form_title' => 'Safety Plan', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 488 => - array ( - 'id' => 487, - 'form_id' => 'CF0271', - 'form_title' => 'Offence Cycle', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 489 => - array ( - 'id' => 488, - 'form_id' => 'CF0272', - 'form_title' => 'Application for Special Funding', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 490 => - array ( - 'id' => 489, - 'form_id' => 'CF0272A', - 'form_title' => 'Provincial Director Certificate for Special Funding', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 491 => - array ( - 'id' => 490, - 'form_id' => 'CF0273', - 'form_title' => 'Confirmation of Criteria for Special Funding', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 492 => - array ( - 'id' => 491, - 'form_id' => 'CF0274', - 'form_title' => 'Consent to Case Management and Treatment Plan Special Federal Funding', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 493 => - array ( - 'id' => 492, - 'form_id' => 'CF0275', - 'form_title' => 'Critical Incident Reporting Form', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => 'missing and possibly replaced', - 'fill_type_id' => NULL, - 'decommissioned' => true, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 494 => - array ( - 'id' => 493, - 'form_id' => 'CF0276', - 'form_title' => 'Intensive Support and Supervision Program Referral', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 495 => - array ( - 'id' => 494, - 'form_id' => 'CF0277', - 'form_title' => 'Intensive Support and Supervision Program Monthly Report', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 496 => - array ( - 'id' => 495, - 'form_id' => 'CF0280', - 'form_title' => 'Health Information', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 497 => - array ( - 'id' => 496, - 'form_id' => 'CF0281', - 'form_title' => 'Health Update Information', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 498 => - array ( - 'id' => 497, - 'form_id' => 'CF0282', - 'form_title' => 'Intake Assessment', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => true, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 499 => - array ( - 'id' => 498, - 'form_id' => 'CF0282A', - 'form_title' => 'Initial Assessment', - 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - )); - \DB::table('forms')->insert(array ( - 0 => - array ( - 'id' => 499, - 'form_id' => 'CF0282B', - 'form_title' => 'Intake Assessment', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 411 => [ + 'id' => 402, + 'form_id' => 'CF0002', + 'form_title' => 'Overtime Report', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -11053,34 +9520,36 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 1 => - array ( - 'id' => 500, - 'form_id' => 'CF0283', - 'form_title' => 'Service Plan', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 412 => [ + 'id' => 403, + 'form_id' => 'CF0004', + 'form_title' => 'PCAT Request Form', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, + 'form_reach_id' => 1, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 2 => - array ( - 'id' => 501, - 'form_id' => 'CF0284', - 'form_title' => 'Service Plan and Arrow Strategies', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 413 => [ + 'id' => 404, + 'form_id' => 'CF0010', + 'form_title' => 'Closed Volume Report', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -11097,12 +9566,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 3 => - array ( - 'id' => 502, - 'form_id' => 'CF0285', - 'form_title' => 'Escort Log', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 414 => [ + 'id' => 405, + 'form_id' => 'CF0020', + 'form_title' => 'Public Money Received Transmittal Record', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -11119,12 +9589,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 4 => - array ( - 'id' => 503, - 'form_id' => 'CF0286', - 'form_title' => 'Escort Security Assessment', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 415 => [ + 'id' => 408, + 'form_id' => 'CF0026', + 'form_title' => 'Travel Pre-approval Form', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -11141,12 +9612,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 5 => - array ( - 'id' => 504, - 'form_id' => 'CF0287', - 'form_title' => 'Escort Procedures', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 416 => [ + 'id' => 409, + 'form_id' => 'CF0035', + 'form_title' => 'Statement of Homemaker/Home Support Worker Services', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -11160,15 +9632,16 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', + 'dcv_material_number' => '7530912043', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 6 => - array ( - 'id' => 505, - 'form_id' => 'CF0288', - 'form_title' => 'Case Management Assessment for Family Visitation', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 417 => [ + 'id' => 410, + 'form_id' => 'CF0050', + 'form_title' => 'Roots Re-Exploration Planning Guide', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -11185,12 +9658,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 7 => - array ( - 'id' => 506, - 'form_id' => 'CF0289', - 'form_title' => 'Application for Travel Support Youth Custody Services', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 418 => [ + 'id' => 411, + 'form_id' => 'CF0051', + 'form_title' => 'Roots Statistics and Outcomes Monthly Report', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -11207,12 +9681,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 8 => - array ( - 'id' => 507, - 'form_id' => 'CF0290', - 'form_title' => 'Case Supervision Checklist', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 419 => [ + 'id' => 412, + 'form_id' => 'CF0074', + 'form_title' => 'Documentation for New Employees', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -11229,15 +9704,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 9 => - array ( - 'id' => 508, - 'form_id' => 'CF0291', - 'form_title' => 'Worksheet 1: Single Sentence Calculation - YCJA', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 420 => [ + 'id' => 413, + 'form_id' => 'CF0075', + 'form_title' => 'Telework Checklist', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'iConnect - linked through pdf: "Telework: Policy, Principles and Guidelines"', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -11251,15 +9727,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 10 => - array ( - 'id' => 509, - 'form_id' => 'CF0292', - 'form_title' => 'Worksheet 2: Concurrent 2/3 + 1/3 Sentence - Sec. 42(2)(n) YCJA', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 421 => [ + 'id' => 414, + 'form_id' => 'CF0092', + 'form_title' => 'Notice of Significant Measure to Parent, Care Provider and Indigenous Governing Body', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -11269,16 +9746,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 11 => - array ( - 'id' => 510, - 'form_id' => 'CF0293', - 'form_title' => 'Worksheet 3: Consecutive 2/3 + 1/3 Sentence - Sec. 42(2)(n) YCJA', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 422 => [ + 'id' => 415, + 'form_id' => 'CF0118', + 'form_title' => 'Openness Agreement', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -11295,12 +9773,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 12 => - array ( - 'id' => 511, - 'form_id' => 'CF0294', - 'form_title' => 'Worksheet 4: Concurrent Non 2/3 + 1/3 Sentence - Sec. 42(2)(o)(q)(r) YCJA', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 423 => [ + 'id' => 416, + 'form_id' => 'CF0118A', + 'form_title' => 'Openness Agreement - Schedule A', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -11317,12 +9796,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 13 => - array ( - 'id' => 512, - 'form_id' => 'CF0295', - 'form_title' => 'Worksheet 5: Consecutive Non 2/3 + 1/3 Sentence - Sec. 42(2)(o)(q)(r) YCJA', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 424 => [ + 'id' => 417, + 'form_id' => 'CF0118B', + 'form_title' => 'Openness Agreement - Registration for Exchange of Information', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -11339,12 +9819,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 14 => - array ( - 'id' => 513, - 'form_id' => 'CF0296', - 'form_title' => 'Worksheet 6: Days Owing Calculation - YCJA', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 425 => [ + 'id' => 418, + 'form_id' => 'CF0118C', + 'form_title' => 'Openness Agreement - Procedures for Exchange of Information', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -11361,17 +9842,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 15 => - array ( - 'id' => 514, - 'form_id' => 'CF0298', - 'form_title' => 'Strip Search', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 426 => [ + 'id' => 419, + 'form_id' => 'CF0120', + 'form_title' => 'Informed Consent to Services', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'inDesign', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -11383,17 +9865,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 16 => - array ( - 'id' => 515, - 'form_id' => 'CF0299', - 'form_title' => 'Youth Probation Officer Letter to Parents', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 427 => [ + 'id' => 420, + 'form_id' => 'CF0122', + 'form_title' => 'Child Care Subsidy Application/Income Test', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -11405,17 +9888,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 17 => - array ( - 'id' => 516, - 'form_id' => 'CF0300', - 'form_title' => 'Restoratibe Youth Justice Program Referral Form', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 428 => [ + 'id' => 421, + 'form_id' => 'CF0134', + 'form_title' => 'Youth Community Risk/Needs Assessment', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -11427,19 +9911,20 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 18 => - array ( - 'id' => 517, - 'form_id' => 'CF0322A', - 'form_title' => 'Voluntary Care/Special Needs Agreement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 429 => [ + 'id' => 422, + 'form_id' => 'CF0135', + 'form_title' => 'Request For Support Tool box', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, + 'form_reach_id' => 2, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, @@ -11448,13 +9933,14 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 19 => - array ( - 'id' => 518, - 'form_id' => 'CF0323', - 'form_title' => 'Legal Services Soc. Independent Legal Advice for Children Cert. Of Authorization', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 430 => [ + 'id' => 423, + 'form_id' => 'CF0136', + 'form_title' => 'Community Youth Justice Policy Exemption Request', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -11471,12 +9957,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 20 => - array ( - 'id' => 519, - 'form_id' => 'CF0324', - 'form_title' => 'Birth Parent Pre-Placement Agreement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 431 => [ + 'id' => 424, + 'form_id' => 'CF0137', + 'form_title' => 'Individualized Behaviour Support Plan', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -11493,17 +9980,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 21 => - array ( - 'id' => 520, - 'form_id' => 'CF0325', - 'form_title' => 'Adoption Placement Agreement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 432 => [ + 'id' => 425, + 'form_id' => 'CF0139', + 'form_title' => 'File Transfer Coordination', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -11515,15 +10003,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 22 => - array ( - 'id' => 521, - 'form_id' => 'CF0326', - 'form_title' => 'Guidlelines for the Child\'s Adoption Bulletin Profile', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 433 => [ + 'id' => 426, + 'form_id' => 'CF0140', + 'form_title' => 'Record Transfer or Destruction Request', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'Check if Obsolete (word doc removed - no reference on Froms page)', + 'notes' => 'No reference on iConnect', 'fill_type_id' => NULL, 'decommissioned' => true, 'form_frequency_id' => NULL, @@ -11536,18 +10025,19 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 23 => - array ( - 'id' => 522, - 'form_id' => 'CF0327', - 'form_title' => 'Family Assessment', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 434 => [ + 'id' => 427, + 'form_id' => 'CF0149', + 'form_title' => 'Purchase Authorization', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'Check if obsolete', + 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -11556,18 +10046,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', + 'dcv_material_number' => '7530801004', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 24 => - array ( - 'id' => 523, - 'form_id' => 'CF0327A', - 'form_title' => 'Family Assessment Questionnaire l', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 435 => [ + 'id' => 428, + 'form_id' => 'CF0166', + 'form_title' => 'Comprehensive Plan of Care Case Recording Document', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'contained in 0327', + 'notes' => 'Replaced by CF2594', 'fill_type_id' => NULL, 'decommissioned' => true, 'form_frequency_id' => NULL, @@ -11580,16 +10071,17 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 25 => - array ( - 'id' => 524, - 'form_id' => 'CF0327B', - 'form_title' => 'Family Assessment Questionnaire ll', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 436 => [ + 'id' => 429, + 'form_id' => 'CF0202', + 'form_title' => 'Community Living Services Mortality Information Summary', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'contained in 0327', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => true, 'form_frequency_id' => NULL, @@ -11602,18 +10094,19 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 26 => - array ( - 'id' => 525, - 'form_id' => 'CF0327C', - 'form_title' => 'Preface to Family Assessment', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 437 => [ + 'id' => 430, + 'form_id' => 'CF0206', + 'form_title' => 'Air Escort Security Assessment', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -11624,13 +10117,14 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 27 => - array ( - 'id' => 526, - 'form_id' => 'CF0328', - 'form_title' => 'Consent of a child twelve and over to disclosure and posting to the Adopt BC Kids website', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 438 => [ + 'id' => 431, + 'form_id' => 'CF0207', + 'form_title' => 'Youth Justice File Review', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -11647,12 +10141,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 28 => - array ( - 'id' => 527, - 'form_id' => 'CF0380', - 'form_title' => 'Software Hardware Advisory Committee Review Request', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 439 => [ + 'id' => 432, + 'form_id' => 'CF0208', + 'form_title' => 'Complaints Administation Tracking', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -11668,13 +10163,14 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 29 => - array ( - 'id' => 528, - 'form_id' => 'CF0381', - 'form_title' => 'Change Request Emergency Outage Notification', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 440 => [ + 'id' => 433, + 'form_id' => 'CF0209', + 'form_title' => 'Incident Report to Director', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -11690,16 +10186,17 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 30 => - array ( - 'id' => 529, - 'form_id' => 'CF0400', - 'form_title' => 'Expense Signing Authority Request', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 441 => [ + 'id' => 434, + 'form_id' => 'CF0210', + 'form_title' => 'Individualized Crisis Management Plan', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -11708,17 +10205,18 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 31 => - array ( - 'id' => 530, - 'form_id' => 'CF0410', - 'form_title' => 'Capital Grant Application', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 442 => [ + 'id' => 435, + 'form_id' => 'CF0211', + 'form_title' => 'Provincial Director Placement Direction', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -11735,12 +10233,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 32 => - array ( - 'id' => 531, - 'form_id' => 'CF0411', - 'form_title' => 'Contract Evaluation Report', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 443 => [ + 'id' => 436, + 'form_id' => 'CF0212', + 'form_title' => 'Provincial Director Sec. 93 YCJA Placement Order', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -11757,12 +10256,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 33 => - array ( - 'id' => 532, - 'form_id' => 'CF0411A', - 'form_title' => 'Prefesstional Services/Consulting/Third Party Services Contract Evaluation', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 444 => [ + 'id' => 437, + 'form_id' => 'CF0214', + 'form_title' => 'Resident Communication Monitoring Form', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -11778,18 +10278,19 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 34 => - array ( - 'id' => 533, - 'form_id' => 'CF0412', - 'form_title' => 'Internet Publishing/Change Request', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 445 => [ + 'id' => 438, + 'form_id' => 'CF0215', + 'form_title' => 'Authorization for Transfer', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -11800,18 +10301,19 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 35 => - array ( - 'id' => 534, - 'form_id' => 'CF0413', - 'form_title' => 'Communications Project Approval 2001/2002', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 446 => [ + 'id' => 439, + 'form_id' => 'CF0217', + 'form_title' => 'Transer to Secure Custody', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -11822,13 +10324,14 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 36 => - array ( - 'id' => 535, - 'form_id' => 'CF0420', - 'form_title' => 'Request Action Report', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 447 => [ + 'id' => 440, + 'form_id' => 'CF0218', + 'form_title' => 'Escape Notification Form', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -11845,17 +10348,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 37 => - array ( - 'id' => 536, - 'form_id' => 'CF0450', - 'form_title' => 'Modification Agreement - Patriot Act (CLBC)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 448 => [ + 'id' => 442, + 'form_id' => 'CF0221', + 'form_title' => 'Bomb Threat Call Checklist', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -11866,18 +10370,19 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 38 => - array ( - 'id' => 537, - 'form_id' => 'CF0451', - 'form_title' => 'Modification Agreement', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 449 => [ + 'id' => 443, + 'form_id' => 'CF0222', + 'form_title' => 'Transfer Healthcare Record by Non-Health Personnell', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -11889,12 +10394,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 39 => - array ( - 'id' => 538, - 'form_id' => 'CF0452', - 'form_title' => 'Services Agreement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 450 => [ + 'id' => 444, + 'form_id' => 'CF0223', + 'form_title' => 'Report of Youth Injury', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -11911,12 +10417,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 40 => - array ( - 'id' => 539, - 'form_id' => 'CF0453', - 'form_title' => 'Continuing Agreement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 451 => [ + 'id' => 445, + 'form_id' => 'CF0224', + 'form_title' => 'Interim Incident Report', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -11932,13 +10439,14 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 41 => - array ( - 'id' => 540, - 'form_id' => 'CF0454', - 'form_title' => 'Letter of Intent', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 452 => [ + 'id' => 446, + 'form_id' => 'CF0225', + 'form_title' => 'Critical Incident Review', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -11955,15 +10463,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 42 => - array ( - 'id' => 541, - 'form_id' => 'CF0455', - 'form_title' => 'Service Agreement (Residential)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 453 => [ + 'id' => 447, + 'form_id' => 'CF0226', + 'form_title' => 'Admission to Pre-Court Detention', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'RAPP (form when down)', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -11977,17 +10486,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 43 => - array ( - 'id' => 542, - 'form_id' => 'CF0456', - 'form_title' => 'Service Agreement (Non-Residential)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 454 => [ + 'id' => 448, + 'form_id' => 'CF0227', + 'form_title' => 'Application by the Provincial Director to Transfer a Remanded Youth to an Adult Provincial Correctional Centre', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'RAPP (form when down)', + 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -11999,17 +10509,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 44 => - array ( - 'id' => 543, - 'form_id' => 'CF0601', - 'form_title' => 'Renewal for Early Childhood Educator License to Practice', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 455 => [ + 'id' => 449, + 'form_id' => 'CF0228', + 'form_title' => 'Spring Order', + 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'Replaced with CF1361', + 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -12020,13 +10531,14 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 45 => - array ( - 'id' => 544, - 'form_id' => 'CF0603', - 'form_title' => 'Authorization and Service Plan', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 456 => [ + 'id' => 450, + 'form_id' => 'CF0229', + 'form_title' => 'Application to Review Placement Sec. 76(7) YCJA', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -12040,15 +10552,16 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', - 'dcv_material_number' => '7530804103', + 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 46 => - array ( - 'id' => 545, - 'form_id' => 'CF0605', - 'form_title' => 'Physician\'s Report on Applicant', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 457 => [ + 'id' => 451, + 'form_id' => 'CF0230', + 'form_title' => 'Notice of Placement Review', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -12065,17 +10578,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 47 => - array ( - 'id' => 546, - 'form_id' => 'CF0607', - 'form_title' => 'Consent to Social Media Use by Program', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 458 => [ + 'id' => 452, + 'form_id' => 'CF0237', + 'form_title' => 'Application by the Provincial Director to Transfer a Remanded Youth to an Adult Provincial Correctional Centre', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -12087,16 +10601,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 48 => - array ( - 'id' => 547, - 'form_id' => 'CF0608', - 'form_title' => 'Unknown', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 459 => [ + 'id' => 453, + 'form_id' => 'CF0238', + 'form_title' => 'Inter-Provincial Transfer Order', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'i?nDesign -', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => true, 'form_frequency_id' => NULL, @@ -12109,18 +10623,19 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 49 => - array ( - 'id' => 548, - 'form_id' => 'CF0610', - 'form_title' => 'Certificate of Service (Sessional)', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 460 => [ + 'id' => 454, + 'form_id' => 'CF0239', + 'form_title' => 'Consent and Authorization for Transfer of Jurisdication', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -12129,15 +10644,16 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', - 'dcv_material_number' => '7530801055', + 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 50 => - array ( - 'id' => 549, - 'form_id' => 'CF0620', - 'form_title' => 'Acknowledgement of Notification for Out of Care Placement Screening/Assessment', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 461 => [ + 'id' => 455, + 'form_id' => 'CF0240', + 'form_title' => 'Youth Justice Court Reports Face Sheet Template', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -12153,13 +10669,14 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 51 => - array ( - 'id' => 550, - 'form_id' => 'CF0621', - 'form_title' => 'Notification to Hospital to Removal of Child', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 462 => [ + 'id' => 456, + 'form_id' => 'CF0241', + 'form_title' => 'Application for Renintegration Leave', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -12176,12 +10693,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 52 => - array ( - 'id' => 551, - 'form_id' => 'CF0622', - 'form_title' => 'Consent to Disclosure of Criminal Record Information', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 463 => [ + 'id' => 457, + 'form_id' => 'CF0242', + 'form_title' => 'Authorization for Reintegration Leave', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -12198,12 +10716,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 53 => - array ( - 'id' => 552, - 'form_id' => 'CF0622B', - 'form_title' => 'Contracted Agency Caregiver Screening Consent for Disclosure of Criminal Record Information (internet)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 464 => [ + 'id' => 458, + 'form_id' => 'CF0243', + 'form_title' => 'Revocation of Reintegration Leave', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -12220,12 +10739,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 54 => - array ( - 'id' => 553, - 'form_id' => 'CF0623', - 'form_title' => 'Consent for Prior Contact Check', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 465 => [ + 'id' => 459, + 'form_id' => 'CF0244', + 'form_title' => 'Request for Leave', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -12242,12 +10762,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 55 => - array ( - 'id' => 554, - 'form_id' => 'CF0623B', - 'form_title' => 'Contracted Agency Caregiver Screening Consent for Prior Contact Check (internet)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 466 => [ + 'id' => 460, + 'form_id' => 'CF0245', + 'form_title' => 'Notice of Application for Review', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -12264,15 +10785,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 56 => - array ( - 'id' => 555, - 'form_id' => 'CF0624', - 'form_title' => 'Child Protection Record Check', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 467 => [ + 'id' => 461, + 'form_id' => 'CF0246', + 'form_title' => 'Youth Complaint Form', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'was "Resident Complaint Form (before Jan 9, 2018)"', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -12286,17 +10808,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 57 => - array ( - 'id' => 556, - 'form_id' => 'CF0624A', - 'form_title' => 'Child Protection Record Check', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 468 => [ + 'id' => 462, + 'form_id' => 'CF0247', + 'form_title' => 'Application for Review of Detention', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -12307,13 +10830,14 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 58 => - array ( - 'id' => 557, - 'form_id' => 'CF0625', - 'form_title' => 'Contracted Agency Caregiver Screening Consent for Disclosure of Police Information ', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 469 => [ + 'id' => 463, + 'form_id' => 'CF0248', + 'form_title' => 'Separate Confinement Order Form - Up to 72 Hours', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -12330,12 +10854,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 59 => - array ( - 'id' => 558, - 'form_id' => 'CF0629', - 'form_title' => 'Safety Plan', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 470 => [ + 'id' => 464, + 'form_id' => 'CF0248D', + 'form_title' => 'Separate Confinement Order Form - Order to 72 Hours', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -12349,18 +10874,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', - 'dcv_material_number' => '7530801066', + 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 60 => - array ( - 'id' => 559, - 'form_id' => 'CF0631A', - 'form_title' => 'Strengths and Needs Assessment', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 471 => [ + 'id' => 465, + 'form_id' => 'CF0249', + 'form_title' => 'Youth Custody Risk Assessment', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'inDesign', 'fill_type_id' => NULL, 'decommissioned' => true, 'form_frequency_id' => NULL, @@ -12373,13 +10899,14 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 61 => - array ( - 'id' => 560, - 'form_id' => 'CF0634', - 'form_title' => 'Family Plan/Interim Care Plan', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 472 => [ + 'id' => 466, + 'form_id' => 'CF0250', + 'form_title' => 'Case Information Collection Form', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -12396,15 +10923,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 62 => - array ( - 'id' => 561, - 'form_id' => 'CF0634A', - 'form_title' => 'Family Plan', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 473 => [ + 'id' => 467, + 'form_id' => 'CF0251', + 'form_title' => 'Application to Place a Youth Subject to an Order for Remand in an Adult Provincial Correctional Centre', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'check if obsolete', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -12418,12 +10946,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 63 => - array ( - 'id' => 562, - 'form_id' => 'CF0635', - 'form_title' => 'Learning Site Child Protection Evaluation - Parent Survery', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 474 => [ + 'id' => 468, + 'form_id' => 'CF0252', + 'form_title' => 'Supervision in the Community Following Custody', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -12440,12 +10969,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 64 => - array ( - 'id' => 563, - 'form_id' => 'CF0636', - 'form_title' => 'Family Development Response - Protection Services Phase', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 475 => [ + 'id' => 469, + 'form_id' => 'CF0253', + 'form_title' => 'Application for Warrant', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -12462,12 +10992,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 65 => - array ( - 'id' => 564, - 'form_id' => 'CF0637', - 'form_title' => 'Ongoing Protection Services Phase', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 476 => [ + 'id' => 470, + 'form_id' => 'CF0254', + 'form_title' => 'Warrant of Apprehension', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -12484,15 +11015,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 66 => - array ( - 'id' => 565, - 'form_id' => 'CF0638', - 'form_title' => 'Intake Incident', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 477 => [ + 'id' => 471, + 'form_id' => 'CF0255', + 'form_title' => 'Provincial Director Review', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'Check if obsolete - not in ICM - but in CRMS', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -12506,12 +11038,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 67 => - array ( - 'id' => 566, - 'form_id' => 'CF0639', - 'form_title' => 'Intake Service Request', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 478 => [ + 'id' => 472, + 'form_id' => 'CF0256', + 'form_title' => 'Witness List', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -12528,12 +11061,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 68 => - array ( - 'id' => 567, - 'form_id' => 'CF0641', - 'form_title' => 'Immigration and Refugee Status Checklist', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 479 => [ + 'id' => 473, + 'form_id' => 'CF0257', + 'form_title' => 'Notice of Application to Continue Custody', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -12549,13 +11083,14 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 69 => - array ( - 'id' => 568, - 'form_id' => 'CF0642', - 'form_title' => 'Oath of Confidentiality', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 480 => [ + 'id' => 474, + 'form_id' => 'CF0258', + 'form_title' => 'Notice of Review Application', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -12572,12 +11107,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 70 => - array ( - 'id' => 569, - 'form_id' => 'CF0648', - 'form_title' => 'Time Report for On-Call Auxiliaries / Regular Part-Time employees', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 481 => [ + 'id' => 475, + 'form_id' => 'CF0259', + 'form_title' => 'Transfer of Sentence and Record', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -12594,12 +11130,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 71 => - array ( - 'id' => 570, - 'form_id' => 'CF0649', - 'form_title' => 'Joint Incident Investigation Form', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 482 => [ + 'id' => 476, + 'form_id' => 'CF0260', + 'form_title' => 'Consent and Authorization for Transfer of Jurisdication', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -12616,12 +11153,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 72 => - array ( - 'id' => 571, - 'form_id' => 'CF0652', - 'form_title' => 'MCFD Mentoring Program Application', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 483 => [ + 'id' => 477, + 'form_id' => 'CF0261', + 'form_title' => 'Inter-Provincial Transfer Order', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -12638,19 +11176,20 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 73 => - array ( - 'id' => 572, - 'form_id' => 'CF0653', - 'form_title' => 'Supervisor\'s OSH Incident Report', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 484 => [ + 'id' => 478, + 'form_id' => 'CF0262', + 'form_title' => 'Application by Provincial Director to Place a Sentenced Youth in an Adult Provincial Correction Centre', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, - 'form_reach_id' => 2, + 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, @@ -12660,15 +11199,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 74 => - array ( - 'id' => 573, - 'form_id' => 'CF0654', - 'form_title' => 'File Retrieval Request and Fax Transmission', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 485 => [ + 'id' => 479, + 'form_id' => 'CF0263', + 'form_title' => 'Full-Time Attendance Program Referral', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'links to site from iConnect forms page - probably obsolete', + 'notes' => 'Cornet-client forms screen', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -12682,12 +11222,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 75 => - array ( - 'id' => 574, - 'form_id' => 'CF0654A', - 'form_title' => 'File Retrieval Request and Fax Transmission', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 486 => [ + 'id' => 480, + 'form_id' => 'CF0264', + 'form_title' => 'Notice of Court Review of Suspension', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -12704,12 +11245,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 76 => - array ( - 'id' => 575, - 'form_id' => 'CF0655', - 'form_title' => 'Transfer of Legal Custody: Forms and Records', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 487 => [ + 'id' => 481, + 'form_id' => 'CF0265', + 'form_title' => 'Community Service Work Referral/Intake', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -12726,12 +11268,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 77 => - array ( - 'id' => 576, - 'form_id' => 'CF0656', - 'form_title' => 'Joint Parental Consent to the Release of Information', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 488 => [ + 'id' => 482, + 'form_id' => 'CF0266', + 'form_title' => 'Community Service Work Client Contract', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -12748,19 +11291,20 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 78 => - array ( - 'id' => 577, - 'form_id' => 'CF0657', - 'form_title' => 'Youth Justice Reportable Circumstances', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 489 => [ + 'id' => 483, + 'form_id' => 'CF0267', + 'form_title' => 'Community Service Work Monthly/Termination Summary Report', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, - 'form_reach_id' => 2, + 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, @@ -12770,12 +11314,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 79 => - array ( - 'id' => 578, - 'form_id' => 'CF0660', - 'form_title' => 'Caution Alert Sheet', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 490 => [ + 'id' => 484, + 'form_id' => 'CF0268', + 'form_title' => 'Community Service Work Placement Monthly Report', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -12792,12 +11337,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 80 => - array ( - 'id' => 579, - 'form_id' => 'CF0661', - 'form_title' => 'Consent for Audio/Video Recording', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 491 => [ + 'id' => 485, + 'form_id' => 'CF0269', + 'form_title' => 'Community Service Work Information Sharing Contract', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -12814,17 +11360,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 81 => - array ( - 'id' => 580, - 'form_id' => 'CF0662', - 'form_title' => 'CYMH Reportable Circumstance', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 492 => [ + 'id' => 486, + 'form_id' => 'CF0270', + 'form_title' => 'Safety Plan', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'Replaced by CF0659', + 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -12836,12 +11383,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 82 => - array ( - 'id' => 581, - 'form_id' => 'CF0663', - 'form_title' => 'Consent for Child and Youth Mental Health Services', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 493 => [ + 'id' => 487, + 'form_id' => 'CF0271', + 'form_title' => 'Offence Cycle', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -12858,12 +11406,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 83 => - array ( - 'id' => 582, - 'form_id' => 'CF0664', - 'form_title' => 'Child and Youth Mental Health Intake and Referral Form', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 494 => [ + 'id' => 488, + 'form_id' => 'CF0272', + 'form_title' => 'Application for Special Funding', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -12880,12 +11429,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 84 => - array ( - 'id' => 583, - 'form_id' => 'CF0665', - 'form_title' => 'Consent for Recording and Disclosure for the Purpose of Clinician Training', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 495 => [ + 'id' => 489, + 'form_id' => 'CF0272A', + 'form_title' => 'Provincial Director Certificate for Special Funding', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -12902,12 +11452,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 85 => - array ( - 'id' => 584, - 'form_id' => 'CF0666', - 'form_title' => 'Family Youth Partnership Project Application', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 496 => [ + 'id' => 490, + 'form_id' => 'CF0273', + 'form_title' => 'Confirmation of Criteria for Special Funding', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -12924,12 +11475,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 86 => - array ( - 'id' => 585, - 'form_id' => 'CF0667', - 'form_title' => 'CYMH Services Initial Screening', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 497 => [ + 'id' => 491, + 'form_id' => 'CF0274', + 'form_title' => 'Consent to Case Management and Treatment Plan Special Federal Funding', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -12946,17 +11498,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 87 => - array ( - 'id' => 586, - 'form_id' => 'CF0668', - 'form_title' => 'CYMH Services Child/Youth Information', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 498 => [ + 'id' => 492, + 'form_id' => 'CF0275', + 'form_title' => 'Critical Incident Reporting Form', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'missing and possibly replaced', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -12968,12 +11521,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 88 => - array ( - 'id' => 587, - 'form_id' => 'CF0669', - 'form_title' => 'CYMH Services Plan for Initial Supports and Services', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 499 => [ + 'id' => 493, + 'form_id' => 'CF0276', + 'form_title' => 'Intensive Support and Supervision Program Referral', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -12990,12 +11544,15 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 89 => - array ( - 'id' => 588, - 'form_id' => 'CF0670', - 'form_title' => 'CYSN Consolidated Assessment Tool (CCAT)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + ]); + \DB::table('forms')->insert([ + 0 => [ + 'id' => 494, + 'form_id' => 'CF0277', + 'form_title' => 'Intensive Support and Supervision Program Monthly Report', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -13012,12 +11569,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 90 => - array ( - 'id' => 589, - 'form_id' => 'CF0703', - 'form_title' => 'BC Employment Program - Youth Employment Pilot', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 1 => [ + 'id' => 495, + 'form_id' => 'CF0280', + 'form_title' => 'Health Information', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -13034,12 +11592,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 91 => - array ( - 'id' => 590, - 'form_id' => 'CF0705', - 'form_title' => 'Youth Service Intake', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 2 => [ + 'id' => 496, + 'form_id' => 'CF0281', + 'form_title' => 'Health Update Information', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -13056,17 +11615,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 92 => - array ( - 'id' => 591, - 'form_id' => 'CF0706', - 'form_title' => 'Youth Immediate Needs Assessment and Safety Plan', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 3 => [ + 'id' => 497, + 'form_id' => 'CF0282', + 'form_title' => 'Intake Assessment', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -13078,12 +11638,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 93 => - array ( - 'id' => 592, - 'form_id' => 'CF0707', - 'form_title' => 'Agreement with Young Adult Application Form', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 4 => [ + 'id' => 499, + 'form_id' => 'CF0282B', + 'form_title' => 'Intake Assessment', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -13100,12 +11661,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 94 => - array ( - 'id' => 593, - 'form_id' => 'CF0708', - 'form_title' => 'Agreement with Young Adult Program Screening Form', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 5 => [ + 'id' => 500, + 'form_id' => 'CF0283', + 'form_title' => 'Service Plan', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -13122,15 +11684,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 95 => - array ( - 'id' => 594, - 'form_id' => 'CF0709', - 'form_title' => 'Agreement with Young Adult Financial Worksheet', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 6 => [ + 'id' => 501, + 'form_id' => 'CF0284', + 'form_title' => 'Service Plan and Arrow Strategies', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -13140,22 +11703,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 96 => - array ( - 'id' => 595, - 'form_id' => 'CF0710', - 'form_title' => 'Unknown', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 7 => [ + 'id' => 502, + 'form_id' => 'CF0285', + 'form_title' => 'Escort Log', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'i?nDesign -', + 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -13167,12 +11730,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 97 => - array ( - 'id' => 596, - 'form_id' => 'CF0720', - 'form_title' => 'Direct Billing Utility Service Request', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 8 => [ + 'id' => 503, + 'form_id' => 'CF0286', + 'form_title' => 'Escort Security Assessment', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -13189,12 +11753,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 98 => - array ( - 'id' => 597, - 'form_id' => 'CF0725', - 'form_title' => 'Prescription Order', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 9 => [ + 'id' => 504, + 'form_id' => 'CF0287', + 'form_title' => 'Escort Procedures', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -13208,15 +11773,39 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', - 'dcv_material_number' => '7530801065', + 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 99 => - array ( - 'id' => 598, - 'form_id' => 'CF0730', - 'form_title' => 'Promise to Pay Security Deposit (Youth Agreement)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 10 => [ + 'id' => 505, + 'form_id' => 'CF0288', + 'form_title' => 'Case Management Assessment for Family Visitation', + 'ministry_id' => 1, + 'form_purpose' => 'This form is used to collect information from families in support of an application for financial assistance to facilitate visits with their young person in custody.', + 'notes' => 'used by 10 professionals (5 Directors and 5 case management professionals including Youth Probation Officers)', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => 4, + 'form_reach_id' => 1, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 11 => [ + 'id' => 506, + 'form_id' => 'CF0289', + 'form_title' => 'Application for Travel Support Youth Custody Services', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -13233,17 +11822,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 100 => - array ( - 'id' => 599, - 'form_id' => 'CF0750', - 'form_title' => 'Nursing Support Services - Child Assessement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 12 => [ + 'id' => 507, + 'form_id' => 'CF0290', + 'form_title' => 'Case Supervision Checklist', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -13254,18 +11844,19 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 101 => - array ( - 'id' => 600, - 'form_id' => 'CF0751', - 'form_title' => 'Nursing Support Services - Record of Trained Caregivers', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 13 => [ + 'id' => 508, + 'form_id' => 'CF0291', + 'form_title' => 'Worksheet 1: Single Sentence Calculation - YCJA', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -13276,18 +11867,19 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 102 => - array ( - 'id' => 601, - 'form_id' => 'CF0752', - 'form_title' => 'Nursing Support Services - Request to Administration of Medication', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 14 => [ + 'id' => 509, + 'form_id' => 'CF0292', + 'form_title' => 'Worksheet 2: Concurrent 2/3 + 1/3 Sentence - Sec. 42(2)(n) YCJA', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -13298,13 +11890,14 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 103 => - array ( - 'id' => 602, - 'form_id' => 'CF0753', - 'form_title' => 'Nursing Support Services - Seizure Activity Record', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 15 => [ + 'id' => 510, + 'form_id' => 'CF0293', + 'form_title' => 'Worksheet 3: Consecutive 2/3 + 1/3 Sentence - Sec. 42(2)(n) YCJA', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -13321,12 +11914,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 104 => - array ( - 'id' => 603, - 'form_id' => 'CF0754', - 'form_title' => 'Nursing Support Services - Child Conact Information', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 16 => [ + 'id' => 511, + 'form_id' => 'CF0294', + 'form_title' => 'Worksheet 4: Concurrent Non 2/3 + 1/3 Sentence - Sec. 42(2)(o)(q)(r) YCJA', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -13343,12 +11937,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 105 => - array ( - 'id' => 604, - 'form_id' => 'CF0755', - 'form_title' => 'Nursing Support Services - Medication/Procedure Record', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 17 => [ + 'id' => 512, + 'form_id' => 'CF0295', + 'form_title' => 'Worksheet 5: Consecutive Non 2/3 + 1/3 Sentence - Sec. 42(2)(o)(q)(r) YCJA', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -13365,12 +11960,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 106 => - array ( - 'id' => 605, - 'form_id' => 'CF0756', - 'form_title' => 'Nursing Support Services - Consent for Excahnge of Information', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 18 => [ + 'id' => 513, + 'form_id' => 'CF0296', + 'form_title' => 'Worksheet 6: Days Owing Calculation - YCJA', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -13387,12 +11983,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 107 => - array ( - 'id' => 606, - 'form_id' => 'CF0900', - 'form_title' => 'Autism Funding Agreement - Under Age Six', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 19 => [ + 'id' => 514, + 'form_id' => 'CF0298', + 'form_title' => 'Strip Search', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -13409,34 +12006,36 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 108 => - array ( - 'id' => 607, - 'form_id' => 'CF0900A', - 'form_title' => 'Austim Funding Agreement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 20 => [ + 'id' => 515, + 'form_id' => 'CF0299', + 'form_title' => 'Youth Probation Officer Letter to Parents', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, - 'decommissioned' => true, - 'form_frequency_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => 4, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 109 => - array ( - 'id' => 608, - 'form_id' => 'CF0900B', - 'form_title' => 'Schedule B - Autism Funding: Under Age Six Expenses Form', + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 21 => [ + 'id' => 516, + 'form_id' => 'CF0300', + 'form_title' => 'Restoratibe Youth Justice Program Referral Form', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -13453,17 +12052,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 110 => - array ( - 'id' => 609, - 'form_id' => 'CF0901', - 'form_title' => 'Application for Registry of Autism Service Providers', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 22 => [ + 'id' => 517, + 'form_id' => 'CF0322A', + 'form_title' => 'Voluntary Care/Special Needs Agreement', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -13475,12 +12075,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 111 => - array ( - 'id' => 610, - 'form_id' => 'CF0902', - 'form_title' => 'Extended Autism Intervention Funding Agreement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 23 => [ + 'id' => 518, + 'form_id' => 'CF0323', + 'form_title' => 'Legal Services Soc. Independent Legal Advice for Children Cert. Of Authorization', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -13497,15 +12098,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 112 => - array ( - 'id' => 611, - 'form_id' => 'CF0902B', - 'form_title' => 'Schedule B - Autism Funding: Ages 6 - 18 Expenses Form', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 24 => [ + 'id' => 519, + 'form_id' => 'CF0324', + 'form_title' => 'Transfer of Care and Custody Agreement', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -13514,17 +12116,18 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 113 => - array ( - 'id' => 612, - 'form_id' => 'CF0903', - 'form_title' => 'Interim Early Intensive/Extended Autism Intervention Funding Application', + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 25 => [ + 'id' => 520, + 'form_id' => 'CF0325', + 'form_title' => 'Adoption Placement Agreement', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -13541,17 +12144,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 114 => - array ( - 'id' => 613, - 'form_id' => 'CF0904', - 'form_title' => 'Non-BCAAN Diagnosis of Autism Spectrum Disorder', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 26 => [ + 'id' => 521, + 'form_id' => 'CF0326', + 'form_title' => 'Guidlelines for the Child\'s Adoption Bulletin Profile', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Check if Obsolete (word doc removed - no reference on Froms page)', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -13563,17 +12167,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 115 => - array ( - 'id' => 614, - 'form_id' => 'CF0905', - 'form_title' => 'Confirmation of Diagnosis of Autism Spectrum Disorder', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 27 => [ + 'id' => 522, + 'form_id' => 'CF0327', + 'form_title' => 'Family Assessment', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Check if obsolete', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -13585,17 +12190,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 116 => - array ( - 'id' => 615, - 'form_id' => 'CF0906', - 'form_title' => 'Application for Autism Funcing', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 28 => [ + 'id' => 523, + 'form_id' => 'CF0327A', + 'form_title' => 'Family Assessment Questionnaire l', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'contained in 0327', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -13607,17 +12213,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 117 => - array ( - 'id' => 616, - 'form_id' => 'CF0907', - 'form_title' => 'Autism Agreement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 29 => [ + 'id' => 524, + 'form_id' => 'CF0327B', + 'form_title' => 'Family Assessment Questionnaire ll', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'contained in 0327', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -13629,17 +12236,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 118 => - array ( - 'id' => 617, - 'form_id' => 'CF0908', - 'form_title' => 'Autism Justification for Equipment and Supplies', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 30 => [ + 'id' => 525, + 'form_id' => 'CF0327C', + 'form_title' => 'Preface to Family Assessment', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -13651,12 +12259,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 119 => - array ( - 'id' => 618, - 'form_id' => 'CF0909', - 'form_title' => 'Autism Agreement For Children in the Extended Family Program or Child in the Home of a Relative Program', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 31 => [ + 'id' => 526, + 'form_id' => 'CF0328', + 'form_title' => 'Consent of a child twelve and over to disclosure and posting to the Adopt BC Kids website', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -13673,15 +12282,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 120 => - array ( - 'id' => 619, - 'form_id' => 'CF0910', - 'form_title' => 'Supervision-Verification Record for Supervised - SLP', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 32 => [ + 'id' => 527, + 'form_id' => 'CF0380', + 'form_title' => 'Software Hardware Advisory Committee Review Request', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not adoptions/CP/CYSN/Medical', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -13690,20 +12300,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 121 => - array ( - 'id' => 620, - 'form_id' => 'CF0912', - 'form_title' => 'Supervision-Verification Record for Supervised - OT', + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 33 => [ + 'id' => 528, + 'form_id' => 'CF0381', + 'form_title' => 'Change Request Emergency Outage Notification', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'Not on iConnect', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -13712,20 +12323,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 122 => - array ( - 'id' => 621, - 'form_id' => 'CF0927', - 'form_title' => 'Contact Information for Autism Funding', + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 34 => [ + 'id' => 529, + 'form_id' => 'CF0400', + 'form_title' => 'Expense Signing Authority Request', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -13735,16 +12347,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 123 => - array ( - 'id' => 622, - 'form_id' => 'CF0927a', - 'form_title' => 'Autism Funding - Release of Information', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 35 => [ + 'id' => 530, + 'form_id' => 'CF0410', + 'form_title' => 'Capital Grant Application', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -13761,17 +12374,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 124 => - array ( - 'id' => 623, - 'form_id' => 'CF0930', - 'form_title' => 'Request to Pay Under Age 6', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 36 => [ + 'id' => 531, + 'form_id' => 'CF0411', + 'form_title' => 'Contract Evaluation Report', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'Unknown location - Not on LAN', + 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -13783,37 +12397,39 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 125 => - array ( - 'id' => 624, - 'form_id' => 'CF0931', - 'form_title' => 'Request to Pay Age 6-18', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 37 => [ + 'id' => 532, + 'form_id' => 'CF0411A', + 'form_title' => 'Prefesstional Services/Consulting/Third Party Services Contract Evaluation', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'Unknown location - Not on LAN', + 'notes' => 'Not adoptions/CP/CYSN/Medical', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 126 => - array ( - 'id' => 625, - 'form_id' => 'CF0932', - 'form_title' => 'Request to Pay Under Age 6 CIC', + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 38 => [ + 'id' => 533, + 'form_id' => 'CF0412', + 'form_title' => 'Internet Publishing/Change Request', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'Unknown location - Not on LAN', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => true, 'form_frequency_id' => NULL, @@ -13827,15 +12443,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 127 => - array ( - 'id' => 626, - 'form_id' => 'CF0940', - 'form_title' => 'Claim form under Age 6', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 39 => [ + 'id' => 534, + 'form_id' => 'CF0413', + 'form_title' => 'Communications Project Approval 2001/2002', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'Unknown location - Not on LAN', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => true, 'form_frequency_id' => NULL, @@ -13849,17 +12466,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 128 => - array ( - 'id' => 627, - 'form_id' => 'CF0941', - 'form_title' => 'Claim form Age 6-18', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 40 => [ + 'id' => 535, + 'form_id' => 'CF0420', + 'form_title' => 'Request Action Report', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'Unknown location - Not on LAN', + 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -13871,15 +12489,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 129 => - array ( - 'id' => 628, - 'form_id' => 'CF0942', - 'form_title' => 'Autism Parent Complaint', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 41 => [ + 'id' => 536, + 'form_id' => 'CF0450', + 'form_title' => 'Modification Agreement - Patriot Act (CLBC)', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'Unknown location - Not on LAN', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => true, 'form_frequency_id' => NULL, @@ -13893,12 +12512,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 130 => - array ( - 'id' => 629, - 'form_id' => 'CF0945', - 'form_title' => 'Autism Funding - Direct Payment Agreement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 42 => [ + 'id' => 537, + 'form_id' => 'CF0451', + 'form_title' => 'Modification Agreement', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -13915,15 +12535,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 131 => - array ( - 'id' => 630, - 'form_id' => 'CF0946', - 'form_title' => 'Accountant Confirmation', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 43 => [ + 'id' => 538, + 'form_id' => 'CF0452', + 'form_title' => 'Services Agreement', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Cannot find working version on iConnect. A 2015 version on ADO Repo', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -13932,17 +12553,41 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 132 => - array ( - 'id' => 631, - 'form_id' => 'CF0950', - 'form_title' => 'Individualized Funding Expression of Interest', + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 44 => [ + 'id' => 539, + 'form_id' => 'CF0453', + 'form_title' => 'Continuing Agreement', + 'ministry_id' => 1, + 'form_purpose' => NULL, + 'notes' => 'Not adoptions/CP/CYSN/Medical', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 45 => [ + 'id' => 540, + 'form_id' => 'CF0454', + 'form_title' => 'Letter of Intent', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -13959,15 +12604,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 133 => - array ( - 'id' => 632, - 'form_id' => 'CF1001', - 'form_title' => 'Birth Registration Number Requisition', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 46 => [ + 'id' => 541, + 'form_id' => 'CF0455', + 'form_title' => 'Service Agreement (Residential)', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'RAPP (form when down)', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -13981,15 +12627,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 134 => - array ( - 'id' => 633, - 'form_id' => 'CF1005', - 'form_title' => 'Name Change Request', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 47 => [ + 'id' => 542, + 'form_id' => 'CF0456', + 'form_title' => 'Service Agreement (Non-Residential)', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'RAPP (form when down)', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -14003,17 +12650,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 135 => - array ( - 'id' => 634, - 'form_id' => 'CF1005C', - 'form_title' => 'Name Change Request - Printable Version', - 'ministry_id' => 1, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 48 => [ + 'id' => 543, + 'form_id' => 'CF0601', + 'form_title' => 'Renewal for Early Childhood Educator License to Practice', + 'ministry_id' => 3, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Replaced with CF1361', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -14025,12 +12673,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 136 => - array ( - 'id' => 635, - 'form_id' => 'CF1006', - 'form_title' => 'Affidavit in Support of an Application', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 49 => [ + 'id' => 544, + 'form_id' => 'CF0603', + 'form_title' => 'Authorization and Service Plan', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -14044,22 +12693,23 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', + 'dcv_material_number' => '7530804103', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 137 => - array ( - 'id' => 636, - 'form_id' => 'CF1007', - 'form_title' => 'Petition to the Court', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 50 => [ + 'id' => 545, + 'form_id' => 'CF0605', + 'form_title' => 'Physician\'s Report on Applicant', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, - 'form_reach_id' => 2, + 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, @@ -14069,12 +12719,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 138 => - array ( - 'id' => 637, - 'form_id' => 'CF1008', - 'form_title' => 'Amended Petition to the Court for the Adoption of Children under CCO', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 51 => [ + 'id' => 546, + 'form_id' => 'CF0607', + 'form_title' => 'Consent to Social Media Use by Program', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -14090,13 +12741,14 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 139 => - array ( - 'id' => 638, - 'form_id' => 'CF1013', - 'form_title' => 'Application to Adopt', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 52 => [ + 'id' => 548, + 'form_id' => 'CF0610', + 'form_title' => 'Certificate of Service (Sessional)', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -14110,39 +12762,39 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', + 'dcv_material_number' => '7530801055', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 140 => - array ( - 'id' => 639, - 'form_id' => 'CF1013A', - 'form_title' => 'Unknown', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 53 => [ + 'id' => 549, + 'form_id' => 'CF0620', + 'form_title' => 'Acknowledgement of Notification for Out of Care Placement Screening/Assessment', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'i?nDesign -? -', + 'notes' => NULL, 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 141 => - array ( - 'id' => 640, - 'form_id' => 'CF1014', - 'form_title' => 'Application for 54.01 or 54.1 (cf1014)', + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 54 => [ + 'id' => 550, + 'form_id' => 'CF0621', + 'form_title' => 'Notification to Hospital to Removal of Child', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -14159,15 +12811,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 142 => - array ( - 'id' => 641, - 'form_id' => 'CF1015', - 'form_title' => 'Application for an Extra-Provincal Placement Assessment', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 55 => [ + 'id' => 551, + 'form_id' => 'CF0622', + 'form_title' => 'Consent for Disclosure of Criminal Record Information', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -14177,16 +12830,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 143 => - array ( - 'id' => 642, - 'form_id' => 'CF1016', - 'form_title' => 'Part A: Request for Assessment of Prospective Adoptive Parent(s) for Extra-Provincial Adoption Placement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 56 => [ + 'id' => 552, + 'form_id' => 'CF0622B', + 'form_title' => 'Contracted Agency Caregiver Screening Consent for Disclosure of Criminal Record Information (internet)', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -14203,12 +12857,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 144 => - array ( - 'id' => 643, - 'form_id' => 'CF1017', - 'form_title' => 'Part B: Supervision Agreement for an Extra Provincial Adoption Placement ', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 57 => [ + 'id' => 553, + 'form_id' => 'CF0623', + 'form_title' => 'Consent for Prior Contact Check', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -14225,15 +12880,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 145 => - array ( - 'id' => 644, - 'form_id' => 'CF1023', - 'form_title' => 'Notice of Placement ', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 58 => [ + 'id' => 554, + 'form_id' => 'CF0623B', + 'form_title' => 'Contracted Agency Caregiver Screening Consent for Prior Contact Check (internet)', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'Including CF1023A (not identified on this sheet)', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -14247,12 +12903,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 146 => - array ( - 'id' => 645, - 'form_id' => 'CF1025', - 'form_title' => 'Birth Parent or Guardian\'s Statement of Alternatives to Adoption', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 59 => [ + 'id' => 555, + 'form_id' => 'CF0624', + 'form_title' => 'Child Protection Record Check', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -14269,17 +12926,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 147 => - array ( - 'id' => 646, - 'form_id' => 'CF1036', - 'form_title' => 'Request for Reference and Reference Outline', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 60 => [ + 'id' => 556, + 'form_id' => 'CF0624A', + 'form_title' => 'Child Protection Record Check', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'Including CL1037 (not identified on this sheet)', + 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -14291,12 +12949,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 148 => - array ( - 'id' => 647, - 'form_id' => 'CF1048', - 'form_title' => 'Adoption Questionaire', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 61 => [ + 'id' => 557, + 'form_id' => 'CF0625', + 'form_title' => 'Contracted Agency Caregiver Screening Consent for Disclosure of Police Information ', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -14313,12 +12972,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 149 => - array ( - 'id' => 648, - 'form_id' => 'CF1052', - 'form_title' => 'Convention Letter Request', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 62 => [ + 'id' => 558, + 'form_id' => 'CF0629', + 'form_title' => 'Safety Plan', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -14332,20 +12992,21 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', + 'dcv_material_number' => '7530801066', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 150 => - array ( - 'id' => 649, - 'form_id' => 'CF1054', - 'form_title' => 'Recommendation for Child Tax Benefit', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 63 => [ + 'id' => 559, + 'form_id' => 'CF0631A', + 'form_title' => 'Strengths and Needs Assessment', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -14357,12 +13018,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 151 => - array ( - 'id' => 650, - 'form_id' => 'CF1057', - 'form_title' => 'Canada Child Tax Benefit - Letter Assisting Parents', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 64 => [ + 'id' => 560, + 'form_id' => 'CF0634', + 'form_title' => 'Family Plan/Interim Care Plan', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -14379,15 +13041,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 152 => - array ( - 'id' => 651, - 'form_id' => 'CF1057A', - 'form_title' => 'Canada Child Benefit � Letter Assisting Prospective Adoptive Parents', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 65 => [ + 'id' => 561, + 'form_id' => 'CF0634A', + 'form_title' => 'Family Plan', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'check if obsolete', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -14400,13 +13063,14 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 153 => - array ( - 'id' => 652, - 'form_id' => 'CF1058', - 'form_title' => 'Complex Consultation Request For Adoption & Permanency Branch Involvement ', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 66 => [ + 'id' => 562, + 'form_id' => 'CF0635', + 'form_title' => 'Learning Site Child Protection Evaluation - Parent Survery', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -14423,12 +13087,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 154 => - array ( - 'id' => 653, - 'form_id' => 'CF1060', - 'form_title' => 'BC Child and Youth in Care Awards Nomination Form', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 67 => [ + 'id' => 563, + 'form_id' => 'CF0636', + 'form_title' => 'Family Development Response - Protection Services Phase', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -14444,13 +13109,14 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 155 => - array ( - 'id' => 654, - 'form_id' => 'CF1234', - 'form_title' => 'Respite/Relief Care Take Charge', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 68 => [ + 'id' => 564, + 'form_id' => 'CF0637', + 'form_title' => 'Ongoing Protection Services Phase', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -14464,18 +13130,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', - 'dcv_material_number' => '7530801003', + 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 156 => - array ( - 'id' => 655, - 'form_id' => 'CF1280', - 'form_title' => 'Early Childhood Educator - Awards of Excellence Nomination', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 69 => [ + 'id' => 565, + 'form_id' => 'CF0638', + 'form_title' => 'Intake Incident', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Check if obsolete - not in ICM - but in CRMS', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -14489,17 +13156,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 157 => - array ( - 'id' => 656, - 'form_id' => 'CF1280A', - 'form_title' => 'Child Care Awards of Excellent 2011 Nomination', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 70 => [ + 'id' => 566, + 'form_id' => 'CF0639', + 'form_title' => 'Intake Service Request', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -14511,34 +13179,36 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 158 => - array ( - 'id' => 657, - 'form_id' => 'CF1281', - 'form_title' => 'Municipal / Regional Government Child Care Awards of Excellence 2011 Nomination', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 71 => [ + 'id' => 567, + 'form_id' => 'CF0641', + 'form_title' => 'Immigration and Refugee Status Checklist', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 159 => - array ( - 'id' => 658, - 'form_id' => 'CF1297', - 'form_title' => 'Early Childhood Educator Incentive Grant Program Application Form', + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 72 => [ + 'id' => 568, + 'form_id' => 'CF0642', + 'form_title' => 'Oath of Confidentiality', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -14555,12 +13225,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 160 => - array ( - 'id' => 659, - 'form_id' => 'CF1298', - 'form_title' => 'Confirmation of Employment Early Childhood Educator Incentive Grant Program', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 73 => [ + 'id' => 569, + 'form_id' => 'CF0648', + 'form_title' => 'Time Report for On-Call Auxiliaries / Regular Part-Time employees', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -14577,18 +13248,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 161 => - array ( - 'id' => 660, - 'form_id' => 'CF1300', - 'form_title' => 'Child Care Capital Funding Program Safe Play Space Program Application', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 74 => [ + 'id' => 570, + 'form_id' => 'CF0649', + 'form_title' => 'Joint Incident Investigation Form', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'i?nDesign -', + 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -14600,12 +13271,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 162 => - array ( - 'id' => 661, - 'form_id' => 'CF1301', - 'form_title' => 'Early Childhool Education Bursary Application Form', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 75 => [ + 'id' => 571, + 'form_id' => 'CF0652', + 'form_title' => 'MCFD Mentoring Program Application', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -14622,19 +13294,20 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 163 => - array ( - 'id' => 662, - 'form_id' => 'CF1302', - 'form_title' => 'Child Care Provider Professional Development and Training Fund Application', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 76 => [ + 'id' => 572, + 'form_id' => 'CF0653', + 'form_title' => 'Supervisor\'s OSH Incident Report', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, + 'form_reach_id' => 2, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, @@ -14644,17 +13317,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 164 => - array ( - 'id' => 663, - 'form_id' => 'CF1303', - 'form_title' => 'Child Care in Multicultral Communities Fund Application', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 77 => [ + 'id' => 573, + 'form_id' => 'CF0654', + 'form_title' => 'File Retrieval Request and Fax Transmission', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'links to site from iConnect forms page - probably obsolete', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -14666,13 +13340,14 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 165 => - array ( - 'id' => 664, - 'form_id' => 'CF1304', - 'form_title' => 'Child Care BC Maintenance Fund', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 78 => [ + 'id' => 574, + 'form_id' => 'CF0654A', + 'form_title' => 'File Retrieval Request and Fax Transmission', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -14688,13 +13363,14 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 166 => - array ( - 'id' => 665, - 'form_id' => 'CF1305', - 'form_title' => 'Major Capital Funding for Creation of New Child Care Spaces', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 79 => [ + 'id' => 575, + 'form_id' => 'CF0655', + 'form_title' => 'Transfer of Legal Custody: Forms and Records', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -14710,13 +13386,14 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 167 => - array ( - 'id' => 666, - 'form_id' => 'CF1305A', - 'form_title' => 'Child Care Capital Funding Program Major Capital Funding for Creation of New Child Care Spaces Non-Profit & Private Organizations', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 80 => [ + 'id' => 576, + 'form_id' => 'CF0656', + 'form_title' => 'Joint Parental Consent to the Release of Information', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -14732,19 +13409,20 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 168 => - array ( - 'id' => 667, - 'form_id' => 'CF1305B', - 'form_title' => 'Child Care Capital Funding Program Major Capital Funding for Creation of New Child Care Spaces in Schools and Public Buildings', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 81 => [ + 'id' => 577, + 'form_id' => 'CF0657', + 'form_title' => 'Youth Justice Reportable Circumstances', 'ministry_id' => 3, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, + 'form_reach_id' => 2, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, @@ -14754,13 +13432,14 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 169 => - array ( - 'id' => 668, - 'form_id' => 'CF1305C', - 'form_title' => 'Child Care Capital Funding Program Major Captial Funding for Creation of New Family Child Care Spaces', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 82 => [ + 'id' => 578, + 'form_id' => 'CF0660', + 'form_title' => 'Caution Alert Sheet', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -14776,13 +13455,14 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 170 => - array ( - 'id' => 669, - 'form_id' => 'CF1305D', - 'form_title' => 'Major Capital Funding for Creation of New Child Care Spaces', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 83 => [ + 'id' => 579, + 'form_id' => 'CF0661', + 'form_title' => 'Consent for Audio/Video Recording', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -14798,17 +13478,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 171 => - array ( - 'id' => 670, - 'form_id' => 'CF1306', - 'form_title' => 'Child Care Capital Funding Program Start-Up Funding For the Creation of Licensed Family and In-Home Multi-Age Child Care', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 84 => [ + 'id' => 580, + 'form_id' => 'CF0662', + 'form_title' => 'CYMH Reportable Circumstance', + 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'Not on iConnect', + 'notes' => 'Replaced by CF0659', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -14819,14 +13500,15 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 172 => - array ( - 'id' => 671, - 'form_id' => 'CF1320', - 'form_title' => 'Application for Funding Family Child Care Provider', - 'ministry_id' => 3, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 85 => [ + 'id' => 581, + 'form_id' => 'CF0663', + 'form_title' => 'Consent for Child and Youth Mental Health Services', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -14842,13 +13524,14 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 173 => - array ( - 'id' => 672, - 'form_id' => 'CF1320A', - 'form_title' => 'Child Care Operating Funding Program Application for 2019/2020 Funding - Combined Family/Group', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 86 => [ + 'id' => 582, + 'form_id' => 'CF0664', + 'form_title' => 'Child and Youth Mental Health Intake and Referral Form', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -14863,14 +13546,15 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 174 => - array ( - 'id' => 673, - 'form_id' => 'CF1321', - 'form_title' => 'Application for Funding Group Child Care Provider', - 'ministry_id' => 3, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 87 => [ + 'id' => 583, + 'form_id' => 'CF0665', + 'form_title' => 'Consent for Recording and Disclosure for the Purpose of Clinician Training', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -14886,17 +13570,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 175 => - array ( - 'id' => 674, - 'form_id' => 'CF1322', - 'form_title' => 'Child Care Operating Funding Program Application Renewal 2009-2010 Family Child Care Provide', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 88 => [ + 'id' => 584, + 'form_id' => 'CF0666', + 'form_title' => 'Family Youth Partnership Project Application', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -14908,17 +13593,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 176 => - array ( - 'id' => 675, - 'form_id' => 'CF1323', - 'form_title' => 'Child Care Operating Funding Program Application Renewal 2010-2011 Group Child Care Provider', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 89 => [ + 'id' => 585, + 'form_id' => 'CF0667', + 'form_title' => 'CYMH Services Initial Screening', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -14930,12 +13616,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 177 => - array ( - 'id' => 676, - 'form_id' => 'CF1324', - 'form_title' => 'Child Care Operating Funding - Program Confirmation', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 90 => [ + 'id' => 586, + 'form_id' => 'CF0668', + 'form_title' => 'CYMH Services Child/Youth Information', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -14952,17 +13639,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 178 => - array ( - 'id' => 677, - 'form_id' => 'CF1325', - 'form_title' => 'Childcare BC New Spaces Fund Application Form', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 91 => [ + 'id' => 587, + 'form_id' => 'CF0669', + 'form_title' => 'CYMH Services Plan for Initial Supports and Services', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -14974,19 +13662,20 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 179 => - array ( - 'id' => 678, - 'form_id' => 'CF1325a', - 'form_title' => 'ChildCareBC New Spaces Fund: Major Grants Application 2024/2025', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 92 => [ + 'id' => 588, + 'form_id' => 'CF0670', + 'form_title' => 'CYSN Consolidated Assessment Tool (CCAT)', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, - 'form_reach_id' => 1, + 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, @@ -14995,20 +13684,21 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 180 => - array ( - 'id' => 679, - 'form_id' => 'CF1325b', - 'form_title' => 'ChildCareBC New Spaces Fund: Minor Grants Application 2024/2025', - 'ministry_id' => 3, - 'form_purpose' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 93 => [ + 'id' => 589, + 'form_id' => 'CF0703', + 'form_title' => 'BC Employment Program - Youth Employment Pilot', + 'ministry_id' => 1, + 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, - 'form_reach_id' => 1, + 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, @@ -15017,14 +13707,15 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 181 => - array ( - 'id' => 680, - 'form_id' => 'CF1326', - 'form_title' => 'School Age Application Form', - 'ministry_id' => 3, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 94 => [ + 'id' => 590, + 'form_id' => 'CF0705', + 'form_title' => 'Youth Service Intake', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -15039,14 +13730,15 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 182 => - array ( - 'id' => 681, - 'form_id' => 'CF1330', - 'form_title' => 'Annual Child Care Providers Profile for Group Child Care Providers', - 'ministry_id' => 3, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 95 => [ + 'id' => 591, + 'form_id' => 'CF0706', + 'form_title' => 'Youth Immediate Needs Assessment and Safety Plan', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -15062,17 +13754,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 183 => - array ( - 'id' => 682, - 'form_id' => 'CF1330A', - 'form_title' => '2012-2013 Annual Profile for Group Child Care Provider Staff Information ', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 96 => [ + 'id' => 592, + 'form_id' => 'CF0707', + 'form_title' => 'Agreement with Young Adult Application Form', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -15084,13 +13777,14 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 184 => - array ( - 'id' => 683, - 'form_id' => 'CF1331', - 'form_title' => 'Annual Child Care Providers Profile for Family Child Care Providers', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 97 => [ + 'id' => 593, + 'form_id' => 'CF0708', + 'form_title' => 'Agreement with Young Adult Program Screening Form', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -15106,13 +13800,14 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 185 => - array ( - 'id' => 684, - 'form_id' => 'CF1332', - 'form_title' => 'Annual Child Care Providers Profile for Registered Child Care Providers', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 98 => [ + 'id' => 594, + 'form_id' => 'CF0709', + 'form_title' => 'Agreement with Young Adult Financial Worksheet', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -15128,17 +13823,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 186 => - array ( - 'id' => 685, - 'form_id' => 'CF1335', - 'form_title' => 'CCOF Programs Referral', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 99 => [ + 'id' => 595, + 'form_id' => 'CF0710', + 'form_title' => 'Unknown', + 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'inDesign', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -15150,15 +13846,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 187 => - array ( - 'id' => 686, - 'form_id' => 'CF1336', - 'form_title' => 'CCOF Programs Report', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 100 => [ + 'id' => 596, + 'form_id' => 'CF0720', + 'form_title' => 'Direct Billing Utility Service Request', + 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -15168,21 +13865,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 188 => - array ( - 'id' => 687, - 'form_id' => 'CF1340', - 'form_title' => 'Unknown', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 101 => [ + 'id' => 597, + 'form_id' => 'CF0725', + 'form_title' => 'Prescription Order', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -15191,20 +13889,21 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', + 'dcv_material_number' => '7530801065', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 189 => - array ( - 'id' => 688, - 'form_id' => 'CF1341', - 'form_title' => 'Unknown', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 102 => [ + 'id' => 598, + 'form_id' => 'CF0730', + 'form_title' => 'Promise to Pay Security Deposit (Youth Agreement)', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -15216,17 +13915,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 190 => - array ( - 'id' => 689, - 'form_id' => 'CF1345', - 'form_title' => 'Child Care Operating Funding: Report License & Service Changes', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 103 => [ + 'id' => 599, + 'form_id' => 'CF0750', + 'form_title' => 'Nursing Support Services - Child Assessement', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -15238,17 +13938,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 191 => - array ( - 'id' => 690, - 'form_id' => 'CF1346', - 'form_title' => 'Universal Child Care Prototype Site Application', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 104 => [ + 'id' => 600, + 'form_id' => 'CF0751', + 'form_title' => 'Nursing Support Services - Record of Trained Caregivers', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -15259,17 +13960,17 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 192 => - array ( - 'id' => 691, - 'form_id' => 'CF1360', - 'form_title' => 'Application for Early Childhood Educator License to Practice', - 'ministry_id' => 3, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 105 => [ + 'id' => 601, + 'form_id' => 'CF0752', + 'form_title' => 'Nursing Support Services - Request to Administration of Medication', + 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'Decommissioned Feb 14, 2022. -', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => true, 'form_frequency_id' => NULL, @@ -15283,18 +13984,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 193 => - array ( - 'id' => 692, - 'form_id' => 'CF1361', - 'form_title' => 'Renewal for Early Childhood Educator License to Practice', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 106 => [ + 'id' => 602, + 'form_id' => 'CF0753', + 'form_title' => 'Nursing Support Services - Seizure Activity Record', + 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'Decommissioned Feb 14, 2022.? -', + 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -15306,17 +14007,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 194 => - array ( - 'id' => 693, - 'form_id' => 'CF1362', - 'form_title' => 'Application/Renewal for Early Childhood Educator Assistant License to Practice', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 107 => [ + 'id' => 603, + 'form_id' => 'CF0754', + 'form_title' => 'Nursing Support Services - Child Conact Information', + 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'Decommissioned Feb 14, 2022.', + 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -15328,17 +14030,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 195 => - array ( - 'id' => 694, - 'form_id' => 'CF1363', - 'form_title' => 'Out of Province Program Confirmation', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 108 => [ + 'id' => 604, + 'form_id' => 'CF0755', + 'form_title' => 'Nursing Support Services - Medication/Procedure Record', + 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'Decommissioned Feb 14, 2022.', + 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -15350,13 +14053,14 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 196 => - array ( - 'id' => 695, - 'form_id' => 'CF1364', - 'form_title' => 'Certificate Re-print Request and Change of Information', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 109 => [ + 'id' => 605, + 'form_id' => 'CF0756', + 'form_title' => 'Nursing Support Services - Consent for Excahnge of Information', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -15372,17 +14076,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 197 => - array ( - 'id' => 696, - 'form_id' => 'CF1365', - 'form_title' => 'Application/Renewal for Early Childhood Educator One Year License to Practice', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 110 => [ + 'id' => 606, + 'form_id' => 'CF0900', + 'form_title' => 'Autism Funding Agreement - Under Age Six', + 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'Decommissioned Feb 14, 2022.', + 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -15394,15 +14099,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 198 => - array ( - 'id' => 697, - 'form_id' => 'CF1366', - 'form_title' => 'Practicum Confirmation', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 111 => [ + 'id' => 607, + 'form_id' => 'CF0900A', + 'form_title' => 'Austim Funding Agreement', + 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'Decommissioned Feb 14, 2022.', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => true, 'form_frequency_id' => NULL, @@ -15416,17 +14122,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 199 => - array ( - 'id' => 698, - 'form_id' => 'CF1367', - 'form_title' => 'Early Childhood Educator First Time Certificate', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 112 => [ + 'id' => 608, + 'form_id' => 'CF0900B', + 'form_title' => 'Schedule B - Autism Funding: Under Age Six Expenses Form', + 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'Decommissioned Feb 14, 2022.', + 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -15438,13 +14145,14 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 200 => - array ( - 'id' => 699, - 'form_id' => 'CF1368', - 'form_title' => 'Early Childhood Educator Character Reference', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 113 => [ + 'id' => 609, + 'form_id' => 'CF0901', + 'form_title' => 'Application for Registry of Autism Service Providers', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -15460,13 +14168,14 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 201 => - array ( - 'id' => 700, - 'form_id' => 'CF1369', - 'form_title' => 'Early Childhood Educator 400 Hours Work Experience for Renewal Certificate', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 114 => [ + 'id' => 610, + 'form_id' => 'CF0902', + 'form_title' => 'Extended Autism Intervention Funding Agreement', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -15482,13 +14191,14 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 202 => - array ( - 'id' => 701, - 'form_id' => 'CF1370', - 'form_title' => 'Early Childhood Educator Registry (ECER) Complaint Intake', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 115 => [ + 'id' => 611, + 'form_id' => 'CF0902B', + 'form_title' => 'Schedule B - Autism Funding: Ages 6 - 18 Expenses Form', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -15504,13 +14214,14 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 203 => - array ( - 'id' => 702, - 'form_id' => 'CF1371', - 'form_title' => 'Application Requirements for Recognized Educational Institutions to Offer a Basic/Post-Basic Early Childhood Education Program at a New Location', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 116 => [ + 'id' => 612, + 'form_id' => 'CF0903', + 'form_title' => 'Interim Early Intensive/Extended Autism Intervention Funding Application', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -15526,13 +14237,14 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 204 => - array ( - 'id' => 703, - 'form_id' => 'CF1372', - 'form_title' => 'Application Requirements for Recognized Educational Institutions to Offer a Satellite Early Childhood Education Program at a New Location', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 117 => [ + 'id' => 613, + 'form_id' => 'CF0904', + 'form_title' => 'Non-BCAAN Diagnosis of Autism Spectrum Disorder', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -15548,12 +14260,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 205 => - array ( - 'id' => 704, - 'form_id' => 'CF1470a', - 'form_title' => '', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 118 => [ + 'id' => 614, + 'form_id' => 'CF0905', + 'form_title' => 'Confirmation of Diagnosis of Autism Spectrum Disorder', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -15569,13 +14282,14 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 206 => - array ( - 'id' => 705, - 'form_id' => 'CF1470b', - 'form_title' => '', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 119 => [ + 'id' => 615, + 'form_id' => 'CF0906', + 'form_title' => 'Application for Autism Funcing', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -15591,13 +14305,14 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 207 => - array ( - 'id' => 706, - 'form_id' => 'CF1606', - 'form_title' => 'Child\'s Permanent Medical Record', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 120 => [ + 'id' => 616, + 'form_id' => 'CF0907', + 'form_title' => 'Autism Agreement', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -15614,12 +14329,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 208 => - array ( - 'id' => 707, - 'form_id' => 'CF1611', - 'form_title' => 'Application to Provide Restricted/Regular Family Care', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 121 => [ + 'id' => 617, + 'form_id' => 'CF0908', + 'form_title' => 'Autism Justification for Equipment and Supplies', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -15636,12 +14352,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 209 => - array ( - 'id' => 708, - 'form_id' => 'CF1617', - 'form_title' => 'Transfer of Custody Written Consent', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 122 => [ + 'id' => 618, + 'form_id' => 'CF0909', + 'form_title' => 'Autism Agreement For Children in the Extended Family Program or Child in the Home of a Relative Program', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -15658,12 +14375,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 210 => - array ( - 'id' => 709, - 'form_id' => 'CF1625', - 'form_title' => 'Letter of Permission to Apply for a Passport', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 123 => [ + 'id' => 619, + 'form_id' => 'CF0910', + 'form_title' => 'Supervision-Verification Record for Supervised - SLP', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -15680,15 +14398,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 211 => - array ( - 'id' => 710, - 'form_id' => 'CF1626', - 'form_title' => 'Border Crossing Letter of Permission', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 124 => [ + 'id' => 620, + 'form_id' => 'CF0912', + 'form_title' => 'Supervision-Verification Record for Supervised - OT', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not on iConnect', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -15697,17 +14416,18 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 212 => - array ( - 'id' => 711, - 'form_id' => 'CF1627', - 'form_title' => 'Youth Advisory Requests for Participation ', + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 125 => [ + 'id' => 621, + 'form_id' => 'CF0927', + 'form_title' => 'Contact Information for Autism Funding', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -15723,13 +14443,14 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 213 => - array ( - 'id' => 712, - 'form_id' => 'CF1630', - 'form_title' => 'Annual Family Care Home Review', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 126 => [ + 'id' => 622, + 'form_id' => 'CF0927a', + 'form_title' => 'Autism Funding - Release of Information', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -15743,20 +14464,21 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', - 'dcv_material_number' => '7530804018', + 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 214 => - array ( - 'id' => 713, - 'form_id' => 'CF1631', - 'form_title' => 'Request/Renewal for Over Capacity Placement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 127 => [ + 'id' => 623, + 'form_id' => 'CF0930', + 'form_title' => 'Request to Pay Under Age 6', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Unknown location - Not on LAN', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -15768,17 +14490,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 215 => - array ( - 'id' => 714, - 'form_id' => 'CF1632', - 'form_title' => 'Environment of Care Checklist for Foster Homes', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 128 => [ + 'id' => 624, + 'form_id' => 'CF0931', + 'form_title' => 'Request to Pay Age 6-18', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Unknown location - Not on LAN', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -15790,15 +14513,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 216 => - array ( - 'id' => 715, - 'form_id' => 'CF1701', - 'form_title' => 'Child Care Subsidy Brochure', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 129 => [ + 'id' => 625, + 'form_id' => 'CF0932', + 'form_title' => 'Request to Pay Under Age 6 CIC', + 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Unknown location - Not on LAN', 'fill_type_id' => NULL, 'decommissioned' => true, 'form_frequency_id' => NULL, @@ -15812,15 +14536,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 217 => - array ( - 'id' => 716, - 'form_id' => 'CF1701A', - 'form_title' => 'Child Care Subsidy Brochure', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 130 => [ + 'id' => 626, + 'form_id' => 'CF0940', + 'form_title' => 'Claim form under Age 6', + 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Unknown location - Not on LAN', 'fill_type_id' => NULL, 'decommissioned' => true, 'form_frequency_id' => NULL, @@ -15834,15 +14559,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 218 => - array ( - 'id' => 717, - 'form_id' => 'CF1702', - 'form_title' => 'Child Care Subsidy Claim Registered Licence-Not-Required/Licence-Not-Required', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 131 => [ + 'id' => 627, + 'form_id' => 'CF0941', + 'form_title' => 'Claim form Age 6-18', + 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Unknown location - Not on LAN', 'fill_type_id' => NULL, 'decommissioned' => true, 'form_frequency_id' => NULL, @@ -15856,15 +14582,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 219 => - array ( - 'id' => 1145, - 'form_id' => 'HR2206', - 'form_title' => 'Child Support Agreement', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 132 => [ + 'id' => 628, + 'form_id' => 'CF0942', + 'form_title' => 'Autism Parent Complaint', + 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Unknown location - Not on LAN', 'fill_type_id' => NULL, 'decommissioned' => true, 'form_frequency_id' => NULL, @@ -15878,13 +14605,14 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 220 => - array ( - 'id' => 718, - 'form_id' => 'CF1702A', - 'form_title' => 'Affordable Child Care Benefit - Licence Not Required', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 133 => [ + 'id' => 629, + 'form_id' => 'CF0945', + 'form_title' => 'Autism Funding - Direct Payment Agreement', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -15900,17 +14628,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 221 => - array ( - 'id' => 719, - 'form_id' => 'CF1702B', - 'form_title' => 'Child Care Subsidy Claim Registered Licence-Not-Required/Licence-Not-Required', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 134 => [ + 'id' => 630, + 'form_id' => 'CF0946', + 'form_title' => 'Accountant Confirmation', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -15922,17 +14651,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 222 => - array ( - 'id' => 720, - 'form_id' => 'CF1703', - 'form_title' => 'Child Care Subsidy Claim Licensed Child Care', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 135 => [ + 'id' => 631, + 'form_id' => 'CF0950', + 'form_title' => 'Individualized Funding Expression of Interest', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -15944,13 +14674,14 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 223 => - array ( - 'id' => 721, - 'form_id' => 'CF1703A', - 'form_title' => 'Affordable Child Care Benefit - Licensed Child Care', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 136 => [ + 'id' => 632, + 'form_id' => 'CF1001', + 'form_title' => 'Birth Registration Number Requisition', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -15966,17 +14697,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 224 => - array ( - 'id' => 722, - 'form_id' => 'CF1703B', - 'form_title' => 'Child Care Subsidy Claim Licensed Child Care', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 137 => [ + 'id' => 633, + 'form_id' => 'CF1005', + 'form_title' => 'Name Change Request', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -15988,17 +14720,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 225 => - array ( - 'id' => 723, - 'form_id' => 'CF1704', - 'form_title' => 'Child Care Subsidy Claim In Child\'s Own Home Care', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 138 => [ + 'id' => 634, + 'form_id' => 'CF1005C', + 'form_title' => 'Name Change Request - Printable Version', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -16010,13 +14743,14 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 226 => - array ( - 'id' => 724, - 'form_id' => 'CF1704A', - 'form_title' => 'Affordable Child Care Benefit - In Child\'s Own Home Care', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 139 => [ + 'id' => 635, + 'form_id' => 'CF1006', + 'form_title' => 'Affidavit in Support of an Application', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -16032,19 +14766,20 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 227 => - array ( - 'id' => 725, - 'form_id' => 'CF1704B', - 'form_title' => 'Child Care Subsidy Claim In Child\'s Own Home Care', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 140 => [ + 'id' => 636, + 'form_id' => 'CF1007', + 'form_title' => 'Petition to the Court', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, + 'form_reach_id' => 2, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, @@ -16054,15 +14789,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 228 => - array ( - 'id' => 726, - 'form_id' => 'CF1706', - 'form_title' => 'Affordable Child Care Benefit - Additional Full Day Claim for School Age Children - Licensed Child Care', - 'ministry_id' => 3, - 'form_purpose' => NULL, - 'notes' => '', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 141 => [ + 'id' => 637, + 'form_id' => 'CF1008', + 'form_title' => 'Amended Petition to the Court for the Adoption of Children under CCO', + 'ministry_id' => 1, + 'form_purpose' => 'address issues in initital petition to court for adoption order', + 'notes' => 'users: Social workers, adoptive applicants', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -16071,18 +14807,19 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 229 => - array ( - 'id' => 727, - 'form_id' => 'CF1706a', - 'form_title' => 'Affordable Child Care Benefit - Additional Full Day Claim for School Age Children - Licensed Child Care', - 'ministry_id' => 3, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 142 => [ + 'id' => 638, + 'form_id' => 'CF1013', + 'form_title' => 'Application to Adopt', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -16098,13 +14835,14 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 230 => - array ( - 'id' => 728, - 'form_id' => 'CF1706b', - 'form_title' => '', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 143 => [ + 'id' => 640, + 'form_id' => 'CF1014', + 'form_title' => 'Application for 54.01 or 54.1 (cf1014)', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -16119,14 +14857,15 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 231 => - array ( - 'id' => 729, - 'form_id' => 'CF1707', - 'form_title' => 'Affordable Child Care Benefit - Additional Full Day Claim for School Age Children - Registered Licensed Not Required, Licensed Not Required, In Child\'s Own Home', - 'ministry_id' => 3, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 144 => [ + 'id' => 641, + 'form_id' => 'CF1015', + 'form_title' => 'Application for an Extra-Provincal Placement Assessment', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -16142,13 +14881,14 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 232 => - array ( - 'id' => 730, - 'form_id' => 'CF1707A', - 'form_title' => 'Affordable Child Care Benefit Claim In Child\'s Own Home Care', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 145 => [ + 'id' => 642, + 'form_id' => 'CF1016', + 'form_title' => 'Part A: Request for Assessment of Prospective Adoptive Parent(s) for Extra-Provincial Adoption Placement', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -16164,13 +14904,14 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 233 => - array ( - 'id' => 731, - 'form_id' => 'CF1707B', - 'form_title' => 'Child Care Subsidy In Child\'s Own Home Care', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 146 => [ + 'id' => 643, + 'form_id' => 'CF1017', + 'form_title' => 'Part B: Supervision Agreement for an Extra Provincial Adoption Placement ', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -16186,18 +14927,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 234 => - array ( - 'id' => 732, - 'form_id' => 'CF1738', - 'form_title' => 'Unknown', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 147 => [ + 'id' => 644, + 'form_id' => 'CF1023', + 'form_title' => 'Notice of Placement ', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'i?nDesign -', + 'notes' => 'Including CF1023A (not identified on this sheet)', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -16208,13 +14949,14 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 235 => - array ( - 'id' => 733, - 'form_id' => 'CF1800', - 'form_title' => 'Request for Delegation', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 148 => [ + 'id' => 645, + 'form_id' => 'CF1025', + 'form_title' => 'Birth Parent or Guardian\'s Statement of Alternatives to Adoption', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -16231,19 +14973,20 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 236 => - array ( - 'id' => 734, - 'form_id' => 'CF1810', - 'form_title' => 'Delegation Assessment and Readiness Tool', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 149 => [ + 'id' => 646, + 'form_id' => 'CF1036', + 'form_title' => 'Request for Reference and Reference Outline', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Including CL1037 (not identified on this sheet)', 'fill_type_id' => NULL, 'decommissioned' => false, - 'form_frequency_id' => 3, - 'form_reach_id' => 1, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, @@ -16253,12 +14996,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 237 => - array ( - 'id' => 735, - 'form_id' => 'CF1900', - 'form_title' => 'Request for Director Approval for a Community Care Facility providing Care', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 150 => [ + 'id' => 647, + 'form_id' => 'CF1048', + 'form_title' => 'Adoption Questionaire', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -16275,12 +15019,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 238 => - array ( - 'id' => 736, - 'form_id' => 'CF1901', - 'form_title' => 'Youth Consent to Attend a Community Care Facility within British Columbia', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 151 => [ + 'id' => 648, + 'form_id' => 'CF1052', + 'form_title' => 'Convention Letter Request', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -16297,12 +15042,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 239 => - array ( - 'id' => 737, - 'form_id' => 'CF1902', - 'form_title' => 'Parent Guardian Consent for their child to attend a Community Care Facility within British Columbia', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 152 => [ + 'id' => 649, + 'form_id' => 'CF1054', + 'form_title' => 'Recommendation for Child Tax Benefit', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -16319,15 +15065,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 240 => - array ( - 'id' => 738, - 'form_id' => 'CF1903', - 'form_title' => 'Request for Director Approval for Educational Services from a Community Care Facility', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 153 => [ + 'id' => 650, + 'form_id' => 'CF1057', + 'form_title' => 'Canada Child Tax Benefit - Letter Assisting Parents', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -16336,20 +15083,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 241 => - array ( - 'id' => 739, - 'form_id' => 'CF1904', - 'form_title' => 'Youth Consent to Education Services at a Community Care Facility within British Columbia', + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 154 => [ + 'id' => 651, + 'form_id' => 'CF1057A', + 'form_title' => 'Canada Child Benefit - Letter Assisting Prospective Adoptive Parents', 'ministry_id' => 1, - 'form_purpose' => NULL, - 'notes' => '', + 'form_purpose' => 'enables adoptive parents to apply for CCB', + 'notes' => 'users: Social workers', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -16358,17 +15106,18 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 242 => - array ( - 'id' => 740, - 'form_id' => 'CF1905', - 'form_title' => 'Parent/Guardian Consent for their Child to attend a Community Care Facility for Educational Services within British Columbia', + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 155 => [ + 'id' => 652, + 'form_id' => 'CF1058', + 'form_title' => 'Complex Consultation Request For Adoption & Permanency Branch Involvement ', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -16385,15 +15134,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 243 => - array ( - 'id' => 741, - 'form_id' => 'CF2000', - 'form_title' => 'Maples Adolescent Treatment Centre Referral', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 156 => [ + 'id' => 653, + 'form_id' => 'CF1060', + 'form_title' => 'BC Child and Youth in Care Awards Nomination Form', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -16402,20 +15152,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 244 => - array ( - 'id' => 742, - 'form_id' => 'CF2002', - 'form_title' => 'Criminal Record Information', + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 157 => [ + 'id' => 654, + 'form_id' => 'CF1234', + 'form_title' => 'Respite/Relief Care Take Charge', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -16424,17 +15175,18 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => '7530801003', + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 245 => - array ( - 'id' => 743, - 'form_id' => 'CF2003', - 'form_title' => 'CSM Chapter 3 Sibling Exception', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 158 => [ + 'id' => 655, + 'form_id' => 'CF1280', + 'form_title' => 'Early Childhood Educator - Awards of Excellence Nomination', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -16451,17 +15203,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 246 => - array ( - 'id' => 744, - 'form_id' => 'CF2004', - 'form_title' => 'Sibling Groups In Care Currently Living Separately', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 159 => [ + 'id' => 656, + 'form_id' => 'CF1280A', + 'form_title' => 'Child Care Awards of Excellent 2011 Nomination', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -16473,17 +15226,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 247 => - array ( - 'id' => 745, - 'form_id' => 'CF2007', - 'form_title' => 'Substitution Pay Initiation Form', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 160 => [ + 'id' => 657, + 'form_id' => 'CF1281', + 'form_title' => 'Municipal / Regional Government Child Care Awards of Excellence 2011 Nomination', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -16495,12 +15249,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 248 => - array ( - 'id' => 746, - 'form_id' => 'CF2012', - 'form_title' => 'Youth Forensic Psychiatric Services Referral', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 161 => [ + 'id' => 658, + 'form_id' => 'CF1297', + 'form_title' => 'Early Childhood Educator Incentive Grant Program Application Form', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -16517,12 +15272,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 249 => - array ( - 'id' => 747, - 'form_id' => 'CF2015', - 'form_title' => 'Director\'s Request for Information from Police Forces', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 162 => [ + 'id' => 659, + 'form_id' => 'CF1298', + 'form_title' => 'Confirmation of Employment Early Childhood Educator Incentive Grant Program', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -16539,17 +15295,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 250 => - array ( - 'id' => 748, - 'form_id' => 'CF2034', - 'form_title' => 'Application to Provide Proprietary Care', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 163 => [ + 'id' => 660, + 'form_id' => 'CF1300', + 'form_title' => 'Child Care Capital Funding Program Safe Play Space Program Application', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'inDesign', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -16561,12 +15318,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 251 => - array ( - 'id' => 749, - 'form_id' => 'CF2040', - 'form_title' => 'Restricted Family Care Home Assessment', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 164 => [ + 'id' => 661, + 'form_id' => 'CF1301', + 'form_title' => 'Early Childhool Education Bursary Application Form', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -16583,17 +15341,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 252 => - array ( - 'id' => 750, - 'form_id' => 'CF2040A', - 'form_title' => 'Restricted Family Care Home Assessment', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 165 => [ + 'id' => 662, + 'form_id' => 'CF1302', + 'form_title' => 'Child Care Provider Professional Development and Training Fund Application', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -16605,17 +15364,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 253 => - array ( - 'id' => 751, - 'form_id' => 'CF2044A', - 'form_title' => 'Referral to Child Care Subsidy under CFCSA', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 166 => [ + 'id' => 663, + 'form_id' => 'CF1303', + 'form_title' => 'Child Care in Multicultral Communities Fund Application', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -16627,15 +15387,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 254 => - array ( - 'id' => 752, - 'form_id' => 'CF2045', - 'form_title' => 'Referral to Affordable Child Care Benefit under Indigenous Jurisdiction', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 167 => [ + 'id' => 664, + 'form_id' => 'CF1304', + 'form_title' => 'Child Care BC Maintenance Fund', 'ministry_id' => 3, 'form_purpose' => NULL, - 'notes' => 'based on CF2044. Stored in third party external system attached to ICM', + 'notes' => 'Was previously an Adobe form, but latest one is on CMS forms. +It will need to be moved to Form Foundry +see work item 2669', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -16645,17 +15408,18 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 255 => - array ( - 'id' => 753, - 'form_id' => 'CF2094', - 'form_title' => 'Invoice Coding Block', - 'ministry_id' => 1, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 168 => [ + 'id' => 665, + 'form_id' => 'CF1305', + 'form_title' => 'Major Capital Funding for Creation of New Child Care Spaces', + 'ministry_id' => 3, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -16668,18 +15432,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', - 'dcv_material_number' => '7530801053', + 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 256 => - array ( - 'id' => 754, - 'form_id' => 'CF2151', - 'form_title' => 'Travel Expense Reimbursement - Non-Employee', - 'ministry_id' => 1, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 169 => [ + 'id' => 666, + 'form_id' => 'CF1305A', + 'form_title' => 'Child Care Capital Funding Program Major Capital Funding for Creation of New Child Care Spaces Non-Profit & Private Organizations', + 'ministry_id' => 3, 'form_purpose' => NULL, - 'notes' => 'CRMS - 31/56 closed; No longer in print as of January 2019', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -16690,18 +15455,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', - 'dcv_material_number' => '7530801056', + 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 257 => - array ( - 'id' => 755, - 'form_id' => 'CF2156', - 'form_title' => 'Confirmation of Application for Medical Benefits', - 'ministry_id' => 1, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 170 => [ + 'id' => 667, + 'form_id' => 'CF1305B', + 'form_title' => 'Child Care Capital Funding Program Major Capital Funding for Creation of New Child Care Spaces in Schools and Public Buildings', + 'ministry_id' => 3, 'form_purpose' => NULL, - 'notes' => 'BIP Letter', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -16714,14 +15480,15 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 258 => - array ( - 'id' => 756, - 'form_id' => 'CF2157', - 'form_title' => 'Confirmation of Extended Health Coverage', - 'ministry_id' => 1, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 171 => [ + 'id' => 668, + 'form_id' => 'CF1305C', + 'form_title' => 'Child Care Capital Funding Program Major Captial Funding for Creation of New Family Child Care Spaces', + 'ministry_id' => 3, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -16736,20 +15503,21 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 259 => - array ( - 'id' => 757, - 'form_id' => 'CF2158', - 'form_title' => 'At Home Program Application', - 'ministry_id' => 1, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 172 => [ + 'id' => 669, + 'form_id' => 'CF1305D', + 'form_title' => 'Major Capital Funding for Creation of New Child Care Spaces', + 'ministry_id' => 3, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, - 'form_reach_id' => 2, + 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, @@ -16759,15 +15527,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 260 => - array ( - 'id' => 758, - 'form_id' => 'CF2159', - 'form_title' => 'Request for Reimbursement of Approved At Home Program Medical Expenses', - 'ministry_id' => 1, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 173 => [ + 'id' => 670, + 'form_id' => 'CF1306', + 'form_title' => 'Child Care Capital Funding Program Start-Up Funding For the Creation of Licensed Family and In-Home Multi-Age Child Care', + 'ministry_id' => 3, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Was previously an Adobe form, but latest one is on CMS forms. +It will need to be moved to Form Foundry +see work item 2669', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -16776,18 +15547,19 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => '7530801064', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 261 => - array ( - 'id' => 759, - 'form_id' => 'CF2160', - 'form_title' => 'Application for Medical Benefits', - 'ministry_id' => 1, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 174 => [ + 'id' => 671, + 'form_id' => 'CF1320', + 'form_title' => 'Application for Funding Family Child Care Provider', + 'ministry_id' => 3, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -16802,16 +15574,17 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 262 => - array ( - 'id' => 760, - 'form_id' => 'CF2164', - 'form_title' => 'Approved Respite Expenses', - 'ministry_id' => 1, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 175 => [ + 'id' => 672, + 'form_id' => 'CF1320A', + 'form_title' => 'Child Care Operating Funding Program Application for 2019/2020 Funding - Combined Family/Group', + 'ministry_id' => 3, 'form_purpose' => NULL, - 'notes' => 'This may still be a draft only, but we aren\'t sure.', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -16820,18 +15593,19 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => '7530801022', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 263 => - array ( - 'id' => 761, - 'form_id' => 'CF2179', - 'form_title' => 'Request for Medical Equipment', - 'ministry_id' => 1, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 176 => [ + 'id' => 673, + 'form_id' => 'CF1321', + 'form_title' => 'Application for Funding Group Child Care Provider', + 'ministry_id' => 3, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -16847,17 +15621,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 264 => - array ( - 'id' => 762, - 'form_id' => 'CF2180', - 'form_title' => 'Request for Dental / Orthodontic Benefits', - 'ministry_id' => 1, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 177 => [ + 'id' => 674, + 'form_id' => 'CF1322', + 'form_title' => 'Child Care Operating Funding Program Application Renewal 2009-2010 Family Child Care Provide', + 'ministry_id' => 3, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -16869,17 +15644,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 265 => - array ( - 'id' => 763, - 'form_id' => 'CF2181', - 'form_title' => 'At Home Program Request for Orthotics and Splints', - 'ministry_id' => 1, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 178 => [ + 'id' => 675, + 'form_id' => 'CF1323', + 'form_title' => 'Child Care Operating Funding Program Application Renewal 2010-2011 Group Child Care Provider', + 'ministry_id' => 3, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -16891,12 +15667,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 266 => - array ( - 'id' => 764, - 'form_id' => 'CF2182', - 'form_title' => 'At Home Program Request for School-Aged Extended Therapies ', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 179 => [ + 'id' => 676, + 'form_id' => 'CF1324', + 'form_title' => 'Child Care Operating Funding - Program Confirmation', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -16913,17 +15690,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 267 => - array ( - 'id' => 765, - 'form_id' => 'CF2183', - 'form_title' => 'At Home Program Request for Medical Supplies ', - 'ministry_id' => 1, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 180 => [ + 'id' => 677, + 'form_id' => 'CF1325', + 'form_title' => 'Childcare BC New Spaces Fund Application Form', + 'ministry_id' => 3, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -16935,59 +15713,62 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 268 => - array ( - 'id' => 766, - 'form_id' => 'CF2184', - 'form_title' => 'At Home Program Request for Optical Benefits ', - 'ministry_id' => 1, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 181 => [ + 'id' => 678, + 'form_id' => 'CF1325a', + 'form_title' => 'ChildCareBC New Spaces Fund: Major Grants Application 2024/2025', + 'ministry_id' => 3, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, + 'form_reach_id' => 1, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 269 => - array ( - 'id' => 767, - 'form_id' => 'CF2185', - 'form_title' => 'Community Living Services for Adults Medical Benefits Referral', - 'ministry_id' => 1, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 182 => [ + 'id' => 679, + 'form_id' => 'CF1325b', + 'form_title' => 'ChildCareBC New Spaces Fund: Minor Grants Application 2024/2025', + 'ministry_id' => 3, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, + 'form_reach_id' => 1, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 270 => - array ( - 'id' => 768, - 'form_id' => 'CF2187', - 'form_title' => 'At Home Program Assessment Functional Activities of Daily Living', - 'ministry_id' => 1, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 183 => [ + 'id' => 680, + 'form_id' => 'CF1326', + 'form_title' => 'School Age Application Form', + 'ministry_id' => 3, 'form_purpose' => NULL, - 'notes' => 'iConnect form name needs correcting', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -16996,18 +15777,19 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 271 => - array ( - 'id' => 769, - 'form_id' => 'CF2188', - 'form_title' => 'Medical Benefits Program Request for Oximeter ', - 'ministry_id' => 1, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 184 => [ + 'id' => 681, + 'form_id' => 'CF1330', + 'form_title' => 'Annual Child Care Providers Profile for Group Child Care Providers', + 'ministry_id' => 3, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -17023,17 +15805,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 272 => - array ( - 'id' => 770, - 'form_id' => 'CF2189', - 'form_title' => 'Medical Benefits Program Request for Audiology Benefits ', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 185 => [ + 'id' => 682, + 'form_id' => 'CF1330A', + 'form_title' => '2012-2013 Annual Profile for Group Child Care Provider Staff Information ', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -17045,13 +15828,14 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 273 => - array ( - 'id' => 771, - 'form_id' => 'CF2192', - 'form_title' => 'Letter of Authorization', - 'ministry_id' => 1, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 186 => [ + 'id' => 683, + 'form_id' => 'CF1331', + 'form_title' => 'Annual Child Care Providers Profile for Family Child Care Providers', + 'ministry_id' => 3, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -17067,15 +15851,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 274 => - array ( - 'id' => 772, - 'form_id' => 'CF2193', - 'form_title' => 'Letter to Respite Care Giver', - 'ministry_id' => 1, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 187 => [ + 'id' => 684, + 'form_id' => 'CF1332', + 'form_title' => 'Annual Child Care Providers Profile for Registered Child Care Providers', + 'ministry_id' => 3, 'form_purpose' => NULL, - 'notes' => 'https://intranet.gov.bc.ca/assets/download/958C2842DC3E418DB27FF269AEC889F4&filename=cf_2193.pdf', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -17089,15 +15874,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 275 => - array ( - 'id' => 773, - 'form_id' => 'CF2194', - 'form_title' => 'Assessment of Proposed Guardians under a Section 54.01 Order', - 'ministry_id' => 1, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 188 => [ + 'id' => 685, + 'form_id' => 'CF1335', + 'form_title' => 'CCOF Programs Referral', + 'ministry_id' => 3, 'form_purpose' => NULL, - 'notes' => 'Removed from ICM', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -17111,13 +15897,14 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 276 => - array ( - 'id' => 774, - 'form_id' => 'CF2195', - 'form_title' => 'Termination of School Aged Extended Therapies Authorization', - 'ministry_id' => 1, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 189 => [ + 'id' => 686, + 'form_id' => 'CF1336', + 'form_title' => 'CCOF Programs Report', + 'ministry_id' => 3, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -17133,17 +15920,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 277 => - array ( - 'id' => 775, - 'form_id' => 'CF2196', - 'form_title' => 'Summary of Resource Investigation - Foster Home/Contracted Agency', - 'ministry_id' => 1, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 190 => [ + 'id' => 688, + 'form_id' => 'CF1341', + 'form_title' => 'Unknown', + 'ministry_id' => 3, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -17155,13 +15943,14 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 278 => - array ( - 'id' => 776, - 'form_id' => 'CF2197', - 'form_title' => 'Informing of an Investigation - Contracted Agency Resource', - 'ministry_id' => 1, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 191 => [ + 'id' => 689, + 'form_id' => 'CF1345', + 'form_title' => 'Child Care Operating Funding: Report License & Service Changes', + 'ministry_id' => 3, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -17177,15 +15966,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 279 => - array ( - 'id' => 777, - 'form_id' => 'CF2198', - 'form_title' => 'Investigation Completion - Contracted Agency Resource', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 192 => [ + 'id' => 690, + 'form_id' => 'CF1346', + 'form_title' => 'Universal Child Care Prototype Site Application', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -17194,22 +15984,23 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 280 => - array ( - 'id' => 778, - 'form_id' => 'CF2199', - 'form_title' => 'Investigation Completion - Foster Home', - 'ministry_id' => 1, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 193 => [ + 'id' => 691, + 'form_id' => 'CF1360', + 'form_title' => 'Application for Early Childhood Educator License to Practice', + 'ministry_id' => 3, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Decommissioned Feb 14, 2022.', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -17221,17 +16012,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 281 => - array ( - 'id' => 779, - 'form_id' => 'CF2202', - 'form_title' => 'Caregiver Monthly Report', - 'ministry_id' => 1, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 194 => [ + 'id' => 692, + 'form_id' => 'CF1361', + 'form_title' => 'Renewal for Early Childhood Educator License to Practice', + 'ministry_id' => 3, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Decommissioned Feb 14, 2022.?', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -17243,17 +16035,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 282 => - array ( - 'id' => 780, - 'form_id' => 'CF2207', - 'form_title' => 'Application/Reapplication for Post Adoption Assisstance ', - 'ministry_id' => 1, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 195 => [ + 'id' => 693, + 'form_id' => 'CF1362', + 'form_title' => 'Application/Renewal for Early Childhood Educator Assistant License to Practice', + 'ministry_id' => 3, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Decommissioned Feb 14, 2022.', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -17265,17 +16058,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 283 => - array ( - 'id' => 781, - 'form_id' => 'CF2208', - 'form_title' => 'Designation of Child', - 'ministry_id' => 1, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 196 => [ + 'id' => 694, + 'form_id' => 'CF1363', + 'form_title' => 'Out of Province Program Confirmation', + 'ministry_id' => 3, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Decommissioned Feb 14, 2022.', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -17287,13 +16081,14 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 284 => - array ( - 'id' => 782, - 'form_id' => 'CF2210', - 'form_title' => 'Post Adoption Assistance Planning & Agreement', - 'ministry_id' => 1, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 197 => [ + 'id' => 695, + 'form_id' => 'CF1364', + 'form_title' => 'Certificate Re-print Request and Change of Information', + 'ministry_id' => 3, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -17309,17 +16104,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 285 => - array ( - 'id' => 783, - 'form_id' => 'CF2236', - 'form_title' => 'Case Notes', - 'ministry_id' => 1, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 198 => [ + 'id' => 696, + 'form_id' => 'CF1365', + 'form_title' => 'Application/Renewal for Early Childhood Educator One Year License to Practice', + 'ministry_id' => 3, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Decommissioned Feb 14, 2022.', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -17331,15 +16127,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 286 => - array ( - 'id' => 784, - 'form_id' => 'CF2289', - 'form_title' => 'Critical Incident Report for Unlicensed Residences and Other Programs', - 'ministry_id' => 1, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 199 => [ + 'id' => 697, + 'form_id' => 'CF1366', + 'form_title' => 'Practicum Confirmation', + 'ministry_id' => 3, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Decommissioned Feb 14, 2022.', 'fill_type_id' => NULL, 'decommissioned' => true, 'form_frequency_id' => NULL, @@ -17353,16 +16150,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 287 => - array ( - 'id' => 785, - 'form_id' => 'CF2336A', - 'form_title' => 'Unknown', - 'ministry_id' => 1, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 200 => [ + 'id' => 698, + 'form_id' => 'CF1367', + 'form_title' => 'Early Childhood Educator First Time Certificate', + 'ministry_id' => 3, 'form_purpose' => NULL, - 'notes' => 'i?nDesign -', + 'notes' => 'Decommissioned Feb 14, 2022.', 'fill_type_id' => NULL, 'decommissioned' => true, 'form_frequency_id' => NULL, @@ -17376,13 +16173,14 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 288 => - array ( - 'id' => 786, - 'form_id' => 'CF2343', - 'form_title' => 'MSP Client Release', - 'ministry_id' => 1, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 201 => [ + 'id' => 699, + 'form_id' => 'CF1368', + 'form_title' => 'Early Childhood Educator Character Reference', + 'ministry_id' => 3, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -17398,13 +16196,14 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 289 => - array ( - 'id' => 787, - 'form_id' => 'CF2367', - 'form_title' => 'Adoption Reunion Registry - Application ', - 'ministry_id' => 1, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 202 => [ + 'id' => 700, + 'form_id' => 'CF1369', + 'form_title' => 'Early Childhood Educator 400 Hours Work Experience for Renewal Certificate', + 'ministry_id' => 3, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -17420,13 +16219,14 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 290 => - array ( - 'id' => 788, - 'form_id' => 'CF2387', - 'form_title' => 'Adoption Reunion Registry � Income Test ', - 'ministry_id' => 1, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 203 => [ + 'id' => 701, + 'form_id' => 'CF1370', + 'form_title' => 'Early Childhood Educator Registry (ECER) Complaint Intake', + 'ministry_id' => 3, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -17442,13 +16242,14 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 291 => - array ( - 'id' => 789, - 'form_id' => 'CF2388', - 'form_title' => 'Adoption Reunion Registry - Calculation of Eligibility for Free Waiver', - 'ministry_id' => 1, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 204 => [ + 'id' => 702, + 'form_id' => 'CF1371', + 'form_title' => 'Application Requirements for Recognized Educational Institutions to Offer a Basic/Post-Basic Early Childhood Education Program at a New Location', + 'ministry_id' => 3, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -17464,13 +16265,14 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 292 => - array ( - 'id' => 790, - 'form_id' => 'CF2390', - 'form_title' => 'Collateral Information', - 'ministry_id' => 1, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 205 => [ + 'id' => 703, + 'form_id' => 'CF1372', + 'form_title' => 'Application Requirements for Recognized Educational Institutions to Offer a Satellite Early Childhood Education Program at a New Location', + 'ministry_id' => 3, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -17486,15 +16288,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 293 => - array ( - 'id' => 791, - 'form_id' => 'CF2391', - 'form_title' => 'Completed Interviews', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 206 => [ + 'id' => 704, + 'form_id' => 'CF1470a', + 'form_title' => 'Income Support Agreement - Schedule A', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -17504,19 +16307,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 294 => - array ( - 'id' => 792, - 'form_id' => 'CF2442', - 'form_title' => 'Specialized Family Care Home Assessment and Checklist', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 207 => [ + 'id' => 705, + 'form_id' => 'CF1470b', + 'form_title' => 'Income Support Agreement - Schedule B', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -17526,16 +16330,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 295 => - array ( - 'id' => 793, - 'form_id' => 'CF2446', - 'form_title' => 'Associate Family Program Guardian(s) Agreement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 208 => [ + 'id' => 706, + 'form_id' => 'CF1606', + 'form_title' => 'Child\'s Permanent Medical Record', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -17552,15 +16357,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 296 => - array ( - 'id' => 794, - 'form_id' => 'CF2447', - 'form_title' => 'Children\'s Support Program Guardian(s) Agreement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 209 => [ + 'id' => 707, + 'form_id' => 'CF1611', + 'form_title' => 'Application to Provide Restricted/Regular Family Care', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'Service Transformation Branch - Business Area', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -17574,12 +16380,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 297 => - array ( - 'id' => 795, - 'form_id' => 'CF2454', - 'form_title' => 'Application for Assessment Specialized Family Care Home', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 210 => [ + 'id' => 708, + 'form_id' => 'CF1617', + 'form_title' => 'Transfer of Custody Written Consent', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -17596,12 +16403,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 298 => - array ( - 'id' => 796, - 'form_id' => 'CF2501 - MIN', - 'form_title' => 'Staff Costing Tool - Ministry', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 211 => [ + 'id' => 709, + 'form_id' => 'CF1625', + 'form_title' => 'Letter of Permission to Apply for a Passport', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -17618,15 +16426,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 299 => - array ( - 'id' => 797, - 'form_id' => 'CF2501 - NU', - 'form_title' => 'Staff Costing Tool - Non-Union', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 212 => [ + 'id' => 710, + 'form_id' => 'CF1626', + 'form_title' => 'Border Crossing Letter of Permission', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'http://www2.gov.bc.ca/assets/download/D2F8B72C3C7743669AB0C38E49106272', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -17640,15 +16449,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 300 => - array ( - 'id' => 798, - 'form_id' => 'CF2501 - UN', - 'form_title' => 'Staff Costing Tool - Union', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 213 => [ + 'id' => 711, + 'form_id' => 'CF1627', + 'form_title' => 'Youth Advisory Requests for Participation ', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -17657,17 +16467,18 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 301 => - array ( - 'id' => 799, - 'form_id' => 'CF2510', - 'form_title' => 'Request for Secondment Agreement Approval', + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 214 => [ + 'id' => 712, + 'form_id' => 'CF1630', + 'form_title' => 'Annual Family Care Home Review', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -17681,18 +16492,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', + 'dcv_material_number' => '7530804018', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 302 => - array ( - 'id' => 800, - 'form_id' => 'CF2511', - 'form_title' => 'Resource Needs Assessment Checklist', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 215 => [ + 'id' => 713, + 'form_id' => 'CF1631', + 'form_title' => 'Request/Renewal for Over Capacity Placement', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'aka Request for Approval', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -17703,15 +16515,16 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', - 'dcv_material_number' => '7530912030', + 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 303 => - array ( - 'id' => 801, - 'form_id' => 'CF2511A', - 'form_title' => 'Request for Contract Approval: New Contract', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 216 => [ + 'id' => 714, + 'form_id' => 'CF1632', + 'form_title' => 'Environment of Care Checklist for Foster Homes', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -17728,17 +16541,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 304 => - array ( - 'id' => 802, - 'form_id' => 'CF2511B', - 'form_title' => 'Request for Contract Approval: Modification Agreement', - 'ministry_id' => 1, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 217 => [ + 'id' => 715, + 'form_id' => 'CF1701', + 'form_title' => 'Child Care Subsidy Brochure', + 'ministry_id' => 3, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -17750,17 +16564,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 305 => - array ( - 'id' => 803, - 'form_id' => 'CF2512', - 'form_title' => 'Request for Grant Approval', - 'ministry_id' => 1, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 218 => [ + 'id' => 716, + 'form_id' => 'CF1701A', + 'form_title' => 'Child Care Subsidy Brochure', + 'ministry_id' => 3, 'form_purpose' => NULL, - 'notes' => 'CRMS - 20514 missing', + 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -17772,17 +16587,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 306 => - array ( - 'id' => 804, - 'form_id' => 'CF2514', - 'form_title' => 'Privacy Protection Schedule - Schedule E', - 'ministry_id' => 1, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 219 => [ + 'id' => 717, + 'form_id' => 'CF1702', + 'form_title' => 'Child Care Subsidy Claim Registered Licence-Not-Required/Licence-Not-Required', + 'ministry_id' => 3, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -17794,15 +16610,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 307 => - array ( - 'id' => 805, - 'form_id' => 'CF2515', - 'form_title' => 'Vendor Complaint', - 'ministry_id' => 1, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 220 => [ + 'id' => 718, + 'form_id' => 'CF1702A', + 'form_title' => 'Affordable Child Care Benefit - Licence Not Required', + 'ministry_id' => 3, 'form_purpose' => NULL, - 'notes' => 'Contract Management Branch - Business Area', + 'notes' => 'ConnECCt links to a livecycle PDF instead of the Orbeon form', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -17812,21 +16629,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 308 => - array ( - 'id' => 806, - 'form_id' => 'CF2545', - 'form_title' => 'Contractor Records List', - 'ministry_id' => 1, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 221 => [ + 'id' => 719, + 'form_id' => 'CF1702B', + 'form_title' => 'Child Care Subsidy Claim Registered Licence-Not-Required/Licence-Not-Required', + 'ministry_id' => 3, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -17838,17 +16656,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 309 => - array ( - 'id' => 807, - 'form_id' => 'CF2553', - 'form_title' => 'Record of Respite Expenses ', - 'ministry_id' => 1, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 222 => [ + 'id' => 720, + 'form_id' => 'CF1703', + 'form_title' => 'Child Care Subsidy Claim Licensed Child Care', + 'ministry_id' => 3, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -17860,12 +16679,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 310 => - array ( - 'id' => 808, - 'form_id' => 'CF2568', - 'form_title' => 'Affordable Affordable Child Care Benefit � Self Employment ', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 223 => [ + 'id' => 721, + 'form_id' => 'CF1703A', + 'form_title' => 'Affordable Child Care Benefit - Licensed Child Care', 'ministry_id' => 3, 'form_purpose' => NULL, 'notes' => '', @@ -17882,17 +16702,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 311 => - array ( - 'id' => 809, - 'form_id' => 'CF2594', - 'form_title' => 'Care Plan', - 'ministry_id' => 1, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 224 => [ + 'id' => 722, + 'form_id' => 'CF1703B', + 'form_title' => 'Child Care Subsidy Claim Licensed Child Care', + 'ministry_id' => 3, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -17904,17 +16725,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 312 => - array ( - 'id' => 810, - 'form_id' => 'CF2600', - 'form_title' => 'Support Services for CYSN', - 'ministry_id' => 1, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 225 => [ + 'id' => 723, + 'form_id' => 'CF1704', + 'form_title' => 'Child Care Subsidy Claim In Child\'s Own Home Care', + 'ministry_id' => 3, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -17926,15 +16748,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 313 => - array ( - 'id' => 811, - 'form_id' => 'CF2601', - 'form_title' => 'Health Care Passport', - 'ministry_id' => 1, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 226 => [ + 'id' => 724, + 'form_id' => 'CF1704A', + 'form_title' => 'Affordable Child Care Benefit - In Child\'s Own Home Care', + 'ministry_id' => 3, 'form_purpose' => NULL, - 'notes' => 'Orbeon Dev: https://forms-dev.social.gov.bc.ca/orbeon/fr/family/health-care-passport-cf2601/new?form-version=1', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -17945,16 +16768,17 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', - 'dcv_material_number' => '7530801039', + 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 314 => - array ( - 'id' => 812, - 'form_id' => 'CF2606A', - 'form_title' => 'Support Services Agreements Schedule A', - 'ministry_id' => 1, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 227 => [ + 'id' => 725, + 'form_id' => 'CF1704B', + 'form_title' => 'Child Care Subsidy Claim In Child\'s Own Home Care', + 'ministry_id' => 3, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -17970,15 +16794,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 315 => - array ( - 'id' => 813, - 'form_id' => 'CF2607', - 'form_title' => 'Support Services Agreement - Schedule A', - 'ministry_id' => 1, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 228 => [ + 'id' => 726, + 'form_id' => 'CF1706', + 'form_title' => 'Affordable Child Care Benefit - Additional Full Day Claim for School Age Children - Licensed Child Care', + 'ministry_id' => 3, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -17988,19 +16813,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 316 => - array ( - 'id' => 814, - 'form_id' => 'CF2610', - 'form_title' => 'Relief Care Provider Information', - 'ministry_id' => 1, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 229 => [ + 'id' => 727, + 'form_id' => 'CF1706a', + 'form_title' => 'Affordable Child Care Benefit - Additional Full Day Claim for School Age Children - Licensed Child Care', + 'ministry_id' => 3, 'form_purpose' => NULL, - 'notes' => 'https://intranet.gov.bc.ca/assets/download/0D0A6C32BAAB4D0188A68142325A2515&filename=cf_2610.pdf', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -18013,14 +16839,15 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 317 => - array ( - 'id' => 815, - 'form_id' => 'CF2610A', - 'form_title' => 'Respite Care Provider Information', - 'ministry_id' => 1, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 230 => [ + 'id' => 728, + 'form_id' => 'CF1706b', + 'form_title' => '', + 'ministry_id' => 3, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -18036,15 +16863,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 318 => - array ( - 'id' => 816, - 'form_id' => 'CF2611', - 'form_title' => 'Disclosure of Information', - 'ministry_id' => 1, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 231 => [ + 'id' => 729, + 'form_id' => 'CF1707', + 'form_title' => 'Affordable Child Care Benefit - Additional Full Day Claim for School Age Children - Registered Licensed Not Required, Licensed Not Required, In Child\'s Own Home', + 'ministry_id' => 3, 'form_purpose' => NULL, - 'notes' => 'was "Relief Care Provider Assessment Checklist" - draft only in 2011 - replaced January 2020', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -18054,19 +16882,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 319 => - array ( - 'id' => 817, - 'form_id' => 'CF2625', - 'form_title' => 'Financial Information Statement', - 'ministry_id' => 1, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 232 => [ + 'id' => 730, + 'form_id' => 'CF1707A', + 'form_title' => 'Affordable Child Care Benefit Claim In Child\'s Own Home Care', + 'ministry_id' => 3, 'form_purpose' => NULL, - 'notes' => 'CRMS - 26/28/30 closed', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -18076,21 +16905,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 320 => - array ( - 'id' => 818, - 'form_id' => 'CF2626', - 'form_title' => 'Agreement with Young Person Who Was in Care', - 'ministry_id' => 1, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 233 => [ + 'id' => 731, + 'form_id' => 'CF1707B', + 'form_title' => 'Child Care Subsidy In Child\'s Own Home Care', + 'ministry_id' => 3, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -18098,19 +16928,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 321 => - array ( - 'id' => 819, - 'form_id' => 'CF2630', - 'form_title' => 'Agreement with a Person Who Has Temporary Custody of the Child', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 234 => [ + 'id' => 732, + 'form_id' => 'CF1738', + 'form_title' => 'Unknown', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'inDesign', 'fill_type_id' => NULL, 'decommissioned' => true, 'form_frequency_id' => NULL, @@ -18124,18 +16955,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 322 => - array ( - 'id' => 820, - 'form_id' => 'CF2635', - 'form_title' => 'Unknown', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 235 => [ + 'id' => 733, + 'form_id' => 'CF1800', + 'form_title' => 'Request for Delegation', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'i?nDesign -', + 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -18147,19 +16978,20 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 323 => - array ( - 'id' => 821, - 'form_id' => 'CF2644', - 'form_title' => 'Purchase Card Summary Sheet', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 236 => [ + 'id' => 734, + 'form_id' => 'CF1810', + 'form_title' => 'Delegation Assessment and Readiness Tool', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, + 'form_frequency_id' => 3, + 'form_reach_id' => 1, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, @@ -18169,12 +17001,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 324 => - array ( - 'id' => 822, - 'form_id' => 'CF2646', - 'form_title' => 'Request for Access to Information not a form - goes to link', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 237 => [ + 'id' => 735, + 'form_id' => 'CF1900', + 'form_title' => 'Request for Director Approval for a Community Care Facility providing Care', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -18191,12 +17024,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 325 => - array ( - 'id' => 823, - 'form_id' => 'CF2653', - 'form_title' => 'Application for Registry of Parent ', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 238 => [ + 'id' => 736, + 'form_id' => 'CF1901', + 'form_title' => 'Youth Consent to Attend a Community Care Facility within British Columbia', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -18213,12 +17047,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 326 => - array ( - 'id' => 824, - 'form_id' => 'CF2654', - 'form_title' => 'Consents in Support of an Application', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 239 => [ + 'id' => 737, + 'form_id' => 'CF1902', + 'form_title' => 'Parent Guardian Consent for their child to attend a Community Care Facility within British Columbia', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -18235,12 +17070,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 327 => - array ( - 'id' => 825, - 'form_id' => 'CF2655', - 'form_title' => 'Parent or Guardian\'s Consent to Adoption - Affidavit', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 240 => [ + 'id' => 738, + 'form_id' => 'CF1903', + 'form_title' => 'Request for Director Approval for Educational Services from a Community Care Facility', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -18257,12 +17093,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 328 => - array ( - 'id' => 826, - 'form_id' => 'CF2657', - 'form_title' => 'Director�s Consent Form', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 241 => [ + 'id' => 739, + 'form_id' => 'CF1904', + 'form_title' => 'Youth Consent to Education Services at a Community Care Facility within British Columbia', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -18279,12 +17116,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 329 => - array ( - 'id' => 827, - 'form_id' => 'CF2657A', - 'form_title' => 'Directors Consent for Adoption - Affidavit', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 242 => [ + 'id' => 740, + 'form_id' => 'CF1905', + 'form_title' => 'Parent/Guardian Consent for their Child to attend a Community Care Facility for Educational Services within British Columbia', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -18301,15 +17139,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 330 => - array ( - 'id' => 828, - 'form_id' => 'CF2657B', - 'form_title' => 'Directors Consent for Adoption - Affidavit', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 243 => [ + 'id' => 741, + 'form_id' => 'CF2000', + 'form_title' => 'Maples Adolescent Treatment Centre Referral', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'iConnect points to the PDF, but there exists an Orbeon version', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -18318,17 +17157,18 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 331 => - array ( - 'id' => 829, - 'form_id' => 'CF2657C', - 'form_title' => 'Directors Consent for Adoption - Affidavit', + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => 'MAPLES adolescent treatment center', + 'deleted_at' => NULL, + ], + 244 => [ + 'id' => 742, + 'form_id' => 'CF2002', + 'form_title' => 'Criminal Record Information', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -18345,12 +17185,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 332 => - array ( - 'id' => 830, - 'form_id' => 'CF2658', - 'form_title' => 'Post Adoption Openness Registry Application ', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 245 => [ + 'id' => 743, + 'form_id' => 'CF2003', + 'form_title' => 'CSM Chapter 3 Sibling Exception', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -18367,12 +17208,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 333 => - array ( - 'id' => 831, - 'form_id' => 'CF2659', - 'form_title' => 'Notice of Intent to Receive a Child by Direct Placement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 246 => [ + 'id' => 744, + 'form_id' => 'CF2004', + 'form_title' => 'Sibling Groups In Care Currently Living Separately', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -18389,12 +17231,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 334 => - array ( - 'id' => 832, - 'form_id' => 'CF2660', - 'form_title' => 'Pre-Placement Assessment Application', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 247 => [ + 'id' => 745, + 'form_id' => 'CF2007', + 'form_title' => 'Substitution Pay Initiation Form', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -18411,12 +17254,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 335 => - array ( - 'id' => 833, - 'form_id' => 'CF2661', - 'form_title' => 'Child and Youth Proposal Package', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 248 => [ + 'id' => 746, + 'form_id' => 'CF2012', + 'form_title' => 'Youth Forensic Psychiatric Services Referral', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -18433,18 +17277,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 336 => - array ( - 'id' => 834, - 'form_id' => 'CF2670', - 'form_title' => 'Unknown', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 249 => [ + 'id' => 747, + 'form_id' => 'CF2015', + 'form_title' => 'Director\'s Request for Information from Police Forces', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'i?nDesign -', + 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -18456,15 +17300,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 337 => - array ( - 'id' => 835, - 'form_id' => 'CF2671', - 'form_title' => 'Birth Family Medical and Social History', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 250 => [ + 'id' => 748, + 'form_id' => 'CF2034', + 'form_title' => 'Application to Provide Proprietary Care', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'CRMS - 70 closed', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -18478,12 +17323,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 338 => - array ( - 'id' => 836, - 'form_id' => 'CF2671A', - 'form_title' => 'Birth Family Medical and Social History (for relatives of the Birth Mother)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 251 => [ + 'id' => 749, + 'form_id' => 'CF2040', + 'form_title' => 'Restricted Family Care Home Assessment', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -18500,12 +17346,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 339 => - array ( - 'id' => 837, - 'form_id' => 'CF2671B', - 'form_title' => 'Birth Family Medical and Social History (for relatives of the Birth Father)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 252 => [ + 'id' => 750, + 'form_id' => 'CF2040A', + 'form_title' => 'Restricted Family Care Home Assessment', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -18522,13 +17369,14 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 340 => - array ( - 'id' => 838, - 'form_id' => 'CF2673', - 'form_title' => 'Notification of Case Conference', - 'ministry_id' => 1, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 253 => [ + 'id' => 751, + 'form_id' => 'CF2044A', + 'form_title' => 'Referral to Child Care Subsidy under CFCSA', + 'ministry_id' => 3, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -18544,15 +17392,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 341 => - array ( - 'id' => 839, - 'form_id' => 'CF2675', - 'form_title' => 'Employee Information Change', - 'ministry_id' => 1, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 254 => [ + 'id' => 752, + 'form_id' => 'CF2045', + 'form_title' => 'Referral to Affordable Child Care Benefit under Indigenous Jurisdiction', + 'ministry_id' => 3, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'based on CF2044. Stored in third party external system attached to ICM', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -18566,12 +17415,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 342 => - array ( - 'id' => 840, - 'form_id' => 'CF2679', - 'form_title' => 'Section 8 Agreement with Child\'s Kin and Others', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 255 => [ + 'id' => 753, + 'form_id' => 'CF2094', + 'form_title' => 'Invoice Coding Block', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -18585,18 +17435,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', + 'dcv_material_number' => '7530801053', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 343 => - array ( - 'id' => 841, - 'form_id' => 'CF2681', - 'form_title' => 'Initial Notification of the Public Guradian and Trustee of British Columbia', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 256 => [ + 'id' => 754, + 'form_id' => 'CF2151', + 'form_title' => 'Travel Expense Reimbursement - Non-Employee', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'CRMS - 31/56 closed; No longer in print as of January 2019', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -18607,18 +17458,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', + 'dcv_material_number' => '7530801056', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 344 => - array ( - 'id' => 842, - 'form_id' => 'CF2682', - 'form_title' => 'Annual Adoption Homestudy Update Report', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 257 => [ + 'id' => 755, + 'form_id' => 'CF2156', + 'form_title' => 'Confirmation of Application for Medical Benefits', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'BIP Letter', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -18627,17 +17479,18 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 345 => - array ( - 'id' => 843, - 'form_id' => 'CF2684', - 'form_title' => 'Checklist for Applicants Referred to the Licensed Adoption Agency', + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 258 => [ + 'id' => 756, + 'form_id' => 'CF2157', + 'form_title' => 'Confirmation of Extended Health Coverage', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -18653,20 +17506,21 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 346 => - array ( - 'id' => 844, - 'form_id' => 'CF2685', - 'form_title' => 'Child/Youth Proposal Package Referral', + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 259 => [ + 'id' => 757, + 'form_id' => 'CF2158', + 'form_title' => 'At Home Program Application', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, + 'form_reach_id' => 2, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, @@ -18676,12 +17530,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 347 => - array ( - 'id' => 845, - 'form_id' => 'CF2687', - 'form_title' => 'Birth Parent or Guardian Request for Notice', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 260 => [ + 'id' => 758, + 'form_id' => 'CF2159', + 'form_title' => 'Request for Reimbursement of Approved At Home Program Medical Expenses', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -18695,18 +17550,19 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', + 'dcv_material_number' => '7530801064', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 348 => - array ( - 'id' => 846, - 'form_id' => 'CF2688', - 'form_title' => 'Parents Registry Search Request', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 261 => [ + 'id' => 759, + 'form_id' => 'CF2160', + 'form_title' => 'Application for Medical Benefits', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'https://intranet.gov.bc.ca/mcfd/content?id=2C22726DAD804B4496C6C436F20272E1', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -18720,17 +17576,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 349 => - array ( - 'id' => 847, - 'form_id' => 'CF2706', - 'form_title' => 'Unknown', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 262 => [ + 'id' => 760, + 'form_id' => 'CF2164', + 'form_title' => 'Approved Respite Expenses', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'CRMS 08 closed', + 'notes' => 'This may still be a draft only, but we aren\'t sure.', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -18739,15 +17596,16 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', + 'dcv_material_number' => '7530801022', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 350 => - array ( - 'id' => 848, - 'form_id' => 'CF2710', - 'form_title' => 'Post Adoption Assistance Service and Payments Planning', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 263 => [ + 'id' => 761, + 'form_id' => 'CF2179', + 'form_title' => 'Request for Medical Equipment', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -18764,17 +17622,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 351 => - array ( - 'id' => 849, - 'form_id' => 'CF2717', - 'form_title' => 'Unknown', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 264 => [ + 'id' => 762, + 'form_id' => 'CF2180', + 'form_title' => 'Request for Dental / Orthodontic Benefits', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -18786,12 +17645,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 352 => - array ( - 'id' => 850, - 'form_id' => 'CF2720', - 'form_title' => 'Birth Parents Expenses Affidavit', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 265 => [ + 'id' => 763, + 'form_id' => 'CF2181', + 'form_title' => 'At Home Program Request for Orthotics and Splints', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -18808,15 +17668,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 353 => - array ( - 'id' => 851, - 'form_id' => 'CF2723', - 'form_title' => 'Adoption Intake and Recruitment Tracking Form', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 266 => [ + 'id' => 764, + 'form_id' => 'CF2182', + 'form_title' => 'At Home Program Request for School-Aged Extended Therapies ', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'CRMS - 31/21/34 closed', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -18830,12 +17691,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 354 => - array ( - 'id' => 852, - 'form_id' => 'CF2732', - 'form_title' => 'Comprehensive Risk Assessment & Risk Analysis Worksheet', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 267 => [ + 'id' => 765, + 'form_id' => 'CF2183', + 'form_title' => 'At Home Program Request for Medical Supplies ', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -18852,12 +17714,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 355 => - array ( - 'id' => 853, - 'form_id' => 'CF2734', - 'form_title' => 'Risk Reduction Service Plan', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 268 => [ + 'id' => 766, + 'form_id' => 'CF2184', + 'form_title' => 'At Home Program Request for Optical Benefits ', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -18874,12 +17737,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 356 => - array ( - 'id' => 854, - 'form_id' => 'CF2735', - 'form_title' => 'Consent to Routine Medical Care', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 269 => [ + 'id' => 767, + 'form_id' => 'CF2185', + 'form_title' => 'Community Living Services for Adults Medical Benefits Referral', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -18896,37 +17760,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 357 => - array ( - 'id' => 855, - 'form_id' => 'CF2798', - 'form_title' => 'Affordable Child Care Benefit � Child Care Arrangement ', - 'ministry_id' => 3, - 'form_purpose' => NULL, - 'notes' => 'Previously Acrobat', - 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, - 'created_at' => NULL, - 'updated_at' => NULL, - 'print_reason' => NULL, - 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => '7530804108', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 358 => - array ( - 'id' => 856, - 'form_id' => 'CF2900a', - 'form_title' => 'Affordable Chile Care Benefit Application', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 270 => [ + 'id' => 768, + 'form_id' => 'CF2187', + 'form_title' => 'At Home Program Assessment Functional Activities of Daily Living', + 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'standalone version of CF2900', + 'notes' => 'iConnect form name needs correcting', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -18940,13 +17783,14 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 359 => - array ( - 'id' => 857, - 'form_id' => 'CF2910A', - 'form_title' => 'Work Search Record - Additional Pages', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 271 => [ + 'id' => 769, + 'form_id' => 'CF2188', + 'form_title' => 'Medical Benefits Program Request for Oximeter ', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -18962,13 +17806,14 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 360 => - array ( - 'id' => 858, - 'form_id' => 'CF2914', - 'form_title' => 'Affordable Child Care Benefit - Medical Condition', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 272 => [ + 'id' => 770, + 'form_id' => 'CF2189', + 'form_title' => 'Medical Benefits Program Request for Audiology Benefits ', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -18984,17 +17829,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 361 => - array ( - 'id' => 859, - 'form_id' => 'CF2916', - 'form_title' => 'Child Care Subsidy Appoint Advocate', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 273 => [ + 'id' => 771, + 'form_id' => 'CF2192', + 'form_title' => 'Letter of Authorization', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -19006,15 +17852,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 362 => - array ( - 'id' => 860, - 'form_id' => 'CF2920', - 'form_title' => 'Affordable Child Care Benefit - Request for Reconsideration', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 274 => [ + 'id' => 772, + 'form_id' => 'CF2193', + 'form_title' => 'Letter to Respite Care Giver', + 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'https://intranet.gov.bc.ca/assets/download/958C2842DC3E418DB27FF269AEC889F4&filename=cf_2193.pdf', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -19028,17 +17875,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 363 => - array ( - 'id' => 861, - 'form_id' => 'CF2921', - 'form_title' => 'Child Care Subsidy Reconsideration Decision', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 275 => [ + 'id' => 773, + 'form_id' => 'CF2194', + 'form_title' => 'Assessment of Proposed Guardians under a Section 54.01 Order', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'CCS-VA - Business Area??', + 'notes' => 'Removed from ICM', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -19050,15 +17898,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 364 => - array ( - 'id' => 862, - 'form_id' => 'CF2930', - 'form_title' => 'Canada Revenue Agency (CRA) Consent', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 276 => [ + 'id' => 774, + 'form_id' => 'CF2195', + 'form_title' => 'Termination of School Aged Extended Therapies Authorization', + 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'https://www2.gov.bc.ca/assets/gov/family-and-social-supports/child-care/running-a-daycare-or-preschool/accb/cf2930.pdf', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -19071,16 +17920,17 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 365 => - array ( + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 277 => [ 'id' => 863, 'form_id' => 'CF2931', 'form_title' => 'Revoke Consent to Collect CRA Records', 'ministry_id' => 3, 'form_purpose' => NULL, - 'notes' => 'https://www2.gov.bc.ca/assets/gov/family-and-social-supports/child-care/running-a-daycare-or-preschool/accb/cf2931.pdf?forcedownload=true', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -19089,20 +17939,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 366 => - array ( - 'id' => 864, - 'form_id' => 'CF2932', - 'form_title' => 'Transition Declaration', + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 278 => [ + 'id' => 775, + 'form_id' => 'CF2196', + 'form_title' => 'Summary of Resource Investigation - Foster Home/Contracted Agency', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'Not on iConnect', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -19115,16 +17966,17 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 367 => - array ( - 'id' => 865, - 'form_id' => 'CF2933', - 'form_title' => 'Income Declaration Form', - 'ministry_id' => 3, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 279 => [ + 'id' => 776, + 'form_id' => 'CF2197', + 'form_title' => 'Informing of an Investigation - Contracted Agency Resource', + 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'https://intranet.gov.bc.ca/mcfd/content?id=1C785071AE0D46059018BA69176CF968', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -19138,13 +17990,14 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 368 => - array ( - 'id' => 866, - 'form_id' => 'CF2951', - 'form_title' => 'Affordable Child Care Subsidy- Special Needs ', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 280 => [ + 'id' => 777, + 'form_id' => 'CF2198', + 'form_title' => 'Investigation Completion - Contracted Agency Resource', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -19160,13 +18013,14 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 369 => - array ( - 'id' => 867, - 'form_id' => 'CF2960', - 'form_title' => 'Affordable Child Care Benefit - Review Referral', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 281 => [ + 'id' => 778, + 'form_id' => 'CF2199', + 'form_title' => 'Investigation Completion - Foster Home', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -19182,15 +18036,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 370 => - array ( - 'id' => 868, - 'form_id' => 'CF2960A', - 'form_title' => 'Child Care Subsidy Review Referral', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 282 => [ + 'id' => 779, + 'form_id' => 'CF2202', + 'form_title' => 'Caregiver Monthly Report', + 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'CCS - Review Referral For Administrative Errors $500.00 - $1500.00 OR For All Other Reasons $500.00 - $1000.00', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -19204,15 +18059,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 371 => - array ( - 'id' => 869, - 'form_id' => 'CF2961', - 'form_title' => 'Child Care Subsidy Overpayment Calculation', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 283 => [ + 'id' => 780, + 'form_id' => 'CF2207', + 'form_title' => 'Application/Reapplication for Post Adoption Assisstance ', + 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'CCS-VA - Business Area??', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -19226,15 +18082,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 372 => - array ( - 'id' => 870, - 'form_id' => 'CF2962', - 'form_title' => 'Child Care Subsidy Review Report', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 284 => [ + 'id' => 781, + 'form_id' => 'CF2208', + 'form_title' => 'Designation of Child', + 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'CCS-VA - Business Area??', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -19248,12 +18105,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 373 => - array ( - 'id' => 871, - 'form_id' => 'CF2963', - 'form_title' => 'Verification and Audit Office File Review Notes', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 285 => [ + 'id' => 782, + 'form_id' => 'CF2210', + 'form_title' => 'Post Adoption Assistance Planning & Agreement', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -19270,12 +18128,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 374 => - array ( - 'id' => 872, - 'form_id' => 'CF2964', - 'form_title' => 'Verification and Audit Request for Reconsideration', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 286 => [ + 'id' => 783, + 'form_id' => 'CF2236', + 'form_title' => 'Case Notes', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -19292,17 +18151,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 375 => - array ( - 'id' => 873, - 'form_id' => 'CF3001', - 'form_title' => 'Service Provider Portal Access Request ', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 287 => [ + 'id' => 784, + 'form_id' => 'CF2289', + 'form_title' => 'Critical Incident Report for Unlicensed Residences and Other Programs', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -19314,17 +18174,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 376 => - array ( - 'id' => 874, - 'form_id' => 'CF3002', - 'form_title' => 'Service Provider Portal Access Request', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 288 => [ + 'id' => 785, + 'form_id' => 'CF2336A', + 'form_title' => 'Unknown', + 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'inDesign', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -19335,18 +18196,19 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 377 => - array ( - 'id' => 875, - 'form_id' => 'CF3005', - 'form_title' => 'Unknown', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 289 => [ + 'id' => 786, + 'form_id' => 'CF2343', + 'form_title' => 'MSP Client Release', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'ICM - Business Area??', + 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -19358,19 +18220,20 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 378 => - array ( - 'id' => 876, - 'form_id' => 'CF3020', - 'form_title' => 'Legal Opinion Request ', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 290 => [ + 'id' => 787, + 'form_id' => 'CF2367', + 'form_title' => 'Adoption Reunion Registry - Application ', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, - 'form_frequency_id' => 3, - 'form_reach_id' => 1, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, @@ -19380,15 +18243,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 379 => - array ( - 'id' => 877, - 'form_id' => 'CF3030', - 'form_title' => 'Community Poverty Reduction Initiative Service Request and Family Action Plan', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 291 => [ + 'id' => 788, + 'form_id' => 'CF2387', + 'form_title' => 'Adoption Reunion Registry Income Test ', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -19398,16 +18262,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 380 => - array ( - 'id' => 878, - 'form_id' => 'CF3200', - 'form_title' => 'Child and Youth with Complex Care Needs Provincial Services', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 292 => [ + 'id' => 789, + 'form_id' => 'CF2388', + 'form_title' => 'Adoption Reunion Registry - Calculation of Eligibility for Free Waiver', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -19424,12 +18289,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 381 => - array ( - 'id' => 879, - 'form_id' => 'CF3471', - 'form_title' => 'Children Cared for Outside the Parental Home', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 293 => [ + 'id' => 790, + 'form_id' => 'CF2390', + 'form_title' => 'Collateral Information', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -19446,17 +18312,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 382 => - array ( - 'id' => 880, - 'form_id' => 'CF3499', - 'form_title' => 'Provincial Deaf & Hard of Hearing Services Professional Immersion 2014 Registration', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 294 => [ + 'id' => 791, + 'form_id' => 'CF2391', + 'form_title' => 'Completed Interviews', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -19468,17 +18335,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 383 => - array ( - 'id' => 881, - 'form_id' => 'CF3500', - 'form_title' => 'Provincial Deaf & Hard of Hearing Services Summer Immersion 2015 Registration', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 295 => [ + 'id' => 792, + 'form_id' => 'CF2442', + 'form_title' => 'Specialized Family Care Home Assessment and Checklist', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -19490,15 +18358,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 384 => - array ( - 'id' => 882, - 'form_id' => 'CF3501', - 'form_title' => 'Family and Community Services Activities Registration', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 296 => [ + 'id' => 793, + 'form_id' => 'CF2446', + 'form_title' => 'Associate Family Program Guardian(s) Agreement', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'The iConnect page for this form exsists but the form is not currently avaiable for viewing/download', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -19512,15 +18381,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 385 => - array ( - 'id' => 883, - 'form_id' => 'CF3501A', - 'form_title' => 'Provincial Deaf & Hard of Hearing Services Post-Secondary Transition Workshop Registration', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 297 => [ + 'id' => 794, + 'form_id' => 'CF2447', + 'form_title' => 'Children\'s Support Program Guardian(s) Agreement', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Service Transformation Branch - Business Area', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -19530,21 +18400,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 386 => - array ( - 'id' => 884, - 'form_id' => 'CF3502', - 'form_title' => 'Provincial Deaf & Hard of Hearing Services Service Plan Agreement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 298 => [ + 'id' => 795, + 'form_id' => 'CF2454', + 'form_title' => 'Application for Assessment Specialized Family Care Home', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -19556,15 +18427,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 387 => - array ( - 'id' => 885, - 'form_id' => 'CF3503', - 'form_title' => 'Family and Community Services Client Self-Evaluation and Program Feedback', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 299 => [ + 'id' => 796, + 'form_id' => 'CF2501 - MIN', + 'form_title' => 'Staff Costing Tool - Ministry', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -19574,19 +18446,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 388 => - array ( - 'id' => 886, - 'form_id' => 'CF3504', - 'form_title' => 'Victory Hill Residential Program Incident Form', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 300 => [ + 'id' => 797, + 'form_id' => 'CF2501 - NU', + 'form_title' => 'Staff Costing Tool - Non-Union', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'http://www2.gov.bc.ca/assets/download/D2F8B72C3C7743669AB0C38E49106272', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -19596,19 +18469,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 389 => - array ( - 'id' => 887, - 'form_id' => 'CF3505', - 'form_title' => 'Consent to Use Video/Online Technology for Service Delivery', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 301 => [ + 'id' => 798, + 'form_id' => 'CF2501 - UN', + 'form_title' => 'Staff Costing Tool - Union', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -19618,16 +18492,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 390 => - array ( - 'id' => 888, - 'form_id' => 'CF3506', - 'form_title' => 'Release of Information - PDHHS', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 302 => [ + 'id' => 799, + 'form_id' => 'CF2510', + 'form_title' => 'Request for Secondment Agreement Approval', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -19644,15 +18519,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 391 => - array ( - 'id' => 889, - 'form_id' => 'CF3700', - 'form_title' => 'Application for Research Proposals', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 303 => [ + 'id' => 800, + 'form_id' => 'CF2511', + 'form_title' => 'Resource Needs Assessment Checklist', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'aka Request for Approval', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -19663,15 +18539,16 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', + 'dcv_material_number' => '7530912030', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 392 => - array ( - 'id' => 890, - 'form_id' => 'CF3751', - 'form_title' => 'Adoption Applicant Screening Referral Checklist', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 304 => [ + 'id' => 801, + 'form_id' => 'CF2511A', + 'form_title' => 'Request for Contract Approval: New Contract', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -19688,19 +18565,20 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 393 => - array ( - 'id' => 891, - 'form_id' => 'CF3752', - 'form_title' => 'Extended Family Plan Caregiver Screening Referral Checklist', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 305 => [ + 'id' => 802, + 'form_id' => 'CF2511B', + 'form_title' => 'Request for Contract Approval: Modification Agreement', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, - 'form_reach_id' => 2, + 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, @@ -19710,15 +18588,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 394 => - array ( - 'id' => 892, - 'form_id' => 'CF3753', - 'form_title' => 'Foster Parent Screening Referral Checklist', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 306 => [ + 'id' => 803, + 'form_id' => 'CF2512', + 'form_title' => 'Request for Grant Approval', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'CRMS - 20514 missing', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -19732,12 +18611,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 395 => - array ( - 'id' => 893, - 'form_id' => 'CF3754', - 'form_title' => 'Out-of-Care Caregiver Screening Referral Checklist', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 307 => [ + 'id' => 804, + 'form_id' => 'CF2514', + 'form_title' => 'Privacy Protection Schedule - Schedule E', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -19754,15 +18634,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 396 => - array ( - 'id' => 894, - 'form_id' => 'CF3755', - 'form_title' => 'Restricted Foster Parent Screening Referral Checklist', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 308 => [ + 'id' => 805, + 'form_id' => 'CF2515', + 'form_title' => 'Vendor Complaint', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Contract Management Branch - Business Area', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -19776,12 +18657,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 397 => - array ( - 'id' => 895, - 'form_id' => 'CF3756', - 'form_title' => 'Foster-to-Adopt Applicant Screening Referral Checklist', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 309 => [ + 'id' => 806, + 'form_id' => 'CF2545', + 'form_title' => 'Contractor Records List', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -19798,12 +18680,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 398 => - array ( - 'id' => 896, - 'form_id' => 'CF3757', - 'form_title' => '54.1 Permanent Transfer of Custody Before C.C.O Screening Referral Checklist', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 310 => [ + 'id' => 807, + 'form_id' => 'CF2553', + 'form_title' => 'Record of Respite Expenses ', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -19820,15 +18703,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 399 => - array ( - 'id' => 958, - 'form_id' => 'CF4114', - 'form_title' => 'Early Childhood Educator Reconsideration Request', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 311 => [ + 'id' => 808, + 'form_id' => 'CF2568', + 'form_title' => 'Affordable Affordable Child Care Benefit - Self Employment ', 'ministry_id' => 3, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -19838,16 +18722,40 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 400 => - array ( - 'id' => 897, - 'form_id' => 'CF3758', - 'form_title' => '54.1 Permanent Transfer of Custody After C.C.O. Screening Referral Checklist', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 312 => [ + 'id' => 809, + 'form_id' => 'CF2594', + 'form_title' => 'Care Plan', + 'ministry_id' => 1, + 'form_purpose' => NULL, + 'notes' => 'Filled by social workers, but they collaborate with other community professional external to government. 2200 social workers use this form.', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => 4, + 'form_reach_id' => 2, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 313 => [ + 'id' => 810, + 'form_id' => 'CF2600', + 'form_title' => 'Support Services for CYSN', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -19864,15 +18772,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 401 => - array ( - 'id' => 898, - 'form_id' => 'CF3759', - 'form_title' => 'Extended Family Program/Temporary Transfer of Custody to Other Submission', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 314 => [ + 'id' => 811, + 'form_id' => 'CF2601', + 'form_title' => 'Health Care Passport', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Orbeon Dev: https://forms-dev.social.gov.bc.ca/orbeon/fr/family/health-care-passport-cf2601/new?form-version=1', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -19883,20 +18792,21 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', + 'dcv_material_number' => '7530801039', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 402 => - array ( - 'id' => 899, - 'form_id' => 'CF3800', - 'form_title' => 'Services to Adults with Developmental Disabilities (STADD)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 315 => [ + 'id' => 812, + 'form_id' => 'CF2606A', + 'form_title' => 'Support Services Agreements Schedule A', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -19907,13 +18817,14 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 403 => - array ( - 'id' => 900, - 'form_id' => 'CF4021', - 'form_title' => 'Enhanced Out of Care Support Agreement', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 316 => [ + 'id' => 813, + 'form_id' => 'CF2607', + 'form_title' => 'Support Services Agreement - Schedule A', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -19929,42 +18840,44 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 404 => - array ( - 'id' => 901, - 'form_id' => 'CF4022', - 'form_title' => 'Enhanced Out of Care Support Agreement Schedule A', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 317 => [ + 'id' => 814, + 'form_id' => 'CF2610', + 'form_title' => 'Relief Care Provider Information', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'https://intranet.gov.bc.ca/assets/download/0D0A6C32BAAB4D0188A68142325A2515&filename=cf_2610.pdf', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, - 'form_reach_id' => 1, + 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 405 => - array ( - 'id' => 902, - 'form_id' => 'CF4023', - 'form_title' => 'Enhanced Out-of-Care Modification Agreement', + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 318 => [ + 'id' => 815, + 'form_id' => 'CF2610A', + 'form_title' => 'Respite Care Provider Information', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, - 'form_reach_id' => 1, + 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, @@ -19973,17 +18886,17 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 406 => - array ( - 'id' => 903, - 'form_id' => 'CF4050', - 'form_title' => 'Presentation', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 319 => [ + 'id' => 816, + 'form_id' => 'CF2611', + 'form_title' => 'Disclosure of Information', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'Court FORM 1? -', + 'notes' => 'was "Relief Care Provider Assessment Checklist" - draft only in 2011 - replaced January 2020', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -19993,20 +18906,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 407 => - array ( - 'id' => 904, - 'form_id' => 'CF4052', - 'form_title' => 'Application to Change or Cancel an Order', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 320 => [ + 'id' => 817, + 'form_id' => 'CF2625', + 'form_title' => 'Financial Information Statement', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'Court�?FORM 3 -', + 'notes' => 'CRMS - 26/28/30 closed', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -20020,18 +18933,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 408 => - array ( - 'id' => 905, - 'form_id' => 'CF4053', - 'form_title' => 'Subpoena', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 321 => [ + 'id' => 818, + 'form_id' => 'CF2626', + 'form_title' => 'Agreement with Young Person Who Was in Care', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'Court�?FORM 4 -', + 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -20043,16 +18956,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 409 => - array ( - 'id' => 906, - 'form_id' => 'CF4054', - 'form_title' => 'Warrant of Apprehension', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 322 => [ + 'id' => 864, + 'form_id' => 'CF2932', + 'form_title' => 'Transition Declaration', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'Court�?FORM 5? -', + 'notes' => 'Not on iConnect', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -20061,23 +18974,23 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 410 => - array ( - 'id' => 907, - 'form_id' => 'CF4055', - 'form_title' => 'Release', + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 323 => [ + 'id' => 819, + 'form_id' => 'CF2630', + 'form_title' => 'Agreement with a Person Who Has Temporary Custody of the Child', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'Court�?FORM 6 -', + 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -20089,21 +19002,20 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 411 => - array ( - 'id' => 908, - 'form_id' => 'CF4057', - 'form_title' => 'Notice of Address for Service', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 324 => [ + 'id' => 820, + 'form_id' => 'CF2635', + 'form_title' => 'Unknown', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'Court�?FORM 8? - -', + 'notes' => 'inDesign', 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => 3, - 'form_reach_id' => 2, + 'decommissioned' => true, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, @@ -20113,20 +19025,20 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 412 => - array ( - 'id' => 909, - 'form_id' => 'CF4059', - 'form_title' => 'Order', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 325 => [ + 'id' => 821, + 'form_id' => 'CF2644', + 'form_title' => 'Purchase Card Summary Sheet', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'Court�?FORM 10 -', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, - 'form_frequency_id' => 3, - 'form_reach_id' => 2, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, @@ -20136,12 +19048,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 413 => - array ( - 'id' => 910, - 'form_id' => 'CF4065', - 'form_title' => 'Child\'s Routines', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 326 => [ + 'id' => 822, + 'form_id' => 'CF2646', + 'form_title' => 'Request for Access to Information not a form - goes to link', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -20158,12 +19071,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 414 => - array ( - 'id' => 911, - 'form_id' => 'CF4067', - 'form_title' => 'Interprovincial Child Protection Alert', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 327 => [ + 'id' => 823, + 'form_id' => 'CF2653', + 'form_title' => 'Application for Registry of Parent ', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -20180,12 +19094,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 415 => - array ( - 'id' => 912, - 'form_id' => 'CF4068', - 'form_title' => 'Interprovincial Request for Services', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 328 => [ + 'id' => 824, + 'form_id' => 'CF2654', + 'form_title' => 'Consents in Support of an Application', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -20202,12 +19117,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 416 => - array ( - 'id' => 913, - 'form_id' => 'CF4069', - 'form_title' => 'Interprovincial Placement Agreement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 329 => [ + 'id' => 825, + 'form_id' => 'CF2655', + 'form_title' => 'Parent or Guardian\'s Consent to Adoption - Affidavit', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -20224,15 +19140,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 417 => - array ( - 'id' => 914, - 'form_id' => 'CF4070', - 'form_title' => 'Interprovincial Scan Request', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 330 => [ + 'id' => 826, + 'form_id' => 'CF2657', + 'form_title' => 'Director\'s Consent Form', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'Not on iConnect', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -20242,19 +19159,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 418 => - array ( - 'id' => 915, - 'form_id' => 'CF4071', - 'form_title' => 'Checklist for ChildCareBC Stakeholder Engagement and Service Delivery', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 331 => [ + 'id' => 827, + 'form_id' => 'CF2657A', + 'form_title' => 'Director\'s Consent for Adoption - Affidavit', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -20264,19 +19182,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 419 => - array ( - 'id' => 916, - 'form_id' => 'CF4072', - 'form_title' => 'Digital Survey Checklist for ChildCareBC Stakeholder Engagement and Service Delivery', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 332 => [ + 'id' => 828, + 'form_id' => 'CF2657B', + 'form_title' => 'Director\'s Consent for Adoption - Affidavit', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -20286,19 +19205,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 420 => - array ( - 'id' => 917, - 'form_id' => 'CF4073', - 'form_title' => 'Environmental Checklist for Adoption Homes', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 333 => [ + 'id' => 829, + 'form_id' => 'CF2657C', + 'form_title' => 'Director\'s Consent for Adoption - Affidavit', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -20308,16 +19228,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 421 => - array ( - 'id' => 918, - 'form_id' => 'CF4074', - 'form_title' => 'Report on Caregivers Incident(s)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 334 => [ + 'id' => 830, + 'form_id' => 'CF2658', + 'form_title' => 'Post Adoption Openness Registry Application ', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -20334,12 +19255,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 422 => - array ( - 'id' => 919, - 'form_id' => 'CF4075', - 'form_title' => 'Consent to Use Video/Online Technology for Service Delivery', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 335 => [ + 'id' => 831, + 'form_id' => 'CF2659', + 'form_title' => 'Notice of Intent to Receive a Child by Direct Placement', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -20356,15 +19278,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 423 => - array ( - 'id' => 920, - 'form_id' => 'CF4076', - 'form_title' => 'Childcare BC Temporary Inclusion Support Fund Application Form', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 336 => [ + 'id' => 832, + 'form_id' => 'CF2660', + 'form_title' => 'Pre-Placement Assessment Application', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -20373,17 +19296,18 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 424 => - array ( - 'id' => 921, - 'form_id' => 'CF4077', - 'form_title' => 'Victory Hill Dorm Application', + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 337 => [ + 'id' => 833, + 'form_id' => 'CF2661', + 'form_title' => 'Child and Youth Proposal Package', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -20400,17 +19324,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 425 => - array ( - 'id' => 922, - 'form_id' => 'CF4078', - 'form_title' => 'Victory Hill Dorm Emergency Card', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 338 => [ + 'id' => 834, + 'form_id' => 'CF2670', + 'form_title' => 'Unknown', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'inDesign', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -20422,15 +19347,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 426 => - array ( - 'id' => 923, - 'form_id' => 'CF4079', - 'form_title' => 'Victory Hill Dorm Medical Information', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 339 => [ + 'id' => 835, + 'form_id' => 'CF2671', + 'form_title' => 'Birth Family Medical and Social History', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'CRMS - 70 closed', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -20444,12 +19370,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 427 => - array ( - 'id' => 924, - 'form_id' => 'CF4080', - 'form_title' => 'Victory Hill Dorm Medication and Supplements', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 340 => [ + 'id' => 836, + 'form_id' => 'CF2671A', + 'form_title' => 'Birth Family Medical and Social History (for relatives of the Birth Mother)', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -20466,12 +19393,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 428 => - array ( - 'id' => 925, - 'form_id' => 'CF4081', - 'form_title' => 'Victory Hill Dorm Release of Information', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 341 => [ + 'id' => 837, + 'form_id' => 'CF2671B', + 'form_title' => 'Birth Family Medical and Social History (for relatives of the Birth Father)', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -20488,12 +19416,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 429 => - array ( - 'id' => 926, - 'form_id' => 'CF4082', - 'form_title' => 'Victory Hill Dorm Video and Technology Use', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 342 => [ + 'id' => 838, + 'form_id' => 'CF2673', + 'form_title' => 'Notification of Case Conference', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -20510,21 +19439,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 430 => - array ( - 'id' => 927, - 'form_id' => 'CF4083', - 'form_title' => 'Pool Vehicle Use Record and Condition Report', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 343 => [ + 'id' => 839, + 'form_id' => 'CF2675', + 'form_title' => 'Employee Information Change', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '??No longer active per Remedy ticket 813501 -used digitally on iConnect, and printed out - -Finance & Corporate Services Division? -', + 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -20536,13 +19462,14 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 431 => - array ( - 'id' => 928, - 'form_id' => 'CF4084', - 'form_title' => 'Child Care Rapid Renovation Fund Application', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 344 => [ + 'id' => 840, + 'form_id' => 'CF2679', + 'form_title' => 'Section 8 Agreement with Child\'s Kin and Others', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -20558,13 +19485,14 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 432 => - array ( - 'id' => 929, - 'form_id' => 'CF4085', - 'form_title' => 'SimpleSurvey Checklist', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 345 => [ + 'id' => 841, + 'form_id' => 'CF2681', + 'form_title' => 'Initial Notification of the Public Guradian and Trustee of British Columbia', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -20580,12 +19508,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 433 => - array ( - 'id' => 930, - 'form_id' => 'CF4086', - 'form_title' => 'Youth Advisory Council Application', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 346 => [ + 'id' => 842, + 'form_id' => 'CF2682', + 'form_title' => 'Annual Adoption Homestudy Update Report', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -20602,12 +19531,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 434 => - array ( - 'id' => 931, - 'form_id' => 'CF4087', - 'form_title' => 'Discharge Summary', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 347 => [ + 'id' => 843, + 'form_id' => 'CF2684', + 'form_title' => 'Checklist for Applicants Referred to the Licensed Adoption Agency', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -20623,14 +19553,15 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 435 => - array ( - 'id' => 932, - 'form_id' => 'CF4088', - 'form_title' => 'Itemized Expense Report', - 'ministry_id' => 3, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 348 => [ + 'id' => 844, + 'form_id' => 'CF2685', + 'form_title' => 'Child/Youth Proposal Package Referral', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -20646,12 +19577,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 436 => - array ( - 'id' => 933, - 'form_id' => 'CF4089', - 'form_title' => 'Agreement with Young Adult Discretionary Decision Recording', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 349 => [ + 'id' => 845, + 'form_id' => 'CF2687', + 'form_title' => 'Birth Parent or Guardian Request for Notice', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -20668,15 +19600,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 437 => - array ( - 'id' => 934, - 'form_id' => 'CF4090', - 'form_title' => 'Summary of Youth Agreement Eligibility', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 350 => [ + 'id' => 846, + 'form_id' => 'CF2688', + 'form_title' => 'Parents Registry Search Request', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'https://intranet.gov.bc.ca/mcfd/content?id=2C22726DAD804B4496C6C436F20272E1', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -20690,17 +19623,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 438 => - array ( - 'id' => 935, - 'form_id' => 'CF4091', - 'form_title' => 'Youth Agreement Eligibility: Assessing Understanding, Ability and Readiness', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 351 => [ + 'id' => 847, + 'form_id' => 'CF2706', + 'form_title' => 'Unknown', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'CRMS 08 closed', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -20712,12 +19646,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 439 => - array ( - 'id' => 936, - 'form_id' => 'CF4092', - 'form_title' => 'Referral Form for Step up/Step Down (SUSD) Outreach Services', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 352 => [ + 'id' => 848, + 'form_id' => 'CF2710', + 'form_title' => 'Post Adoption Assistance Service and Payments Planning', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -20734,17 +19669,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 440 => - array ( - 'id' => 937, - 'form_id' => 'CF4093', - 'form_title' => 'Youth Custody Services Visitor Information & Consent', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 353 => [ + 'id' => 849, + 'form_id' => 'CF2717', + 'form_title' => 'Unknown', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -20756,12 +19692,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 441 => - array ( - 'id' => 938, - 'form_id' => 'CF4094', - 'form_title' => 'Youth Custody Services Visitor Restriction Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 354 => [ + 'id' => 850, + 'form_id' => 'CF2720', + 'form_title' => 'Birth Parents Expenses Affidavit', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -20778,15 +19715,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 442 => - array ( - 'id' => 939, - 'form_id' => 'CF4095', - 'form_title' => 'Intent to Rent Rental Confirmation', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 355 => [ + 'id' => 851, + 'form_id' => 'CF2723', + 'form_title' => 'Adoption Intake and Recruitment Tracking Form', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'CRMS - 31/21/34 closed', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -20800,12 +19738,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 443 => - array ( - 'id' => 940, - 'form_id' => 'CF4096', - 'form_title' => 'Accounts Payable Vendor Data Form', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 356 => [ + 'id' => 852, + 'form_id' => 'CF2732', + 'form_title' => 'Comprehensive Risk Assessment & Risk Analysis Worksheet', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -20822,12 +19761,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 444 => - array ( - 'id' => 941, - 'form_id' => 'CF4097', - 'form_title' => 'Initial Child & Youth ?Mental Health Assessment', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 357 => [ + 'id' => 853, + 'form_id' => 'CF2734', + 'form_title' => 'Risk Reduction Service Plan', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -20844,12 +19784,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 445 => - array ( - 'id' => 942, - 'form_id' => 'CF4098', - 'form_title' => 'Child and Youth Mental Health Closing Summary', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 358 => [ + 'id' => 854, + 'form_id' => 'CF2735', + 'form_title' => 'Consent to Routine Medical Care', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -20866,15 +19807,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 446 => - array ( - 'id' => 943, - 'form_id' => 'CF4099', - 'form_title' => 'Caregivers� Liability Program (CGLP) Enrollment', - 'ministry_id' => 1, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 359 => [ + 'id' => 855, + 'form_id' => 'CF2798', + 'form_title' => 'Affordable Child Care Benefit - Child Care Arrangement ', + 'ministry_id' => 3, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'ConnECCt links to an inDesign PDF instead of the Orbeon form. Unknown whether the ICM version uses Orbeon.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -20883,20 +19825,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 447 => - array ( - 'id' => 944, - 'form_id' => 'CF4100', - 'form_title' => 'Request For Health Connections Through Culture Funding', - 'ministry_id' => 1, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => '7530804108', + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 360 => [ + 'id' => 856, + 'form_id' => 'CF2900a', + 'form_title' => 'Affordable Chile Care Benefit Application', + 'ministry_id' => 3, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'standalone version of CF2900', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -20910,12 +19853,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 448 => - array ( - 'id' => 945, - 'form_id' => 'CF4101', - 'form_title' => 'Early Childhood Educator Certification Application B.C. Recognized Education', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 361 => [ + 'id' => 857, + 'form_id' => 'CF2910A', + 'form_title' => 'Work Search Record - Additional Pages', 'ministry_id' => 3, 'form_purpose' => NULL, 'notes' => '', @@ -20932,12 +19876,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 449 => - array ( - 'id' => 946, - 'form_id' => 'CF4102', - 'form_title' => 'Early Childhood Educator Certification Application Equivalency', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 362 => [ + 'id' => 858, + 'form_id' => 'CF2914', + 'form_title' => 'Affordable Child Care Benefit - Medical Condition', 'ministry_id' => 3, 'form_purpose' => NULL, 'notes' => '', @@ -20954,17 +19899,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 450 => - array ( - 'id' => 947, - 'form_id' => 'CF4103', - 'form_title' => 'Early Childhood Educator Certification Application Transferring Certification', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 363 => [ + 'id' => 859, + 'form_id' => 'CF2916', + 'form_title' => 'Child Care Subsidy Appoint Advocate', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -20976,12 +19922,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 451 => - array ( - 'id' => 948, - 'form_id' => 'CF4104', - 'form_title' => 'Early Childhood Educator Certificate Renewal Application ECE Five Year and/or Specializations', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 364 => [ + 'id' => 860, + 'form_id' => 'CF2920', + 'form_title' => 'Affordable Child Care Benefit - Request for Reconsideration', 'ministry_id' => 3, 'form_purpose' => NULL, 'notes' => '', @@ -20998,17 +19945,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 452 => - array ( - 'id' => 949, - 'form_id' => 'CF4105', - 'form_title' => 'Early Childhood Educator Certificate Application Renewal ECE One Year', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 365 => [ + 'id' => 861, + 'form_id' => 'CF2921', + 'form_title' => 'Child Care Subsidy Reconsideration Decision', + 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'CCS-VA - Business Area??', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -21020,15 +19968,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 453 => - array ( - 'id' => 950, - 'form_id' => 'CF4106', - 'form_title' => 'Early Childhood Educator Certificate Renewal Application ECE Assistant', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 366 => [ + 'id' => 862, + 'form_id' => 'CF2930', + 'form_title' => 'Canada Revenue Agency (CRA) Consent', 'ministry_id' => 3, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'https://www2.gov.bc.ca/assets/gov/family-and-social-supports/child-care/running-a-daycare-or-preschool/accb/cf2930.pdf', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -21037,20 +19986,22 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 454 => - array ( - 'id' => 951, - 'form_id' => 'CF4107', - 'form_title' => 'Early Childhood Educator Five Year Certification 500 Hour Work Experience Reference', + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 367 => [ + 'id' => 865, + 'form_id' => 'CF2933', + 'form_title' => 'Income Declaration Form', 'ministry_id' => 3, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not ICM generated, but submitted read-only PDF may be opened in ICM attachments tab. +https://intranet.gov.bc.ca/mcfd/content?id=1C785071AE0D46059018BA69176CF968', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -21059,17 +20010,18 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 455 => - array ( - 'id' => 952, - 'form_id' => 'CF4108', - 'form_title' => 'Early Childhood Educator 400 Hour Work Experience Reference', + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 368 => [ + 'id' => 866, + 'form_id' => 'CF2951', + 'form_title' => 'Affordable Child Care Subsidy- Special Needs ', 'ministry_id' => 3, 'form_purpose' => NULL, 'notes' => '', @@ -21086,12 +20038,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 456 => - array ( - 'id' => 953, - 'form_id' => 'CF4109', - 'form_title' => 'Early Childhood Educator Certification Character Reference', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 369 => [ + 'id' => 867, + 'form_id' => 'CF2960', + 'form_title' => 'Affordable Child Care Benefit - Review Referral', 'ministry_id' => 3, 'form_purpose' => NULL, 'notes' => '', @@ -21108,15 +20061,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 457 => - array ( - 'id' => 954, - 'form_id' => 'CF4110', - 'form_title' => 'Early Childhood Educator Change of Information', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 370 => [ + 'id' => 868, + 'form_id' => 'CF2960A', + 'form_title' => 'Child Care Subsidy Review Referral', 'ministry_id' => 3, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'CCS - Review Referral For Administrative Errors $500.00 - $1500.00 OR For All Other Reasons $500.00 - $1000.00', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -21130,15 +20084,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 458 => - array ( - 'id' => 955, - 'form_id' => 'CF4111', - 'form_title' => 'Early Childhood Educator Certificate Renewal Professional Development', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 371 => [ + 'id' => 869, + 'form_id' => 'CF2961', + 'form_title' => 'Child Care Subsidy Overpayment Calculation', 'ministry_id' => 3, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'CCS-VA - Business Area??', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -21152,15 +20107,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 459 => - array ( - 'id' => 956, - 'form_id' => 'CF4112', - 'form_title' => 'Early Childhood Educator Certification Program Confirmation', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 372 => [ + 'id' => 870, + 'form_id' => 'CF2962', + 'form_title' => 'Child Care Subsidy Review Report', 'ministry_id' => 3, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'CCS-VA - Business Area??', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -21174,13 +20130,14 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 460 => - array ( - 'id' => 957, - 'form_id' => 'CF4113', - 'form_title' => 'Early Childhood Educator Certification Course Confirmation', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 373 => [ + 'id' => 871, + 'form_id' => 'CF2963', + 'form_title' => 'Verification and Audit Office File Review Notes', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -21196,16 +20153,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 461 => - array ( - 'id' => 959, - 'form_id' => 'CF4115', - 'form_title' => 'Fraser SDA Post Adoption Assistance (PAA) Template Funding Request and Approval', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 374 => [ + 'id' => 872, + 'form_id' => 'CF2964', + 'form_title' => 'Verification and Audit Request for Reconsideration', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '?An early Orbeon form, with some minor�dynamic functionality. -', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -21219,20 +20176,20 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 462 => - array ( - 'id' => 960, - 'form_id' => 'CF4117', - 'form_title' => 'SHSS Referral Document Report', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 375 => [ + 'id' => 873, + 'form_id' => 'CF3001', + 'form_title' => 'Service Provider Portal Access Request ', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'BA:�Specialized Homes and Support Services? -', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, - 'form_reach_id' => 2, + 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, @@ -21241,16 +20198,17 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 463 => - array ( - 'id' => 961, - 'form_id' => 'CF4118', - 'form_title' => 'Caregiver Emergency Response Plan', - 'ministry_id' => 1, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 376 => [ + 'id' => 874, + 'form_id' => 'CF3002', + 'form_title' => 'Service Provider Portal Access Request', + 'ministry_id' => 3, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -21259,20 +20217,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 464 => - array ( - 'id' => 962, - 'form_id' => 'CF4119', - 'form_title' => 'Rental Supplement Form', + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 377 => [ + 'id' => 875, + 'form_id' => 'CF3005', + 'form_title' => 'Unknown', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '?As of the date of creating this form number (Aug. 24, 2022), it is not clear who owns the form, where it lives, etc. Hopefull the BA (Sagar Shah) will provide such information at some point.�- Jonny', + 'notes' => 'ICM - Business Area??', 'fill_type_id' => NULL, 'decommissioned' => true, 'form_frequency_id' => NULL, @@ -21284,21 +20243,22 @@ public function run() 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', - 'orbeon_functions' => 'Email', - 'icm_generated' => NULL, - ), - 465 => - array ( - 'id' => 963, - 'form_id' => 'CF4120', - 'form_title' => 'CYSN Agency Referral', + 'orbeon_functions' => '', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 378 => [ + 'id' => 876, + 'form_id' => 'CF3020', + 'form_title' => 'Legal Opinion Request ', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, + 'form_frequency_id' => 3, + 'form_reach_id' => 1, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, @@ -21307,13 +20267,14 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 466 => - array ( - 'id' => 964, - 'form_id' => 'CF4121', - 'form_title' => 'About My Child', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 379 => [ + 'id' => 877, + 'form_id' => 'CF3030', + 'form_title' => 'Community Poverty Reduction Initiative Service Request and Family Action Plan', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -21328,36 +20289,38 @@ public function run() 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', - 'orbeon_functions' => 'Attachments', + 'orbeon_functions' => '', 'icm_generated' => false, - ), - 467 => - array ( - 'id' => 965, - 'form_id' => 'CF4122', - 'form_title' => 'Family Needs Assessment', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 380 => [ + 'id' => 878, + 'form_id' => 'CF3200', + 'form_title' => 'Child and Youth with Complex Care Needs Provincial Services', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Form retired - see https://dev.azure.com/BC-SDPR/Forms%20Modernization/_workitems/edit/2192', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => 'Attachments', - 'icm_generated' => false, - ), - 468 => - array ( - 'id' => 966, - 'form_id' => 'CF4123', - 'form_title' => 'Notification of Ending Autism Funding Agreement', + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 381 => [ + 'id' => 879, + 'form_id' => 'CF3471', + 'form_title' => 'Children Cared for Outside the Parental Home', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -21372,21 +20335,22 @@ public function run() 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', - 'orbeon_functions' => 'Attachments', + 'orbeon_functions' => '', 'icm_generated' => false, - ), - 469 => - array ( - 'id' => 967, - 'form_id' => 'CF4124', - 'form_title' => 'Notficiation to end At Home Medical Benefits - School-aged Extended Therapies', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 382 => [ + 'id' => 880, + 'form_id' => 'CF3499', + 'form_title' => 'Provincial Deaf & Hard of Hearing Services Professional Immersion 2014 Registration', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => 1, - 'form_reach_id' => 1, + 'decommissioned' => true, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, @@ -21394,19 +20358,20 @@ public function run() 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', - 'orbeon_functions' => 'Attachments', + 'orbeon_functions' => '', 'icm_generated' => false, - ), - 470 => - array ( - 'id' => 968, - 'form_id' => 'CF4125', - 'form_title' => 'waitlist_check_in', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 383 => [ + 'id' => 881, + 'form_id' => 'CF3500', + 'form_title' => 'Provincial Deaf & Hard of Hearing Services Summer Immersion 2015 Registration', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -21416,17 +20381,18 @@ public function run() 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', - 'orbeon_functions' => 'Attachments', + 'orbeon_functions' => '', 'icm_generated' => false, - ), - 471 => - array ( - 'id' => 969, - 'form_id' => 'CF4126', - 'form_title' => 'short-term-file-review-48-hour', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 384 => [ + 'id' => 882, + 'form_id' => 'CF3501', + 'form_title' => 'Family and Community Services Activities Registration', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'The iConnect page for this form exsists but the form is not currently avaiable for viewing/download', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -21438,14 +20404,15 @@ public function run() 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', - 'orbeon_functions' => 'Attachments', + 'orbeon_functions' => '', 'icm_generated' => false, - ), - 472 => - array ( - 'id' => 970, - 'form_id' => 'CF4127', - 'form_title' => 'health-care-file-review-post-48-hours', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 385 => [ + 'id' => 883, + 'form_id' => 'CF3501A', + 'form_title' => 'Provincial Deaf & Hard of Hearing Services Post-Secondary Transition Workshop Registration', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -21460,19 +20427,20 @@ public function run() 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', - 'orbeon_functions' => 'Attachments', + 'orbeon_functions' => '', 'icm_generated' => false, - ), - 473 => - array ( - 'id' => 971, - 'form_id' => 'CF4128', - 'form_title' => 'Policy Procedures for Case File Transfer: Activities, Roles, and Responsibilities', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 386 => [ + 'id' => 884, + 'form_id' => 'CF3502', + 'form_title' => 'Provincial Deaf & Hard of Hearing Services Service Plan Agreement', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -21482,14 +20450,15 @@ public function run() 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', - 'orbeon_functions' => 'Attachments', - 'icm_generated' => NULL, - ), - 474 => - array ( - 'id' => 972, - 'form_id' => 'CF4129', - 'form_title' => 'Policy Procedures for Joint File Management: Key Activities, Roles, and Responsibilities', + 'orbeon_functions' => '', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 387 => [ + 'id' => 885, + 'form_id' => 'CF3503', + 'form_title' => 'Family and Community Services Client Self-Evaluation and Program Feedback', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -21504,14 +20473,15 @@ public function run() 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', - 'orbeon_functions' => 'Attachments', - 'icm_generated' => NULL, - ), - 475 => - array ( - 'id' => 973, - 'form_id' => 'CF4130', - 'form_title' => 'Provincial Deaf and Hard of Hearing Services ASL Services Intake', + 'orbeon_functions' => '', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 388 => [ + 'id' => 886, + 'form_id' => 'CF3504', + 'form_title' => 'Victory Hill Residential Program Incident Form', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -21527,16 +20497,17 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 476 => - array ( - 'id' => 974, - 'form_id' => 'CF4131', - 'form_title' => 'Referral Document Report', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 389 => [ + 'id' => 887, + 'form_id' => 'CF3505', + 'form_title' => 'Consent to Use Video/Online Technology for Service Delivery', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -21545,20 +20516,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 477 => - array ( - 'id' => 975, - 'form_id' => 'CF4132', - 'form_title' => 'Family Needs Assessment Report', + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 390 => [ + 'id' => 888, + 'form_id' => 'CF3506', + 'form_title' => 'PDHHS Release of Information', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -21567,17 +20539,18 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 478 => - array ( - 'id' => 976, - 'form_id' => 'CF4133', - 'form_title' => 'Notice to resume Autism Funding', + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 391 => [ + 'id' => 889, + 'form_id' => 'CF3700', + 'form_title' => 'Application for Research Proposals', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -21594,15 +20567,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 479 => - array ( - 'id' => 977, - 'form_id' => 'CF4134', - 'form_title' => 'Notice to resume At Home Program School-Aged Extended Therapies', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 392 => [ + 'id' => 890, + 'form_id' => 'CF3751', + 'form_title' => 'Adoption Applicant Screening Referral Checklist', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'Orbeon Dev: https://forms-dev.social.gov.bc.ca/orbeon/fr/family/notice-to-resume-at-home-program-school-aged-extended-therapies-cf4134/new?form-version=1', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -21616,19 +20590,20 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 480 => - array ( - 'id' => 978, - 'form_id' => 'CF4135', - 'form_title' => 'Temporary Housing Agreement - Maintenance Payment Request Form ', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 393 => [ + 'id' => 891, + 'form_id' => 'CF3752', + 'form_title' => 'Extended Family Plan Caregiver Screening Referral Checklist', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, + 'form_reach_id' => 2, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, @@ -21638,15 +20613,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 481 => - array ( - 'id' => 979, - 'form_id' => 'CF4136', - 'form_title' => 'Temporary Support Agreement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 394 => [ + 'id' => 892, + 'form_id' => 'CF3753', + 'form_title' => 'Foster Parent Screening Referral Checklist', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Orbeon is the active one, linked to in iConnect', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -21656,19 +20632,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 482 => - array ( - 'id' => 980, - 'form_id' => 'CF4136a', - 'form_title' => 'Temporary Support Agreement - Schedule A', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 395 => [ + 'id' => 893, + 'form_id' => 'CF3754', + 'form_title' => 'Out-of-Care Caregiver Screening Referral Checklist', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'internal, form being phased out', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -21682,12 +20659,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 483 => - array ( - 'id' => 981, - 'form_id' => 'CF4137', - 'form_title' => 'Acknowledgement for a Young Adult on a Temporary Housing Agreement ', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 396 => [ + 'id' => 894, + 'form_id' => 'CF3755', + 'form_title' => 'Restricted Foster Parent Screening Referral Checklist', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -21704,19 +20682,20 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 484 => - array ( - 'id' => 982, - 'form_id' => 'CF4138', - 'form_title' => 'Temporary Housing Agreement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 397 => [ + 'id' => 895, + 'form_id' => 'CF3756', + 'form_title' => 'Foster-to-Adopt Applicant Screening Referral Checklist', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, - 'form_reach_id' => 2, + 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, @@ -21726,15 +20705,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 485 => - array ( - 'id' => 983, - 'form_id' => 'CF4139', - 'form_title' => 'Notice of Lawyer of Record for Party', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 398 => [ + 'id' => 896, + 'form_id' => 'CF3757', + 'form_title' => '54.1 Permanent Transfer of Custody Before C.C.O Screening Referral Checklist', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '?PFA707 12/2022, Prov Ct (CFCSA) Rules, Form 10.3?', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -21748,18 +20728,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 486 => - array ( - 'id' => 984, - 'form_id' => 'CF4140', - 'form_title' => 'Notice of Removal of Lawyer of Record for Party', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 399 => [ + 'id' => 897, + 'form_id' => 'CF3758', + 'form_title' => '54.1 Permanent Transfer of Custody After C.C.O. Screening Referral Checklist', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '?CF4140 -PFA708 12/2022 -Prov Ct (CFCSA) Rules -Form 10.4', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -21772,16 +20750,17 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 487 => - array ( - 'id' => 985, - 'form_id' => 'CF4141', - 'form_title' => 'Application to Change Method of Attendance', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 400 => [ + 'id' => 898, + 'form_id' => 'CF3759', + 'form_title' => 'Extended Family Program/Temporary Transfer of Custody to Other Submission', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'CF4141 PFA771�12/2022 Prov Ct (CFCSA) Rules. Form 10.5', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -21795,16 +20774,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 488 => - array ( - 'id' => 986, - 'form_id' => 'CF4142', - 'form_title' => 'Early Childhood Educator Translation Subsidy Application ', - 'ministry_id' => 3, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 401 => [ + 'id' => 899, + 'form_id' => 'CF3800', + 'form_title' => 'Services to Adults with Developmental Disabilities (STADD)', + 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'It\'s not exactly clear where this form lives,�I assume iConnect ... but I do not know if ECC forms live there or not. It is currenly only a PDF, but it should be moved to Orbeon when it has stabilized.? key player in getting this started was: -Janine Garland (Child Care Division, Ministry of Education and Child Care) P: 778-698-7379', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -21813,17 +20792,18 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 489 => - array ( - 'id' => 987, - 'form_id' => 'CF4143', - 'form_title' => 'Form H Report to Court CCO Cancellation', + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 402 => [ + 'id' => 900, + 'form_id' => 'CF4021', + 'form_title' => 'Enhanced Out of Care Support Agreement', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -21840,19 +20820,20 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 490 => - array ( - 'id' => 988, - 'form_id' => 'CF4144', - 'form_title' => 'Form G Report to Court Withdrawl', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 403 => [ + 'id' => 901, + 'form_id' => 'CF4022', + 'form_title' => 'Enhanced Out of Care Support Agreement Schedule A', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, - 'form_reach_id' => 2, + 'form_reach_id' => 1, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, @@ -21860,21 +20841,22 @@ public function run() 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', - 'orbeon_functions' => 'Email', + 'orbeon_functions' => '', 'icm_generated' => false, - ), - 491 => - array ( - 'id' => 989, - 'form_id' => 'CF4145', - 'form_title' => 'Form J Director\'s Notice of IA Intent Withdrawal', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 404 => [ + 'id' => 902, + 'form_id' => 'CF4023', + 'form_title' => 'Enhanced Out-of-Care Modification Agreement', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, - 'form_reach_id' => 2, + 'form_reach_id' => 1, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, @@ -21884,37 +20866,39 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 492 => - array ( - 'id' => 990, - 'form_id' => 'CF4146', - 'form_title' => 'Form K Director\'s Notice of IA Intent to have Custody', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 405 => [ + 'id' => 903, + 'form_id' => 'CF4050', + 'form_title' => 'Presentation', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Court Form 1, digital signature', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, - 'form_reach_id' => 2, + 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 493 => - array ( - 'id' => 991, - 'form_id' => 'CF4147', - 'form_title' => 'Request for SAJE Mental Health and Counselling Benefits', + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 406 => [ + 'id' => 904, + 'form_id' => 'CF4052', + 'form_title' => 'Application to Change or Cancel an Order', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Court Form 3', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -21924,19 +20908,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => 'Email, Attachments', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 494 => - array ( - 'id' => 992, - 'form_id' => 'CF4148', - 'form_title' => 'Form I Indigenous Authority Confirmation', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 407 => [ + 'id' => 905, + 'form_id' => 'CF4053', + 'form_title' => 'Subpoena', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Court Form 4', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -21946,19 +20931,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 495 => - array ( - 'id' => 993, - 'form_id' => 'CF4149', - 'form_title' => 'Event Permission Form', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 408 => [ + 'id' => 906, + 'form_id' => 'CF4054', + 'form_title' => 'Warrant of Apprehension', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Court Form 5', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -21968,19 +20954,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 496 => - array ( - 'id' => 994, - 'form_id' => 'CF4150', - 'form_title' => 'Consent of a child twelve and over to post to the Adopt BC Kids website photographs, video and audio recordings.', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 409 => [ + 'id' => 907, + 'form_id' => 'CF4055', + 'form_title' => 'Release', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Court Form 6', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -21990,60 +20977,63 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 497 => - array ( - 'id' => 995, - 'form_id' => 'CF4151', - 'form_title' => 'Outcome of Notification or Notice Period', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 410 => [ + 'id' => 908, + 'form_id' => 'CF4057', + 'form_title' => 'Notice of Address for Service', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Court Form 8', 'fill_type_id' => NULL, 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, + 'form_frequency_id' => 3, + 'form_reach_id' => 2, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 498 => - array ( - 'id' => 996, - 'form_id' => 'CF4152', - 'form_title' => 'Director\'s Notice of Withdrawal', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 411 => [ + 'id' => 909, + 'form_id' => 'CF4059', + 'form_title' => 'Order', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Court Form 10', 'fill_type_id' => NULL, 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, + 'form_frequency_id' => 3, + 'form_reach_id' => 2, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 499 => - array ( - 'id' => 997, - 'form_id' => 'CF4153', - 'form_title' => 'Notice Letter CCO Cancellation', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 412 => [ + 'id' => 910, + 'form_id' => 'CF4065', + 'form_title' => 'Child\'s Routines', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -22060,14 +21050,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - )); - \DB::table('forms')->insert(array ( - 0 => - array ( - 'id' => 998, - 'form_id' => 'CF4154', - 'form_title' => 'Notice Letter for Withdrawal', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 413 => [ + 'id' => 911, + 'form_id' => 'CF4067', + 'form_title' => 'Interprovincial Child Protection Alert', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -22084,12 +21073,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 1 => - array ( - 'id' => 999, - 'form_id' => 'CF4155', - 'form_title' => 'Notification Tracking Form', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 414 => [ + 'id' => 912, + 'form_id' => 'CF4068', + 'form_title' => 'Interprovincial Request for Services', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -22106,12 +21096,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 2 => - array ( - 'id' => 1000, - 'form_id' => 'CF4156', - 'form_title' => 'Integrated Care Plan', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 415 => [ + 'id' => 913, + 'form_id' => 'CF4069', + 'form_title' => 'Interprovincial Placement Agreement', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -22128,15 +21119,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 3 => - array ( - 'id' => 1001, - 'form_id' => 'CF4157', - 'form_title' => 'CFCSA Director\'s Request for Personal Health Information from Public Bodies', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 416 => [ + 'id' => 914, + 'form_id' => 'CF4070', + 'form_title' => 'Interprovincial Scan Request', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not on iConnect', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -22150,12 +21142,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 4 => - array ( - 'id' => 1002, - 'form_id' => 'CF4158', - 'form_title' => 'Notifiation Letter regarding Personal Health Information for CFCSA ', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 417 => [ + 'id' => 915, + 'form_id' => 'CF4071', + 'form_title' => 'Checklist for ChildCareBC Stakeholder Engagement and Service Delivery', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -22172,12 +21165,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 5 => - array ( - 'id' => 1003, - 'form_id' => 'CF4159', - 'form_title' => 'Request for SAJE Eligibility Check', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 418 => [ + 'id' => 916, + 'form_id' => 'CF4072', + 'form_title' => 'Digital Survey Checklist for ChildCareBC Stakeholder Engagement and Service Delivery', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -22194,56 +21188,59 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 6 => - array ( - 'id' => 1004, - 'form_id' => 'CF4170', - 'form_title' => 'Unconditional or Conditional Income Support Agreement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 419 => [ + 'id' => 917, + 'form_id' => 'CF4073', + 'form_title' => 'Environmental Checklist for Adoption Homes', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, - 'form_reach_id' => 2, + 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => false, + 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 7 => - array ( - 'id' => 1005, - 'form_id' => 'CF4170A', - 'form_title' => 'INCOME SUPPORT AGREEMENT SCHEDULE A - PAYMENT PLAN', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 420 => [ + 'id' => 918, + 'form_id' => 'CF4074', + 'form_title' => 'Report on Caregivers Incident(s)', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, - 'form_reach_id' => 2, + 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => false, + 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 8 => - array ( - 'id' => 1006, - 'form_id' => 'CF4170B', - 'form_title' => 'INCOME SUPPORT AGREEMENT SCHEDULE "B" - PROGRAM PLAN', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 421 => [ + 'id' => 919, + 'form_id' => 'CF4075', + 'form_title' => 'Consent to Use Video/Online Technology for Service Delivery', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -22255,17 +21252,18 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => false, + 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 9 => - array ( - 'id' => 1007, - 'form_id' => 'CF4171', - 'form_title' => 'SAJE Support Agreement - Schedule A - Payment Plan', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 422 => [ + 'id' => 920, + 'form_id' => 'CF4076', + 'form_title' => 'Childcare BC Temporary Inclusion Support Fund Application Form', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -22277,110 +21275,115 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => false, + 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 10 => - array ( - 'id' => 1008, - 'form_id' => 'CF4172', - 'form_title' => 'Child Adolescent Self-Report', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 423 => [ + 'id' => 921, + 'form_id' => 'CF4077', + 'form_title' => 'Victory Hill Dorm Application', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, - 'form_reach_id' => 1, + 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => false, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 11 => - array ( - 'id' => 1009, - 'form_id' => 'CF4173', - 'form_title' => 'Brief Screen for Child Adolescent Trauma and PTSD', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 424 => [ + 'id' => 922, + 'form_id' => 'CF4078', + 'form_title' => 'Victory Hill Dorm Summary/Emergency Card', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, - 'form_reach_id' => 1, + 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => false, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 12 => - array ( - 'id' => 1010, - 'form_id' => 'CF4174', - 'form_title' => 'PTSD Reaction Index for DSM-5 Parent Caregiver Report for Children Age 6 and Younger', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 425 => [ + 'id' => 923, + 'form_id' => 'CF4079', + 'form_title' => 'Victory Hill Dorm Medical Information', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, - 'form_reach_id' => 1, + 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => false, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 13 => - array ( - 'id' => 1011, - 'form_id' => 'CF4175', - 'form_title' => 'PTSD Reaction Index for DSM-5 Parent Caregiver Report', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 426 => [ + 'id' => 924, + 'form_id' => 'CF4080', + 'form_title' => 'Victory Hill Dorm Medication and Supplements', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, - 'form_reach_id' => 1, + 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => false, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 14 => - array ( - 'id' => 1012, - 'form_id' => 'CF4176', - 'form_title' => 'Youth Custody Services - Custody Intake and Monthly Progress Plan', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 427 => [ + 'id' => 925, + 'form_id' => 'CF4081', + 'form_title' => 'Victory Hill Dorm Release of Information', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -22388,43 +21391,48 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => false, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 15 => - array ( - 'id' => 1015, - 'form_id' => 'CFL000010', - 'form_title' => 'Adoption Proposal Package Acknowledgment Letter', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 428 => [ + 'id' => 926, + 'form_id' => 'CF4082', + 'form_title' => 'Victory Hill Dorm Video and Technology Use', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 16 => - array ( - 'id' => 1016, - 'form_id' => 'CFL00010', - 'form_title' => 'Partner Portal Form', + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 429 => [ + 'id' => 927, + 'form_id' => 'CF4083', + 'form_title' => 'Pool Vehicle Use Record and Condition Report', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '??No longer active per Remedy ticket 813501, +used digitally on iConnect, and printed out + +Finance & Corporate Services Division?', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -22435,17 +21443,17 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 17 => - array ( - 'id' => 1017, - 'form_id' => 'CFL00540', - 'form_title' => 'Accountant Confirmation - 1 Month Reminder/AC Reminder - BC Mail Data Form', - 'ministry_id' => 1, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 430 => [ + 'id' => 928, + 'form_id' => 'CF4084', + 'form_title' => 'Child Care Rapid Renovation Fund Application', + 'ministry_id' => 3, 'form_purpose' => NULL, - 'notes' => 'AC Reminder - BC Mail Data Form? -', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -22458,17 +21466,17 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 18 => - array ( - 'id' => 1018, - 'form_id' => 'CFL00543', - 'form_title' => 'Accountant Confirmation - 60 Day Reminder', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 431 => [ + 'id' => 929, + 'form_id' => 'CF4085', + 'form_title' => 'SimpleSurvey Checklist', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'AC Reminder - BC Mail Data Form? -', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -22478,20 +21486,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 19 => - array ( - 'id' => 1019, - 'form_id' => 'CFL00544', - 'form_title' => '90 Day DP Cancellation/AC Reminder - BC Mail Data Form', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 432 => [ + 'id' => 930, + 'form_id' => 'CF4086', + 'form_title' => 'Youth Advisory Council Application', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'Related to�CFL00540, 43 and 44? -', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -22504,13 +21512,14 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 20 => - array ( - 'id' => 1020, - 'form_id' => 'CFL01023', - 'form_title' => 'L09.01 - Reduction in Subsidy Letter due to change in family income', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 433 => [ + 'id' => 931, + 'form_id' => 'CF4087', + 'form_title' => 'Discharge Summary', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -22526,14 +21535,15 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 21 => - array ( - 'id' => 1021, - 'form_id' => 'CFL01024', - 'form_title' => 'L09.02 - Reduction in Subsidy letter due to change in child care arrangement', - 'ministry_id' => 1, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 434 => [ + 'id' => 932, + 'form_id' => 'CF4088', + 'form_title' => 'Itemized Expense Report', + 'ministry_id' => 3, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -22548,16 +21558,17 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 22 => - array ( - 'id' => 1022, - 'form_id' => 'CFL01025', - 'form_title' => 'L09.03 - Reduction in subsidy letter due to client initiated change in cc arrangement-reg to unreg', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 435 => [ + 'id' => 933, + 'form_id' => 'CF4089', + 'form_title' => 'Agreement with Young Adult Discretionary Decision Recording', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -22567,16 +21578,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 23 => - array ( - 'id' => 1023, - 'form_id' => 'CFL01026', - 'form_title' => 'L09.04 - Reduction in Subsidy Letter due to incorrect child care setting', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 436 => [ + 'id' => 934, + 'form_id' => 'CF4090', + 'form_title' => 'Summary of Youth Agreement Eligibility', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -22592,13 +21604,14 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 24 => - array ( - 'id' => 1024, - 'form_id' => 'CFL01027', - 'form_title' => 'L09.05 - Reduction in subsidy letter due to incorrect cc setting-reg to unreg-adj error', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 437 => [ + 'id' => 935, + 'form_id' => 'CF4091', + 'form_title' => 'Youth Agreement Eligibility: Assessing Understanding, Ability and Readiness', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -22614,13 +21627,14 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 25 => - array ( - 'id' => 1025, - 'form_id' => 'CFL01028', - 'form_title' => 'L09.06 - Reduction in Subsidy Letter due to change in family composition', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 438 => [ + 'id' => 936, + 'form_id' => 'CF4092', + 'form_title' => 'Referral Form for Step up/Step Down (SUSD) Outreach Services', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -22636,13 +21650,14 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 26 => - array ( - 'id' => 1026, - 'form_id' => 'CFL01029', - 'form_title' => 'L09.07 - Reduction in Subsidy Letter due to addition of spouse', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 439 => [ + 'id' => 937, + 'form_id' => 'CF4093', + 'form_title' => 'Youth Custody Services Visitor Information & Consent', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -22658,13 +21673,14 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 27 => - array ( - 'id' => 1027, - 'form_id' => 'CFL01030', - 'form_title' => 'L09.08 - Reduction in Subsidy Letter due to child turning six year old', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 440 => [ + 'id' => 938, + 'form_id' => 'CF4094', + 'form_title' => 'Youth Custody Services Visitor Restriction Letter', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -22680,13 +21696,14 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 28 => - array ( - 'id' => 1028, - 'form_id' => 'CFL01031', - 'form_title' => 'L09.09 - Reduction in Subsidy Letter due to work search records', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 441 => [ + 'id' => 939, + 'form_id' => 'CF4095', + 'form_title' => 'Intent to Rent Rental Confirmation', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -22702,13 +21719,14 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 29 => - array ( - 'id' => 1029, - 'form_id' => 'CFL01032', - 'form_title' => 'L09.10 - Reduction in Subsidy Letter due to change in number of days to 20 full', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 442 => [ + 'id' => 940, + 'form_id' => 'CF4096', + 'form_title' => 'Accounts Payable Vendor Data Form', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -22724,16 +21742,17 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 30 => - array ( - 'id' => 1030, - 'form_id' => 'CFL01033', - 'form_title' => 'L09.11 - Reduction in Subsidy Letter due to less days needed for child care', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 443 => [ + 'id' => 941, + 'form_id' => 'CF4097', + 'form_title' => 'Initial Child & Youth - Mental Health Assessment', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -22742,17 +21761,18 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 31 => - array ( - 'id' => 1031, - 'form_id' => 'CFL01034', - 'form_title' => 'L09.13 - Reduction in subsidy letter due change in social need resulting in less care required', + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 444 => [ + 'id' => 942, + 'form_id' => 'CF4098', + 'form_title' => 'Child and Youth Mental Health Closing Summary', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -22768,16 +21788,17 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 32 => - array ( - 'id' => 1032, - 'form_id' => 'CFL01035', - 'form_title' => 'Reduction from full to L2 half for ws', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 445 => [ + 'id' => 943, + 'form_id' => 'CF4099', + 'form_title' => 'Caregivers Liability Program (CGLP) Enrollment', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -22787,16 +21808,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 33 => - array ( - 'id' => 1033, - 'form_id' => 'CFL01036', - 'form_title' => 'Reduction school age child (approval pending)', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 446 => [ + 'id' => 944, + 'form_id' => 'CF4100', + 'form_title' => 'Request For Health Connections Through Culture Funding', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -22812,14 +21834,15 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 34 => - array ( - 'id' => 1034, - 'form_id' => 'CFL01049', - 'form_title' => 'Return Letter', - 'ministry_id' => 1, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 447 => [ + 'id' => 945, + 'form_id' => 'CF4101', + 'form_title' => 'Early Childhood Educator Certification Application B.C. Recognized Education', + 'ministry_id' => 3, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -22834,14 +21857,15 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 35 => - array ( - 'id' => 1035, - 'form_id' => 'CFL01050', - 'form_title' => 'L10 - Denial Letter due to Income too High', - 'ministry_id' => 1, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 448 => [ + 'id' => 946, + 'form_id' => 'CF4102', + 'form_title' => 'Early Childhood Educator Certification Application Equivalency', + 'ministry_id' => 3, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -22856,14 +21880,15 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 36 => - array ( - 'id' => 1036, - 'form_id' => 'CFL01051', - 'form_title' => 'L11 - Denial Letter due to Income too High (particular setting)', - 'ministry_id' => 1, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 449 => [ + 'id' => 947, + 'form_id' => 'CF4103', + 'form_title' => 'Early Childhood Educator Certification Application Transferring Certification', + 'ministry_id' => 3, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -22878,14 +21903,15 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 37 => - array ( - 'id' => 1037, - 'form_id' => 'CFL01052', - 'form_title' => 'L12 - Denial Letter due to Care Provider is a Relative', - 'ministry_id' => 1, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 450 => [ + 'id' => 948, + 'form_id' => 'CF4104', + 'form_title' => 'Early Childhood Educator Certificate Renewal Application ECE Five Year and/or Specializations', + 'ministry_id' => 3, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -22900,14 +21926,15 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 38 => - array ( - 'id' => 1038, - 'form_id' => 'CFL01053', - 'form_title' => 'L13 - Denial Letter due to Citizenship', - 'ministry_id' => 1, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 451 => [ + 'id' => 949, + 'form_id' => 'CF4105', + 'form_title' => 'Early Childhood Educator Certificate Application Renewal ECE One Year', + 'ministry_id' => 3, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -22922,14 +21949,15 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 39 => - array ( - 'id' => 1039, - 'form_id' => 'CFL01054', - 'form_title' => 'L14 - Denial Letter due to B.C. Residency', - 'ministry_id' => 1, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 452 => [ + 'id' => 950, + 'form_id' => 'CF4106', + 'form_title' => 'Early Childhood Educator Certificate Renewal Application ECE Assistant', + 'ministry_id' => 3, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -22944,14 +21972,15 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 40 => - array ( - 'id' => 1040, - 'form_id' => 'CFL01055', - 'form_title' => 'L15 - Denial Letter due to No Valid Social Need', - 'ministry_id' => 1, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 453 => [ + 'id' => 951, + 'form_id' => 'CF4107', + 'form_title' => 'Early Childhood Educator Five Year Certification 500 Hour Work Experience Reference', + 'ministry_id' => 3, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -22966,14 +21995,15 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 41 => - array ( - 'id' => 1041, - 'form_id' => 'CFL01056', - 'form_title' => 'L16 - Denial Letter due to Client and Spouse on Work Search', - 'ministry_id' => 1, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 454 => [ + 'id' => 952, + 'form_id' => 'CF4108', + 'form_title' => 'Early Childhood Educator 400 Hour Work Experience Reference', + 'ministry_id' => 3, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -22988,14 +22018,15 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 42 => - array ( - 'id' => 1042, - 'form_id' => 'CFL01057', - 'form_title' => 'L17 - Denial Letter due to Backdating', - 'ministry_id' => 1, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 455 => [ + 'id' => 953, + 'form_id' => 'CF4109', + 'form_title' => 'Early Childhood Educator Certification Character Reference', + 'ministry_id' => 3, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -23010,14 +22041,15 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 43 => - array ( - 'id' => 1043, - 'form_id' => 'CFL01058', - 'form_title' => 'L19 - Denial Letter due to Not an Eligible Care Setting', - 'ministry_id' => 1, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 456 => [ + 'id' => 954, + 'form_id' => 'CF4110', + 'form_title' => 'Early Childhood Educator Change of Information', + 'ministry_id' => 3, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -23032,14 +22064,15 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 44 => - array ( - 'id' => 1044, - 'form_id' => 'CFL01059', - 'form_title' => 'L19a - Denial Letter due to Not an Eligible Care Setting for Licensed Preschool', - 'ministry_id' => 1, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 457 => [ + 'id' => 955, + 'form_id' => 'CF4111', + 'form_title' => 'Early Childhood Educator Certificate Renewal Professional Development', + 'ministry_id' => 3, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -23054,36 +22087,62 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 45 => - array ( - 'id' => 1045, - 'form_id' => 'CFL01060', - 'form_title' => 'denial for half days L2 while on ws (may be included in CFL 01020 series)', - 'ministry_id' => 1, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 458 => [ + 'id' => 956, + 'form_id' => 'CF4112', + 'form_title' => 'Early Childhood Educator Certification Program Confirmation', + 'ministry_id' => 3, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, + 'form_frequency_id' => 4, + 'form_reach_id' => 2, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 46 => - array ( - 'id' => 1046, - 'form_id' => 'CFL01061', - 'form_title' => 'denial due to income-less days of ws (may be included in CFL 01020 series)', - 'ministry_id' => 1, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 459 => [ + 'id' => 957, + 'form_id' => 'CF4113', + 'form_title' => 'Early Childhood Educator Certification Course Confirmation', + 'ministry_id' => 3, + 'form_purpose' => NULL, + 'notes' => 'Not hosted online, is instead sent to users by the business area upon request. +Example work item 2456', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => 3, + 'form_reach_id' => 2, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 460 => [ + 'id' => 958, + 'form_id' => 'CF4114', + 'form_title' => 'Early Childhood Educator Reconsideration Request', + 'ministry_id' => 3, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -23098,18 +22157,21 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 47 => - array ( - 'id' => 1047, - 'form_id' => 'CFL01062', - 'form_title' => 'L22 - Denial Letter due to Preschool and Group Combo Care', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 461 => [ + 'id' => 959, + 'form_id' => 'CF4115', + 'form_title' => 'Fraser SDA Post Adoption Assistance (PAA) Template Funding Request and Approval', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Only exists in Orbeon Dev., +An early Orbeon form, with some minor dynamic functionality. +https://dev.azure.com/BC-SDPR/Forms%20Modernization/_workitems/edit/843', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -23117,38 +22179,41 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 48 => - array ( - 'id' => 1048, - 'form_id' => 'CFL01063', - 'form_title' => 'L23 - Denial Letter due to Parent Not Eligible', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 462 => [ + 'id' => 960, + 'form_id' => 'CF4117', + 'form_title' => 'SHSS Referral Document Report', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'ICM-Generated Orbeon Form in production., +There was an variant of this form created with ID CF4131 that seems to have never been published.', 'fill_type_id' => NULL, 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, + 'form_frequency_id' => 4, + 'form_reach_id' => 2, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 49 => - array ( - 'id' => 1049, - 'form_id' => 'CFL01064', - 'form_title' => 'L24 - Denial Letter due to Day Camp Request', + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 463 => [ + 'id' => 961, + 'form_id' => 'CF4118', + 'form_title' => 'Caregiver Emergency Response Plan', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -23164,18 +22229,19 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 50 => - array ( - 'id' => 1050, - 'form_id' => 'CFL01065', - 'form_title' => 'L25 - Denial Letter due Child Turning Six in K year', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 464 => [ + 'id' => 962, + 'form_id' => 'CF4119', + 'form_title' => 'Rental Supplement Form', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'As of the date of Aug. 24, 2022, it is not clear who owns the form, where it lives, etc.', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -23183,19 +22249,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 51 => - array ( - 'id' => 1051, - 'form_id' => 'CFL01066', - 'form_title' => 'L26 - Denial Letter due to Change in Hours', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => 'Email', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 465 => [ + 'id' => 963, + 'form_id' => 'CF4120', + 'form_title' => 'CYSN Agency Referral', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -23205,16 +22272,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 52 => - array ( - 'id' => 1052, - 'form_id' => 'CFL01067', - 'form_title' => 'L27 - Denial letter due to request for care over 20 full days for medical reasons', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 466 => [ + 'id' => 964, + 'form_id' => 'CF4121', + 'form_title' => 'About My Child', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -23229,14 +22297,15 @@ public function run() 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 53 => - array ( - 'id' => 1053, - 'form_id' => 'CFL01068', - 'form_title' => 'Denial school age child (approval pending)', + 'orbeon_functions' => 'Attachments', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 467 => [ + 'id' => 965, + 'form_id' => 'CF4122', + 'form_title' => 'Family Needs Assessment', 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', @@ -23251,17 +22320,18 @@ public function run() 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 54 => - array ( - 'id' => 1054, - 'form_id' => 'CFL01069', - 'form_title' => 'Teenage Child(ren)', + 'orbeon_functions' => 'Attachments', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 468 => [ + 'id' => 966, + 'form_id' => 'CF4123', + 'form_title' => 'Notification of Ending Autism Funding Agreement', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -23271,41 +22341,43 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 55 => - array ( - 'id' => 1055, - 'form_id' => 'CFL01070', - 'form_title' => 'L28 - Denial Letter Misc', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => 'Attachments', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 469 => [ + 'id' => 967, + 'form_id' => 'CF4124', + 'form_title' => 'Notficiation to end At Home Medical Benefits - School-aged Extended Therapies', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, + 'form_frequency_id' => 1, + 'form_reach_id' => 1, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 56 => - array ( - 'id' => 1056, - 'form_id' => 'CFL02015', - 'form_title' => 'CFCSA Director\'s Request for Information from Police Forces', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => 'Attachments', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 470 => [ + 'id' => 968, + 'form_id' => 'CF4125', + 'form_title' => 'Waitlist Check In', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -23314,20 +22386,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => 'Attachments', 'icm_generated' => false, - ), - 57 => - array ( - 'id' => 1057, - 'form_id' => 'CFL02020', - 'form_title' => 'Inter-Provincial/Territorial Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 471 => [ + 'id' => 969, + 'form_id' => 'CF4126', + 'form_title' => 'short-term-file-review-48-hour', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -23337,19 +22410,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => 'Attachments', 'icm_generated' => false, - ), - 58 => - array ( - 'id' => 1058, - 'form_id' => 'CFL07510', - 'form_title' => 'Search of Person Under Escort', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 472 => [ + 'id' => 970, + 'form_id' => 'CF4127', + 'form_title' => 'health-care-file-review-post-48-hours', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'iConnect links to Orbeon form', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -23359,19 +22433,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => 'Attachments', 'icm_generated' => false, - ), - 59 => - array ( - 'id' => 1059, - 'form_id' => 'Coding Block', - 'form_title' => 'Coding Block', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 473 => [ + 'id' => 971, + 'form_id' => 'CF4128', + 'form_title' => 'Policy Procedures for Case File Transfer: Activities, Roles, and Responsibilities', 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -23381,19 +22456,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 60 => - array ( - 'id' => 1060, - 'form_id' => 'Decision Report Template', - 'form_title' => 'Decision Report template', - 'ministry_id' => 2, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => 'Attachments', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 474 => [ + 'id' => 972, + 'form_id' => 'CF4129', + 'form_title' => 'Policy Procedures for Joint File Management: Key Activities, Roles, and Responsibilities', + 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -23403,19 +22479,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 61 => - array ( - 'id' => 1061, - 'form_id' => 'EAAT001', - 'form_title' => 'Employment and Assistance Appeal Tribunal Notice of Appeal', - 'ministry_id' => 2, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => 'Attachments', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 475 => [ + 'id' => 973, + 'form_id' => 'CF4130', + 'form_title' => 'Provincial Deaf and Hard of Hearing Services ASL Services Intake', + 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2026: the current one on iConnect is Livecycle, not Orbeon', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -23425,39 +22502,41 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 62 => - array ( - 'id' => 1062, - 'form_id' => 'HR0020', - 'form_title' => 'Public Money Received Transmittal Record', - 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 476 => [ + 'id' => 974, + 'form_id' => 'CF4131', + 'form_title' => 'Referral Document Report', + 'ministry_id' => 1, + 'form_purpose' => 'Variant of, or potentially related to, CF4117. It is still in Test; it was never approved to be put into Prod.', + 'notes' => 'ADO 1512 https://dev.azure.com/BC-SDPR/Forms%20Modernization/_workitems/edit/1512', 'fill_type_id' => NULL, 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, + 'form_frequency_id' => 4, + 'form_reach_id' => 2, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 63 => - array ( - 'id' => 1063, - 'form_id' => 'HR0025', - 'form_title' => 'Contract Approval ', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 477 => [ + 'id' => 975, + 'form_id' => 'CF4132', + 'form_title' => 'Family Needs Assessment Report', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -23473,17 +22552,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 64 => - array ( - 'id' => 1064, - 'form_id' => 'HR0028', - 'form_title' => 'Time Report Regular Part Time', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 478 => [ + 'id' => 976, + 'form_id' => 'CF4133', + 'form_title' => 'Notice to resume Autism Funding', + 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -23491,21 +22571,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 65 => - array ( - 'id' => 1065, - 'form_id' => 'HR0028A', - 'form_title' => 'Time Report Auxilary', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 479 => [ + 'id' => 977, + 'form_id' => 'CF4134', + 'form_title' => 'Notice to resume At Home Program School-Aged Extended Therapies', + 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -23513,21 +22594,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 66 => - array ( - 'id' => 1066, - 'form_id' => 'HR0034', - 'form_title' => 'Order for Homemaker Services', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 480 => [ + 'id' => 978, + 'form_id' => 'CF4135', + 'form_title' => 'Temporary Housing Agreement - Maintenance Payment Request Form ', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -23539,17 +22621,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 67 => - array ( - 'id' => 1067, - 'form_id' => 'HR0035', - 'form_title' => 'Statement of Homemaker Services', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 481 => [ + 'id' => 979, + 'form_id' => 'CF4136', + 'form_title' => 'Temporary Support Agreement', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -23561,15 +22644,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 68 => - array ( - 'id' => 1068, - 'form_id' => 'HR0042', - 'form_title' => 'On Demand Chequ3 - Inventory Release', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 482 => [ + 'id' => 980, + 'form_id' => 'CF4136a', + 'form_title' => 'Temporary Support Agreement - Schedule A', + 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'internal, form being phased out', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -23579,17 +22663,18 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 69 => - array ( - 'id' => 1069, - 'form_id' => 'HR0042A', - 'form_title' => 'Purchase Authorizations Inventory Release', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 483 => [ + 'id' => 981, + 'form_id' => 'CF4137', + 'form_title' => 'Acknowledgement for a Young Adult on a Temporary Housing Agreement ', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -23605,19 +22690,20 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 70 => - array ( - 'id' => 1070, - 'form_id' => 'HR0043', - 'form_title' => 'Cashed Cheque Request', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 484 => [ + 'id' => 982, + 'form_id' => 'CF4138', + 'form_title' => 'Temporary Housing Agreement', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, + 'form_reach_id' => 2, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, @@ -23627,17 +22713,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 71 => - array ( - 'id' => 1071, - 'form_id' => 'HR0053', - 'form_title' => 'Memorandum', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 485 => [ + 'id' => 983, + 'form_id' => 'CF4139', + 'form_title' => 'Notice of Lawyer of Record for Party', + 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '?PFA707 12/2022, Prov Ct (CFCSA) Rules, Form 10.3?', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -23645,16 +22732,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 72 => - array ( - 'id' => 1072, - 'form_id' => 'HR0054', - 'form_title' => 'Expense/Signing Authority', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 486 => [ + 'id' => 1150, + 'form_id' => 'HR2244', + 'form_title' => 'Records Action Request', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -23671,39 +22759,43 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 73 => - array ( - 'id' => 1073, - 'form_id' => 'HR0054A', - 'form_title' => 'New Alternate Expense Authority - Signature Update', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 487 => [ + 'id' => 984, + 'form_id' => 'CF4140', + 'form_title' => 'Notice of Removal of Lawyer of Record for Party', + 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'PFA708 12/2022, +Prov Ct (CFCSA) Rules +Form 10.4', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 74 => - array ( - 'id' => 1074, - 'form_id' => 'HR0054C', - 'form_title' => 'Expense Authority Change Form', - 'ministry_id' => 2, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 488 => [ + 'id' => 985, + 'form_id' => 'CF4141', + 'form_title' => 'Application to Change Method of Attendance', + 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'CF4141 PFA771 12/2022 Prov Ct (CFCSA) Rules. Form 10.5', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -23711,43 +22803,47 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 75 => - array ( - 'id' => 1075, - 'form_id' => 'HR0056', - 'form_title' => 'Identification Card (Sample Only)', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 489 => [ + 'id' => 986, + 'form_id' => 'CF4142', + 'form_title' => 'Early Childhood Educator Translation Subsidy Application ', + 'ministry_id' => 3, 'form_purpose' => NULL, - 'notes' => 'Decommissioned Sep 22, 2022 ; ISDSCTASK0122415?', + 'notes' => 'Adobe Livecycle PDF form, held by CEDS, hosted at the link above. +There is an Orbeon version but it is not in use. +Contact: Janine Garland (Child Care Division, Ministry of Education and Child Care) P: 778-698-7379', 'fill_type_id' => NULL, - 'decommissioned' => true, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => 3, + 'form_reach_id' => 2, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 76 => - array ( - 'id' => 1076, - 'form_id' => 'HR0057', - 'form_title' => 'New Imprest Cheque Signing Officer', - 'ministry_id' => 2, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 490 => [ + 'id' => 987, + 'form_id' => 'CF4143', + 'form_title' => 'Form H Report to Court CCO Cancellation', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -23759,19 +22855,20 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 77 => - array ( - 'id' => 1077, - 'form_id' => 'HR0057C', - 'form_title' => 'Inprest Cheque Signing Office Change Form', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 491 => [ + 'id' => 988, + 'form_id' => 'CF4144', + 'form_title' => 'Form G Report to Court Withdrawl', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, + 'form_reach_id' => 2, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, @@ -23779,21 +22876,22 @@ public function run() 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'orbeon_functions' => 'Email', 'icm_generated' => false, - ), - 78 => - array ( - 'id' => 1078, - 'form_id' => 'HR0066', - 'form_title' => 'Administered Funds Record Card ', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 492 => [ + 'id' => 989, + 'form_id' => 'CF4145', + 'form_title' => 'Form J Director\'s Notice of IA Intent Withdrawal', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, + 'form_reach_id' => 2, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, @@ -23803,19 +22901,20 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 79 => - array ( - 'id' => 1079, - 'form_id' => 'HR0074', - 'form_title' => 'Documentation for New Employees', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 493 => [ + 'id' => 990, + 'form_id' => 'CF4146', + 'form_title' => 'Form K Director\'s Notice of IA Intent to have Custody', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, + 'form_reach_id' => 2, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, @@ -23825,17 +22924,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 80 => - array ( - 'id' => 1080, - 'form_id' => 'HR0080D', - 'form_title' => 'BC Benefits Eligibility Review of Disability Benefits Program Recipient', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 494 => [ + 'id' => 991, + 'form_id' => 'CF4147', + 'form_title' => 'Request for SAJE Mental Health and Counselling Benefits', + 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -23843,19 +22943,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => 'Email, Attachments', 'icm_generated' => false, - ), - 81 => - array ( - 'id' => 1081, - 'form_id' => 'HR0080P', - 'form_title' => 'Application for Income / Disability Assistance Part 1', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 495 =>[ + 'id' => 992, + 'form_id' => 'CF4148', + 'form_title' => 'Form I Indigenous Authority Confirmation', + 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -23865,21 +22966,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 82 => - array ( - 'id' => 1082, - 'form_id' => 'HR0080S', - 'form_title' => 'Enquiry (Spouse)', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 496 => [ + 'id' => 993, + 'form_id' => 'CF4149', + 'form_title' => 'Event Permission Form', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -23891,17 +22993,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 83 => - array ( - 'id' => 1083, - 'form_id' => 'HR0083', - 'form_title' => 'Change to File Information', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 497 => [ + 'id' => 994, + 'form_id' => 'CF4150', + 'form_title' => 'Consent of a child twelve and over to post to the Adopt BC Kids website photographs, video and audio recordings.', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -23913,17 +23016,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 84 => - array ( - 'id' => 1084, - 'form_id' => 'HR0085', - 'form_title' => 'Spending Authority Signature Card', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 498 => [ + 'id' => 995, + 'form_id' => 'CF4151', + 'form_title' => 'Outcome of Notification or Notice Period', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -23935,17 +23039,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 85 => - array ( - 'id' => 1085, - 'form_id' => 'HR0094', - 'form_title' => 'Community Volunteer Program Confirmation of Hours', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 499 => [ + 'id' => 996, + 'form_id' => 'CF4152', + 'form_title' => 'Director\'s Notice of Withdrawal', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -23957,13 +23062,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 86 => - array ( - 'id' => 1086, - 'form_id' => 'HR0101', - 'form_title' => 'Employment and Assistance Reconsideration Decision', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + ]); + \DB::table('forms')->insert([ + 0 => [ + 'id' => 997, + 'form_id' => 'CF4153', + 'form_title' => 'Notice Letter CCO Cancellation', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -23979,17 +23087,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 87 => - array ( - 'id' => 1087, - 'form_id' => 'HR0102', - 'form_title' => 'Employment and Assistance Appeal Tribunal Decision (Appellant Information and Order)', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 1 => [ + 'id' => 998, + 'form_id' => 'CF4154', + 'form_title' => 'Notice Letter for Withdrawal', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -24001,17 +23110,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 88 => - array ( - 'id' => 1088, - 'form_id' => 'HR0113', - 'form_title' => 'Documentation and Authorization Form', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 2 => [ + 'id' => 999, + 'form_id' => 'CF4155', + 'form_title' => 'Notification Tracking Form', + 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -24019,21 +23129,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 89 => - array ( - 'id' => 1089, - 'form_id' => 'HR0113E', - 'form_title' => 'Documentation and Authorization Form BCP Emergency Use Only', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 3 => [ + 'id' => 1000, + 'form_id' => 'CF4156', + 'form_title' => 'Integrated Care Plan', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -24045,15 +23156,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 90 => - array ( - 'id' => 1090, - 'form_id' => 'HR0115', - 'form_title' => 'Signal', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 4 => [ + 'id' => 1001, + 'form_id' => 'CF4157', + 'form_title' => 'CFCSA Director\'s Request for Personal Health Information from Public Bodies', + 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -24063,21 +23175,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 91 => - array ( - 'id' => 1091, - 'form_id' => 'HR0122', - 'form_title' => 'Child Care Subsidy Application/Income Test', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 5 => [ + 'id' => 1002, + 'form_id' => 'CF4158', + 'form_title' => 'Notifiation Letter regarding Personal Health Information for CFCSA ', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -24089,15 +23202,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 92 => - array ( - 'id' => 1092, - 'form_id' => 'HR0149', - 'form_title' => 'Purchase Authorization', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 6 => [ + 'id' => 1003, + 'form_id' => 'CF4159', + 'form_title' => 'Request for SAJE Eligibility Check', + 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -24106,44 +23220,46 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => '7530801004', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 93 => - array ( - 'id' => 1093, - 'form_id' => 'HR0150A', - 'form_title' => 'Statement of Account Adult Residential Resources for Daily Use Charges (Sample only)', - 'ministry_id' => 2, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 7 => [ + 'id' => 1004, + 'form_id' => 'CF4170', + 'form_title' => 'Unconditional or Conditional Income Support Agreement', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, + 'form_reach_id' => 2, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => false, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 94 => - array ( - 'id' => 1094, - 'form_id' => 'HR0150B', - 'form_title' => 'Statement of Account Adult Residential Resources for monthly Use Charges (Sample only)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 8 => [ + 'id' => 1131, + 'form_id' => 'HR2131', + 'form_title' => 'Employment Insurance Report', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -24155,171 +23271,205 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 95 => - array ( - 'id' => 1095, - 'form_id' => 'HR0204', - 'form_title' => 'Investigation Referral', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 9 => [ + 'id' => 1005, + 'form_id' => 'CF4170A', + 'form_title' => 'INCOME SUPPORT AGREEMENT SCHEDULE A - PAYMENT PLAN', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, + 'form_reach_id' => 2, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => false, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 96 => - array ( - 'id' => 1096, - 'form_id' => 'HR0204A', - 'form_title' => 'Investigation Conclusion', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 10 => [ + 'id' => 1006, + 'form_id' => 'CF4170B', + 'form_title' => 'INCOME SUPPORT AGREEMENT SCHEDULE "B" - PROGRAM PLAN', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => false, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 97 => - array ( - 'id' => 1097, - 'form_id' => 'HR0235', - 'form_title' => 'Community Volunteer Program Agreement', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 11 => [ + 'id' => 1007, + 'form_id' => 'CF4171', + 'form_title' => 'SAJE Support Agreement - Schedule A - Payment Plan', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => false, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 98 => - array ( - 'id' => 1098, - 'form_id' => 'HR0400', - 'form_title' => 'Emergency Dental Authority', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 12 => [ + 'id' => 1008, + 'form_id' => 'CF4172', + 'form_title' => 'Child Adolescent Self-Report', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, + 'form_reach_id' => 1, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => false, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 99 => - array ( - 'id' => 1099, - 'form_id' => 'HR0407', - 'form_title' => ' Eligible Health Goods/Services Purchase Authorization - Sample', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 13 => [ + 'id' => 1009, + 'form_id' => 'CF4173', + 'form_title' => 'Brief Screen for Child Adolescent Trauma and PTSD', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, + 'form_reach_id' => 1, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => false, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 100 => - array ( - 'id' => 1100, - 'form_id' => 'HR0430', - 'form_title' => 'Confirmation of Application for Medical Benefits', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 14 => [ + 'id' => 1010, + 'form_id' => 'CF4174', + 'form_title' => 'PTSD Reaction Index for DSM-5 Parent Caregiver Report for Children Age 6 and Younger', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, + 'form_reach_id' => 1, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => false, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 101 => - array ( - 'id' => 1101, - 'form_id' => 'HR0435', - 'form_title' => 'Health Needs Request', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 15 => [ + 'id' => 1011, + 'form_id' => 'CF4175', + 'form_title' => 'PTSD Reaction Index for DSM-5 Parent Caregiver Report', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, + 'form_reach_id' => 1, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => false, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 102 => - array ( - 'id' => 1102, - 'form_id' => 'HR0614', - 'form_title' => 'Office Referral', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 16 => [ + 'id' => 1012, + 'form_id' => 'CF4176', + 'form_title' => 'Youth Custody Services - Custody Intake and Monthly Progress Plan', + 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Reach: 110 professionals (Youth Probation Officers), +Frequency: Every 2-3 days (intake portion of the form) and monthly for monthly progress plans', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, + 'form_frequency_id' => 4, + 'form_reach_id' => 1, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 17 => [ + 'id' => 1013, + 'form_id' => 'CF4178', + 'form_title' => 'Limits of Confidentiality', + 'ministry_id' => 1, + 'form_purpose' => 'The purpose of this form is to explain the rights and limitations of confidentiality that apply to you while receiving service at Child and Youth Mental Health.', + 'notes' => 'Form in development, +Word to PDF, hosted on iConnect +User story: https://dev.azure.com/BC-SDPR/Forms%20Modernization/_workitems/edit/3716', + 'fill_type_id' => NULL, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -24327,21 +23477,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 103 => - array ( - 'id' => 1103, - 'form_id' => 'HR1701', - 'form_title' => 'Manual Authorization for Child Care Subsidy', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 18 => [ + 'id' => 1014, + 'form_id' => 'CFL000001AA', + 'form_title' => 'Blank Letterhead', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -24353,17 +23504,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 104 => - array ( - 'id' => 1104, - 'form_id' => 'HR1702', - 'form_title' => 'Child Care Subsidy Claim License Not Required Family Child Care', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 19 => [ + 'id' => 1015, + 'form_id' => 'CFL000010', + 'form_title' => 'Adoption Proposal Package Acknowledgment Letter', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -24375,17 +23527,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 105 => - array ( - 'id' => 1105, - 'form_id' => 'HR1703', - 'form_title' => 'Child Care Subsidy Claim Licensed Facilities', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 20 => [ + 'id' => 1016, + 'form_id' => 'CFL00010', + 'form_title' => 'Partner Portal Form', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -24397,39 +23550,41 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 106 => - array ( - 'id' => 1106, - 'form_id' => 'HR1704', - 'form_title' => 'Child Care Subsidy Claim In Child\'s Home Care', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 21 => [ + 'id' => 1017, + 'form_id' => 'CFL00540', + 'form_title' => 'Accountant Confirmation - 1 Month Reminder/AC Reminder - BC Mail Data Form', + 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'AC Reminder - BC Mail Data Form', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 107 => - array ( - 'id' => 1107, - 'form_id' => 'HR2007', - 'form_title' => 'Substitution Pay Initiation Form', - 'ministry_id' => 2, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 22 => [ + 'id' => 1018, + 'form_id' => 'CFL00543', + 'form_title' => 'Accountant Confirmation - 60 Day Reminder', + 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'AC Reminder - BC Mail Data Form?', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -24441,13 +23596,37 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 108 => - array ( - 'id' => 1108, - 'form_id' => 'HR2014', - 'form_title' => 'Negotiable Documents Perpetual Log Inventory', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 23 => [ + 'id' => 1019, + 'form_id' => 'CFL00544', + 'form_title' => '90 Day DP Cancellation/AC Reminder - BC Mail Data Form', + 'ministry_id' => 1, + 'form_purpose' => NULL, + 'notes' => 'Related to CFL00540, 43 and 44​', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 24 => [ + 'id' => 1020, + 'form_id' => 'CFL01023', + 'form_title' => 'L09.01 - Reduction in Subsidy Letter due to change in family income', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -24463,12 +23642,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 109 => - array ( - 'id' => 1109, - 'form_id' => 'HR2018', - 'form_title' => 'Position Establishment/Change Request', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 25 => [ + 'id' => 1821, + 'form_id' => 'HR3571', + 'form_title' => 'Reserved for ELMSD', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -24485,17 +23665,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 110 => - array ( - 'id' => 1110, - 'form_id' => 'HR2041', - 'form_title' => '2004 Part-Time Regular Time Sheet', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 26 => [ + 'id' => 1021, + 'form_id' => 'CFL01024', + 'form_title' => 'L09.02 - Reduction in Subsidy letter due to change in child care arrangement', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -24507,17 +23688,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 111 => - array ( - 'id' => 1111, - 'form_id' => 'HR2042', - 'form_title' => '2004 Auxiliary Time Sheet', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 27 => [ + 'id' => 1022, + 'form_id' => 'CFL01025', + 'form_title' => 'L09.03 - Reduction in subsidy letter due to client initiated change in cc arrangement-reg to unreg', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -24529,17 +23711,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 112 => - array ( - 'id' => 1112, - 'form_id' => 'HR2043', - 'form_title' => 'Child Care Subsidy Checklist', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 28 => [ + 'id' => 1023, + 'form_id' => 'CFL01026', + 'form_title' => 'L09.04 - Reduction in Subsidy Letter due to incorrect child care setting', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -24551,17 +23734,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 113 => - array ( - 'id' => 1113, - 'form_id' => 'HR2044', - 'form_title' => 'Referral to Child Care Subsidy under the CF&CS Act', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 29 => [ + 'id' => 1024, + 'form_id' => 'CFL01027', + 'form_title' => 'L09.05 - Reduction in subsidy letter due to incorrect cc setting-reg to unreg-adj error', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -24573,13 +23757,14 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 114 => - array ( - 'id' => 1114, - 'form_id' => 'HR2057', - 'form_title' => 'Forged Endorsement Declaration', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 30 => [ + 'id' => 1025, + 'form_id' => 'CFL01028', + 'form_title' => 'L09.06 - Reduction in Subsidy Letter due to change in family composition', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -24595,13 +23780,14 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 115 => - array ( - 'id' => 1115, - 'form_id' => 'HR2062', - 'form_title' => 'Declaration of Administrator of employment and Assistance or Employment and Assisstance for Persons with Disabilities', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 31 => [ + 'id' => 1026, + 'form_id' => 'CFL01029', + 'form_title' => 'L09.07 - Reduction in Subsidy Letter due to addition of spouse', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -24617,17 +23803,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 116 => - array ( - 'id' => 1116, - 'form_id' => 'HR2065', - 'form_title' => 'Travel Voucher Correction Notification', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 32 => [ + 'id' => 1027, + 'form_id' => 'CFL01030', + 'form_title' => 'L09.08 - Reduction in Subsidy Letter due to child turning six year old', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -24639,17 +23826,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 117 => - array ( - 'id' => 1117, - 'form_id' => 'HR2073', - 'form_title' => 'Verification of Client Information', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 33 => [ + 'id' => 1028, + 'form_id' => 'CFL01031', + 'form_title' => 'L09.09 - Reduction in Subsidy Letter due to work search records', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -24661,13 +23849,14 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 118 => - array ( - 'id' => 1118, - 'form_id' => 'HR2077', - 'form_title' => 'Weekly Taxi Authorization Regizter - Sample', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 34 => [ + 'id' => 1029, + 'form_id' => 'CFL01032', + 'form_title' => 'L09.10 - Reduction in Subsidy Letter due to change in number of days to 20 full', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -24683,17 +23872,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 119 => - array ( - 'id' => 1119, - 'form_id' => 'HR2084', - 'form_title' => 'Application to Exceed Annual Limit', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 35 => [ + 'id' => 1030, + 'form_id' => 'CFL01033', + 'form_title' => 'L09.11 - Reduction in Subsidy Letter due to less days needed for child care', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -24705,17 +23895,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 120 => - array ( - 'id' => 1120, - 'form_id' => 'HR2087', - 'form_title' => 'Application Direct Deposit Payment Request', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 36 => [ + 'id' => 1031, + 'form_id' => 'CFL01034', + 'form_title' => 'L09.13 - Reduction in subsidy letter due change in social need resulting in less care required', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -24727,17 +23918,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 121 => - array ( - 'id' => 1121, - 'form_id' => 'HR2088', - 'form_title' => 'Assignment of Union Dues', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 37 => [ + 'id' => 1032, + 'form_id' => 'CFL01035', + 'form_title' => 'Reduction from full to L2 half for ws', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -24749,13 +23941,14 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 122 => - array ( - 'id' => 1122, - 'form_id' => 'HR2094', - 'form_title' => 'Invoice Coding Block', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 38 => [ + 'id' => 1033, + 'form_id' => 'CFL01036', + 'form_title' => 'Reduction school age child (approval pending)', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -24771,13 +23964,14 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 123 => - array ( - 'id' => 1123, - 'form_id' => 'HR2098', - 'form_title' => 'Assignment Department of Veteran Affairs', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 39 => [ + 'id' => 1034, + 'form_id' => 'CFL01049', + 'form_title' => 'Return Letter', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -24788,18 +23982,19 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => true, + 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 124 => - array ( - 'id' => 1124, - 'form_id' => 'HR2100', - 'form_title' => 'Assignment - WorkSafe BC', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 40 => [ + 'id' => 1035, + 'form_id' => 'CFL01050', + 'form_title' => 'L10 - Denial Letter due to Income too High', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -24810,22 +24005,23 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => true, + 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 125 => - array ( - 'id' => 1125, - 'form_id' => 'HR2101', - 'form_title' => 'Information Release Assignment/Repayment Agreement (Minisrty)', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 41 => [ + 'id' => 1036, + 'form_id' => 'CFL01051', + 'form_title' => 'L11 - Denial Letter due to Income too High (particular setting)', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -24837,17 +24033,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 126 => - array ( - 'id' => 1126, - 'form_id' => 'HR2102', - 'form_title' => 'Information Release Assignment/Repayment Agreement (Agency)', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 42 => [ + 'id' => 1037, + 'form_id' => 'CFL01052', + 'form_title' => 'L12 - Denial Letter due to Care Provider is a Relative', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -24859,17 +24056,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 127 => - array ( - 'id' => 1127, - 'form_id' => 'HR2103', - 'form_title' => 'Release of All Claims', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 43 => [ + 'id' => 1038, + 'form_id' => 'CFL01053', + 'form_title' => 'L13 - Denial Letter due to Citizenship', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -24881,17 +24079,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 128 => - array ( - 'id' => 1128, - 'form_id' => 'HR2118', - 'form_title' => 'Referral to Family Maintenance Worker', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 44 => [ + 'id' => 1039, + 'form_id' => 'CFL01054', + 'form_title' => 'L14 - Denial Letter due to B.C. Residency', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -24903,17 +24102,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 129 => - array ( - 'id' => 1129, - 'form_id' => 'HR2119', - 'form_title' => 'Request for Write-off', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 45 => [ + 'id' => 1040, + 'form_id' => 'CFL01055', + 'form_title' => 'L15 - Denial Letter due to No Valid Social Need', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -24925,17 +24125,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 130 => - array ( - 'id' => 1130, - 'form_id' => 'HR2129', - 'form_title' => 'Proof/Draft Approval', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 46 => [ + 'id' => 1041, + 'form_id' => 'CFL01056', + 'form_title' => 'L16 - Denial Letter due to Client and Spouse on Work Search', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -24947,17 +24148,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 131 => - array ( - 'id' => 1131, - 'form_id' => 'HR2131', - 'form_title' => 'Employment Insurance Report', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 47 => [ + 'id' => 1042, + 'form_id' => 'CFL01057', + 'form_title' => 'L17 - Denial Letter due to Backdating', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -24969,19 +24171,20 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 132 => - array ( - 'id' => 1132, - 'form_id' => 'HR2134', - 'form_title' => 'Staff Training Booking Card', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 48 => [ + 'id' => 1043, + 'form_id' => 'CFL01058', + 'form_title' => 'L19 - Denial Letter due to Not an Eligible Care Setting', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, - 'form_reach_id' => 3, + 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, @@ -24991,13 +24194,14 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 133 => - array ( - 'id' => 1133, - 'form_id' => 'HR2151', - 'form_title' => 'Travel Expense Reimbursement Non-employee', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 49 => [ + 'id' => 1044, + 'form_id' => 'CFL01059', + 'form_title' => 'L19a - Denial Letter due to Not an Eligible Care Setting for Licensed Preschool', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -25013,13 +24217,14 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 134 => - array ( - 'id' => 1134, - 'form_id' => 'HR2152', - 'form_title' => 'Cheque Hold', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 50 => [ + 'id' => 1045, + 'form_id' => 'CFL01060', + 'form_title' => 'denial for half days L2 while on ws (may be included in CFL 01020 series)', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -25032,20 +24237,21 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', - 'dcv_material_number' => '7530903007', + 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 135 => - array ( - 'id' => 1135, - 'form_id' => 'HR2157', - 'form_title' => 'Conditons for Use of Computing Facility', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 51 => [ + 'id' => 1046, + 'form_id' => 'CFL01061', + 'form_title' => 'denial due to income-less days of ws (may be included in CFL 01020 series)', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -25057,13 +24263,14 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 136 => - array ( - 'id' => 1136, - 'form_id' => 'HR2179', - 'form_title' => 'Overpayment Chart', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 52 => [ + 'id' => 1047, + 'form_id' => 'CFL01062', + 'form_title' => 'L22 - Denial Letter due to Preschool and Group Combo Care', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -25079,17 +24286,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 137 => - array ( - 'id' => 1137, - 'form_id' => 'HR2180', - 'form_title' => 'Unknown', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 53 => [ + 'id' => 1048, + 'form_id' => 'CFL01063', + 'form_title' => 'L23 - Denial Letter due to Parent Not Eligible', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -25101,17 +24309,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 138 => - array ( - 'id' => 1138, - 'form_id' => 'HR2181', - 'form_title' => 'Confirmation of Earnings Letter', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 54 => [ + 'id' => 1049, + 'form_id' => 'CFL01064', + 'form_title' => 'L24 - Denial Letter due to Day Camp Request', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -25123,13 +24332,14 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 139 => - array ( - 'id' => 1139, - 'form_id' => 'HR2181A', - 'form_title' => 'Confirmation of Earnings Fax', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 55 => [ + 'id' => 1050, + 'form_id' => 'CFL01065', + 'form_title' => 'L25 - Denial Letter due Child Turning Six in K year', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -25140,18 +24350,19 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => true, + 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 140 => - array ( - 'id' => 1140, - 'form_id' => 'HR2181B', - 'form_title' => 'Confirmation of Earnings Mail', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 56 => [ + 'id' => 1051, + 'form_id' => 'CFL01066', + 'form_title' => 'L26 - Denial Letter due to Change in Hours', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -25167,13 +24378,14 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 141 => - array ( - 'id' => 1141, - 'form_id' => 'HR2181C', - 'form_title' => 'Confirmation og OAS/GIS Income', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 57 => [ + 'id' => 1052, + 'form_id' => 'CFL01067', + 'form_title' => 'L27 - Denial letter due to request for care over 20 full days for medical reasons', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -25189,13 +24401,14 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 142 => - array ( - 'id' => 1142, - 'form_id' => 'HR2192', - 'form_title' => 'Medical Release', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 58 => [ + 'id' => 1053, + 'form_id' => 'CFL01068', + 'form_title' => 'Denial school age child (approval pending)', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -25206,18 +24419,19 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => true, + 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 143 => - array ( - 'id' => 1143, - 'form_id' => 'HR2193', - 'form_title' => 'Consent for Paternity Testing', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 59 => [ + 'id' => 1054, + 'form_id' => 'CFL01069', + 'form_title' => 'Teenage Child(ren)', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -25228,18 +24442,19 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => true, + 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 144 => - array ( - 'id' => 1144, - 'form_id' => 'HR2203', - 'form_title' => 'Non-Employee Travel Authorization Letter', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 60 => [ + 'id' => 1055, + 'form_id' => 'CFL01070', + 'form_title' => 'L28 - Denial Letter Misc', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -25255,17 +24470,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 145 => - array ( - 'id' => 1146, - 'form_id' => 'HR2215', - 'form_title' => 'Superannuation Eligibility', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 61 => [ + 'id' => 1056, + 'form_id' => 'CFL02015', + 'form_title' => 'CFCSA Director\'s Request for Information from Police Forces', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -25277,15 +24493,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 146 => - array ( - 'id' => 1147, - 'form_id' => 'HR2220', - 'form_title' => 'Investigators Ledger', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 62 => [ + 'id' => 1057, + 'form_id' => 'CFL02020', + 'form_title' => 'Inter-Provincial/Territorial Letter', + 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'requested to decommission 2025 May 5, ADO #2551', 'fill_type_id' => NULL, 'decommissioned' => true, 'form_frequency_id' => NULL, @@ -25294,86 +24511,90 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 147 => - array ( - 'id' => 1148, - 'form_id' => 'HR2226', - 'form_title' => 'Consent to Release Information (FMP) (Family Justice Counselor to FMW)', - 'ministry_id' => 2, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 63 => [ + 'id' => 1058, + 'form_id' => 'CFL07510', + 'form_title' => 'Search of Person Under Escort', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => true, + 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 148 => - array ( - 'id' => 1149, - 'form_id' => 'HR2227', - 'form_title' => 'Request for Legal Opinion (FMP)', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 64 => [ + 'id' => 1059, + 'form_id' => 'Coding Block', + 'form_title' => 'Coding Block', + 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => true, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 149 => - array ( - 'id' => 1150, - 'form_id' => 'HR2244', - 'form_title' => 'Records Action Request', + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 65 => [ + 'id' => 1060, + 'form_id' => 'Decision Report Template', + 'form_title' => 'Decision Report template', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Is this HR3554?', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 150 => - array ( - 'id' => 1151, - 'form_id' => 'HR2247', - 'form_title' => 'Appointment Card', + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 66 => [ + 'id' => 1061, + 'form_id' => 'EAAT001', + 'form_title' => 'Employment and Assistance Appeal Tribunal Notice of Appeal', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'program: Reconsideration', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -25382,20 +24603,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => '7530903016', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 151 => - array ( - 'id' => 1152, - 'form_id' => 'HR2274', - 'form_title' => 'On-Demand Imprest Cheque', + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 67 => [ + 'id' => 1062, + 'form_id' => 'HR0020', + 'form_title' => 'Public Money Received Transmittal Record', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Is this still an active form? (Not in PPM, RF, ICM or SR FDD)', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -25405,19 +24627,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 152 => - array ( - 'id' => 1153, - 'form_id' => 'HR2276', - 'form_title' => 'Manual Imprest Cheque Request for Supplier', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 68 => [ + 'id' => 1063, + 'form_id' => 'HR0025', + 'form_title' => 'Contract Approval ', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -25427,21 +24650,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 153 => - array ( - 'id' => 1154, - 'form_id' => 'HR2277', - 'form_title' => 'Manual Imprest Cheque Request for Client', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 69 => [ + 'id' => 1064, + 'form_id' => 'HR0028', + 'form_title' => 'Time Report Regular Part Time', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -25453,17 +24677,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 154 => - array ( - 'id' => 1155, - 'form_id' => 'HR2282', - 'form_title' => 'Cashier Control Sheet (FASB use only)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 70 => [ + 'id' => 1065, + 'form_id' => 'HR0028A', + 'form_title' => 'Time Report Auxilary', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -25475,17 +24700,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 155 => - array ( - 'id' => 1156, - 'form_id' => 'HR2286', - 'form_title' => 'Request for Building Access (Victoria use)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 71 => [ + 'id' => 1066, + 'form_id' => 'HR0034', + 'form_title' => 'Order for Homemaker Services', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -25497,12 +24723,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 156 => - array ( - 'id' => 1157, - 'form_id' => 'HR2286A', - 'form_title' => 'Request for Key(s)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 72 => [ + 'id' => 1067, + 'form_id' => 'HR0035', + 'form_title' => 'Statement of Homemaker Services', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -25519,17 +24746,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 157 => - array ( - 'id' => 1158, - 'form_id' => 'HR2301', - 'form_title' => 'Action Request', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 73 => [ + 'id' => 1068, + 'form_id' => 'HR0042', + 'form_title' => 'On Demand Chequ3 - Inventory Release', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Is this still an active form? (Not in PPM, RF, ICM or SR FDD)', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -25537,21 +24765,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 158 => - array ( - 'id' => 1159, - 'form_id' => 'HR2313', - 'form_title' => 'Request for Information', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 74 => [ + 'id' => 1069, + 'form_id' => 'HR0042A', + 'form_title' => 'Purchase Authorizations Inventory Release', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Is this still an active form? (Not in PPM, RF, ICM or SR FDD)', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -25559,21 +24788,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 159 => - array ( - 'id' => 1160, - 'form_id' => 'HR2327', - 'form_title' => 'Light Replacement Request', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 75 => [ + 'id' => 1070, + 'form_id' => 'HR0043', + 'form_title' => 'Cashed Cheque Request', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -25585,34 +24815,36 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 160 => - array ( - 'id' => 1161, - 'form_id' => 'HR2340', - 'form_title' => 'Mosaic Interpretation Assignment Report', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 76 => [ + 'id' => 1071, + 'form_id' => 'HR0053', + 'form_title' => 'Memorandum', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => true, + 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 161 => - array ( - 'id' => 1162, - 'form_id' => 'HR2344', - 'form_title' => 'Request to Vital Statistics Agency', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 77 => [ + 'id' => 1072, + 'form_id' => 'HR0054', + 'form_title' => 'Expense/Signing Authority', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -25629,19 +24861,20 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 162 => - array ( - 'id' => 1163, - 'form_id' => 'HR2348', - 'form_title' => 'Authority to Provide Meals - Evelyne Saller Centre', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 78 => [ + 'id' => 1073, + 'form_id' => 'HR0054A', + 'form_title' => 'New Alternate Expense Authority - Signature Update', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => 3, - 'form_reach_id' => 1, + 'decommissioned' => true, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, @@ -25651,12 +24884,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 163 => - array ( - 'id' => 1164, - 'form_id' => 'HR2351', - 'form_title' => 'Request for B.C. Court Designation', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 79 => [ + 'id' => 1074, + 'form_id' => 'HR0054C', + 'form_title' => 'Expense Authority Change Form', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -25673,15 +24907,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 164 => - array ( - 'id' => 1165, - 'form_id' => 'HR2356', - 'form_title' => 'Notice of Director of Maintenance Enforcement of Government Maintenance Rights', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 80 => [ + 'id' => 1075, + 'form_id' => 'HR0056', + 'form_title' => 'Identification Card (Sample Only)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Decommissioned Sep 22, 2022 ; ISDSCTASK0122415?', 'fill_type_id' => NULL, 'decommissioned' => true, 'form_frequency_id' => NULL, @@ -25695,12 +24930,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 165 => - array ( - 'id' => 1166, - 'form_id' => 'HR2358', - 'form_title' => 'Documents Required to Support Statement of Finances', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 81 => [ + 'id' => 1076, + 'form_id' => 'HR0057', + 'form_title' => 'New Imprest Cheque Signing Officer', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -25717,12 +24953,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 166 => - array ( - 'id' => 1167, - 'form_id' => 'HR2360', - 'form_title' => 'File Face Sheet', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 82 => [ + 'id' => 1077, + 'form_id' => 'HR0057C', + 'form_title' => 'Inprest Cheque Signing Office Change Form', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -25739,12 +24976,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 167 => - array ( - 'id' => 1168, - 'form_id' => 'HR2365', - 'form_title' => 'Automatic Termination of Assignment (FMP)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 83 => [ + 'id' => 1078, + 'form_id' => 'HR0066', + 'form_title' => 'Administered Funds Record Card ', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -25756,61 +24994,64 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => true, + 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 168 => - array ( - 'id' => 1169, - 'form_id' => 'HR2366', - 'form_title' => 'Recipient Information Update', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 84 => [ + 'id' => 1079, + 'form_id' => 'HR0074', + 'form_title' => 'Documentation for New Employees', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => true, + 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 169 => - array ( - 'id' => 1170, - 'form_id' => 'HR2368', - 'form_title' => 'Acknowledgement of Reduced/Postponed Maintenance Payable', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 85 => [ + 'id' => 1080, + 'form_id' => 'HR0080D', + 'form_title' => 'BC Benefits Eligibility Review of Disability Benefits Program Recipient', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => true, + 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 170 => - array ( - 'id' => 1171, - 'form_id' => 'HR2384', - 'form_title' => 'Statement of Benefits - T5007', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 86 => [ + 'id' => 1081, + 'form_id' => 'HR0080P', + 'form_title' => 'Application for Income / Disability Assistance Part 1', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -25827,12 +25068,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 171 => - array ( - 'id' => 1172, - 'form_id' => 'HR2386', - 'form_title' => 'Employee Recognition Program Evaluation of Employee Idea', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 87 => [ + 'id' => 1082, + 'form_id' => 'HR0080S', + 'form_title' => 'Enquiry (Spouse)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -25849,12 +25091,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 172 => - array ( - 'id' => 1173, - 'form_id' => 'HR2388', - 'form_title' => 'Equipment Information Tags', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 88 => [ + 'id' => 1083, + 'form_id' => 'HR0083', + 'form_title' => 'Change to File Information', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -25871,12 +25114,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 173 => - array ( - 'id' => 1174, - 'form_id' => 'HR2395', - 'form_title' => 'Referral', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 89 => [ + 'id' => 1084, + 'form_id' => 'HR0085', + 'form_title' => 'Spending Authority Signature Card', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -25893,12 +25137,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 174 => - array ( - 'id' => 1175, - 'form_id' => 'HR2395A', - 'form_title' => 'ESS Referral Form Record', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 90 => [ + 'id' => 1085, + 'form_id' => 'HR0094', + 'form_title' => 'Community Volunteer Program Confirmation of Hours', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -25915,17 +25160,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 175 => - array ( - 'id' => 1176, - 'form_id' => 'HR2395R', - 'form_title' => 'Emergency Social Services (ESS) Rates', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 91 => [ + 'id' => 1086, + 'form_id' => 'HR0101', + 'form_title' => 'Employment and Assistance Reconsideration Decision', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => ' Not in PPM, RF, ICM or SR FDD. Should this be HR0100 - Employment and Assistance Request for Reconsideration? ', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -25933,16 +25179,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 176 => - array ( - 'id' => 1177, - 'form_id' => 'HR2396', - 'form_title' => 'Supplier Consent', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 92 => [ + 'id' => 1087, + 'form_id' => 'HR0102', + 'form_title' => 'Employment and Assistance Appeal Tribunal Decision (Appellant Information and Order)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -25959,12 +25206,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 177 => - array ( - 'id' => 1178, - 'form_id' => 'HR2397', - 'form_title' => 'Emergency Social Services Important Names & Numbers', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 93 => [ + 'id' => 1088, + 'form_id' => 'HR0113', + 'form_title' => 'Documentation and Authorization Form', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -25981,12 +25229,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 178 => - array ( - 'id' => 1179, - 'form_id' => 'HR2409', - 'form_title' => 'Employment and Assistance Appeal Summary Data Input', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 94 => [ + 'id' => 1089, + 'form_id' => 'HR0113E', + 'form_title' => 'Documentation and Authorization Form BCP Emergency Use Only', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -26003,17 +25252,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 179 => - array ( - 'id' => 1180, - 'form_id' => 'HR2419', - 'form_title' => 'Auxiliary Hours Record', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 95 => [ + 'id' => 1090, + 'form_id' => 'HR0115', + 'form_title' => 'Signal', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -26025,12 +25275,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 180 => - array ( - 'id' => 1181, - 'form_id' => 'HR2476', - 'form_title' => 'Assignment of Maintenace Rights No Order or Agreement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 96 => [ + 'id' => 1091, + 'form_id' => 'HR0122', + 'form_title' => 'Child Care Subsidy Application/Income Test', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -26047,17 +25298,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 181 => - array ( - 'id' => 1182, - 'form_id' => 'HR2485', - 'form_title' => 'Optical Needs Confirmation of Financial Eligibility', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 97 => [ + 'id' => 1092, + 'form_id' => 'HR0149', + 'form_title' => 'Purchase Authorization', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -26065,21 +25317,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => '7530801004', + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 182 => - array ( - 'id' => 1183, - 'form_id' => 'HR2518', - 'form_title' => 'Access Card Log', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 98 => [ + 'id' => 1093, + 'form_id' => 'HR0150A', + 'form_title' => 'Statement of Account Adult Residential Resources for Daily Use Charges (Sample only)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -26091,17 +25344,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 183 => - array ( - 'id' => 1184, - 'form_id' => 'HR2519', - 'form_title' => 'Key Sign Out', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 99 => [ + 'id' => 1094, + 'form_id' => 'HR0150B', + 'form_title' => 'Statement of Account Adult Residential Resources for monthly Use Charges (Sample only)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -26113,12 +25367,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 184 => - array ( - 'id' => 1185, - 'form_id' => 'HR2526', - 'form_title' => 'Information Re: Fraud Allegation', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 100 => [ + 'id' => 1095, + 'form_id' => 'HR0204', + 'form_title' => 'Investigation Referral', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -26135,17 +25390,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 185 => - array ( - 'id' => 1186, - 'form_id' => 'HR2527', - 'form_title' => 'Promise to Pay Security Deposit', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 101 => [ + 'id' => 1096, + 'form_id' => 'HR0204A', + 'form_title' => 'Investigation Conclusion', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -26157,12 +25413,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 186 => - array ( - 'id' => 1187, - 'form_id' => 'HR2532', - 'form_title' => 'Photographic Line-up', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 102 => [ + 'id' => 1097, + 'form_id' => 'HR0235', + 'form_title' => 'Community Volunteer Program Agreement', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -26179,12 +25436,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 187 => - array ( - 'id' => 1188, - 'form_id' => 'HR2533', - 'form_title' => 'Key/Entry Card Control Log', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 103 => [ + 'id' => 1098, + 'form_id' => 'HR0400', + 'form_title' => 'Emergency Dental Authority', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -26201,15 +25459,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 188 => - array ( - 'id' => 1189, - 'form_id' => 'HR2538', - 'form_title' => 'Issue/Media Alert', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 104 => [ + 'id' => 1099, + 'form_id' => 'HR0407', + 'form_title' => 'duplicate of HSD0407', + 'ministry_id' => 4, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Was ', 'fill_type_id' => NULL, 'decommissioned' => true, 'form_frequency_id' => NULL, @@ -26219,21 +25478,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 189 => - array ( - 'id' => 1190, - 'form_id' => 'HR2545', - 'form_title' => 'Contractor Records Listing Sheet (Transmittal Document)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 105 => [ + 'id' => 1100, + 'form_id' => 'HR0430', + 'form_title' => 'Confirmation of Application for Medical Benefits', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -26245,12 +25505,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 190 => - array ( - 'id' => 1191, - 'form_id' => 'HR2559', - 'form_title' => 'Child Care Subsidy Program Licensed Care Provider Information', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 106 => [ + 'id' => 1101, + 'form_id' => 'HR0435', + 'form_title' => 'Health Needs Request', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -26267,12 +25528,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 191 => - array ( - 'id' => 1192, - 'form_id' => 'HR2565', - 'form_title' => 'Authorization to Raise an Employee Suggestion Award Cheque', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 107 => [ + 'id' => 1102, + 'form_id' => 'HR0614', + 'form_title' => 'Office Referral', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -26289,34 +25551,36 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 192 => - array ( - 'id' => 1193, - 'form_id' => 'HR2567', - 'form_title' => 'CVS Grandfathered', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 108 => [ + 'id' => 1103, + 'form_id' => 'HR1701', + 'form_title' => 'Manual Authorization for Child Care Subsidy', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => true, + 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 193 => - array ( - 'id' => 1194, - 'form_id' => 'HR2568', - 'form_title' => 'Statement of Income From Self-Employment', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 109 => [ + 'id' => 1104, + 'form_id' => 'HR1702', + 'form_title' => 'Child Care Subsidy Claim License Not Required Family Child Care', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -26333,12 +25597,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 194 => - array ( - 'id' => 1195, - 'form_id' => 'HR2576', - 'form_title' => 'E.S.S. File and Registration and Services Record', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 110 => [ + 'id' => 1105, + 'form_id' => 'HR1703', + 'form_title' => 'Child Care Subsidy Claim Licensed Facilities', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -26355,12 +25620,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 195 => - array ( - 'id' => 1196, - 'form_id' => 'HR2576A', - 'form_title' => 'E.S.S. Follow-up Required', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 111 => [ + 'id' => 1106, + 'form_id' => 'HR1704', + 'form_title' => 'Child Care Subsidy Claim In Child\'s Home Care', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -26377,12 +25643,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 196 => - array ( - 'id' => 1197, - 'form_id' => 'HR2576B', - 'form_title' => 'E.S.S. Out Card', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 112 => [ + 'id' => 1107, + 'form_id' => 'HR2007', + 'form_title' => 'Substitution Pay Initiation Form', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -26399,17 +25666,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 197 => - array ( - 'id' => 1198, - 'form_id' => 'HR2607', - 'form_title' => 'Notice of Appeal to the Employment and Assistance Appeal Tribunal', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 113 => [ + 'id' => 1108, + 'form_id' => 'HR2014', + 'form_title' => 'Negotiable Documents Perpetual Log Inventory', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -26421,17 +25689,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 198 => - array ( - 'id' => 1199, - 'form_id' => 'HR2609', - 'form_title' => 'Orthotic/Bracing Billing', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 114 => [ + 'id' => 1109, + 'form_id' => 'HR2018', + 'form_title' => 'Position Establishment/Change Request', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Previously SD609', + 'notes' => NULL, 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -26439,16 +25708,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 199 => - array ( - 'id' => 1200, - 'form_id' => 'HR2611', - 'form_title' => 'Transitional Employment and Assistance Appeal Panel Member Authorization Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 115 => [ + 'id' => 1110, + 'form_id' => 'HR2041', + 'form_title' => '2004 Part-Time Regular Time Sheet', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -26465,12 +25735,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 200 => - array ( - 'id' => 1201, - 'form_id' => 'HR2613', - 'form_title' => 'Application for Chairperson Appointment', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 116 => [ + 'id' => 1111, + 'form_id' => 'HR2042', + 'form_title' => '2004 Auxiliary Time Sheet', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -26487,12 +25758,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 201 => - array ( - 'id' => 1202, - 'form_id' => 'HR2614', - 'form_title' => 'Recommendation for Appointment Appeal Tribunal Chairperson List', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 117 => [ + 'id' => 1112, + 'form_id' => 'HR2043', + 'form_title' => 'Child Care Subsidy Checklist', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -26509,12 +25781,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 202 => - array ( - 'id' => 1203, - 'form_id' => 'HR2620', - 'form_title' => 'Social Development - Cheque with Monthly Report', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 118 => [ + 'id' => 1113, + 'form_id' => 'HR2044', + 'form_title' => 'Referral to Child Care Subsidy under the CF&CS Act', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -26531,17 +25804,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 203 => - array ( - 'id' => 1204, - 'form_id' => 'HR2622', - 'form_title' => 'Emergency Social Services Change of Information', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 119 => [ + 'id' => 1114, + 'form_id' => 'HR2057', + 'form_title' => 'Forged Endorsement Declaration', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -26553,34 +25827,37 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 204 => - array ( - 'id' => 1205, - 'form_id' => 'HR2644', - 'form_title' => 'Social Development - Purchase Card Summary Sheet', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 120 => [ + 'id' => 1115, + 'form_id' => 'HR2062', + 'form_title' => 'Declaration of Administrator of employment and Assistance or Employment and Assisstance for Persons with Disabilities', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '', + 'form_purpose' => 'Form used to establish a third party as administrator of a client\'s assistance.', + 'notes' => 'Program: PWD, +Type: Form', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 205 => - array ( - 'id' => 1206, - 'form_id' => 'HR2648A', - 'form_title' => 'EA or EAPWD Application for Direct Deposit Request', + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 121 => [ + 'id' => 1116, + 'form_id' => 'HR2065', + 'form_title' => 'Travel Voucher Correction Notification', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -26597,12 +25874,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 206 => - array ( - 'id' => 1207, - 'form_id' => 'HR2648M', - 'form_title' => 'EA or EAPWD Application for Direct Deposit Request', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 122 => [ + 'id' => 1117, + 'form_id' => 'HR2073', + 'form_title' => 'Verification of Client Information', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -26619,12 +25897,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 207 => - array ( - 'id' => 1208, - 'form_id' => 'HR2657', - 'form_title' => 'Notice of Deposit (SAMPLE ONLY)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 123 => [ + 'id' => 1118, + 'form_id' => 'HR2077', + 'form_title' => 'Weekly Taxi Authorization Regizter - Sample', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -26641,12 +25920,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 208 => - array ( - 'id' => 1209, - 'form_id' => 'HR2663', - 'form_title' => 'Repayment Agreement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 124 => [ + 'id' => 1119, + 'form_id' => 'HR2084', + 'form_title' => 'Application to Exceed Annual Limit', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -26663,17 +25943,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 209 => - array ( - 'id' => 1210, - 'form_id' => 'HR2663B', - 'form_title' => 'Repayment Agreement Acknowledgement of Debt (Repayable) (For Closed File)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 125 => [ + 'id' => 1120, + 'form_id' => 'HR2087', + 'form_title' => 'Application Direct Deposit Payment Request', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -26685,39 +25966,41 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 210 => - array ( - 'id' => 1211, - 'form_id' => 'HR2664', - 'form_title' => 'Promise To Pay (Hardship)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 126 => [ + 'id' => 1121, + 'form_id' => 'HR2088', + 'form_title' => 'Assignment of Union Dues', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => true, + 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 211 => - array ( - 'id' => 1212, - 'form_id' => 'HR2671', - 'form_title' => 'Informatin Update', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 127 => [ + 'id' => 1122, + 'form_id' => 'HR2094', + 'form_title' => 'Invoice Coding Block', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -26729,12 +26012,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 212 => - array ( - 'id' => 1213, - 'form_id' => 'HR2674', - 'form_title' => 'Repayment Agreement (File closed)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 128 => [ + 'id' => 1123, + 'form_id' => 'HR2098', + 'form_title' => 'Assignment Department of Veteran Affairs', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -26746,39 +26030,41 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => true, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 213 => - array ( - 'id' => 1214, - 'form_id' => 'HR2675', - 'form_title' => 'Employee Information Change', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 129 => [ + 'id' => 1124, + 'form_id' => 'HR2100', + 'form_title' => 'Assignment - WorkSafe BC', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => true, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 214 => - array ( - 'id' => 1215, - 'form_id' => 'HR2677', - 'form_title' => 'Community Services Fund Child Care Surcharge', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 130 => [ + 'id' => 1125, + 'form_id' => 'HR2101', + 'form_title' => 'Information Release Assignment/Repayment Agreement (Minisrty)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -26795,34 +26081,36 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 215 => - array ( - 'id' => 1216, - 'form_id' => 'HR2684', - 'form_title' => 'Repayment Agreement Family Bonus', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 131 => [ + 'id' => 1126, + 'form_id' => 'HR2102', + 'form_title' => 'Information Release Assignment/Repayment Agreement (Agency)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => true, + 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 216 => - array ( - 'id' => 1217, - 'form_id' => 'HR2686', - 'form_title' => 'Repayment Agreement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 132 => [ + 'id' => 1127, + 'form_id' => 'HR2103', + 'form_title' => 'Release of All Claims', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -26839,17 +26127,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 217 => - array ( - 'id' => 1218, - 'form_id' => 'HR2718', - 'form_title' => 'Medical Service Plan (MSP) Client Release', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 133 => [ + 'id' => 1128, + 'form_id' => 'HR2118', + 'form_title' => 'Referral to Family Maintenance Worker', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -26861,12 +26150,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 218 => - array ( - 'id' => 1219, - 'form_id' => 'HR2719', - 'form_title' => 'Co-op Share Purchase Allowance Repayment Agreement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 134 => [ + 'id' => 1129, + 'form_id' => 'HR2119', + 'form_title' => 'Request for Write-off', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -26883,12 +26173,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 219 => - array ( - 'id' => 1220, - 'form_id' => 'HR2736', - 'form_title' => 'Repayment Agreement/Acknowledgement of Debt (Disqualification)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 135 => [ + 'id' => 1130, + 'form_id' => 'HR2129', + 'form_title' => 'Proof/Draft Approval', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -26905,19 +26196,20 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 220 => - array ( - 'id' => 1221, - 'form_id' => 'HR2743', - 'form_title' => 'Employee Separation Report', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 136 => [ + 'id' => 1132, + 'form_id' => 'HR2134', + 'form_title' => 'Staff Training Booking Card', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, + 'form_reach_id' => 3, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, @@ -26927,17 +26219,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 221 => - array ( - 'id' => 1222, - 'form_id' => 'HR2746', - 'form_title' => 'Overtime Report', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 137 => [ + 'id' => 1133, + 'form_id' => 'HR2151', + 'form_title' => 'Travel Expense Reimbursement Non-employee', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -26949,17 +26242,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 222 => - array ( - 'id' => 1223, - 'form_id' => 'HR2747', - 'form_title' => 'BC Benefits Notice to Proceed to Tribunal', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 138 => [ + 'id' => 1134, + 'form_id' => 'HR2152', + 'form_title' => 'Cheque Hold', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -26968,15 +26262,16 @@ public function run() 'retention_needs' => NULL, 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', + 'dcv_material_number' => '7530903007', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 223 => - array ( - 'id' => 1224, - 'form_id' => 'HR2748A', - 'form_title' => 'Notice of Re-opening', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 139 => [ + 'id' => 1135, + 'form_id' => 'HR2157', + 'form_title' => 'Conditons for Use of Computing Facility', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -26993,12 +26288,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 224 => - array ( - 'id' => 1225, - 'form_id' => 'HR2749', - 'form_title' => 'Repayment Agreement-Appeal Benefit', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 140 => [ + 'id' => 1136, + 'form_id' => 'HR2179', + 'form_title' => 'Overpayment Chart', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -27010,17 +26306,18 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => true, + 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 225 => - array ( - 'id' => 1226, - 'form_id' => 'HR2750', - 'form_title' => 'Modification Agreement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 141 => [ + 'id' => 1137, + 'form_id' => 'HR2180', + 'form_title' => 'Unknown', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -27037,12 +26334,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 226 => - array ( - 'id' => 1227, - 'form_id' => 'HR2753', - 'form_title' => 'Notice of Continuing Assignment of Maintenance Rights (EA/PWD File Closed)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 142 => [ + 'id' => 1138, + 'form_id' => 'HR2181', + 'form_title' => 'Confirmation of Earnings Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -27059,15 +26357,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 227 => - array ( - 'id' => 1228, - 'form_id' => 'HR2754', - 'form_title' => 'Authorization To Act', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 143 => [ + 'id' => 1139, + 'form_id' => 'HR2181A', + 'form_title' => 'Confirmation of Earnings Fax', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '', + 'form_purpose' => 'Used by Prevention and Loss Management Services to confirm a client\'s earnings.', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -27077,19 +26376,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => true, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 228 => - array ( - 'id' => 1229, - 'form_id' => 'HR2766', - 'form_title' => 'Consent To Release Information', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 144 => [ + 'id' => 1140, + 'form_id' => 'HR2181B', + 'form_title' => 'Confirmation of Earnings Mail', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '', + 'form_purpose' => 'Used by Prevention and Loss Management Services to confirm a client\'s earnings.', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -27098,20 +26398,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => true, - 'footer_fragment_path' => '', - 'dcv_material_number' => '7530903042', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 229 => - array ( - 'id' => 1230, - 'form_id' => 'HR2767', - 'form_title' => 'Acknowledgment and Request', + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 145 => [ + 'id' => 1141, + 'form_id' => 'HR2181C', + 'form_title' => 'Confirmation og OAS/GIS Income', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Is this still an active form? (Not in PPM, RF, ICM or SR FDD)', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -27121,41 +26422,43 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 230 => - array ( - 'id' => 1231, - 'form_id' => 'HR2775', - 'form_title' => 'Visa Order Confirmation', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 146 => [ + 'id' => 1142, + 'form_id' => 'HR2192', + 'form_title' => 'Medical Release', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Is this still an active form? (Not in PPM, RF, ICM or SR FDD)', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 231 => - array ( - 'id' => 1232, - 'form_id' => 'HR2776', - 'form_title' => 'Request for Ministry Identification', + 'icm_non_interactive' => true, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 147 => [ + 'id' => 1143, + 'form_id' => 'HR2193', + 'form_title' => 'Consent for Paternity Testing', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Is this still an active form? (Not in PPM, RF, ICM or SR FDD)', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -27164,17 +26467,18 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 232 => - array ( - 'id' => 1233, - 'form_id' => 'HR2778', - 'form_title' => 'Translation Authorization (Mosaic)', + 'icm_non_interactive' => true, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 148 => [ + 'id' => 1144, + 'form_id' => 'HR2203', + 'form_title' => 'Non-Employee Travel Authorization Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -27186,17 +26490,18 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => true, + 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 233 => - array ( - 'id' => 1234, - 'form_id' => 'HR2779', - 'form_title' => 'Internet Usage Agreement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 149 => [ + 'id' => 1145, + 'form_id' => 'HR2206', + 'form_title' => 'Child Support Agreement', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -27213,12 +26518,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 234 => - array ( - 'id' => 1235, - 'form_id' => 'HR2780', - 'form_title' => 'Client File Request', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 150 => [ + 'id' => 1146, + 'form_id' => 'HR2215', + 'form_title' => 'Superannuation Eligibility', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -27235,17 +26541,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 235 => - array ( - 'id' => 1236, - 'form_id' => 'HR2781', - 'form_title' => 'Internal File Charge Out Card', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 151 => [ + 'id' => 1147, + 'form_id' => 'HR2220', + 'form_title' => 'Investigators Ledger', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -27257,17 +26564,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 236 => - array ( - 'id' => 1237, - 'form_id' => 'HR2782', - 'form_title' => 'Promise to Pay - Co-op Housing Shares', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 152 => [ + 'id' => 1148, + 'form_id' => 'HR2226', + 'form_title' => 'Consent to Release Information (FMP) (Family Justice Counselor to FMW)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -27279,12 +26587,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 237 => - array ( - 'id' => 1238, - 'form_id' => 'HR2783', - 'form_title' => 'HR20 Summary Sheet', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 153 => [ + 'id' => 1149, + 'form_id' => 'HR2227', + 'form_title' => 'Request for Legal Opinion (FMP)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -27296,22 +26605,23 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => true, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 238 => - array ( - 'id' => 1239, - 'form_id' => 'HR2784', - 'form_title' => 'Cheque Listing', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 154 => [ + 'id' => 1151, + 'form_id' => 'HR2247', + 'form_title' => 'Appointment Card', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Is this still an active form? (Not in PPM, RF, ICM or SR FDD)', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -27319,21 +26629,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => '7530903016', + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 239 => - array ( - 'id' => 1240, - 'form_id' => 'HR2787', - 'form_title' => 'Repayment Agreement Child Care Subsidy Act', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 155 => [ + 'id' => 1152, + 'form_id' => 'HR2274', + 'form_title' => 'On-Demand Imprest Cheque', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Is this still an active form? (Not in PPM, RF, ICM or SR FDD)', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -27341,21 +26652,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 240 => - array ( - 'id' => 1241, - 'form_id' => 'HR2788', - 'form_title' => 'Non-Employee Travel Authorization Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 156 => [ + 'id' => 1153, + 'form_id' => 'HR2276', + 'form_title' => 'Manual Imprest Cheque Request for Supplier', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -27367,17 +26679,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 241 => - array ( - 'id' => 1242, - 'form_id' => 'HR2789', - 'form_title' => 'Record of Complaint Special Provincial Constable', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 157 => [ + 'id' => 1154, + 'form_id' => 'HR2277', + 'form_title' => 'Manual Imprest Cheque Request for Client', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -27385,16 +26698,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 242 => - array ( - 'id' => 1243, - 'form_id' => 'HR2791', - 'form_title' => 'Authorization to Suspend Payments for Special Expenses (FMP)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 158 => [ + 'id' => 1155, + 'form_id' => 'HR2282', + 'form_title' => 'Cashier Control Sheet (FASB use only)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -27406,22 +26720,23 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => true, + 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 243 => - array ( - 'id' => 1244, - 'form_id' => 'HR2792', - 'form_title' => 'Dental Van Appointment Record', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 159 => [ + 'id' => 1156, + 'form_id' => 'HR2286', + 'form_title' => 'Request for Building Access (Victoria use)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -27433,12 +26748,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 244 => - array ( - 'id' => 1245, - 'form_id' => 'HR2793', - 'form_title' => 'Emergency Purchase Authorization', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 160 => [ + 'id' => 1157, + 'form_id' => 'HR2286A', + 'form_title' => 'Request for Key(s)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -27455,12 +26771,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 245 => - array ( - 'id' => 1246, - 'form_id' => 'HR2794', - 'form_title' => 'Authorization Invoice', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 161 => [ + 'id' => 1158, + 'form_id' => 'HR2301', + 'form_title' => 'Action Request', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -27477,12 +26794,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 246 => - array ( - 'id' => 1247, - 'form_id' => 'HR2796', - 'form_title' => 'Emergency Sign-up Sheet', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 162 => [ + 'id' => 1159, + 'form_id' => 'HR2313', + 'form_title' => 'Request for Information', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -27499,12 +26817,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 247 => - array ( - 'id' => 1248, - 'form_id' => 'HR2798', - 'form_title' => 'Child Care Provided in Child\'s Home Checklist and Applicant\'s Declaration', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 163 => [ + 'id' => 1160, + 'form_id' => 'HR2327', + 'form_title' => 'Light Replacement Request', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -27521,34 +26840,36 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 248 => - array ( - 'id' => 1249, - 'form_id' => 'HR2799', - 'form_title' => 'Grant Application 2001/2002 Infant/Toddler Incentive Grant - Licensed Family Child Care', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 164 => [ + 'id' => 1161, + 'form_id' => 'HR2340', + 'form_title' => 'Mosaic Interpretation Assignment Report', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Is this still an active form? (Not in PPM, RF, ICM or SR FDD)', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 249 => - array ( - 'id' => 1250, - 'form_id' => 'HR2800', - 'form_title' => 'Review Period #1 Enrollment Report 2001/2002 Infant/Toddler Incentive Grant - Licensed Family Child Care, Under 36 Months', + 'icm_non_interactive' => true, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 165 => [ + 'id' => 1162, + 'form_id' => 'HR2344', + 'form_title' => 'Request to Vital Statistics Agency', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -27565,39 +26886,41 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 250 => - array ( - 'id' => 1251, - 'form_id' => 'HR2801', - 'form_title' => 'Review Period #2 Enrollment Report 2001/2002 Infant/Toddler Incentive Grant - Licensed Family Child Care, Under 36 Months', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 166 => [ + 'id' => 1163, + 'form_id' => 'HR2348', + 'form_title' => 'Authority to Provide Meals - Evelyne Saller Centre', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, - 'decommissioned' => true, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => 3, + 'form_reach_id' => 1, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 251 => - array ( - 'id' => 1252, - 'form_id' => 'HR2802', - 'form_title' => 'Gross Business Income Tracking', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 167 => [ + 'id' => 1164, + 'form_id' => 'HR2351', + 'form_title' => 'Request for B.C. Court Designation', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -27609,17 +26932,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 252 => - array ( - 'id' => 1253, - 'form_id' => 'HR2803', - 'form_title' => 'Monthly Summary Report', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 168 => [ + 'id' => 1165, + 'form_id' => 'HR2356', + 'form_title' => 'Notice of Director of Maintenance Enforcement of Government Maintenance Rights', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -27631,17 +26955,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 253 => - array ( - 'id' => 1254, - 'form_id' => 'HR2804', - 'form_title' => 'Operating Expense Tacking', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 169 => [ + 'id' => 1166, + 'form_id' => 'HR2358', + 'form_title' => 'Documents Required to Support Statement of Finances', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -27653,17 +26978,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 254 => - array ( - 'id' => 1255, - 'form_id' => 'HR2805', - 'form_title' => 'Reinvestment/Asset Statement Tracking', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 170 => [ + 'id' => 1167, + 'form_id' => 'HR2360', + 'form_title' => 'File Face Sheet', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -27675,15 +27001,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 255 => - array ( - 'id' => 1256, - 'form_id' => 'HR2806', - 'form_title' => 'Accumulated Asset Tracking', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 171 => [ + 'id' => 1168, + 'form_id' => 'HR2365', + 'form_title' => 'Automatic Termination of Assignment (FMP)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Is this still an active form? (Not in PPM, RF, ICM or SR FDD)', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -27692,42 +27019,44 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 256 => - array ( - 'id' => 1257, - 'form_id' => 'HR2807', - 'form_title' => 'HSB Batch Ticket (Doctor\'s Billings)', + 'icm_non_interactive' => true, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 172 => [ + 'id' => 1169, + 'form_id' => 'HR2366', + 'form_title' => 'Recipient Information Update', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Is this still an active form? (Not in PPM, RF, ICM or SR FDD)', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 257 => - array ( - 'id' => 1258, - 'form_id' => 'HR2808', - 'form_title' => 'Transfer of Legal Custody', + 'icm_non_interactive' => true, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 173 => [ + 'id' => 1170, + 'form_id' => 'HR2368', + 'form_title' => 'Acknowledgement of Reduced/Postponed Maintenance Payable', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Is this still an active form? (Not in PPM, RF, ICM or SR FDD)', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -27736,20 +27065,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 258 => - array ( - 'id' => 1259, - 'form_id' => 'HR2810', - 'form_title' => 'Publication Consent', + 'icm_non_interactive' => true, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 174 => [ + 'id' => 1171, + 'form_id' => 'HR2384', + 'form_title' => 'Statement of Benefits - T5007', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -27759,16 +27089,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 259 => - array ( - 'id' => 1260, - 'form_id' => 'HR2815', - 'form_title' => 'Emergency Repaid, Replacement and Relocation Grant Application', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 175 => [ + 'id' => 1172, + 'form_id' => 'HR2386', + 'form_title' => 'Employee Recognition Program Evaluation of Employee Idea', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -27785,12 +27116,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 260 => - array ( - 'id' => 1261, - 'form_id' => 'HR2816', - 'form_title' => 'Child Care Facilities and Equipment Grant Application', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 176 => [ + 'id' => 1173, + 'form_id' => 'HR2388', + 'form_title' => 'Equipment Information Tags', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -27807,34 +27139,36 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 261 => - array ( - 'id' => 1262, - 'form_id' => 'HR2817', - 'form_title' => 'Funeral Services Billing', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 177 => [ + 'id' => 1174, + 'form_id' => 'HR2395', + 'form_title' => 'Referral', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => true, + 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 262 => - array ( - 'id' => 1263, - 'form_id' => 'HR2819', - 'form_title' => 'Application For Person with a Medical Exemption', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 178 => [ + 'id' => 1175, + 'form_id' => 'HR2395A', + 'form_title' => 'ESS Referral Form Record', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -27851,12 +27185,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 263 => - array ( - 'id' => 1264, - 'form_id' => 'HR2820', - 'form_title' => 'Waitlist Compensation Contribution Program Centre Application', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 179 => [ + 'id' => 1176, + 'form_id' => 'HR2395R', + 'form_title' => 'Emergency Social Services (ESS) Rates', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -27873,12 +27208,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 264 => - array ( - 'id' => 1265, - 'form_id' => 'HR2821', - 'form_title' => 'Waitlist Compensation Contribution Program Staffing Application', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 180 => [ + 'id' => 1177, + 'form_id' => 'HR2396', + 'form_title' => 'Supplier Consent', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -27895,15 +27231,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 265 => - array ( - 'id' => 1266, - 'form_id' => 'HR2824', - 'form_title' => '2012 BC Buss Pass Application', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 181 => [ + 'id' => 1178, + 'form_id' => 'HR2397', + 'form_title' => 'Emergency Social Services Important Names & Numbers', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Not on Resource Finder | not in ICM', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => true, 'form_frequency_id' => NULL, @@ -27917,12 +27254,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 266 => - array ( - 'id' => 1267, - 'form_id' => 'HR2825', - 'form_title' => 'Child Care BC Funding Assistance Program Out of School Care', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 182 => [ + 'id' => 1179, + 'form_id' => 'HR2409', + 'form_title' => 'Employment and Assistance Appeal Summary Data Input', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -27939,12 +27277,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 267 => - array ( - 'id' => 1268, - 'form_id' => 'HR2826', - 'form_title' => 'Child Care BC Expansion Grant Out of School Care', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 183 => [ + 'id' => 1180, + 'form_id' => 'HR2419', + 'form_title' => 'Auxiliary Hours Record', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -27961,12 +27300,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 268 => - array ( - 'id' => 1269, - 'form_id' => 'HR2827', - 'form_title' => 'Case Profile', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 184 => [ + 'id' => 1181, + 'form_id' => 'HR2476', + 'form_title' => 'Assignment of Maintenace Rights No Order or Agreement', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -27983,12 +27323,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 269 => - array ( - 'id' => 1270, - 'form_id' => 'HR2828', - 'form_title' => 'Annual Review Checklist', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 185 => [ + 'id' => 1182, + 'form_id' => 'HR2485', + 'form_title' => 'Optical Needs Confirmation of Financial Eligibility', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -28005,12 +27346,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 270 => - array ( - 'id' => 1271, - 'form_id' => 'HR2829', - 'form_title' => 'Office Integration/Re-Aligment Change Information Sheet for Financial and Administrative Services Branch', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 186 => [ + 'id' => 1183, + 'form_id' => 'HR2518', + 'form_title' => 'Access Card Log', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -28027,12 +27369,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 271 => - array ( - 'id' => 1272, - 'form_id' => 'HR2830', - 'form_title' => 'Assessment of Ministry Compliance with Joint Occupational Health and Safety Program Requirements', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 187 => [ + 'id' => 1184, + 'form_id' => 'HR2519', + 'form_title' => 'Key Sign Out', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -28049,12 +27392,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 272 => - array ( - 'id' => 1273, - 'form_id' => 'HR2831', - 'form_title' => 'Compliance Report', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 188 => [ + 'id' => 1185, + 'form_id' => 'HR2526', + 'form_title' => 'Information Re: Fraud Allegation', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -28071,17 +27415,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 273 => - array ( - 'id' => 1274, - 'form_id' => 'HR2832', - 'form_title' => 'Financial Report', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 189 => [ + 'id' => 1186, + 'form_id' => 'HR2527', + 'form_title' => 'Promise to Pay Security Deposit', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => ' Not in PPM, RF, ICM or SR FDD. Has this been replaced with Repayment Agreement/Acknowledgement of Debt (Repayable) (HR2663A)? ', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -28089,16 +27434,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 274 => - array ( - 'id' => 1275, - 'form_id' => 'HR2833', - 'form_title' => 'Child Care BC Funding Assistance Program Family - Out of School Care', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 190 => [ + 'id' => 1187, + 'form_id' => 'HR2532', + 'form_title' => 'Photographic Line-up', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -28115,12 +27461,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 275 => - array ( - 'id' => 1276, - 'form_id' => 'HR2834', - 'form_title' => 'Child Care BC Funding Assistance Program - Out of School Care Enrollment Report of Services Provided', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 191 => [ + 'id' => 1188, + 'form_id' => 'HR2533', + 'form_title' => 'Key/Entry Card Control Log', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -28137,12 +27484,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 276 => - array ( - 'id' => 1277, - 'form_id' => 'HR2837', - 'form_title' => 'Screening Summary', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 192 => [ + 'id' => 1189, + 'form_id' => 'HR2538', + 'form_title' => 'Issue/Media Alert', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -28159,17 +27507,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 277 => - array ( - 'id' => 1278, - 'form_id' => 'HR2838', - 'form_title' => 'Contribution Utilization Statement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 193 => [ + 'id' => 1190, + 'form_id' => 'HR2545', + 'form_title' => 'Contractor Records Listing Sheet (Transmittal Document)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Is this still an active form? (Not in PPM, RF, ICM or SR FDD)', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -28177,16 +27526,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 278 => - array ( - 'id' => 1279, - 'form_id' => 'HR2840', - 'form_title' => 'Child Care BC Expansion Grant #2 Out of School Care Financial Expenditure Report', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 194 => [ + 'id' => 1191, + 'form_id' => 'HR2559', + 'form_title' => 'Child Care Subsidy Program Licensed Care Provider Information', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -28203,12 +27553,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 279 => - array ( - 'id' => 1280, - 'form_id' => 'HR2841', - 'form_title' => 'Contract Approval Sheet', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 195 => [ + 'id' => 1192, + 'form_id' => 'HR2565', + 'form_title' => 'Authorization to Raise an Employee Suggestion Award Cheque', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -28225,39 +27576,41 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 280 => - array ( - 'id' => 1281, - 'form_id' => 'HR2845', - 'form_title' => 'Symantec Norton Anti-Virus Software Usage Agreement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 196 => [ + 'id' => 1193, + 'form_id' => 'HR2567', + 'form_title' => 'CVS Grandfathered', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => true, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 281 => - array ( - 'id' => 1282, - 'form_id' => 'HR2846', - 'form_title' => 'Records Management Evaluation/Audit', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 197 => [ + 'id' => 1194, + 'form_id' => 'HR2568', + 'form_title' => 'Statement of Income From Self-Employment', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -28269,17 +27622,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 282 => - array ( - 'id' => 1283, - 'form_id' => 'HR2857', - 'form_title' => 'Supplier Information Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 198 => [ + 'id' => 1195, + 'form_id' => 'HR2576', + 'form_title' => 'E.S.S. File and Registration and Services Record', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -28291,17 +27645,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 283 => - array ( - 'id' => 1284, - 'form_id' => 'HR2858', - 'form_title' => 'Training Checklist and Evaluation', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 199 => [ + 'id' => 1196, + 'form_id' => 'HR2576A', + 'form_title' => 'E.S.S. Follow-up Required', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -28313,17 +27668,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 284 => - array ( - 'id' => 1285, - 'form_id' => 'HR2859', - 'form_title' => 'Records Checklist for Employees Leaving the Ministry or Office Closures', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 200 => [ + 'id' => 1197, + 'form_id' => 'HR2576B', + 'form_title' => 'E.S.S. Out Card', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -28335,17 +27691,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 285 => - array ( - 'id' => 1286, - 'form_id' => 'HR2860', - 'form_title' => 'Records Management Checklist for Office Closures', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 201 => [ + 'id' => 1198, + 'form_id' => 'HR2607', + 'form_title' => 'Notice of Appeal to the Employment and Assistance Appeal Tribunal', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -28357,17 +27714,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 286 => - array ( - 'id' => 1287, - 'form_id' => 'HR2862', - 'form_title' => 'Notice of Termination of Assistance', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 202 => [ + 'id' => 1199, + 'form_id' => 'HR2609', + 'form_title' => 'Orthotic/Bracing Billing', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Previously SD609. Is this still an active form? (Not in PPM, RF, ICM or SR FDD)', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -28375,44 +27733,45 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 287 => - array ( - 'id' => 1288, - 'form_id' => 'HR2863A', - 'form_title' => 'Client Activity Report', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 203 => [ + 'id' => 1200, + 'form_id' => 'HR2611', + 'form_title' => 'Transitional Employment and Assistance Appeal Panel Member Authorization Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => true, + 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 288 => - array ( - 'id' => 1289, - 'form_id' => 'HR2863B', - 'form_title' => 'Employment Plan for SPEI Full-Time Training', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 204 => [ + 'id' => 1201, + 'form_id' => 'HR2613', + 'form_title' => 'Application for Chairperson Appointment', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => ' -', + 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -28424,12 +27783,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 289 => - array ( - 'id' => 1290, - 'form_id' => 'HR2863D', - 'form_title' => 'Employment Plan Dependent Youth Not in School', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 205 => [ + 'id' => 1202, + 'form_id' => 'HR2614', + 'form_title' => 'Recommendation for Appointment Appeal Tribunal Chairperson List', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -28446,34 +27806,36 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 290 => - array ( - 'id' => 1291, - 'form_id' => 'HR2864', - 'form_title' => 'Child Residency Statement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 206 => [ + 'id' => 1203, + 'form_id' => 'HR2620', + 'form_title' => 'Social Development - Cheque with Monthly Report', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => true, + 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 291 => - array ( - 'id' => 1292, - 'form_id' => 'HR2867', - 'form_title' => 'Notice of Assistance Reduction Letter - ', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 207 => [ + 'id' => 1204, + 'form_id' => 'HR2622', + 'form_title' => 'Emergency Social Services Change of Information', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -28490,12 +27852,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 292 => - array ( - 'id' => 1293, - 'form_id' => 'HR2868', - 'form_title' => 'Notice of Assistance Reduction Letter - 20+ year old dependent in school', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 208 => [ + 'id' => 1205, + 'form_id' => 'HR2644', + 'form_title' => 'Social Development - Purchase Card Summary Sheet', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -28512,12 +27875,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 293 => - array ( - 'id' => 1294, - 'form_id' => 'HR2869', - 'form_title' => 'Notice of Assistance Reduction Letter - Short-term Homemaker Services', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 209 => [ + 'id' => 1206, + 'form_id' => 'HR2648A', + 'form_title' => 'EA or EAPWD Application for Direct Deposit Request', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -28534,12 +27898,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 294 => - array ( - 'id' => 1295, - 'form_id' => 'HR2870', - 'form_title' => 'Notice of Assistance Reduction Letter - Homemakes Serivces', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 210 => [ + 'id' => 1207, + 'form_id' => 'HR2648M', + 'form_title' => 'EA or EAPWD Application for Direct Deposit Request', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -28556,17 +27921,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 295 => - array ( - 'id' => 1296, - 'form_id' => 'HR2871', - 'form_title' => 'Application for Appointment to the Employment and Assistance Appeal Tribunal', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 211 => [ + 'id' => 1208, + 'form_id' => 'HR2657', + 'form_title' => 'Notice of Deposit (SAMPLE ONLY)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -28574,16 +27940,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 296 => - array ( - 'id' => 1297, - 'form_id' => 'HR2872', - 'form_title' => 'Notice of Assistance Denial Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 212 => [ + 'id' => 1209, + 'form_id' => 'HR2663', + 'form_title' => 'Repayment Agreement', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -28600,17 +27967,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 297 => - array ( - 'id' => 1298, - 'form_id' => 'HR2873', - 'form_title' => 'Notice of Assistance Letter - Change in benefit payments', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 213 => [ + 'id' => 1210, + 'form_id' => 'HR2663B', + 'form_title' => 'Repayment Agreement Acknowledgement of Debt (Repayable) (For Closed File)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Is this still an active form? (Not in PPM, RF, ICM or SR FDD)', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -28618,38 +27986,40 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 298 => - array ( - 'id' => 1299, - 'form_id' => 'HR2874', - 'form_title' => 'Notice of Assistance Denial Letter - Child Care Subsidy', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 214 => [ + 'id' => 1211, + 'form_id' => 'HR2664', + 'form_title' => 'Promise To Pay (Hardship)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => true, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 299 => - array ( - 'id' => 1300, - 'form_id' => 'HR2875', - 'form_title' => 'No Change to Child Care Subsidy Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 215 => [ + 'id' => 1212, + 'form_id' => 'HR2671', + 'form_title' => 'Informatin Update', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -28666,17 +28036,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 300 => - array ( - 'id' => 1301, - 'form_id' => 'HR2876', - 'form_title' => 'Notice of Assitance Reduction Letter - Child Care Subsidy', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 216 => [ + 'id' => 1213, + 'form_id' => 'HR2674', + 'form_title' => 'Repayment Agreement (File closed)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Is this still an active form? (Not in PPM, RF, ICM or SR FDD)', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -28684,16 +28055,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 301 => - array ( - 'id' => 1302, - 'form_id' => 'HR2877', - 'form_title' => 'Notice of changes to Child Care Subsidy Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 217 => [ + 'id' => 1214, + 'form_id' => 'HR2675', + 'form_title' => 'Employee Information Change', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -28710,12 +28082,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 302 => - array ( - 'id' => 1303, - 'form_id' => 'HR2878', - 'form_title' => 'Share Parenting Appointment Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 218 => [ + 'id' => 1215, + 'form_id' => 'HR2677', + 'form_title' => 'Community Services Fund Child Care Surcharge', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -28732,34 +28105,36 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 303 => - array ( - 'id' => 1304, - 'form_id' => 'HR2879', - 'form_title' => 'Confirmed Job Program Application', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 219 => [ + 'id' => 1216, + 'form_id' => 'HR2684', + 'form_title' => 'Repayment Agreement Family Bonus', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => true, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 304 => - array ( - 'id' => 1305, - 'form_id' => 'HR2880', - 'form_title' => 'Notice of Assistance Cancellation Letter - Child Care Subsidy', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 220 => [ + 'id' => 1217, + 'form_id' => 'HR2686', + 'form_title' => 'Repayment Agreement', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -28776,17 +28151,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 305 => - array ( - 'id' => 1306, - 'form_id' => 'HR2881', - 'form_title' => 'Employment and Assistance Centre Feedback', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 221 => [ + 'id' => 1218, + 'form_id' => 'HR2718', + 'form_title' => 'Medical Service Plan (MSP) Client Release', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -28798,12 +28174,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 306 => - array ( - 'id' => 1307, - 'form_id' => 'HR2882', - 'form_title' => 'Reasonable Work Search Review', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 222 => [ + 'id' => 1219, + 'form_id' => 'HR2719', + 'form_title' => 'Co-op Share Purchase Allowance Repayment Agreement', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -28820,12 +28197,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 307 => - array ( - 'id' => 1308, - 'form_id' => 'HR2883R', - 'form_title' => 'Persons with Disabilities Designation Review Introduction', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 223 => [ + 'id' => 1220, + 'form_id' => 'HR2736', + 'form_title' => 'Repayment Agreement/Acknowledgement of Debt (Disqualification)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -28842,12 +28220,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 308 => - array ( - 'id' => 1309, - 'form_id' => 'HR2884', - 'form_title' => 'Notice of Assistance Reduction Letter - Diet Supplement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 224 => [ + 'id' => 1221, + 'form_id' => 'HR2743', + 'form_title' => 'Employee Separation Report', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -28864,12 +28243,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 309 => - array ( - 'id' => 1310, - 'form_id' => 'HR2886', - 'form_title' => 'Diet Assistance Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 225 => [ + 'id' => 1222, + 'form_id' => 'HR2746', + 'form_title' => 'Overtime Report', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -28886,12 +28266,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 310 => - array ( - 'id' => 1311, - 'form_id' => 'HR2887', - 'form_title' => 'Notice of Assistance Increase - Shelter & Shared Parenting', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 226 => [ + 'id' => 1223, + 'form_id' => 'HR2747', + 'form_title' => 'BC Benefits Notice to Proceed to Tribunal', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -28908,12 +28289,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 311 => - array ( - 'id' => 1312, - 'form_id' => 'HR2888', - 'form_title' => 'Repayment Agreement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 227 => [ + 'id' => 1224, + 'form_id' => 'HR2748A', + 'form_title' => 'Notice of Re-opening', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -28930,34 +28312,36 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 312 => - array ( - 'id' => 1313, - 'form_id' => 'HR2889', - 'form_title' => 'Repayment Agreement (Administrative Error)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 228 => [ + 'id' => 1225, + 'form_id' => 'HR2749', + 'form_title' => 'Repayment Agreement-Appeal Benefit', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => true, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 313 => - array ( - 'id' => 1314, - 'form_id' => 'HR2890', - 'form_title' => 'Repayment Agreement (Hardship Assistance or Benefits)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 229 => [ + 'id' => 1226, + 'form_id' => 'HR2750', + 'form_title' => 'Modification Agreement', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -28974,12 +28358,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 314 => - array ( - 'id' => 1315, - 'form_id' => 'HR2891', - 'form_title' => 'Promise to Pay', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 230 => [ + 'id' => 1227, + 'form_id' => 'HR2753', + 'form_title' => 'Notice of Continuing Assignment of Maintenance Rights (EA/PWD File Closed)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -28996,15 +28381,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 315 => - array ( - 'id' => 1316, - 'form_id' => 'HR2893', - 'form_title' => 'New Form/Letter Request', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 231 => [ + 'id' => 1228, + 'form_id' => 'HR2754', + 'form_title' => 'Authorization To Act', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Is this still an active form? (Not in PPM, RF, ICM or SR FDD)', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -29013,44 +28399,46 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 316 => - array ( - 'id' => 1317, - 'form_id' => 'HR2895', - 'form_title' => 'Consent to Dismiss Appeal', + 'icm_non_interactive' => true, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 232 => [ + 'id' => 1229, + 'form_id' => 'HR2766', + 'form_title' => 'Consent To Release Information', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Is this still an active form? (Not in PPM, RF, ICM or SR FDD)', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'icm_non_interactive' => true, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => '7530903042', + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 317 => - array ( - 'id' => 1318, - 'form_id' => 'HR2896', - 'form_title' => 'Employment and Assistance Review Letter - First Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 233 => [ + 'id' => 1230, + 'form_id' => 'HR2767', + 'form_title' => 'Acknowledgment and Request', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Is this still an active form? (Not in PPM, RF, ICM or SR FDD)', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -29058,16 +28446,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 318 => - array ( - 'id' => 1319, - 'form_id' => 'HR2896A', - 'form_title' => 'Employment and Assistance Review Letter - First Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 234 => [ + 'id' => 1231, + 'form_id' => 'HR2775', + 'form_title' => 'Visa Order Confirmation', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -29084,17 +28473,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 319 => - array ( - 'id' => 1320, - 'form_id' => 'HR2897', - 'form_title' => 'Employment and Assistance Review Letter - Second Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 235 => [ + 'id' => 1232, + 'form_id' => 'HR2776', + 'form_title' => 'Request for Ministry Identification', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -29106,34 +28496,36 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 320 => - array ( - 'id' => 1321, - 'form_id' => 'HR2897A', - 'form_title' => 'Employment and Assistance Review Letter - Second Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 236 => [ + 'id' => 1233, + 'form_id' => 'HR2778', + 'form_title' => 'Translation Authorization (Mosaic)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Is this still an active form? (Not in PPM, RF, ICM or SR FDD)', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 321 => - array ( - 'id' => 1322, - 'form_id' => 'HR2898', - 'form_title' => 'Notice of Repayable Hardship Assistance', + 'icm_non_interactive' => true, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 237 => [ + 'id' => 1234, + 'form_id' => 'HR2779', + 'form_title' => 'Internet Usage Agreement', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -29150,12 +28542,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 322 => - array ( - 'id' => 1323, - 'form_id' => 'HR2899', - 'form_title' => 'Notice of Employment Plan Requirement - 60-64 years old', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 238 => [ + 'id' => 1235, + 'form_id' => 'HR2780', + 'form_title' => 'Client File Request', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -29172,17 +28565,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 323 => - array ( - 'id' => 1324, - 'form_id' => 'HR2900', - 'form_title' => 'Notice of Employment Plan Requirement - Second Notice', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 239 => [ + 'id' => 1236, + 'form_id' => 'HR2781', + 'form_title' => 'Internal File Charge Out Card', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Is this still an active form? (Not in PPM, RF, ICM or SR FDD)', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -29190,38 +28584,40 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 324 => - array ( - 'id' => 1325, - 'form_id' => 'HR2901', - 'form_title' => 'Persons with Persistant Mulitple Barriers Assessment Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 240 => [ + 'id' => 1237, + 'form_id' => 'HR2782', + 'form_title' => 'Promise to Pay - Co-op Housing Shares', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => true, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 325 => - array ( - 'id' => 1326, - 'form_id' => 'HR2902', - 'form_title' => 'Persons with Persistant Mulitple Barriers Assessment Letter - Appointment', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 241 => [ + 'id' => 1238, + 'form_id' => 'HR2783', + 'form_title' => 'HR20 Summary Sheet', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -29238,12 +28634,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 326 => - array ( - 'id' => 1327, - 'form_id' => 'HR2903', - 'form_title' => 'Persons with Persistent Multiple Barriers Review Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 242 => [ + 'id' => 1239, + 'form_id' => 'HR2784', + 'form_title' => 'Cheque Listing', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -29260,12 +28657,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 327 => - array ( - 'id' => 1328, - 'form_id' => 'HR2904', - 'form_title' => 'Persons with Persistent Multiple Barriers Assessment Letter - Spouse Not Eligible', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 243 => [ + 'id' => 1240, + 'form_id' => 'HR2787', + 'form_title' => 'Repayment Agreement Child Care Subsidy Act', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -29282,12 +28680,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 328 => - array ( - 'id' => 1329, - 'form_id' => 'HR2905', - 'form_title' => 'Persons with Persistent Multiple Barriers Assessment Letter - Client and Spouse Eligible', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 244 => [ + 'id' => 1241, + 'form_id' => 'HR2788', + 'form_title' => 'Non-Employee Travel Authorization Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -29304,12 +28703,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 329 => - array ( - 'id' => 1330, - 'form_id' => 'HR2906', - 'form_title' => 'Persons with Persistent Multiple Barriers Assessment Letter - Single', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 245 => [ + 'id' => 1242, + 'form_id' => 'HR2789', + 'form_title' => 'Record of Complaint Special Provincial Constable', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -29326,12 +28726,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 330 => - array ( - 'id' => 1331, - 'form_id' => 'HR2907', - 'form_title' => 'Persons with Persistent Multiple Barriers Denial Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 246 => [ + 'id' => 1822, + 'form_id' => 'HR3572', + 'form_title' => 'Reserved for ELMSD', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -29348,12 +28749,36 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 331 => - array ( - 'id' => 1332, - 'form_id' => 'HR2908', - 'form_title' => 'Program Activity Report', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 247 => [ + 'id' => 1243, + 'form_id' => 'HR2791', + 'form_title' => 'Authorization to Suspend Payments for Special Expenses (FMP)', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'Is this still an active form? (Not in PPM, RF, ICM or SR FDD)', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => true, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 248 => [ + 'id' => 1244, + 'form_id' => 'HR2792', + 'form_title' => 'Dental Van Appointment Record', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -29370,12 +28795,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 332 => - array ( - 'id' => 1333, - 'form_id' => 'HR2909', - 'form_title' => 'Performance Planning, Development and Review Plan Level One', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 249 => [ + 'id' => 1245, + 'form_id' => 'HR2793', + 'form_title' => 'Emergency Purchase Authorization', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -29392,12 +28818,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 333 => - array ( - 'id' => 1334, - 'form_id' => 'HR2910', - 'form_title' => 'Authorization to Invoice Amendment', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 250 => [ + 'id' => 1246, + 'form_id' => 'HR2794', + 'form_title' => 'Authorization Invoice', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -29414,12 +28841,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 334 => - array ( - 'id' => 1335, - 'form_id' => 'HR2911', - 'form_title' => 'Application for Services', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 251 => [ + 'id' => 1247, + 'form_id' => 'HR2796', + 'form_title' => 'Emergency Sign-up Sheet', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -29436,12 +28864,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 335 => - array ( - 'id' => 1336, - 'form_id' => 'HR2912', - 'form_title' => 'Authorization to Invoice', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 252 => [ + 'id' => 1248, + 'form_id' => 'HR2798', + 'form_title' => 'Child Care Provided in Child\'s Home Checklist and Applicant\'s Declaration', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -29458,12 +28887,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 336 => - array ( - 'id' => 1337, - 'form_id' => 'HR2913', - 'form_title' => 'Information Release for Employment Programs for Persons with Disabilities (Ministry)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 253 => [ + 'id' => 1249, + 'form_id' => 'HR2799', + 'form_title' => 'Grant Application 2001/2002 Infant/Toddler Incentive Grant - Licensed Family Child Care', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -29480,12 +28910,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 337 => - array ( - 'id' => 1338, - 'form_id' => 'HR2914', - 'form_title' => 'Child Care Required for Medical Reasons', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 254 => [ + 'id' => 1250, + 'form_id' => 'HR2800', + 'form_title' => 'Review Period #1 Enrollment Report 2001/2002 Infant/Toddler Incentive Grant - Licensed Family Child Care, Under 36 Months', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -29502,12 +28933,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 338 => - array ( - 'id' => 1339, - 'form_id' => 'HR2915', - 'form_title' => 'Pre-Employment Services Referral', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 255 => [ + 'id' => 1251, + 'form_id' => 'HR2801', + 'form_title' => 'Review Period #2 Enrollment Report 2001/2002 Infant/Toddler Incentive Grant - Licensed Family Child Care, Under 36 Months', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -29524,17 +28956,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 339 => - array ( - 'id' => 1340, - 'form_id' => 'HR2917', - 'form_title' => 'Performance Planning, Development and Review Plan Level Two', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 256 => [ + 'id' => 1252, + 'form_id' => 'HR2802', + 'form_title' => 'Gross Business Income Tracking', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -29546,17 +28979,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 340 => - array ( - 'id' => 1341, - 'form_id' => 'HR2918', - 'form_title' => 'Confirmation of Authorization', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 257 => [ + 'id' => 1253, + 'form_id' => 'HR2803', + 'form_title' => 'Monthly Summary Report', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -29568,17 +29002,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 341 => - array ( - 'id' => 1342, - 'form_id' => 'HR2919', - 'form_title' => 'Interview Reminder - Active Emloyment Plan', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 258 => [ + 'id' => 1254, + 'form_id' => 'HR2804', + 'form_title' => 'Operating Expense Tacking', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Previoulsy EIA2919', + 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -29590,12 +29025,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 342 => - array ( - 'id' => 1343, - 'form_id' => 'HR2920', - 'form_title' => 'Employment Plan - Second Appointment Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 259 => [ + 'id' => 1255, + 'form_id' => 'HR2805', + 'form_title' => 'Reinvestment/Asset Statement Tracking', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -29612,12 +29048,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 343 => - array ( - 'id' => 1344, - 'form_id' => 'HR2921', - 'form_title' => 'Employment Plan - Appointment Letter (Non-Compliance)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 260 => [ + 'id' => 1256, + 'form_id' => 'HR2806', + 'form_title' => 'Accumulated Asset Tracking', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -29634,12 +29071,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 344 => - array ( - 'id' => 1345, - 'form_id' => 'HR2922', - 'form_title' => 'Employment Plan - More Activities Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 261 => [ + 'id' => 1257, + 'form_id' => 'HR2807', + 'form_title' => 'HSB Batch Ticket (Doctor\'s Billings)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -29656,17 +29094,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 345 => - array ( - 'id' => 1346, - 'form_id' => 'HR2923', - 'form_title' => 'Employment Plan - Not Accepted in Program Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 262 => [ + 'id' => 1258, + 'form_id' => 'HR2808', + 'form_title' => 'Transfer of Legal Custody', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -29674,21 +29113,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 346 => - array ( - 'id' => 1347, - 'form_id' => 'HR2924', - 'form_title' => 'PWD Case Profile', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 263 => [ + 'id' => 1259, + 'form_id' => 'HR2810', + 'form_title' => 'Publication Consent', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -29700,12 +29140,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 347 => - array ( - 'id' => 1348, - 'form_id' => 'HR2925', - 'form_title' => '2013 BC Bus Pass Replacement Application', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 264 => [ + 'id' => 1260, + 'form_id' => 'HR2815', + 'form_title' => 'Emergency Repaid, Replacement and Relocation Grant Application', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -29722,12 +29163,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 348 => - array ( - 'id' => 1349, - 'form_id' => 'HR2926', - 'form_title' => 'Appeal Data Sheet', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 265 => [ + 'id' => 1261, + 'form_id' => 'HR2816', + 'form_title' => 'Child Care Facilities and Equipment Grant Application', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -29744,34 +29186,36 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 349 => - array ( - 'id' => 1350, - 'form_id' => 'HR2927', - 'form_title' => 'Interview Reminder - Employment Plan Second Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 266 => [ + 'id' => 1262, + 'form_id' => 'HR2817', + 'form_title' => 'Funeral Services Billing', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => true, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 350 => - array ( - 'id' => 1351, - 'form_id' => 'HR2928', - 'form_title' => 'Persons with Persisent Multiple Barriers Review Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 267 => [ + 'id' => 1263, + 'form_id' => 'HR2819', + 'form_title' => 'Application For Person with a Medical Exemption', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -29788,12 +29232,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 351 => - array ( - 'id' => 1352, - 'form_id' => 'HR2929', - 'form_title' => 'Persons with Persisent Multiple Barriers Review Letter - Medical Report', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 268 => [ + 'id' => 1264, + 'form_id' => 'HR2820', + 'form_title' => 'Waitlist Compensation Contribution Program Centre Application', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -29810,12 +29255,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 352 => - array ( - 'id' => 1353, - 'form_id' => 'HR2930', - 'form_title' => 'Persons with Persisent Multiple Barriers Review Letter - Interview', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 269 => [ + 'id' => 1265, + 'form_id' => 'HR2821', + 'form_title' => 'Waitlist Compensation Contribution Program Staffing Application', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -29832,15 +29278,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 353 => - array ( - 'id' => 1354, - 'form_id' => 'HR2931', - 'form_title' => 'Persons with Persistent Multiple Barriers Assessment Letter - No Longer Eligible', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 270 => [ + 'id' => 1266, + 'form_id' => 'HR2824', + 'form_title' => '2012 BC Buss Pass Application', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not on Resource Finder | not in ICM', 'fill_type_id' => NULL, 'decommissioned' => true, 'form_frequency_id' => NULL, @@ -29854,12 +29301,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 354 => - array ( - 'id' => 1355, - 'form_id' => 'HR2932', - 'form_title' => 'Persons with Persistent Mulitple Barriers Assessment Letter - Eligble', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 271 => [ + 'id' => 1267, + 'form_id' => 'HR2825', + 'form_title' => 'Child Care BC Funding Assistance Program Out of School Care', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -29876,12 +29324,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 355 => - array ( - 'id' => 1356, - 'form_id' => 'HR2933', - 'form_title' => 'Mental Health Assessment Report', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 272 => [ + 'id' => 1268, + 'form_id' => 'HR2826', + 'form_title' => 'Child Care BC Expansion Grant Out of School Care', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -29898,12 +29347,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 356 => - array ( - 'id' => 1357, - 'form_id' => 'HR2934', - 'form_title' => 'Medical Assessment Report', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 273 => [ + 'id' => 1269, + 'form_id' => 'HR2827', + 'form_title' => 'Case Profile', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -29920,12 +29370,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 357 => - array ( - 'id' => 1358, - 'form_id' => 'HR2935', - 'form_title' => 'Medical Assessment Request', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 274 => [ + 'id' => 1270, + 'form_id' => 'HR2828', + 'form_title' => 'Annual Review Checklist', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -29942,12 +29393,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 358 => - array ( - 'id' => 1359, - 'form_id' => 'HR2936', - 'form_title' => 'Employment and Assistance Review Letter - Denied', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 275 => [ + 'id' => 1271, + 'form_id' => 'HR2829', + 'form_title' => 'Office Integration/Re-Aligment Change Information Sheet for Financial and Administrative Services Branch', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -29964,12 +29416,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 359 => - array ( - 'id' => 1360, - 'form_id' => 'HR2937', - 'form_title' => 'ESPD Employment Plan', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 276 => [ + 'id' => 1272, + 'form_id' => 'HR2830', + 'form_title' => 'Assessment of Ministry Compliance with Joint Occupational Health and Safety Program Requirements', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -29986,12 +29439,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 360 => - array ( - 'id' => 1361, - 'form_id' => 'HR2938A', - 'form_title' => 'Repayment Agreement/Acknowledgement of Debt (Sanction) (Open file)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 277 => [ + 'id' => 1273, + 'form_id' => 'HR2831', + 'form_title' => 'Compliance Report', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -30008,12 +29462,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 361 => - array ( - 'id' => 1362, - 'form_id' => 'HR2938B', - 'form_title' => 'Repayment Agreement/Acknowledgement of Debt (Sanction) (Closed File)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 278 => [ + 'id' => 1274, + 'form_id' => 'HR2832', + 'form_title' => 'Financial Report', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -30030,34 +29485,36 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 362 => - array ( - 'id' => 1363, - 'form_id' => 'HR2939', - 'form_title' => 'Consent to Release - Section 2 Physician Report, Persons with Disabilities Review', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 279 => [ + 'id' => 1275, + 'form_id' => 'HR2833', + 'form_title' => 'Child Care BC Funding Assistance Program Family - Out of School Care', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => true, + 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 363 => - array ( - 'id' => 1364, - 'form_id' => 'HR2941', - 'form_title' => 'Employee Preformance and Development Plan (EPDP)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 280 => [ + 'id' => 1276, + 'form_id' => 'HR2834', + 'form_title' => 'Child Care BC Funding Assistance Program - Out of School Care Enrollment Report of Services Provided', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -30074,12 +29531,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 364 => - array ( - 'id' => 1365, - 'form_id' => 'HR2942', - 'form_title' => 'Employee Performance and Recognition Plan Recognizing Past Performance', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 281 => [ + 'id' => 1277, + 'form_id' => 'HR2837', + 'form_title' => 'Screening Summary', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -30096,12 +29554,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 365 => - array ( - 'id' => 1366, - 'form_id' => 'HR2943', - 'form_title' => 'Persons with Persistent Mulitple Barriers Assessment Letter - Denied', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 282 => [ + 'id' => 1278, + 'form_id' => 'HR2838', + 'form_title' => 'Contribution Utilization Statement', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -30118,12 +29577,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 366 => - array ( - 'id' => 1367, - 'form_id' => 'HR2944', - 'form_title' => 'Employee Preformance and Development Plan (EPDP)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 283 => [ + 'id' => 1279, + 'form_id' => 'HR2840', + 'form_title' => 'Child Care BC Expansion Grant #2 Out of School Care Financial Expenditure Report', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -30140,12 +29600,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 367 => - array ( - 'id' => 1368, - 'form_id' => 'HR2945', - 'form_title' => 'Employee Learning Plan', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 284 => [ + 'id' => 1280, + 'form_id' => 'HR2841', + 'form_title' => 'Contract Approval Sheet', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -30162,12 +29623,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 368 => - array ( - 'id' => 1369, - 'form_id' => 'HR2946', - 'form_title' => 'Child Care Subsidy Increase Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 285 => [ + 'id' => 1281, + 'form_id' => 'HR2845', + 'form_title' => 'Symantec Norton Anti-Virus Software Usage Agreement', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -30184,17 +29646,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 369 => - array ( - 'id' => 1370, - 'form_id' => 'HR2946A', - 'form_title' => 'Child Care Subsidy Code Change Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 286 => [ + 'id' => 1282, + 'form_id' => 'HR2846', + 'form_title' => 'Records Management Evaluation/Audit', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -30202,21 +29665,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 370 => - array ( - 'id' => 1371, - 'form_id' => 'HR2947', - 'form_title' => 'VRS Client Summary Transition Report', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 287 => [ + 'id' => 1283, + 'form_id' => 'HR2857', + 'form_title' => 'Supplier Information Letter', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -30224,19 +29688,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 371 => - array ( - 'id' => 1372, - 'form_id' => 'HR2948', - 'form_title' => 'Consent for Release of Information for EPPD Services', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 288 => [ + 'id' => 1284, + 'form_id' => 'HR2858', + 'form_title' => 'Training Checklist and Evaluation', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -30246,19 +29711,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 372 => - array ( - 'id' => 1373, - 'form_id' => 'HR2949', - 'form_title' => 'Family Bonus Top Up', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 289 => [ + 'id' => 1285, + 'form_id' => 'HR2859', + 'form_title' => 'Records Checklist for Employees Leaving the Ministry or Office Closures', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -30268,21 +29734,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 373 => - array ( - 'id' => 1374, - 'form_id' => 'HR2950', - 'form_title' => 'Medical Assessment Request', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 290 => [ + 'id' => 1286, + 'form_id' => 'HR2860', + 'form_title' => 'Records Management Checklist for Office Closures', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -30290,16 +29757,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 374 => - array ( - 'id' => 1375, - 'form_id' => 'HR2951', - 'form_title' => 'Confirmation of Special Needs', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 291 => [ + 'id' => 1287, + 'form_id' => 'HR2862', + 'form_title' => 'Notice of Termination of Assistance', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -30316,39 +29784,41 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 375 => - array ( - 'id' => 1376, - 'form_id' => 'HR2952', - 'form_title' => 'Employment Program for Persons with Disability Application', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 292 => [ + 'id' => 1288, + 'form_id' => 'HR2863A', + 'form_title' => 'Client Activity Report', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => true, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 376 => - array ( - 'id' => 1377, - 'form_id' => 'HR2953', - 'form_title' => 'Summary Report by Contract', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 293 => [ + 'id' => 1289, + 'form_id' => 'HR2863B', + 'form_title' => 'Employment Plan for SPEI Full-Time Training', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -30356,16 +29826,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 377 => - array ( - 'id' => 1378, - 'form_id' => 'HR2955', - 'form_title' => 'Consent and Consent Order for Assignement of Maintenance', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 294 => [ + 'id' => 1290, + 'form_id' => 'HR2863D', + 'form_title' => 'Employment Plan Dependent Youth Not in School', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -30382,37 +29853,39 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 378 => - array ( - 'id' => 1379, - 'form_id' => 'HR2957', - 'form_title' => 'Consent to Vary', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 295 => [ + 'id' => 1291, + 'form_id' => 'HR2864', + 'form_title' => 'Child Residency Statement', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => true, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 379 => - array ( - 'id' => 1380, - 'form_id' => 'HR2958', - 'form_title' => 'Consent/Order', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 296 => [ + 'id' => 1292, + 'form_id' => 'HR2867', + 'form_title' => 'Notice of Assistance Reduction Letter - ', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '2772 comes up', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => true, 'form_frequency_id' => NULL, @@ -30426,12 +29899,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 380 => - array ( - 'id' => 1381, - 'form_id' => 'HR2959', - 'form_title' => 'Child Care Subsidy Special Needs Supplement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 297 => [ + 'id' => 1293, + 'form_id' => 'HR2868', + 'form_title' => 'Notice of Assistance Reduction Letter - 20+ year old dependent in school', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -30448,12 +29922,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 381 => - array ( - 'id' => 1382, - 'form_id' => 'HR2960', - 'form_title' => 'Employment Program for Persons with Disability Acceptance and Referral', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 298 => [ + 'id' => 1294, + 'form_id' => 'HR2869', + 'form_title' => 'Notice of Assistance Reduction Letter - Short-term Homemaker Services', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -30470,12 +29945,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 382 => - array ( - 'id' => 1383, - 'form_id' => 'HR2961', - 'form_title' => 'Employment Program for Persons with Disability Client Service Plan - Part 1', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 299 => [ + 'id' => 1295, + 'form_id' => 'HR2870', + 'form_title' => 'Notice of Assistance Reduction Letter - Homemakes Serivces', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -30492,12 +29968,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 383 => - array ( - 'id' => 1384, - 'form_id' => 'HR2962', - 'form_title' => 'Employment Program for Persons with Disability Client Service Plan - Part 2', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 300 => [ + 'id' => 1296, + 'form_id' => 'HR2871', + 'form_title' => 'Application for Appointment to the Employment and Assistance Appeal Tribunal', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -30514,12 +29991,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 384 => - array ( - 'id' => 1385, - 'form_id' => 'HR2963', - 'form_title' => 'Employment Program for Persons with Disability Client Service Plan - Part 3', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 301 => [ + 'id' => 1297, + 'form_id' => 'HR2872', + 'form_title' => 'Notice of Assistance Denial Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -30536,12 +30014,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 385 => - array ( - 'id' => 1386, - 'form_id' => 'HR2964', - 'form_title' => 'Employment Program for Persons with Disability Adaptive Technology - Part 1', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 302 => [ + 'id' => 1298, + 'form_id' => 'HR2873', + 'form_title' => 'Notice of Assistance Letter - Change in benefit payments', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -30558,12 +30037,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 386 => - array ( - 'id' => 1387, - 'form_id' => 'HR2965', - 'form_title' => 'Employment Program for Persons with Disability Adaptive Technology - Part 2', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 303 => [ + 'id' => 1299, + 'form_id' => 'HR2874', + 'form_title' => 'Notice of Assistance Denial Letter - Child Care Subsidy', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -30580,12 +30060,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 387 => - array ( - 'id' => 1388, - 'form_id' => 'HR2966', - 'form_title' => 'Employment Program for Persons with Disability Service Activity Report', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 304 => [ + 'id' => 1300, + 'form_id' => 'HR2875', + 'form_title' => 'No Change to Child Care Subsidy Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -30602,12 +30083,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 388 => - array ( - 'id' => 1389, - 'form_id' => 'HR2967', - 'form_title' => 'Employment Program for Persons with Disability Client Outcome Report', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 305 => [ + 'id' => 1301, + 'form_id' => 'HR2876', + 'form_title' => 'Notice of Assitance Reduction Letter - Child Care Subsidy', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -30624,12 +30106,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 389 => - array ( - 'id' => 1390, - 'form_id' => 'HR2968', - 'form_title' => 'Employment Program for Persons with Disability Client Services Report', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 306 => [ + 'id' => 1302, + 'form_id' => 'HR2877', + 'form_title' => 'Notice of changes to Child Care Subsidy Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -30646,12 +30129,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 390 => - array ( - 'id' => 1391, - 'form_id' => 'HR2969', - 'form_title' => 'Employment Program for Persons with Disability Invoice', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 307 => [ + 'id' => 1303, + 'form_id' => 'HR2878', + 'form_title' => 'Share Parenting Appointment Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -30668,12 +30152,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 391 => - array ( - 'id' => 1392, - 'form_id' => 'HR2970', - 'form_title' => 'Employment Program for Persons with Disability Invoice Summary Report', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 308 => [ + 'id' => 1304, + 'form_id' => 'HR2879', + 'form_title' => 'Confirmed Job Program Application', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -30690,12 +30175,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 392 => - array ( - 'id' => 1393, - 'form_id' => 'HR2971', - 'form_title' => 'Voluntary Participation Plan Letter (Activities Completed)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 309 => [ + 'id' => 1305, + 'form_id' => 'HR2880', + 'form_title' => 'Notice of Assistance Cancellation Letter - Child Care Subsidy', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -30712,12 +30198,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 393 => - array ( - 'id' => 1394, - 'form_id' => 'HR2972', - 'form_title' => 'Voluntary Participation Plan Letter (Activities Not Completed)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 310 => [ + 'id' => 1306, + 'form_id' => 'HR2881', + 'form_title' => 'Employment and Assistance Centre Feedback', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -30734,12 +30221,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 394 => - array ( - 'id' => 1395, - 'form_id' => 'HR2973', - 'form_title' => 'Employment Program for Persons with Disability Recovery of Funds', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 311 => [ + 'id' => 1307, + 'form_id' => 'HR2882', + 'form_title' => 'Reasonable Work Search Review', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -30756,12 +30244,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 395 => - array ( - 'id' => 1396, - 'form_id' => 'HR2974', - 'form_title' => 'Contribution Agreement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 312 => [ + 'id' => 1308, + 'form_id' => 'HR2883R', + 'form_title' => 'Persons with Disabilities Designation Review Introduction', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -30778,12 +30267,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 396 => - array ( - 'id' => 1397, - 'form_id' => 'HR2975', - 'form_title' => 'Community Assistance Program Contribution Agreement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 313 => [ + 'id' => 1309, + 'form_id' => 'HR2884', + 'form_title' => 'Notice of Assistance Reduction Letter - Diet Supplement', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -30800,12 +30290,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 397 => - array ( - 'id' => 1398, - 'form_id' => 'HR2976', - 'form_title' => 'Pre-Employment Services Contribution Agreement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 314 => [ + 'id' => 1310, + 'form_id' => 'HR2886', + 'form_title' => 'Diet Assistance Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -30822,12 +30313,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 398 => - array ( - 'id' => 1399, - 'form_id' => 'HR2977', - 'form_title' => 'Training for Jobs Contribution Agreement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 315 => [ + 'id' => 1311, + 'form_id' => 'HR2887', + 'form_title' => 'Notice of Assistance Increase - Shelter & Shared Parenting', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -30844,12 +30336,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 399 => - array ( - 'id' => 1400, - 'form_id' => 'HR2978', - 'form_title' => 'Invitation to Quote', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 316 => [ + 'id' => 1312, + 'form_id' => 'HR2888', + 'form_title' => 'Repayment Agreement', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -30866,12 +30359,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 400 => - array ( - 'id' => 1401, - 'form_id' => 'HR2979', - 'form_title' => 'Ministry of Human Resources Request for Proposal', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 317 => [ + 'id' => 1313, + 'form_id' => 'HR2889', + 'form_title' => 'Repayment Agreement (Administrative Error)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -30888,17 +30382,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 401 => - array ( - 'id' => 1402, - 'form_id' => 'HR2981', - 'form_title' => 'Adaptive Technology Service Activity Report', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 318 => [ + 'id' => 1314, + 'form_id' => 'HR2890', + 'form_title' => 'Repayment Agreement (Hardship Assistance or Benefits)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -30910,17 +30405,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 402 => - array ( - 'id' => 1403, - 'form_id' => 'HR2982', - 'form_title' => 'Adaptive Technology Report', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 319 => [ + 'id' => 1315, + 'form_id' => 'HR2891', + 'form_title' => 'Promise to Pay', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -30932,12 +30428,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 403 => - array ( - 'id' => 1404, - 'form_id' => 'HR2983', - 'form_title' => 'Adaptive Technology Final Client Outcome Report', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 320 => [ + 'id' => 1316, + 'form_id' => 'HR2893', + 'form_title' => 'New Form/Letter Request', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -30954,12 +30451,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 404 => - array ( - 'id' => 1405, - 'form_id' => 'HR2984', - 'form_title' => 'Consent for Release of Information EPPD Application (Service Provider)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 321 => [ + 'id' => 1317, + 'form_id' => 'HR2895', + 'form_title' => 'Consent to Dismiss Appeal', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -30976,12 +30474,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 405 => - array ( - 'id' => 1406, - 'form_id' => 'HR2985', - 'form_title' => 'Consent for Release of Information EPPD Application (Minsitry)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 322 => [ + 'id' => 1318, + 'form_id' => 'HR2896', + 'form_title' => 'Employment and Assistance Review Letter - First Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -30998,12 +30497,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 406 => - array ( - 'id' => 1407, - 'form_id' => 'HR2986', - 'form_title' => 'Consent for Release of Information EPPD Administration and Service Delivery', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 323 => [ + 'id' => 1319, + 'form_id' => 'HR2896A', + 'form_title' => 'Employment and Assistance Review Letter - First Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -31020,17 +30520,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 407 => - array ( - 'id' => 1408, - 'form_id' => 'HR2987', - 'form_title' => 'Bridging Employment Suitability Checklist', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 324 => [ + 'id' => 1320, + 'form_id' => 'HR2897', + 'form_title' => 'Employment and Assistance Review Letter - Second Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -31042,17 +30543,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 408 => - array ( - 'id' => 1409, - 'form_id' => 'HR2988', - 'form_title' => 'Self-Employment Report', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 325 => [ + 'id' => 1321, + 'form_id' => 'HR2897A', + 'form_title' => 'Employment and Assistance Review Letter - Second Letter', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Combines and replaces HR2988L, HR2988S, HR3010', + 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -31064,17 +30566,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 409 => - array ( - 'id' => 1410, - 'form_id' => 'HR2988L', - 'form_title' => 'Client Monthly Form (Long From)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 326 => [ + 'id' => 1322, + 'form_id' => 'HR2898', + 'form_title' => 'Notice of Repayable Hardship Assistance', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -31086,17 +30589,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 410 => - array ( - 'id' => 1411, - 'form_id' => 'HR2988S', - 'form_title' => 'Simplified Monthly Self - Employment', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 327 => [ + 'id' => 1323, + 'form_id' => 'HR2899', + 'form_title' => 'Notice of Employment Plan Requirement - 60-64 years old', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -31108,17 +30612,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 411 => - array ( - 'id' => 1412, - 'form_id' => 'HR2989', - 'form_title' => 'Supplier Periodic Review of Client Business Activities', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 328 => [ + 'id' => 1324, + 'form_id' => 'HR2900', + 'form_title' => 'Notice of Employment Plan Requirement - Second Notice', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -31130,17 +30635,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 412 => - array ( - 'id' => 1413, - 'form_id' => 'HR2990', - 'form_title' => 'ATBC Loan Bank Quarterly Inventory and Expenditure Report', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 329 => [ + 'id' => 1325, + 'form_id' => 'HR2901', + 'form_title' => 'Persons with Persistant Mulitple Barriers Assessment Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -31152,17 +30658,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 413 => - array ( - 'id' => 1414, - 'form_id' => 'HR2991', - 'form_title' => 'Client Report (Vancouver Coastal Health Authority)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 330 => [ + 'id' => 1326, + 'form_id' => 'HR2902', + 'form_title' => 'Persons with Persistant Mulitple Barriers Assessment Letter - Appointment', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -31174,17 +30681,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 414 => - array ( - 'id' => 1415, - 'form_id' => 'HR2992', - 'form_title' => 'Relocation Control Record', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 331 => [ + 'id' => 1327, + 'form_id' => 'HR2903', + 'form_title' => 'Persons with Persistent Multiple Barriers Review Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -31196,12 +30704,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 415 => - array ( - 'id' => 1416, - 'form_id' => 'HR2993', - 'form_title' => 'Employment Plan Review Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 332 => [ + 'id' => 1328, + 'form_id' => 'HR2904', + 'form_title' => 'Persons with Persistent Multiple Barriers Assessment Letter - Spouse Not Eligible', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -31218,12 +30727,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 416 => - array ( - 'id' => 1417, - 'form_id' => 'HR2994', - 'form_title' => 'Employment Plan Development Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 333 => [ + 'id' => 1329, + 'form_id' => 'HR2905', + 'form_title' => 'Persons with Persistent Multiple Barriers Assessment Letter - Client and Spouse Eligible', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -31240,17 +30750,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 417 => - array ( - 'id' => 1418, - 'form_id' => 'HR2995', - 'form_title' => 'Supplier Review of Client Monthly Report', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 334 => [ + 'id' => 1330, + 'form_id' => 'HR2906', + 'form_title' => 'Persons with Persistent Multiple Barriers Assessment Letter - Single', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -31262,12 +30773,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 418 => - array ( - 'id' => 1419, - 'form_id' => 'HR2996', - 'form_title' => 'Release of Information (First Nations Band Office)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 335 => [ + 'id' => 1331, + 'form_id' => 'HR2907', + 'form_title' => 'Persons with Persistent Multiple Barriers Denial Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -31284,12 +30796,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 419 => - array ( - 'id' => 1420, - 'form_id' => 'HR2997', - 'form_title' => 'Employment Program for Persons with Disabilities (EPPD) - Denial Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 336 => [ + 'id' => 1332, + 'form_id' => 'HR2908', + 'form_title' => 'Program Activity Report', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -31306,17 +30819,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 420 => - array ( - 'id' => 1421, - 'form_id' => 'HR2998', - 'form_title' => 'Acceptance of Terms and Business Plan', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 337 => [ + 'id' => 1333, + 'form_id' => 'HR2909', + 'form_title' => 'Performance Planning, Development and Review Plan Level One', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -31328,39 +30842,41 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 421 => - array ( - 'id' => 1422, - 'form_id' => 'HR2999', - 'form_title' => 'Trust Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 338 => [ + 'id' => 1334, + 'form_id' => 'HR2910', + 'form_title' => 'Authorization to Invoice Amendment', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => true, + 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 422 => - array ( - 'id' => 1423, - 'form_id' => 'HR3010', - 'form_title' => 'Monthly Reporting Worksheet', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 339 => [ + 'id' => 1335, + 'form_id' => 'HR2911', + 'form_title' => 'Application for Services', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -31372,12 +30888,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 423 => - array ( - 'id' => 1424, - 'form_id' => 'HR3011', - 'form_title' => 'Cellular Phone Usage Agreement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 340 => [ + 'id' => 1336, + 'form_id' => 'HR2912', + 'form_title' => 'Authorization to Invoice', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -31394,17 +30911,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 424 => - array ( - 'id' => 1425, - 'form_id' => 'HR3012', - 'form_title' => 'Hire/Exit Service Request (IMB Use Only)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 341 => [ + 'id' => 1337, + 'form_id' => 'HR2913', + 'form_title' => 'Information Release for Employment Programs for Persons with Disabilities (Ministry)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -31416,12 +30934,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 425 => - array ( - 'id' => 1426, - 'form_id' => 'HR3013', - 'form_title' => 'Conditions for Use of Handheld Electronic Technology', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 342 => [ + 'id' => 1338, + 'form_id' => 'HR2914', + 'form_title' => 'Child Care Required for Medical Reasons', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -31438,17 +30957,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 426 => - array ( - 'id' => 1427, - 'form_id' => 'HR3014', - 'form_title' => 'Remote Access Agreement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 343 => [ + 'id' => 1339, + 'form_id' => 'HR2915', + 'form_title' => 'Pre-Employment Services Referral', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -31460,12 +30980,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 427 => - array ( - 'id' => 1428, - 'form_id' => 'HR3015', - 'form_title' => 'IMB Contract Administration Checklist', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 344 => [ + 'id' => 1340, + 'form_id' => 'HR2917', + 'form_title' => 'Performance Planning, Development and Review Plan Level Two', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -31482,17 +31003,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 428 => - array ( - 'id' => 1429, - 'form_id' => 'HR3016', - 'form_title' => 'Office Move Checklist', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 345 => [ + 'id' => 1341, + 'form_id' => 'HR2918', + 'form_title' => 'Confirmation of Authorization', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -31504,15 +31026,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 429 => - array ( - 'id' => 1430, - 'form_id' => 'HR3017', - 'form_title' => 'Respondent/Debtor Information', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 346 => [ + 'id' => 1342, + 'form_id' => 'HR2919', + 'form_title' => 'Interview Reminder - Active Emloyment Plan', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Previoulsy EIA2919', 'fill_type_id' => NULL, 'decommissioned' => true, 'form_frequency_id' => NULL, @@ -31526,12 +31049,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 430 => - array ( - 'id' => 1431, - 'form_id' => 'HR3018', - 'form_title' => 'Commissionership Application', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 347 => [ + 'id' => 1343, + 'form_id' => 'HR2920', + 'form_title' => 'Employment Plan - Second Appointment Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -31548,17 +31072,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 431 => - array ( - 'id' => 1432, - 'form_id' => 'HR3019', - 'form_title' => 'Business Continuity Program Hazard Risk Assessment (Step 1)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 348 => [ + 'id' => 1344, + 'form_id' => 'HR2921', + 'form_title' => 'Employment Plan - Appointment Letter (Non-Compliance)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -31570,12 +31095,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 432 => - array ( - 'id' => 1433, - 'form_id' => 'HR3020', - 'form_title' => 'Business Continuity Program Business Process Indentification (Step 2) For Business Impact Analysis', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 349 => [ + 'id' => 1345, + 'form_id' => 'HR2922', + 'form_title' => 'Employment Plan - More Activities Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -31592,12 +31118,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 433 => - array ( - 'id' => 1434, - 'form_id' => 'HR3021', - 'form_title' => 'Business Continuity Planning Employee Contact Sheet (Step 3)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 350 => [ + 'id' => 1346, + 'form_id' => 'HR2923', + 'form_title' => 'Employment Plan - Not Accepted in Program Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -31614,12 +31141,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 434 => - array ( - 'id' => 1435, - 'form_id' => 'HR3022', - 'form_title' => 'Business Continuity Planning Internal and External Contacts (Business Partners) (Step 4)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 351 => [ + 'id' => 1347, + 'form_id' => 'HR2924', + 'form_title' => 'PWD Case Profile', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -31636,12 +31164,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 435 => - array ( - 'id' => 1436, - 'form_id' => 'HR3024', - 'form_title' => 'Business Continuity Planning Regional Business Continuity Plan (Step 6)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 352 => [ + 'id' => 1348, + 'form_id' => 'HR2925', + 'form_title' => '2013 BC Bus Pass Replacement Application', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -31658,12 +31187,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 436 => - array ( - 'id' => 1437, - 'form_id' => 'HR3025', - 'form_title' => 'Child In Home of a Relative (CIHR) Assistance Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 353 => [ + 'id' => 1349, + 'form_id' => 'HR2926', + 'form_title' => 'Appeal Data Sheet', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -31680,12 +31210,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 437 => - array ( - 'id' => 1438, - 'form_id' => 'HR3026', - 'form_title' => 'Employment and Assistance Time Limit Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 354 => [ + 'id' => 1350, + 'form_id' => 'HR2927', + 'form_title' => 'Interview Reminder - Employment Plan Second Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -31702,12 +31233,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 438 => - array ( - 'id' => 1439, - 'form_id' => 'HR3027', - 'form_title' => 'Business Conitnuity Planning Headquarters Business Continuity Plan (Step 6)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 355 => [ + 'id' => 1351, + 'form_id' => 'HR2928', + 'form_title' => 'Persons with Persisent Multiple Barriers Review Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -31724,39 +31256,41 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 439 => - array ( - 'id' => 1440, - 'form_id' => 'HR3028', - 'form_title' => 'Alcohol & Drug Fee Authorization Agreement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 356 => [ + 'id' => 1352, + 'form_id' => 'HR2929', + 'form_title' => 'Persons with Persisent Multiple Barriers Review Letter - Medical Report', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => true, + 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 440 => - array ( - 'id' => 1441, - 'form_id' => 'HR3029', - 'form_title' => 'Photo Identification Card Referral', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 357 => [ + 'id' => 1353, + 'form_id' => 'HR2930', + 'form_title' => 'Persons with Persisent Multiple Barriers Review Letter - Interview', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -31768,17 +31302,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 441 => - array ( - 'id' => 1442, - 'form_id' => 'HR3030', - 'form_title' => 'Medical Transportation Supplement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 358 => [ + 'id' => 1354, + 'form_id' => 'HR2931', + 'form_title' => 'Persons with Persistent Multiple Barriers Assessment Letter - No Longer Eligible', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -31790,17 +31325,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 442 => - array ( - 'id' => 1443, - 'form_id' => 'HR3031', - 'form_title' => 'Request for Information - First Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 359 => [ + 'id' => 1487, + 'form_id' => 'HR3083', + 'form_title' => 'Consent/Consent Order (FMEP)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -31812,17 +31348,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 443 => - array ( - 'id' => 1444, - 'form_id' => 'HR3032', - 'form_title' => 'Cheque Hold Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 360 => [ + 'id' => 1355, + 'form_id' => 'HR2932', + 'form_title' => 'Persons with Persistent Mulitple Barriers Assessment Letter - Eligble', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -31833,20 +31370,21 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 444 => - array ( - 'id' => 1445, - 'form_id' => 'HR3033A', - 'form_title' => 'Family Maintenance Questionaire and Referral', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 361 => [ + 'id' => 1356, + 'form_id' => 'HR2933', + 'form_title' => 'Mental Health Assessment Report', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, - 'form_reach_id' => 1, + 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, @@ -31856,12 +31394,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 445 => - array ( - 'id' => 1446, - 'form_id' => 'HR3035', - 'form_title' => 'Emergency Needs Assessment', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 362 => [ + 'id' => 1357, + 'form_id' => 'HR2934', + 'form_title' => 'Medical Assessment Report', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -31878,12 +31417,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 446 => - array ( - 'id' => 1447, - 'form_id' => 'HR3036', - 'form_title' => 'ENA Reference Sheet', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 363 => [ + 'id' => 1358, + 'form_id' => 'HR2935', + 'form_title' => 'Medical Assessment Request', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -31900,12 +31440,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 447 => - array ( - 'id' => 1448, - 'form_id' => 'HR3039', - 'form_title' => 'Financial Eligibility Review - Second Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 364 => [ + 'id' => 1359, + 'form_id' => 'HR2936', + 'form_title' => 'Employment and Assistance Review Letter - Denied', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -31922,12 +31463,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 448 => - array ( - 'id' => 1449, - 'form_id' => 'HR3040', - 'form_title' => 'Financial Eligibility Review - First Appointment Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 365 => [ + 'id' => 1360, + 'form_id' => 'HR2937', + 'form_title' => 'ESPD Employment Plan', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -31944,12 +31486,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 449 => - array ( - 'id' => 1450, - 'form_id' => 'HR3041', - 'form_title' => 'Forms Initiation and Approval Request', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 366 => [ + 'id' => 1361, + 'form_id' => 'HR2938A', + 'form_title' => 'Repayment Agreement/Acknowledgement of Debt (Sanction) (Open file)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -31966,12 +31509,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 450 => - array ( - 'id' => 1451, - 'form_id' => 'HR3044', - 'form_title' => 'Building Maintenance Service Request', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 367 => [ + 'id' => 1362, + 'form_id' => 'HR2938B', + 'form_title' => 'Repayment Agreement/Acknowledgement of Debt (Sanction) (Closed File)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -31988,12 +31532,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 451 => - array ( - 'id' => 1452, - 'form_id' => 'HR3045', - 'form_title' => ' Volumes Box Contents List (GA Files Only)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 368 => [ + 'id' => 1363, + 'form_id' => 'HR2939', + 'form_title' => 'Consent to Release - Section 2 Physician Report, Persons with Disabilities Review', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -32005,17 +31550,18 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => true, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 452 => - array ( - 'id' => 1453, - 'form_id' => 'HR3046', - 'form_title' => 'Checklist and Summary for Time Limit Consequences', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 369 => [ + 'id' => 1364, + 'form_id' => 'HR2941', + 'form_title' => 'Employee Preformance and Development Plan (EPDP)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -32032,12 +31578,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 453 => - array ( - 'id' => 1454, - 'form_id' => 'HR3047', - 'form_title' => 'Employment Plan Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 370 => [ + 'id' => 1365, + 'form_id' => 'HR2942', + 'form_title' => 'Employee Performance and Recognition Plan Recognizing Past Performance', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -32054,12 +31601,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 454 => - array ( - 'id' => 1455, - 'form_id' => 'HR3048', - 'form_title' => 'Notification of Change to Hardship Assistance Regulation', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 371 => [ + 'id' => 1366, + 'form_id' => 'HR2943', + 'form_title' => 'Persons with Persistent Mulitple Barriers Assessment Letter - Denied', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -32076,12 +31624,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 455 => - array ( - 'id' => 1456, - 'form_id' => 'HR3050', - 'form_title' => 'Regional/HQ Security Survery August 2007', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 372 => [ + 'id' => 1367, + 'form_id' => 'HR2944', + 'form_title' => 'Employee Preformance and Development Plan (EPDP)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -32098,17 +31647,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 456 => - array ( - 'id' => 1457, - 'form_id' => 'HR3051', - 'form_title' => 'Appropriate Usage Agreement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 373 => [ + 'id' => 1368, + 'form_id' => 'HR2945', + 'form_title' => 'Employee Learning Plan', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -32120,17 +31670,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 457 => - array ( - 'id' => 1458, - 'form_id' => 'HR3052', - 'form_title' => 'Request for Change', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 374 => [ + 'id' => 1369, + 'form_id' => 'HR2946', + 'form_title' => 'Child Care Subsidy Increase Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -32142,17 +31693,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 458 => - array ( - 'id' => 1459, - 'form_id' => 'HR3053', - 'form_title' => 'Vendor Request/Update', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 375 => [ + 'id' => 1823, + 'form_id' => 'HR3573', + 'form_title' => 'Reserved for ELMSD', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -32164,12 +31716,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 459 => - array ( - 'id' => 1460, - 'form_id' => 'HR3054', - 'form_title' => 'Accomodation Requirements Outline', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 376 => [ + 'id' => 1370, + 'form_id' => 'HR2946A', + 'form_title' => 'Child Care Subsidy Code Change Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -32186,12 +31739,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 460 => - array ( - 'id' => 1461, - 'form_id' => 'HR3055', - 'form_title' => 'Enclosed Office Application', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 377 => [ + 'id' => 1371, + 'form_id' => 'HR2947', + 'form_title' => 'VRS Client Summary Transition Report', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -32208,17 +31762,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 461 => - array ( - 'id' => 1462, - 'form_id' => 'HR3056', - 'form_title' => 'Designated Parking Application', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 378 => [ + 'id' => 1372, + 'form_id' => 'HR2948', + 'form_title' => 'Consent for Release of Information for EPPD Services', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , WorkBC Extranet, SR FDD or Forms FDD. Has this been replaced with HR3181 - Consent to Release of Information EPPD? ', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -32226,21 +31781,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 462 => - array ( - 'id' => 1463, - 'form_id' => 'HR3057', - 'form_title' => 'Employment Plan Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 379 => [ + 'id' => 1373, + 'form_id' => 'HR2949', + 'form_title' => 'Family Bonus Top Up', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -32252,12 +31808,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 463 => - array ( - 'id' => 1464, - 'form_id' => 'HR3058', - 'form_title' => 'Employment Plan Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 380 => [ + 'id' => 1374, + 'form_id' => 'HR2950', + 'form_title' => 'Medical Assessment Request', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -32274,17 +31831,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 464 => - array ( - 'id' => 1465, - 'form_id' => 'HR3059', - 'form_title' => 'SPMO Change Request (SPMO Use Only)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 381 => [ + 'id' => 1375, + 'form_id' => 'HR2951', + 'form_title' => 'Confirmation of Special Needs', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -32296,12 +31854,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 465 => - array ( - 'id' => 1466, - 'form_id' => 'HR3060', - 'form_title' => 'Consent/Consent Order (FMEP)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 382 => [ + 'id' => 1376, + 'form_id' => 'HR2952', + 'form_title' => 'Employment Program for Persons with Disability Application', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -32318,12 +31877,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 466 => - array ( - 'id' => 1467, - 'form_id' => 'HR3061', - 'form_title' => 'Consent/Consent Order (FMEP)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 383 => [ + 'id' => 1377, + 'form_id' => 'HR2953', + 'form_title' => 'Summary Report by Contract', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -32340,12 +31900,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 467 => - array ( - 'id' => 1468, - 'form_id' => 'HR3062', - 'form_title' => 'Consent Order Maintenanc', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 384 => [ + 'id' => 1378, + 'form_id' => 'HR2955', + 'form_title' => 'Consent and Consent Order for Assignement of Maintenance', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -32362,12 +31923,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 468 => - array ( - 'id' => 1469, - 'form_id' => 'HR3063', - 'form_title' => 'Consent to Vary/Consent Order (FMEP)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 385 => [ + 'id' => 1379, + 'form_id' => 'HR2957', + 'form_title' => 'Consent to Vary', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -32384,15 +31946,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 469 => - array ( - 'id' => 1470, - 'form_id' => 'HR3064', - 'form_title' => 'Consent to Vary/Consent Order (FMEP)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 386 => [ + 'id' => 1380, + 'form_id' => 'HR2958', + 'form_title' => 'Consent/Order', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2772 comes up', 'fill_type_id' => NULL, 'decommissioned' => true, 'form_frequency_id' => NULL, @@ -32406,12 +31969,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 470 => - array ( - 'id' => 1471, - 'form_id' => 'HR3065', - 'form_title' => 'Emergency Needs Assessment', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 387 => [ + 'id' => 1381, + 'form_id' => 'HR2959', + 'form_title' => 'Child Care Subsidy Special Needs Supplement', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -32428,12 +31992,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 471 => - array ( - 'id' => 1472, - 'form_id' => 'HR3066', - 'form_title' => 'MHR Exit Form', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 388 => [ + 'id' => 1382, + 'form_id' => 'HR2960', + 'form_title' => 'Employment Program for Persons with Disability Acceptance and Referral', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -32450,12 +32015,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 472 => - array ( - 'id' => 1473, - 'form_id' => 'HR3067', - 'form_title' => 'MHR Hire Form', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 389 => [ + 'id' => 1383, + 'form_id' => 'HR2961', + 'form_title' => 'Employment Program for Persons with Disability Client Service Plan - Part 1', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -32472,15 +32038,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 473 => - array ( - 'id' => 1474, - 'form_id' => 'HR3068', - 'form_title' => 'Ministry Medical Consultant Report', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 390 => [ + 'id' => 1384, + 'form_id' => 'HR2962', + 'form_title' => 'Employment Program for Persons with Disability Client Service Plan - Part 2', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Previously SD3068', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => true, 'form_frequency_id' => NULL, @@ -32494,12 +32061,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 474 => - array ( - 'id' => 1475, - 'form_id' => 'HR3070', - 'form_title' => 'Persons with Persistant Mulitple Barriers Letter - Denial', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 391 => [ + 'id' => 1385, + 'form_id' => 'HR2963', + 'form_title' => 'Employment Program for Persons with Disability Client Service Plan - Part 3', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -32516,12 +32084,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 475 => - array ( - 'id' => 1476, - 'form_id' => 'HR3071', - 'form_title' => 'Persons with Persistant Mulitple Barriers Letter - Denial', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 392 => [ + 'id' => 1386, + 'form_id' => 'HR2964', + 'form_title' => 'Employment Program for Persons with Disability Adaptive Technology - Part 1', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -32538,12 +32107,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 476 => - array ( - 'id' => 1477, - 'form_id' => 'HR3072', - 'form_title' => 'Release of Personal Information (Corrections)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 393 => [ + 'id' => 1387, + 'form_id' => 'HR2965', + 'form_title' => 'Employment Program for Persons with Disability Adaptive Technology - Part 2', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -32560,17 +32130,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 477 => - array ( - 'id' => 1478, - 'form_id' => 'HR3073', - 'form_title' => 'Volumes Project Statistics Sheet', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 394 => [ + 'id' => 1388, + 'form_id' => 'HR2966', + 'form_title' => 'Employment Program for Persons with Disability Service Activity Report', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -32582,17 +32153,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 478 => - array ( - 'id' => 1479, - 'form_id' => 'HR3074', - 'form_title' => 'Sanction Letter - Failure to complete under 24 months', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 395 => [ + 'id' => 1389, + 'form_id' => 'HR2967', + 'form_title' => 'Employment Program for Persons with Disability Client Outcome Report', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -32604,12 +32176,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 479 => - array ( - 'id' => 1480, - 'form_id' => 'HR3075', - 'form_title' => 'Employment Plan Letter - Reduction/Denial', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 396 => [ + 'id' => 1390, + 'form_id' => 'HR2968', + 'form_title' => 'Employment Program for Persons with Disability Client Services Report', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -32626,12 +32199,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 480 => - array ( - 'id' => 1481, - 'form_id' => 'HR3076', - 'form_title' => 'Employment Plan Letter - Denial', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 397 => [ + 'id' => 1391, + 'form_id' => 'HR2969', + 'form_title' => 'Employment Program for Persons with Disability Invoice', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -32648,12 +32222,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 481 => - array ( - 'id' => 1482, - 'form_id' => 'HR3077', - 'form_title' => 'Note to Worker', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 398 => [ + 'id' => 1392, + 'form_id' => 'HR2970', + 'form_title' => 'Employment Program for Persons with Disability Invoice Summary Report', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -32670,12 +32245,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 482 => - array ( - 'id' => 1483, - 'form_id' => 'HR3078', - 'form_title' => 'Decision Request', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 399 => [ + 'id' => 1393, + 'form_id' => 'HR2971', + 'form_title' => 'Voluntary Participation Plan Letter (Activities Completed)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -32692,12 +32268,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 483 => - array ( - 'id' => 1484, - 'form_id' => 'HR3079', - 'form_title' => 'Employment Plan Letter - Appointment', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 400 => [ + 'id' => 1394, + 'form_id' => 'HR2972', + 'form_title' => 'Voluntary Participation Plan Letter (Activities Not Completed)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -32714,17 +32291,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 484 => - array ( - 'id' => 1485, - 'form_id' => 'HR3080', - 'form_title' => 'Child Care Subisdy Denial Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 401 => [ + 'id' => 1970, + 'form_id' => 'HR3711', + 'form_title' => 'Employment Plan', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -32736,12 +32314,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 485 => - array ( - 'id' => 1486, - 'form_id' => 'HR3082', - 'form_title' => 'Consent/Consent Order (FMEP)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 402 => [ + 'id' => 1395, + 'form_id' => 'HR2973', + 'form_title' => 'Employment Program for Persons with Disability Recovery of Funds', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -32758,12 +32337,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 486 => - array ( - 'id' => 1487, - 'form_id' => 'HR3083', - 'form_title' => 'Consent/Consent Order (FMEP)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 403 => [ + 'id' => 1396, + 'form_id' => 'HR2974', + 'form_title' => 'Contribution Agreement', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -32780,12 +32360,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 487 => - array ( - 'id' => 1488, - 'form_id' => 'HR3084', - 'form_title' => 'Consent/Consent Order (FMEP)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 404 => [ + 'id' => 1397, + 'form_id' => 'HR2975', + 'form_title' => 'Community Assistance Program Contribution Agreement', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -32802,12 +32383,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 488 => - array ( - 'id' => 1489, - 'form_id' => 'HR3085', - 'form_title' => 'Consent to Vary/Consent Order (FMEP)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 405 => [ + 'id' => 1398, + 'form_id' => 'HR2976', + 'form_title' => 'Pre-Employment Services Contribution Agreement', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -32824,12 +32406,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 489 => - array ( - 'id' => 1490, - 'form_id' => 'HR3086', - 'form_title' => 'Consent to Vary/Consent Order (FMEP)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 406 => [ + 'id' => 1399, + 'form_id' => 'HR2977', + 'form_title' => 'Training for Jobs Contribution Agreement', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -32846,17 +32429,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 490 => - array ( - 'id' => 1491, - 'form_id' => 'HR3087', - 'form_title' => 'Public Service Employment Program for Persons with Disabilities Program', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 407 => [ + 'id' => 1400, + 'form_id' => 'HR2978', + 'form_title' => 'Invitation to Quote', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -32868,17 +32452,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 491 => - array ( - 'id' => 1492, - 'form_id' => 'HR3088', - 'form_title' => 'Amendment to Public Service Employment Program for Persons with Disabilities Agreement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 408 => [ + 'id' => 1401, + 'form_id' => 'HR2979', + 'form_title' => 'Ministry of Human Resources Request for Proposal', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -32890,17 +32475,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 492 => - array ( - 'id' => 1493, - 'form_id' => 'HR3090', - 'form_title' => 'Assignment of Maintenance Rights Affidavit', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 409 => [ + 'id' => 1402, + 'form_id' => 'HR2981', + 'form_title' => 'Adaptive Technology Service Activity Report', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -32912,12 +32498,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 493 => - array ( - 'id' => 1494, - 'form_id' => 'HR3092', - 'form_title' => 'Overpayment Notification', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 410 => [ + 'id' => 1403, + 'form_id' => 'HR2982', + 'form_title' => 'Adaptive Technology Report', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -32929,17 +32516,18 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => true, + 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 494 => - array ( - 'id' => 1495, - 'form_id' => 'HR3092A', - 'form_title' => 'Overpayment Notification (for Closed Files or Medical Only Files)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 411 => [ + 'id' => 1404, + 'form_id' => 'HR2983', + 'form_title' => 'Adaptive Technology Final Client Outcome Report', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -32951,17 +32539,18 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => true, + 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 495 => - array ( - 'id' => 1496, - 'form_id' => 'HR3092M', - 'form_title' => 'Overpayment Notificatin (for Medical Only Files)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 412 => [ + 'id' => 1405, + 'form_id' => 'HR2984', + 'form_title' => 'Consent for Release of Information EPPD Application (Service Provider)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -32978,12 +32567,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 496 => - array ( - 'id' => 1497, - 'form_id' => 'HR3093', - 'form_title' => 'Consent/Consent Order (FMEP)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 413 => [ + 'id' => 1406, + 'form_id' => 'HR2985', + 'form_title' => 'Consent for Release of Information EPPD Application (Minsitry)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -33000,12 +32590,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 497 => - array ( - 'id' => 1498, - 'form_id' => 'HR3094', - 'form_title' => 'Consent/Consent Order (FMEP)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 414 => [ + 'id' => 1407, + 'form_id' => 'HR2986', + 'form_title' => 'Consent for Release of Information EPPD Administration and Service Delivery', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -33022,17 +32613,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 498 => - array ( - 'id' => 1499, - 'form_id' => 'HR3095', - 'form_title' => 'Consent to Vary/Consent Order (FMEP)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 415 => [ + 'id' => 1408, + 'form_id' => 'HR2987', + 'form_title' => 'Bridging Employment Suitability Checklist', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -33044,17 +32636,41 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 499 => - array ( - 'id' => 1500, - 'form_id' => 'HR3096', - 'form_title' => 'Consent/Consent Order (FMEP)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 416 => [ + 'id' => 1409, + 'form_id' => 'HR2988', + 'form_title' => 'Self-Employment Report', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'Combines and replaces HR2988L, HR2988S, HR3010', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 417 => [ + 'id' => 1410, + 'form_id' => 'HR2988L', + 'form_title' => 'Client Monthly Form (Long From)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -33066,19 +32682,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - )); - \DB::table('forms')->insert(array ( - 0 => - array ( - 'id' => 1501, - 'form_id' => 'HR3097', - 'form_title' => 'Consent/Consent Order (FMEP)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 418 => [ + 'id' => 1411, + 'form_id' => 'HR2988S', + 'form_title' => 'Simplified Monthly Self - Employment', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -33090,17 +32705,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 1 => - array ( - 'id' => 1502, - 'form_id' => 'HR3098', - 'form_title' => 'Consent to Vary/Consent Order (FMEP)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 419 => [ + 'id' => 1412, + 'form_id' => 'HR2989', + 'form_title' => 'Supplier Periodic Review of Client Business Activities', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -33112,17 +32728,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 2 => - array ( - 'id' => 1503, - 'form_id' => 'HR3099', - 'form_title' => 'Consent to Vary/Consent Order (FMEP)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 420 => [ + 'id' => 1413, + 'form_id' => 'HR2990', + 'form_title' => 'ATBC Loan Bank Quarterly Inventory and Expenditure Report', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -33134,12 +32751,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 3 => - array ( - 'id' => 1504, - 'form_id' => 'HR3100', - 'form_title' => 'Adhoc Report Request - Operational', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 421 => [ + 'id' => 1414, + 'form_id' => 'HR2991', + 'form_title' => 'Client Report (Vancouver Coastal Health Authority)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -33156,15 +32774,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 4 => - array ( - 'id' => 1505, - 'form_id' => 'HR3101', - 'form_title' => 'Adhoc Report Request - MARS', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 422 => [ + 'id' => 1415, + 'form_id' => 'HR2992', + 'form_title' => 'Relocation Control Record', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -33174,21 +32793,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 5 => - array ( - 'id' => 1506, - 'form_id' => 'HR3102', - 'form_title' => 'Contract/Contributions Evaluation', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 423 => [ + 'id' => 1416, + 'form_id' => 'HR2993', + 'form_title' => 'Employment Plan Review Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -33200,34 +32820,36 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 6 => - array ( - 'id' => 1507, - 'form_id' => 'HR3103', - 'form_title' => 'Medical Report Child', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 424 => [ + 'id' => 1417, + 'form_id' => 'HR2994', + 'form_title' => 'Employment Plan Development Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => true, + 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 7 => - array ( - 'id' => 1508, - 'form_id' => 'HR3104', - 'form_title' => 'Family with a Child with Disabilities Exemption - Denial Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 425 => [ + 'id' => 1418, + 'form_id' => 'HR2995', + 'form_title' => 'Supplier Review of Client Monthly Report', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -33244,12 +32866,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 8 => - array ( - 'id' => 1509, - 'form_id' => 'HR3105', - 'form_title' => 'Home Visit Checklist', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 426 => [ + 'id' => 1419, + 'form_id' => 'HR2996', + 'form_title' => 'Release of Information (First Nations Band Office)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -33266,12 +32889,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 9 => - array ( - 'id' => 1510, - 'form_id' => 'HR3106', - 'form_title' => 'CPP-D Class Action Suit Awards - Claiming Top-ups Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 427 => [ + 'id' => 1420, + 'form_id' => 'HR2997', + 'form_title' => 'Employment Program for Persons with Disabilities (EPPD) - Denial Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -33288,12 +32912,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 10 => - array ( - 'id' => 1511, - 'form_id' => 'HR3107', - 'form_title' => 'Sole Recipient with Person with Disability Questionnaire', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 428 => [ + 'id' => 1421, + 'form_id' => 'HR2998', + 'form_title' => 'Acceptance of Terms and Business Plan', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -33305,44 +32930,46 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => true, + 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 11 => - array ( - 'id' => 1512, - 'form_id' => 'HR3108', - 'form_title' => 'CPP-D Class Action Suit Awards - Initial Contact Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 429 => [ + 'id' => 1422, + 'form_id' => 'HR2999', + 'form_title' => 'Trust Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => true, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 12 => - array ( - 'id' => 1513, - 'form_id' => 'HR3109', - 'form_title' => 'CPP-D Class Action Suit Awards - Follow-up Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 430 => [ + 'id' => 1423, + 'form_id' => 'HR3010', + 'form_title' => 'Monthly Reporting Worksheet', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -33354,17 +32981,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 13 => - array ( - 'id' => 1514, - 'form_id' => 'HR3110', - 'form_title' => 'Advisement that Guardian Must Sign for Release of Child\'s Medical Information', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 431 => [ + 'id' => 1424, + 'form_id' => 'HR3011', + 'form_title' => 'Cellular Phone Usage Agreement', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -33376,12 +33004,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 14 => - array ( - 'id' => 1515, - 'form_id' => 'HR3111', - 'form_title' => 'SPMO Multi-Fiscal Project Request', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 432 => [ + 'id' => 1425, + 'form_id' => 'HR3012', + 'form_title' => 'Hire/Exit Service Request (IMB Use Only)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -33398,12 +33027,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 15 => - array ( - 'id' => 1516, - 'form_id' => 'HR3113', - 'form_title' => 'Child Care Subsidy Funding Increase Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 433 => [ + 'id' => 1426, + 'form_id' => 'HR3013', + 'form_title' => 'Conditions for Use of Handheld Electronic Technology', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -33420,17 +33050,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 16 => - array ( - 'id' => 1517, - 'form_id' => 'HR3114', - 'form_title' => 'Child Care Subsidy Funding Change Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 434 => [ + 'id' => 1427, + 'form_id' => 'HR3014', + 'form_title' => 'Remote Access Agreement', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -33438,16 +33069,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 17 => - array ( - 'id' => 1518, - 'form_id' => 'HR3117', - 'form_title' => 'Child Care Subsidy Children Under 6 Regulation Change - Initial Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 435 => [ + 'id' => 1428, + 'form_id' => 'HR3015', + 'form_title' => 'IMB Contract Administration Checklist', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -33464,17 +33096,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 18 => - array ( - 'id' => 1519, - 'form_id' => 'HR3118', - 'form_title' => 'Child Care Subsidy Authorization - September 2005 Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 436 => [ + 'id' => 1429, + 'form_id' => 'HR3016', + 'form_title' => 'Office Move Checklist', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -33486,12 +33119,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 19 => - array ( - 'id' => 1520, - 'form_id' => 'HR3119', - 'form_title' => 'Child Care Subsidy Children Under 6 Regulation Change Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 437 => [ + 'id' => 1430, + 'form_id' => 'HR3017', + 'form_title' => 'Respondent/Debtor Information', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -33508,17 +33142,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 20 => - array ( - 'id' => 1521, - 'form_id' => 'HR3120', - 'form_title' => 'Child Care Subsidy Children Under 6 Regulation Change Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 438 => [ + 'id' => 1431, + 'form_id' => 'HR3018', + 'form_title' => 'Commissionership Application', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -33530,12 +33165,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 21 => - array ( - 'id' => 1522, - 'form_id' => 'HR3121', - 'form_title' => 'Consent/Consent Order (FMEP)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 439 => [ + 'id' => 1432, + 'form_id' => 'HR3019', + 'form_title' => 'Business Continuity Program Hazard Risk Assessment (Step 1)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -33552,12 +33188,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 22 => - array ( - 'id' => 1523, - 'form_id' => 'HR3122', - 'form_title' => 'Consent/Consent Order (FMEP)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 440 => [ + 'id' => 1433, + 'form_id' => 'HR3020', + 'form_title' => 'Business Continuity Program Business Process Indentification (Step 2) For Business Impact Analysis', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -33574,12 +33211,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 23 => - array ( - 'id' => 1524, - 'form_id' => 'HR3123', - 'form_title' => 'Persons with Persistant Multiple Barriers Decision Summary Sheet', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 441 => [ + 'id' => 1434, + 'form_id' => 'HR3021', + 'form_title' => 'Business Continuity Planning Employee Contact Sheet (Step 3)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -33596,12 +33234,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 24 => - array ( - 'id' => 1525, - 'form_id' => 'HR3124', - 'form_title' => 'CPP Application Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 442 => [ + 'id' => 1435, + 'form_id' => 'HR3022', + 'form_title' => 'Business Continuity Planning Internal and External Contacts (Business Partners) (Step 4)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -33618,12 +33257,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 25 => - array ( - 'id' => 1526, - 'form_id' => 'HR3126', - 'form_title' => 'Family Maintenance Transfer Summary', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 443 => [ + 'id' => 1436, + 'form_id' => 'HR3024', + 'form_title' => 'Business Continuity Planning Regional Business Continuity Plan (Step 6)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -33640,12 +33280,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 26 => - array ( - 'id' => 1527, - 'form_id' => 'HR3127', - 'form_title' => 'Change of Address Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 444 => [ + 'id' => 1437, + 'form_id' => 'HR3025', + 'form_title' => 'Child In Home of a Relative (CIHR) Assistance Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -33662,12 +33303,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 27 => - array ( - 'id' => 1528, - 'form_id' => 'HR3128', - 'form_title' => 'Persons with Persistent Multiple Barriers Assessment - Couple Approval Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 445 => [ + 'id' => 1438, + 'form_id' => 'HR3026', + 'form_title' => 'Employment and Assistance Time Limit Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -33684,12 +33326,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 28 => - array ( - 'id' => 1529, - 'form_id' => 'HR3129', - 'form_title' => 'Persons with Persistent Multiple Barriers Assessment - Single Approval Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 446 => [ + 'id' => 1439, + 'form_id' => 'HR3027', + 'form_title' => 'Business Conitnuity Planning Headquarters Business Continuity Plan (Step 6)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -33706,34 +33349,36 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 29 => - array ( - 'id' => 1530, - 'form_id' => 'HR3130', - 'form_title' => 'Persons with Persistent Multiple Barriers Assessment - Single Approval Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 447 => [ + 'id' => 1440, + 'form_id' => 'HR3028', + 'form_title' => 'Alcohol & Drug Fee Authorization Agreement', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => true, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 30 => - array ( - 'id' => 1531, - 'form_id' => 'HR3131', - 'form_title' => 'Project/Initiative Overview Document', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 448 => [ + 'id' => 1441, + 'form_id' => 'HR3029', + 'form_title' => 'Photo Identification Card Referral', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -33750,15 +33395,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 31 => - array ( - 'id' => 1532, - 'form_id' => 'HR3132', - 'form_title' => 'Project Concept', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 449 => [ + 'id' => 1442, + 'form_id' => 'HR3030', + 'form_title' => 'Medical Transportation Supplement', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD. Has this form been replaced with HR3320 - Request for Local or Non Local Medical Transportation Assistance? ', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -33768,21 +33414,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 32 => - array ( - 'id' => 1533, - 'form_id' => 'HR3133', - 'form_title' => 'Section 10 Denial Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 450 => [ + 'id' => 1443, + 'form_id' => 'HR3031', + 'form_title' => 'Request for Information - First Letter', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD. Has this been replaced with HR3196 - 1st Request for Information? ', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -33790,16 +33437,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 33 => - array ( - 'id' => 1534, - 'form_id' => 'HR3134', - 'form_title' => 'Job Safety Plan', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 451 => [ + 'id' => 1444, + 'form_id' => 'HR3032', + 'form_title' => 'Cheque Hold Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -33816,18 +33464,43 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 34 => - array ( - 'id' => 1535, - 'form_id' => 'HR3135', - 'form_title' => 'Request for Support Services', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 452 => [ + 'id' => 1445, + 'form_id' => 'HR3033A', + 'form_title' => 'Family Maintenance Questionaire and Referral', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Use: Worker fills, Print +Type: Form', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, + 'form_reach_id' => 1, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 453 => [ + 'id' => 1446, + 'form_id' => 'HR3035', + 'form_title' => 'Emergency Needs Assessment', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => '', + 'fill_type_id' => NULL, + 'decommissioned' => true, + 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, @@ -33838,17 +33511,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 35 => - array ( - 'id' => 1536, - 'form_id' => 'HR3136', - 'form_title' => 'Confirmation of ID Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 454 => [ + 'id' => 1447, + 'form_id' => 'HR3036', + 'form_title' => 'ENA Reference Sheet', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -33860,17 +33534,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 36 => - array ( - 'id' => 1537, - 'form_id' => 'HR3137', - 'form_title' => 'Copies of ID Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 455 => [ + 'id' => 1448, + 'form_id' => 'HR3039', + 'form_title' => 'Financial Eligibility Review - Second Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -33882,17 +33557,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 37 => - array ( - 'id' => 1538, - 'form_id' => 'HR3138', - 'form_title' => 'Diet Supplement Review Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 456 => [ + 'id' => 1449, + 'form_id' => 'HR3040', + 'form_title' => 'Financial Eligibility Review - First Appointment Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -33904,17 +33580,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 38 => - array ( - 'id' => 1539, - 'form_id' => 'HR3139', - 'form_title' => 'Diet Supllement Denial Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 457 => [ + 'id' => 1450, + 'form_id' => 'HR3041', + 'form_title' => 'Forms Initiation and Approval Request', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -33926,12 +33603,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 39 => - array ( - 'id' => 1540, - 'form_id' => 'HR3140', - 'form_title' => 'CPP Disability Application Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 458 => [ + 'id' => 1451, + 'form_id' => 'HR3044', + 'form_title' => 'Building Maintenance Service Request', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -33948,17 +33626,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 40 => - array ( - 'id' => 1541, - 'form_id' => 'HR3141', - 'form_title' => 'CPP Disability Application Appointment Confirmation Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 459 => [ + 'id' => 1452, + 'form_id' => 'HR3045', + 'form_title' => ' Volumes Box Contents List (GA Files Only)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -33966,16 +33645,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 41 => - array ( - 'id' => 1542, - 'form_id' => 'HR3142', - 'form_title' => 'CPP Disability Application Telephone Appointment Confirmation Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 460 => [ + 'id' => 1453, + 'form_id' => 'HR3046', + 'form_title' => 'Checklist and Summary for Time Limit Consequences', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -33992,12 +33672,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 42 => - array ( - 'id' => 1543, - 'form_id' => 'HR3144', - 'form_title' => 'CPP Early Retirement Appointment Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 461 => [ + 'id' => 1454, + 'form_id' => 'HR3047', + 'form_title' => 'Employment Plan Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -34014,12 +33695,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 43 => - array ( - 'id' => 1544, - 'form_id' => 'HR3145', - 'form_title' => 'CPP Early Retirement Telephone Appointment Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 462 => [ + 'id' => 1455, + 'form_id' => 'HR3048', + 'form_title' => 'Notification of Change to Hardship Assistance Regulation', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -34036,12 +33718,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 44 => - array ( - 'id' => 1545, - 'form_id' => 'HR3146', - 'form_title' => 'Confirmation of Employment Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 463 => [ + 'id' => 1456, + 'form_id' => 'HR3050', + 'form_title' => 'Regional/HQ Security Survery August 2007', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -34058,17 +33741,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 45 => - array ( - 'id' => 1546, - 'form_id' => 'HR3147', - 'form_title' => 'FMEP Consent to Release Information', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 464 => [ + 'id' => 1457, + 'form_id' => 'HR3051', + 'form_title' => 'Appropriate Usage Agreement', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -34076,21 +33760,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 46 => - array ( - 'id' => 1547, - 'form_id' => 'HR3148', - 'form_title' => 'Notice to Child Support Recalculation Service', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 465 => [ + 'id' => 1458, + 'form_id' => 'HR3052', + 'form_title' => 'Request for Change', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -34102,17 +33787,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 47 => - array ( - 'id' => 1548, - 'form_id' => 'HR3149', - 'form_title' => 'Template Letter Initiation and Approval Request', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 466 => [ + 'id' => 1459, + 'form_id' => 'HR3053', + 'form_title' => 'Vendor Request/Update', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -34124,12 +33810,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 48 => - array ( - 'id' => 1549, - 'form_id' => 'HR3150', - 'form_title' => 'Confirmation of Eligibility for Travel Supplement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 467 => [ + 'id' => 1460, + 'form_id' => 'HR3054', + 'form_title' => 'Accomodation Requirements Outline', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -34146,12 +33833,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 49 => - array ( - 'id' => 1550, - 'form_id' => 'HR3151', - 'form_title' => 'Spousal Eligibility Allowance Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 468 => [ + 'id' => 1461, + 'form_id' => 'HR3055', + 'form_title' => 'Enclosed Office Application', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -34168,12 +33856,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 50 => - array ( - 'id' => 1551, - 'form_id' => 'HR3152', - 'form_title' => 'Unable to Identify as Client of Senior Supplement Program', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 469 => [ + 'id' => 1462, + 'form_id' => 'HR3056', + 'form_title' => 'Designated Parking Application', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -34190,12 +33879,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 51 => - array ( - 'id' => 1552, - 'form_id' => 'HR3153', - 'form_title' => 'Deceased Final Payment - Senior Supplement Program Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 470 => [ + 'id' => 1463, + 'form_id' => 'HR3057', + 'form_title' => 'Employment Plan Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -34212,12 +33902,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 52 => - array ( - 'id' => 1553, - 'form_id' => 'HR3154', - 'form_title' => 'Senior Supplement Approval - Couple Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 471 => [ + 'id' => 1464, + 'form_id' => 'HR3058', + 'form_title' => 'Employment Plan Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -34234,17 +33925,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 53 => - array ( - 'id' => 1554, - 'form_id' => 'HR3155', - 'form_title' => 'Senior Supplement Approval - Single Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 472 => [ + 'id' => 1465, + 'form_id' => 'HR3059', + 'form_title' => 'SPMO Change Request (SPMO Use Only)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -34256,12 +33948,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 54 => - array ( - 'id' => 1555, - 'form_id' => 'HR3156', - 'form_title' => 'Senior Supplement Denial - Couple Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 473 => [ + 'id' => 1466, + 'form_id' => 'HR3060', + 'form_title' => 'Consent/Consent Order (FMEP)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -34278,12 +33971,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 55 => - array ( - 'id' => 1556, - 'form_id' => 'HR3157', - 'form_title' => 'Senior Supplement Denial - Single Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 474 => [ + 'id' => 1467, + 'form_id' => 'HR3061', + 'form_title' => 'Consent/Consent Order (FMEP)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -34300,12 +33994,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 56 => - array ( - 'id' => 1557, - 'form_id' => 'HR3158', - 'form_title' => 'Senior Supplement Denial - Couple Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 475 => [ + 'id' => 1468, + 'form_id' => 'HR3062', + 'form_title' => 'Consent Order Maintenanc', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -34322,12 +34017,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 57 => - array ( - 'id' => 1558, - 'form_id' => 'HR3159', - 'form_title' => 'Community Assistance Program Transition Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 476 => [ + 'id' => 1469, + 'form_id' => 'HR3063', + 'form_title' => 'Consent to Vary/Consent Order (FMEP)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -34344,12 +34040,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 58 => - array ( - 'id' => 1559, - 'form_id' => 'HR3160', - 'form_title' => 'Community Assistance Program Transition Letter - Follow-up', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 477 => [ + 'id' => 1470, + 'form_id' => 'HR3064', + 'form_title' => 'Consent to Vary/Consent Order (FMEP)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -34366,34 +34063,36 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 59 => - array ( - 'id' => 1560, - 'form_id' => 'HR3161', - 'form_title' => 'Request For Payor Information', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 478 => [ + 'id' => 1471, + 'form_id' => 'HR3065', + 'form_title' => 'Emergency Needs Assessment', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => true, + 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 60 => - array ( - 'id' => 1561, - 'form_id' => 'HR3165', - 'form_title' => 'Sponsorship Default - Risk Assessment Safety Sponsored Relative', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 479 => [ + 'id' => 1472, + 'form_id' => 'HR3066', + 'form_title' => 'MHR Exit Form', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -34410,12 +34109,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 61 => - array ( - 'id' => 1562, - 'form_id' => 'HR3166', - 'form_title' => 'Sponsorship Default - Risk Assessment Safety Sponsor', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 480 => [ + 'id' => 1473, + 'form_id' => 'HR3067', + 'form_title' => 'MHR Hire Form', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -34432,15 +34132,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 62 => - array ( - 'id' => 1563, - 'form_id' => 'HR3167', - 'form_title' => 'Senior Supplement Eligibility Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 481 => [ + 'id' => 1474, + 'form_id' => 'HR3068', + 'form_title' => 'Ministry Medical Consultant Report', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Previously SD3068', 'fill_type_id' => NULL, 'decommissioned' => true, 'form_frequency_id' => NULL, @@ -34454,12 +34155,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 63 => - array ( - 'id' => 1564, - 'form_id' => 'HR3168', - 'form_title' => 'Senior Supplement Welcome Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 482 => [ + 'id' => 1475, + 'form_id' => 'HR3070', + 'form_title' => 'Persons with Persistant Mulitple Barriers Letter - Denial', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -34476,12 +34178,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 64 => - array ( - 'id' => 1565, - 'form_id' => 'HR3169', - 'form_title' => 'Bond of Indemnity Cheque Letter - Senior Supplement - Cashed', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 483 => [ + 'id' => 1476, + 'form_id' => 'HR3071', + 'form_title' => 'Persons with Persistant Mulitple Barriers Letter - Denial', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -34498,12 +34201,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 65 => - array ( - 'id' => 1566, - 'form_id' => 'HR3170', - 'form_title' => 'Senior Supplement - Old Age Security Reassessment Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 484 => [ + 'id' => 1477, + 'form_id' => 'HR3072', + 'form_title' => 'Release of Personal Information (Corrections)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -34520,17 +34224,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 66 => - array ( - 'id' => 1567, - 'form_id' => 'HR3171', - 'form_title' => 'Senior Supplement - Old Age Security Reassessment Letter - Denial', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 485 => [ + 'id' => 1478, + 'form_id' => 'HR3073', + 'form_title' => 'Volumes Project Statistics Sheet', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -34538,21 +34243,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 67 => - array ( - 'id' => 1568, - 'form_id' => 'HR3172', - 'form_title' => 'Senior Supplement - T5007 Revised Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 486 => [ + 'id' => 1479, + 'form_id' => 'HR3074', + 'form_title' => 'Sanction Letter - Failure to complete under 24 months', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -34564,12 +34270,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 68 => - array ( - 'id' => 1569, - 'form_id' => 'HR3173', - 'form_title' => 'Senior Supplement - No T5007 Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 487 => [ + 'id' => 1480, + 'form_id' => 'HR3075', + 'form_title' => 'Employment Plan Letter - Reduction/Denial', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -34586,12 +34293,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 69 => - array ( - 'id' => 1570, - 'form_id' => 'HR3174', - 'form_title' => 'Senior Supplement - Cheque Error', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 488 => [ + 'id' => 1481, + 'form_id' => 'HR3076', + 'form_title' => 'Employment Plan Letter - Denial', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -34608,12 +34316,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 70 => - array ( - 'id' => 1571, - 'form_id' => 'HR3175', - 'form_title' => 'Senior Supplment - Bond of Indemnity Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 489 => [ + 'id' => 1482, + 'form_id' => 'HR3077', + 'form_title' => 'Note to Worker', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -34630,12 +34339,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 71 => - array ( - 'id' => 1572, - 'form_id' => 'HR3176', - 'form_title' => 'Senior Supplment - Bond of Indemnity Not Signed Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 490 => [ + 'id' => 1483, + 'form_id' => 'HR3078', + 'form_title' => 'Decision Request', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -34652,12 +34362,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 72 => - array ( - 'id' => 1573, - 'form_id' => 'HR3177', - 'form_title' => 'Senior Supplment - Not Elgible Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 491 => [ + 'id' => 1484, + 'form_id' => 'HR3079', + 'form_title' => 'Employment Plan Letter - Appointment', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -34674,12 +34385,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 73 => - array ( - 'id' => 1574, - 'form_id' => 'HR3178', - 'form_title' => 'Senior Supplement - Cheque Cashed Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 492 => [ + 'id' => 1485, + 'form_id' => 'HR3080', + 'form_title' => 'Child Care Subisdy Denial Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -34696,17 +34408,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 74 => - array ( - 'id' => 1575, - 'form_id' => 'HR3179', - 'form_title' => 'OHS Program Review', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 493 => [ + 'id' => 1486, + 'form_id' => 'HR3082', + 'form_title' => 'Consent/Consent Order (FMEP)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -34718,17 +34431,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 75 => - array ( - 'id' => 1576, - 'form_id' => 'HR3180', - 'form_title' => 'Acknowledgement of Management Responsibility for Protection of Information and Information Technology Agreement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 494 => [ + 'id' => 1488, + 'form_id' => 'HR3084', + 'form_title' => 'Consent/Consent Order (FMEP)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -34740,17 +34454,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 76 => - array ( - 'id' => 1577, - 'form_id' => 'HR3181', - 'form_title' => 'Consent to Release Information (EPPD)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 495 => [ + 'id' => 1489, + 'form_id' => 'HR3085', + 'form_title' => 'Consent to Vary/Consent Order (FMEP)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -34762,12 +34477,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 77 => - array ( - 'id' => 1578, - 'form_id' => 'HR3182', - 'form_title' => 'Explanation of Information Collected for Participation in Quit Smoking Now!', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 496 => [ + 'id' => 1490, + 'form_id' => 'HR3086', + 'form_title' => 'Consent to Vary/Consent Order (FMEP)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -34784,12 +34500,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 78 => - array ( - 'id' => 1579, - 'form_id' => 'HR3184', - 'form_title' => 'Screening Consent', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 497 => [ + 'id' => 1491, + 'form_id' => 'HR3087', + 'form_title' => 'Public Service Employment Program for Persons with Disabilities Program', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -34806,12 +34523,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 79 => - array ( - 'id' => 1580, - 'form_id' => 'HR3186', - 'form_title' => 'MSD IT Asset Confirmation Disposition', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 498 => [ + 'id' => 1492, + 'form_id' => 'HR3088', + 'form_title' => 'Amendment to Public Service Employment Program for Persons with Disabilities Agreement', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -34828,78 +34546,84 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 80 => - array ( - 'id' => 1581, - 'form_id' => 'HR3187', - 'form_title' => 'Aboriginal Self Identifier', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 499 => [ + 'id' => 1493, + 'form_id' => 'HR3090', + 'form_title' => 'Assignment of Maintenance Rights Affidavit', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => true, + 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 81 => - array ( - 'id' => 1582, - 'form_id' => 'HR3188', - 'form_title' => 'Blackberry Device Usage Agreement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + ]); + \DB::table('forms')->insert([ + 0 => [ + 'id' => 1494, + 'form_id' => 'HR3092', + 'form_title' => 'Overpayment Notification', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => true, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 82 => - array ( - 'id' => 1583, - 'form_id' => 'HR3189A', - 'form_title' => 'Consent to Disclosure of Information � Service Authorization', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 1 => [ + 'id' => 1495, + 'form_id' => 'HR3092A', + 'form_title' => 'Overpayment Notification (for Closed Files or Medical Only Files)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, - 'form_reach_id' => 1, + 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => true, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 83 => - array ( - 'id' => 1584, - 'form_id' => 'HR3190', - 'form_title' => 'Bus Pass Program for Applicants 65 Years or Over Living in Canada Less Than 10 Years', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 2 => [ + 'id' => 1496, + 'form_id' => 'HR3092M', + 'form_title' => 'Overpayment Notificatin (for Medical Only Files)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -34916,17 +34640,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 84 => - array ( - 'id' => 1585, - 'form_id' => 'HR3192', - 'form_title' => 'BCEA Self Employment Program Invoice Summary', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 3 => [ + 'id' => 1497, + 'form_id' => 'HR3093', + 'form_title' => 'Consent/Consent Order (FMEP)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -34938,17 +34663,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 85 => - array ( - 'id' => 1586, - 'form_id' => 'HR3193', - 'form_title' => 'BCEA Self Employment Program Business Type Summary', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 4 => [ + 'id' => 1498, + 'form_id' => 'HR3094', + 'form_title' => 'Consent/Consent Order (FMEP)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -34960,12 +34686,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 86 => - array ( - 'id' => 1587, - 'form_id' => 'HR3194', - 'form_title' => '1st CRA Appointment Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 5 => [ + 'id' => 1499, + 'form_id' => 'HR3095', + 'form_title' => 'Consent to Vary/Consent Order (FMEP)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -34982,12 +34709,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 87 => - array ( - 'id' => 1588, - 'form_id' => 'HR3195', - 'form_title' => '2nd CRV Appointment Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 6 => [ + 'id' => 1500, + 'form_id' => 'HR3096', + 'form_title' => 'Consent/Consent Order (FMEP)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -35004,17 +34732,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 88 => - array ( - 'id' => 1589, - 'form_id' => 'HR3201', - 'form_title' => 'Ministry Investigator Conviction Denial Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 7 => [ + 'id' => 1501, + 'form_id' => 'HR3097', + 'form_title' => 'Consent/Consent Order (FMEP)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -35026,12 +34755,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 89 => - array ( - 'id' => 1590, - 'form_id' => 'HR3202', - 'form_title' => 'Conviction Sanction Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 8 => [ + 'id' => 1502, + 'form_id' => 'HR3098', + 'form_title' => 'Consent to Vary/Consent Order (FMEP)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -35048,17 +34778,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 90 => - array ( - 'id' => 1591, - 'form_id' => 'HR3203', - 'form_title' => 'Criminal Code Conviction Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 9 => [ + 'id' => 1503, + 'form_id' => 'HR3099', + 'form_title' => 'Consent to Vary/Consent Order (FMEP)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -35070,15 +34801,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 91 => - array ( - 'id' => 1592, - 'form_id' => 'HR3204', - 'form_title' => '2009 Bus Pass Income Tax Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 10 => [ + 'id' => 1824, + 'form_id' => 'HR3574', + 'form_title' => 'Reserved for ELMSD', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Not on Resource Finder | not in ICM', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => true, 'form_frequency_id' => NULL, @@ -35092,17 +34824,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 92 => - array ( - 'id' => 1593, - 'form_id' => 'HR3205', - 'form_title' => 'MEIA Security Incident Tracking Summary', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 11 => [ + 'id' => 1504, + 'form_id' => 'HR3100', + 'form_title' => 'Adhoc Report Request - Operational', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -35114,17 +34847,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 93 => - array ( - 'id' => 1594, - 'form_id' => 'HR3206', - 'form_title' => 'Telecommunications Persoal Usage Payment', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 12 => [ + 'id' => 1505, + 'form_id' => 'HR3101', + 'form_title' => 'Adhoc Report Request - MARS', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -35136,12 +34870,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 94 => - array ( - 'id' => 1595, - 'form_id' => 'HR3207', - 'form_title' => 'Request for Legal Opinion ', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 13 => [ + 'id' => 1506, + 'form_id' => 'HR3102', + 'form_title' => 'Contract/Contributions Evaluation', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -35158,12 +34893,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 95 => - array ( - 'id' => 1596, - 'form_id' => 'HR3207A', - 'form_title' => 'Request for Legal Opinion Legislation, Litigation and Appeals Branch', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 14 => [ + 'id' => 1507, + 'form_id' => 'HR3103', + 'form_title' => 'Medical Report Child', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -35175,44 +34911,46 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => true, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 96 => - array ( - 'id' => 1597, - 'form_id' => 'HR3208', - 'form_title' => 'Food Voucher Supplier Instruction Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 15 => [ + 'id' => 1508, + 'form_id' => 'HR3104', + 'form_title' => 'Family with a Child with Disabilities Exemption - Denial Letter', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, - 'decommissioned' => true, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => 4, + 'form_reach_id' => 2, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 97 => - array ( - 'id' => 1598, - 'form_id' => 'HR3209', - 'form_title' => 'Denial of CIHR (not screening)', + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 16 => [ + 'id' => 1509, + 'form_id' => 'HR3105', + 'form_title' => 'Home Visit Checklist', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -35224,17 +34962,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 98 => - array ( - 'id' => 1599, - 'form_id' => 'HR3210', - 'form_title' => 'Denial of CIHR (screening)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 17 => [ + 'id' => 1510, + 'form_id' => 'HR3106', + 'form_title' => 'CPP-D Class Action Suit Awards - Claiming Top-ups Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -35246,12 +34985,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 99 => - array ( - 'id' => 1600, - 'form_id' => 'HR3211', - 'form_title' => 'CIHR Application Denied or CIHR Assistance Discontinued because of evidence of risk', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 18 => [ + 'id' => 1511, + 'form_id' => 'HR3107', + 'form_title' => 'Sole Recipient with Person with Disability Questionnaire', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -35263,17 +35003,18 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => true, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 100 => - array ( - 'id' => 1601, - 'form_id' => 'HR3212', - 'form_title' => 'Lateral Transfer Request', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 19 => [ + 'id' => 1512, + 'form_id' => 'HR3108', + 'form_title' => 'CPP-D Class Action Suit Awards - Initial Contact Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -35290,12 +35031,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 101 => - array ( - 'id' => 1602, - 'form_id' => 'HR3213', - 'form_title' => 'HeadQuarters Mailing List Executive Approval Form', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 20 => [ + 'id' => 1513, + 'form_id' => 'HR3109', + 'form_title' => 'CPP-D Class Action Suit Awards - Follow-up Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -35312,17 +35054,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 102 => - array ( - 'id' => 1603, - 'form_id' => 'HR3214', - 'form_title' => 'Regional Mailing List Executive Approval Form', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 21 => [ + 'id' => 1514, + 'form_id' => 'HR3110', + 'form_title' => 'Advisement that Guardian Must Sign for Release of Child\'s Medical Information', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -35334,12 +35077,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 103 => - array ( - 'id' => 1604, - 'form_id' => 'HR3215', - 'form_title' => 'Mail Distribuion Target Group Checklist', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 22 => [ + 'id' => 1515, + 'form_id' => 'HR3111', + 'form_title' => 'SPMO Multi-Fiscal Project Request', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -35356,19 +35100,20 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 104 => - array ( - 'id' => 1605, - 'form_id' => 'HR3216', - 'form_title' => 'School Start-Up Confirmation', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 23 => [ + 'id' => 1516, + 'form_id' => 'HR3113', + 'form_title' => 'Child Care Subsidy Funding Increase Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => 1, - 'form_reach_id' => 1, + 'decommissioned' => true, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, @@ -35378,17 +35123,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 105 => - array ( - 'id' => 1606, - 'form_id' => 'HR3217', - 'form_title' => 'Incomplete HR0081 Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 24 => [ + 'id' => 1517, + 'form_id' => 'HR3114', + 'form_title' => 'Child Care Subsidy Funding Change Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -35400,17 +35146,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 106 => - array ( - 'id' => 1607, - 'form_id' => 'HR3219', - 'form_title' => 'Information to New BCEA Client Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 25 => [ + 'id' => 1518, + 'form_id' => 'HR3117', + 'form_title' => 'Child Care Subsidy Children Under 6 Regulation Change - Initial Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -35422,17 +35169,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 107 => - array ( - 'id' => 1608, - 'form_id' => 'HR3220', - 'form_title' => 'Information to New Persons with Disabilities Designation Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 26 => [ + 'id' => 1519, + 'form_id' => 'HR3118', + 'form_title' => 'Child Care Subsidy Authorization - September 2005 Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -35444,17 +35192,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 108 => - array ( - 'id' => 1609, - 'form_id' => 'HR3221', - 'form_title' => 'Reconsideration Approved Cover Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 27 => [ + 'id' => 1520, + 'form_id' => 'HR3119', + 'form_title' => 'Child Care Subsidy Children Under 6 Regulation Change Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -35466,17 +35215,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 109 => - array ( - 'id' => 1610, - 'form_id' => 'HR3222', - 'form_title' => 'Reconsideration Denied Cover Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 28 => [ + 'id' => 1521, + 'form_id' => 'HR3120', + 'form_title' => 'Child Care Subsidy Children Under 6 Regulation Change Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -35488,17 +35238,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 110 => - array ( - 'id' => 1611, - 'form_id' => 'HR3223', - 'form_title' => 'Reconsideration Time Limits Exceeded Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 29 => [ + 'id' => 1522, + 'form_id' => 'HR3121', + 'form_title' => 'Consent/Consent Order (FMEP)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -35510,17 +35261,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 111 => - array ( - 'id' => 1612, - 'form_id' => 'HR3224', - 'form_title' => 'Earned and Unearned Income', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 30 => [ + 'id' => 1523, + 'form_id' => 'HR3122', + 'form_title' => 'Consent/Consent Order (FMEP)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -35532,19 +35284,20 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 112 => - array ( - 'id' => 1613, - 'form_id' => 'HR3225', - 'form_title' => 'Family with Child with a Disability', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 31 => [ + 'id' => 1524, + 'form_id' => 'HR3123', + 'form_title' => 'Persons with Persistant Multiple Barriers Decision Summary Sheet', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, - 'form_reach_id' => 2, + 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, @@ -35554,17 +35307,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 113 => - array ( - 'id' => 1614, - 'form_id' => 'HR3227', - 'form_title' => 'PWD Earned and Unearned Income', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 32 => [ + 'id' => 1525, + 'form_id' => 'HR3124', + 'form_title' => 'CPP Application Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -35576,12 +35330,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 114 => - array ( - 'id' => 1615, - 'form_id' => 'HR3228', - 'form_title' => 'Old Age Program Benefits Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 33 => [ + 'id' => 1526, + 'form_id' => 'HR3126', + 'form_title' => 'Family Maintenance Transfer Summary', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -35598,17 +35353,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 115 => - array ( - 'id' => 1616, - 'form_id' => 'HR3230', - 'form_title' => 'Employment-Related Obligations - Non-Compliance', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 34 => [ + 'id' => 1527, + 'form_id' => 'HR3127', + 'form_title' => 'Change of Address Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -35620,17 +35376,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 116 => - array ( - 'id' => 1617, - 'form_id' => 'HR3233', - 'form_title' => 'First Appointment Other Appointment Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 35 => [ + 'id' => 1528, + 'form_id' => 'HR3128', + 'form_title' => 'Persons with Persistent Multiple Barriers Assessment - Couple Approval Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -35642,17 +35399,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 117 => - array ( - 'id' => 1618, - 'form_id' => 'HR3236', - 'form_title' => 'Second Appointment Other Appointment Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 36 => [ + 'id' => 1529, + 'form_id' => 'HR3129', + 'form_title' => 'Persons with Persistent Multiple Barriers Assessment - Single Approval Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -35664,12 +35422,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 118 => - array ( - 'id' => 1619, - 'form_id' => 'HR3239', - 'form_title' => 'Diet Supplement Denial Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 37 => [ + 'id' => 1530, + 'form_id' => 'HR3130', + 'form_title' => 'Persons with Persistent Multiple Barriers Assessment - Single Approval Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -35686,12 +35445,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 119 => - array ( - 'id' => 1620, - 'form_id' => 'HR3241', - 'form_title' => 'PPMB Approval Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 38 => [ + 'id' => 1531, + 'form_id' => 'HR3131', + 'form_title' => 'Project/Initiative Overview Document', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -35708,15 +35468,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 120 => - array ( - 'id' => 1621, - 'form_id' => 'HR3242', - 'form_title' => 'PPMB Approval Letter - Single w/ Child', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 39 => [ + 'id' => 1532, + 'form_id' => 'HR3132', + 'form_title' => 'Project Concept', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -35726,21 +35487,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 121 => - array ( - 'id' => 1622, - 'form_id' => 'HR3243', - 'form_title' => 'PPMB Approval - Married', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 40 => [ + 'id' => 1533, + 'form_id' => 'HR3133', + 'form_title' => 'Section 10 Denial Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -35752,17 +35514,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 122 => - array ( - 'id' => 1623, - 'form_id' => 'HR3244', - 'form_title' => 'PPMB Approval - Married', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 41 => [ + 'id' => 1534, + 'form_id' => 'HR3134', + 'form_title' => 'Job Safety Plan', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Resource Finder has a Livecycle form but there is an Orbeon form.', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -35770,16 +35533,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 123 => - array ( - 'id' => 1624, - 'form_id' => 'HR3245', - 'form_title' => 'PPMB Denial - New PPMB Applicant', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 42 => [ + 'id' => 1535, + 'form_id' => 'HR3135', + 'form_title' => 'Request for Support Services', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -35796,15 +35560,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 124 => - array ( - 'id' => 1625, - 'form_id' => 'HR3246', - 'form_title' => 'CPOD and LLSB Revised PPMB Denial (Applicant previously not PPMB)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 43 => [ + 'id' => 1536, + 'form_id' => 'HR3136', + 'form_title' => 'Confirmation of ID Letter', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -35814,19 +35579,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 125 => - array ( - 'id' => 1626, - 'form_id' => 'HR3247', - 'form_title' => 'PPMB Denial - No Contact', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 44 => [ + 'id' => 1537, + 'form_id' => 'HR3137', + 'form_title' => 'Copies of ID Letter', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -35836,16 +35602,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 126 => - array ( - 'id' => 1627, - 'form_id' => 'HR3248', - 'form_title' => 'Employment Plan First Appointment Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 45 => [ + 'id' => 1538, + 'form_id' => 'HR3138', + 'form_title' => 'Diet Supplement Review Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -35862,12 +35629,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 127 => - array ( - 'id' => 1628, - 'form_id' => 'HR3249', - 'form_title' => 'CPPD Information Letter when Applying for PWD', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 46 => [ + 'id' => 1539, + 'form_id' => 'HR3139', + 'form_title' => 'Diet Supllement Denial Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -35884,17 +35652,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 128 => - array ( - 'id' => 1629, - 'form_id' => 'HR3251', - 'form_title' => 'Confirmation of ID for Financial Institution', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 47 => [ + 'id' => 1540, + 'form_id' => 'HR3140', + 'form_title' => 'CPP Disability Application Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -35906,17 +35675,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 129 => - array ( - 'id' => 1630, - 'form_id' => 'HR3252', - 'form_title' => 'Headquarters Systems Access Add/Change/Deletions', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 48 => [ + 'id' => 1541, + 'form_id' => 'HR3141', + 'form_title' => 'CPP Disability Application Appointment Confirmation Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -35928,19 +35698,20 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 130 => - array ( - 'id' => 1631, - 'form_id' => 'HR3253', - 'form_title' => 'Employee Emergency Contact/Medical Information', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 49 => [ + 'id' => 1542, + 'form_id' => 'HR3142', + 'form_title' => 'CPP Disability Application Telephone Appointment Confirmation Letter', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Previously SD3253, ADO1749 migrate to Orbeon', + 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, - 'form_frequency_id' => 3, - 'form_reach_id' => 2, + 'decommissioned' => true, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, @@ -35950,17 +35721,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 131 => - array ( - 'id' => 1632, - 'form_id' => 'HR3254', - 'form_title' => 'Direct Deposit Template Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 50 => [ + 'id' => 1543, + 'form_id' => 'HR3144', + 'form_title' => 'CPP Early Retirement Appointment Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -35972,12 +35744,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 132 => - array ( - 'id' => 1633, - 'form_id' => 'HR3255', - 'form_title' => 'Equipment and Assistive Technology Initative Consent', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 51 => [ + 'id' => 1544, + 'form_id' => 'HR3145', + 'form_title' => 'CPP Early Retirement Telephone Appointment Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -35994,12 +35767,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 133 => - array ( - 'id' => 1634, - 'form_id' => 'HR3256', - 'form_title' => 'Bridging Employment Program Eligibility Application and Consent', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 52 => [ + 'id' => 1545, + 'form_id' => 'HR3146', + 'form_title' => 'Confirmation of Employment Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -36016,12 +35790,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 134 => - array ( - 'id' => 1635, - 'form_id' => 'HR3257', - 'form_title' => 'Business Continuity Plan February 2009 Edition', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 53 => [ + 'id' => 1546, + 'form_id' => 'HR3147', + 'form_title' => 'FMEP Consent to Release Information', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -36038,17 +35813,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 135 => - array ( - 'id' => 1636, - 'form_id' => 'HR3258', - 'form_title' => 'Questionnaire and Acceptance of Terms', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 54 => [ + 'id' => 1547, + 'form_id' => 'HR3148', + 'form_title' => 'Notice to Child Support Recalculation Service', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -36060,17 +35836,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 136 => - array ( - 'id' => 1637, - 'form_id' => 'HR3259', - 'form_title' => 'Assets in Excess Pending PWD Designation', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 55 => [ + 'id' => 1825, + 'form_id' => 'HR3575', + 'form_title' => 'Reserved for ELMSD', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -36082,17 +35859,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 137 => - array ( - 'id' => 1638, - 'form_id' => 'HR3260', - 'form_title' => 'Assets in Excess Pening PWD Designation (60 Days)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 56 => [ + 'id' => 1548, + 'form_id' => 'HR3149', + 'form_title' => 'Template Letter Initiation and Approval Request', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -36104,17 +35882,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 138 => - array ( - 'id' => 1639, - 'form_id' => 'HR3261', - 'form_title' => 'PWD Asset File Closure Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 57 => [ + 'id' => 1549, + 'form_id' => 'HR3150', + 'form_title' => 'Confirmation of Eligibility for Travel Supplement', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -36126,17 +35905,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 139 => - array ( - 'id' => 1640, - 'form_id' => 'HR3262', - 'form_title' => 'PPMB No Contact � Missed Appointment', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 58 => [ + 'id' => 1550, + 'form_id' => 'HR3151', + 'form_title' => 'Spousal Eligibility Allowance Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -36148,12 +35928,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 140 => - array ( - 'id' => 1641, - 'form_id' => 'HR3263', - 'form_title' => 'Consent to Disclosure of Information', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 59 => [ + 'id' => 1551, + 'form_id' => 'HR3152', + 'form_title' => 'Unable to Identify as Client of Senior Supplement Program', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -36170,12 +35951,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 141 => - array ( - 'id' => 1642, - 'form_id' => 'HR3264', - 'form_title' => 'Assignment of Maintenance Rights Income Request Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 60 => [ + 'id' => 1552, + 'form_id' => 'HR3153', + 'form_title' => 'Deceased Final Payment - Senior Supplement Program Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -36192,17 +35974,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 142 => - array ( - 'id' => 1643, - 'form_id' => 'HR3268', - 'form_title' => 'Sole Recipient with a Child with a Physical or Mental Condition - No Longer Eligible Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 61 => [ + 'id' => 1553, + 'form_id' => 'HR3154', + 'form_title' => 'Senior Supplement Approval - Couple Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -36214,17 +35997,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 143 => - array ( - 'id' => 1644, - 'form_id' => 'HR3269', - 'form_title' => 'Adaptive Technology Summary Report', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 62 => [ + 'id' => 1554, + 'form_id' => 'HR3155', + 'form_title' => 'Senior Supplement Approval - Single Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -36236,17 +36020,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 144 => - array ( - 'id' => 1645, - 'form_id' => 'HR3270', - 'form_title' => 'Labour Market Agreement (LMA) Equipment and Assistive Technology Initiative Application', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 63 => [ + 'id' => 1555, + 'form_id' => 'HR3156', + 'form_title' => 'Senior Supplement Denial - Couple Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -36258,17 +36043,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 145 => - array ( - 'id' => 1646, - 'form_id' => 'HR3272', - 'form_title' => 'Personal Supports Program Personal Strategy', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 64 => [ + 'id' => 1556, + 'form_id' => 'HR3157', + 'form_title' => 'Senior Supplement Denial - Single Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -36280,15 +36066,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 146 => - array ( - 'id' => 1647, - 'form_id' => 'HR3273', - 'form_title' => 'FMEP Initial Assessment Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 65 => [ + 'id' => 1557, + 'form_id' => 'HR3158', + 'form_title' => 'Senior Supplement Denial - Couple Letter', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Not on Loop/Resource Finder or ICM tabs', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => true, 'form_frequency_id' => NULL, @@ -36302,15 +36089,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 147 => - array ( - 'id' => 1648, - 'form_id' => 'HR3275', - 'form_title' => 'Assignment of Rights Appointment Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 66 => [ + 'id' => 1558, + 'form_id' => 'HR3159', + 'form_title' => 'Community Assistance Program Transition Letter', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Not on Loop/Resource Finder or ICM tabs', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => true, 'form_frequency_id' => NULL, @@ -36324,15 +36112,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 148 => - array ( - 'id' => 1649, - 'form_id' => 'HR3284', - 'form_title' => 'DNA Test Results Respondent Contact Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 67 => [ + 'id' => 1559, + 'form_id' => 'HR3160', + 'form_title' => 'Community Assistance Program Transition Letter - Follow-up', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Not on Loop/Resource Finder or ICM tabs', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => true, 'form_frequency_id' => NULL, @@ -36346,34 +36135,36 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 149 => - array ( - 'id' => 1650, - 'form_id' => 'HR3285', - 'form_title' => 'DNA Test Request Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 68 => [ + 'id' => 1560, + 'form_id' => 'HR3161', + 'form_title' => 'Request For Payor Information', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Not on Loop/Resource Finder or ICM tabs', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 150 => - array ( - 'id' => 1651, - 'form_id' => 'HR3286', - 'form_title' => 'Eligibility Review Non-Compliance Denial', + 'icm_non_interactive' => true, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 69 => [ + 'id' => 1561, + 'form_id' => 'HR3165', + 'form_title' => 'Sponsorship Default - Risk Assessment Safety Sponsored Relative', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -36390,15 +36181,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 151 => - array ( - 'id' => 1652, - 'form_id' => 'HR3287', - 'form_title' => 'DNA Test Results Contact Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 70 => [ + 'id' => 1562, + 'form_id' => 'HR3166', + 'form_title' => 'Sponsorship Default - Risk Assessment Safety Sponsor', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Not on Loop/Resource Finder or ICM tabs', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => true, 'form_frequency_id' => NULL, @@ -36412,17 +36204,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 152 => - array ( - 'id' => 1653, - 'form_id' => 'HR3288', - 'form_title' => 'Staffing Request', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 71 => [ + 'id' => 1563, + 'form_id' => 'HR3167', + 'form_title' => 'Senior Supplement Eligibility Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -36434,15 +36227,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 153 => - array ( - 'id' => 1654, - 'form_id' => 'HR3289', - 'form_title' => 'FMEP Maintenance Payments Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 72 => [ + 'id' => 1564, + 'form_id' => 'HR3168', + 'form_title' => 'Senior Supplement Welcome Letter', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Not on Loop/Resource Finder or ICM tabs', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => true, 'form_frequency_id' => NULL, @@ -36456,15 +36250,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 154 => - array ( - 'id' => 1655, - 'form_id' => 'HR3290', - 'form_title' => 'FMEP Discrepancy Report Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 73 => [ + 'id' => 1565, + 'form_id' => 'HR3169', + 'form_title' => 'Bond of Indemnity Cheque Letter - Senior Supplement - Cashed', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Not on Loop/Resource Finder or ICM tabs', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => true, 'form_frequency_id' => NULL, @@ -36478,15 +36273,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 155 => - array ( - 'id' => 1656, - 'form_id' => 'HR3291', - 'form_title' => 'FMEP Order Review Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 74 => [ + 'id' => 1566, + 'form_id' => 'HR3170', + 'form_title' => 'Senior Supplement - Old Age Security Reassessment Letter', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Not on Loop/Resource Finder or ICM tabs', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => true, 'form_frequency_id' => NULL, @@ -36500,15 +36296,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 156 => - array ( - 'id' => 1657, - 'form_id' => 'HR3292', - 'form_title' => 'FMEP File Review Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 75 => [ + 'id' => 1567, + 'form_id' => 'HR3171', + 'form_title' => 'Senior Supplement - Old Age Security Reassessment Letter - Denial', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Not on Loop/Resource Finder or ICM tabs', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => true, 'form_frequency_id' => NULL, @@ -36522,12 +36319,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 157 => - array ( - 'id' => 1658, - 'form_id' => 'HR3293', - 'form_title' => 'FMEP Dependent Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 76 => [ + 'id' => 1568, + 'form_id' => 'HR3172', + 'form_title' => 'Senior Supplement - T5007 Revised Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -36544,15 +36342,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 158 => - array ( - 'id' => 1659, - 'form_id' => 'HR3294', - 'form_title' => 'FMEP Action Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 77 => [ + 'id' => 1569, + 'form_id' => 'HR3173', + 'form_title' => 'Senior Supplement - No T5007 Letter', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Not on Loop/Resource Finder or ICM tabs', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => true, 'form_frequency_id' => NULL, @@ -36566,15 +36365,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 159 => - array ( - 'id' => 1660, - 'form_id' => 'HR3295', - 'form_title' => 'FMEP No Action Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 78 => [ + 'id' => 1570, + 'form_id' => 'HR3174', + 'form_title' => 'Senior Supplement - Cheque Error', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Not on Loop/Resource Finder or ICM tabs', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => true, 'form_frequency_id' => NULL, @@ -36588,12 +36388,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 160 => - array ( - 'id' => 1661, - 'form_id' => 'HR3297', - 'form_title' => 'FMEP Change in Income - Respondent', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 79 => [ + 'id' => 1571, + 'form_id' => 'HR3175', + 'form_title' => 'Senior Supplment - Bond of Indemnity Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -36610,12 +36411,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 161 => - array ( - 'id' => 1662, - 'form_id' => 'HR3299', - 'form_title' => 'Publication Request', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 80 => [ + 'id' => 1572, + 'form_id' => 'HR3176', + 'form_title' => 'Senior Supplment - Bond of Indemnity Not Signed Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -36632,12 +36434,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 162 => - array ( - 'id' => 1663, - 'form_id' => 'HR3300', - 'form_title' => 'Communication Request', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 81 => [ + 'id' => 1573, + 'form_id' => 'HR3177', + 'form_title' => 'Senior Supplment - Not Elgible Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -36654,17 +36457,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 163 => - array ( - 'id' => 1664, - 'form_id' => 'HR3303', - 'form_title' => 'Portable Device Usage Agreement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 82 => [ + 'id' => 1574, + 'form_id' => 'HR3178', + 'form_title' => 'Senior Supplement - Cheque Cashed Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -36676,17 +36480,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 164 => - array ( - 'id' => 1665, - 'form_id' => 'HR3304', - 'form_title' => 'Maintenance Order File Review', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 83 => [ + 'id' => 1575, + 'form_id' => 'HR3179', + 'form_title' => 'OHS Program Review', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'No Loop', + 'notes' => 'Resource finder contains a Livecycle form but there exists an Orbeon version', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -36694,21 +36499,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 165 => - array ( - 'id' => 1666, - 'form_id' => 'HR3305', - 'form_title' => '2011 BS Bus Pass PWD Application', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 84 => [ + 'id' => 1576, + 'form_id' => 'HR3180', + 'form_title' => 'Acknowledgement of Management Responsibility for Protection of Information and Information Technology Agreement', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -36720,17 +36526,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 166 => - array ( - 'id' => 1667, - 'form_id' => 'HR3306', - 'form_title' => '2011 BS Bus Pass PWD Application', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 85 => [ + 'id' => 1577, + 'form_id' => 'HR3181', + 'form_title' => 'Consent to Release Information (EPPD)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -36742,17 +36549,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 167 => - array ( - 'id' => 1668, - 'form_id' => 'HR3307', - 'form_title' => 'Support Request', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 86 => [ + 'id' => 1578, + 'form_id' => 'HR3182', + 'form_title' => 'Explanation of Information Collected for Participation in Quit Smoking Now!', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -36764,12 +36572,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 168 => - array ( - 'id' => 1669, - 'form_id' => 'HR3308', - 'form_title' => 'Labour Market Agreement (LMA) Request for Goods and/or Services', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 87 => [ + 'id' => 1579, + 'form_id' => 'HR3184', + 'form_title' => 'Screening Consent', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -36786,17 +36595,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 169 => - array ( - 'id' => 1670, - 'form_id' => 'HR3310', - 'form_title' => 'Criminal Code Conviction Letter - Sanction', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 88 => [ + 'id' => 1580, + 'form_id' => 'HR3186', + 'form_title' => 'MSD IT Asset Confirmation Disposition', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -36804,16 +36614,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 170 => - array ( - 'id' => 1671, - 'form_id' => 'HR3311', - 'form_title' => 'Statute Conviction Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 89 => [ + 'id' => 1581, + 'form_id' => 'HR3187', + 'form_title' => 'Aboriginal Self Identifier', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -36825,17 +36636,18 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => true, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 171 => - array ( - 'id' => 1672, - 'form_id' => 'HR3312', - 'form_title' => 'EAPWD Act Conviction Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 90 => [ + 'id' => 1582, + 'form_id' => 'HR3188', + 'form_title' => 'Blackberry Device Usage Agreement', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -36852,34 +36664,36 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 172 => - array ( - 'id' => 1673, - 'form_id' => 'HR3313', - 'form_title' => 'Court Judgement Sanction Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 91 => [ + 'id' => 1583, + 'form_id' => 'HR3189A', + 'form_title' => 'Consent to Disclosure of Information Service Authorization', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Clients that are SR. language barriers, physical barrier relative acting on their behalf', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, + 'form_reach_id' => 1, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 173 => - array ( - 'id' => 1674, - 'form_id' => 'HR3314', - 'form_title' => 'PWD Court Judgement Sanction Letter', + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 92 => [ + 'id' => 1584, + 'form_id' => 'HR3190', + 'form_title' => 'Bus Pass Program for Applicants 65 Years or Over Living in Canada Less Than 10 Years', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -36896,17 +36710,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 174 => - array ( - 'id' => 1675, - 'form_id' => 'HR3316', - 'form_title' => '2010 Bus Pass Eligibility Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 93 => [ + 'id' => 1585, + 'form_id' => 'HR3192', + 'form_title' => 'BCEA Self Employment Program Invoice Summary', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -36918,17 +36733,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 175 => - array ( - 'id' => 1676, - 'form_id' => 'HR3318B', - 'form_title' => 'Original Ministry Decision - PWD', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 94 => [ + 'id' => 1586, + 'form_id' => 'HR3193', + 'form_title' => 'BCEA Self Employment Program Business Type Summary', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -36940,39 +36756,41 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 176 => - array ( - 'id' => 1677, - 'form_id' => 'HR3319', - 'form_title' => 'Admin and Discharge Form', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 95 => [ + 'id' => 1587, + 'form_id' => 'HR3194', + 'form_title' => '1st CRA Appointment Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => true, + 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 177 => - array ( - 'id' => 1678, - 'form_id' => 'HR3321', - 'form_title' => 'Prepaid Airfare - Monthly Reconciliation Summary', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 96 => [ + 'id' => 1588, + 'form_id' => 'HR3195', + 'form_title' => '2nd CRV Appointment Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -36984,15 +36802,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 178 => - array ( - 'id' => 1679, - 'form_id' => 'HR3322', - 'form_title' => 'Life Threatening Health Needs Request - Process Requirements', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 97 => [ + 'id' => 1589, + 'form_id' => 'HR3201', + 'form_title' => 'Ministry Investigator Conviction Denial Letter', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -37002,21 +36821,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 179 => - array ( - 'id' => 1680, - 'form_id' => 'HR3327', - 'form_title' => 'Hotel Accomodation Confirmation', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 98 => [ + 'id' => 1590, + 'form_id' => 'HR3202', + 'form_title' => 'Conviction Sanction Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -37028,17 +36848,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 180 => - array ( - 'id' => 1681, - 'form_id' => 'HR3328', - 'form_title' => 'Canada Revenue Agency Authorization', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 99 => [ + 'id' => 1591, + 'form_id' => 'HR3203', + 'form_title' => 'Criminal Code Conviction Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -37050,17 +36871,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 181 => - array ( - 'id' => 1682, - 'form_id' => 'HR3330', - 'form_title' => '3rd Party Database Usage Agreement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 100 => [ + 'id' => 1592, + 'form_id' => 'HR3204', + 'form_title' => '2009 Bus Pass Income Tax Letter', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not on Resource Finder | not in ICM', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -37072,17 +36894,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 182 => - array ( - 'id' => 1683, - 'form_id' => 'HR3331', - 'form_title' => 'Eligibility Review for Income Assistance for Child in the Home of a Relative', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 101 => [ + 'id' => 1593, + 'form_id' => 'HR3205', + 'form_title' => 'MEIA Security Incident Tracking Summary', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -37094,17 +36917,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 183 => - array ( - 'id' => 1684, - 'form_id' => 'HR3332', - 'form_title' => 'Outstanding Warrants Check', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 102 => [ + 'id' => 1594, + 'form_id' => 'HR3206', + 'form_title' => 'Telecommunications Persoal Usage Payment', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -37115,13 +36939,14 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 184 => - array ( - 'id' => 1685, - 'form_id' => 'HR3333', - 'form_title' => 'Non-Government Device Access Agreement (NDAA)', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 103 => [ + 'id' => 1595, + 'form_id' => 'HR3207', + 'form_title' => 'Request for Legal Opinion ', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -37138,15 +36963,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 185 => - array ( - 'id' => 1686, - 'form_id' => 'HR3334', - 'form_title' => 'Notifying Client with Outstanding Warrant', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 104 => [ + 'id' => 1596, + 'form_id' => 'HR3207A', + 'form_title' => 'Request for Legal Opinion Legislation, Litigation and Appeals Branch', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD. Is this form actually HR3207 - Request for Legal Opinion? ', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -37156,21 +36982,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 186 => - array ( - 'id' => 1687, - 'form_id' => 'HR3335', - 'form_title' => 'Request for Client Consent to Verify Warrant Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 105 => [ + 'id' => 1597, + 'form_id' => 'HR3208', + 'form_title' => 'Food Voucher Supplier Instruction Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -37182,12 +37009,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 187 => - array ( - 'id' => 1688, - 'form_id' => 'HR3336', - 'form_title' => 'MCFD/SDPR Information Request', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 106 => [ + 'id' => 1598, + 'form_id' => 'HR3209', + 'form_title' => 'Denial of CIHR (not screening)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -37204,15 +37032,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 188 => - array ( - 'id' => 1689, - 'form_id' => 'HR3337', - 'form_title' => 'IMB Expenditure Request', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 107 => [ + 'id' => 1599, + 'form_id' => 'HR3210', + 'form_title' => 'Denial of CIHR (screening)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -37222,19 +37051,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 189 => - array ( - 'id' => 1690, - 'form_id' => 'HR3338', - 'form_title' => 'FASB Collection Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 108 => [ + 'id' => 1600, + 'form_id' => 'HR3211', + 'form_title' => 'CIHR Application Denied or CIHR Assistance Discontinued because of evidence of risk', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Form template is housed at BC Mail. This form is NOT connected to ICM; To update: Email changes in PDF and TIFF format to CRUISER@gov.bc.ca', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -37248,61 +37078,64 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 190 => - array ( - 'id' => 1691, - 'form_id' => 'HR3339', - 'form_title' => 'Authorization and request to obtain/search court documents (non-maintenance)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 109 => [ + 'id' => 1601, + 'form_id' => 'HR3212', + 'form_title' => 'Lateral Transfer Request', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => true, + 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 191 => - array ( - 'id' => 1692, - 'form_id' => 'HR3340', - 'form_title' => 'Consent for Outstanding Warrant Verification', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 110 => [ + 'id' => 1602, + 'form_id' => 'HR3213', + 'form_title' => 'HeadQuarters Mailing List Executive Approval Form', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => true, + 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 192 => - array ( - 'id' => 1693, - 'form_id' => 'HR3345', - 'form_title' => 'CPPD Information Letter for Declined PWD Applicants', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 111 => [ + 'id' => 1603, + 'form_id' => 'HR3214', + 'form_title' => 'Regional Mailing List Executive Approval Form', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -37314,15 +37147,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 193 => - array ( - 'id' => 1694, - 'form_id' => 'HR3346', - 'form_title' => 'Consent to Release Information', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 112 => [ + 'id' => 1604, + 'form_id' => 'HR3215', + 'form_title' => 'Mail Distribuion Target Group Checklist', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -37332,23 +37166,24 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 194 => - array ( - 'id' => 1695, - 'form_id' => 'HR3347', - 'form_title' => 'Warrants 2 Month Warning Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 113 => [ + 'id' => 1605, + 'form_id' => 'HR3216', + 'form_title' => 'School Start-Up Confirmation', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, + 'form_frequency_id' => 1, + 'form_reach_id' => 1, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, @@ -37358,12 +37193,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 195 => - array ( - 'id' => 1696, - 'form_id' => 'HR3348', - 'form_title' => 'Warrants Ineligibility Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 114 => [ + 'id' => 1606, + 'form_id' => 'HR3217', + 'form_title' => 'Incomplete HR0081 Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -37380,15 +37216,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 196 => - array ( - 'id' => 1697, - 'form_id' => 'HR3349', - 'form_title' => 'Warrants 6 Month Warning Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 115 => [ + 'id' => 1607, + 'form_id' => 'HR3219', + 'form_title' => 'Information to New BCEA Client Letter', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -37398,16 +37235,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 197 => - array ( - 'id' => 1698, - 'form_id' => 'HR3350', - 'form_title' => 'Request for External Hiring', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 116 => [ + 'id' => 1608, + 'form_id' => 'HR3220', + 'form_title' => 'Information to New Persons with Disabilities Designation Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -37424,17 +37262,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 198 => - array ( - 'id' => 1699, - 'form_id' => 'HR3351F', - 'form_title' => 'Section 25 Referral (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 117 => [ + 'id' => 1609, + 'form_id' => 'HR3221', + 'form_title' => 'Reconsideration Approved Cover Letter', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'WorkBC Extranet', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -37442,19 +37281,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 199 => - array ( - 'id' => 1700, - 'form_id' => 'HR3352E', - 'form_title' => 'Employer Application - Wage Subsidy', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 118 => [ + 'id' => 1610, + 'form_id' => 'HR3222', + 'form_title' => 'Reconsideration Denied Cover Letter', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -37464,19 +37304,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 200 => - array ( - 'id' => 1701, - 'form_id' => 'HR3352F', - 'form_title' => 'Employer Application - Wage Subsidy (French)', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 119 => [ + 'id' => 1611, + 'form_id' => 'HR3223', + 'form_title' => 'Reconsideration Time Limits Exceeded Letter', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -37486,16 +37327,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 201 => - array ( - 'id' => 1702, - 'form_id' => 'HR3353F', - 'form_title' => 'Essential Financial Supports (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 120 => [ + 'id' => 1612, + 'form_id' => 'HR3224', + 'form_title' => 'Earned and Unearned Income', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -37512,19 +37354,20 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 202 => - array ( - 'id' => 1703, - 'form_id' => 'HR3354F', - 'form_title' => 'Client Consent to Release Information (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 121 => [ + 'id' => 1613, + 'form_id' => 'HR3225', + 'form_title' => 'Family with Child with a Disability', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, + 'form_reach_id' => 2, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, @@ -37534,12 +37377,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 203 => - array ( - 'id' => 1704, - 'form_id' => 'HR3355F', - 'form_title' => 'Training - Client Authorization to Pay Institution Directly (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 122 => [ + 'id' => 1614, + 'form_id' => 'HR3227', + 'form_title' => 'PWD Earned and Unearned Income', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -37556,17 +37400,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 204 => - array ( - 'id' => 1705, - 'form_id' => 'HR3356F', - 'form_title' => 'Client Application - Wage Subsidy & JCP (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 123 => [ + 'id' => 1615, + 'form_id' => 'HR3228', + 'form_title' => 'Old Age Program Benefits Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -37578,12 +37423,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 205 => - array ( - 'id' => 1706, - 'form_id' => 'HR3357F', - 'form_title' => 'Authorization to Quit (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 124 => [ + 'id' => 1616, + 'form_id' => 'HR3230', + 'form_title' => 'Employment-Related Obligations - Non-Compliance', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -37600,12 +37446,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 206 => - array ( - 'id' => 1707, - 'form_id' => 'HR3358F', - 'form_title' => 'Apprentice Application and Agreement (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 125 => [ + 'id' => 1617, + 'form_id' => 'HR3233', + 'form_title' => 'First Appointment Other Appointment Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -37622,12 +37469,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 207 => - array ( - 'id' => 1708, - 'form_id' => 'HR3359AE', - 'form_title' => 'Client Eligibility Check', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 126 => [ + 'id' => 1618, + 'form_id' => 'HR3236', + 'form_title' => 'Second Appointment Other Appointment Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -37643,18 +37491,19 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 208 => - array ( - 'id' => 1709, - 'form_id' => 'HR3360F', - 'form_title' => 'Debt Assignment Agreement (French)', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 127 => [ + 'id' => 1619, + 'form_id' => 'HR3239', + 'form_title' => 'Diet Supplement Denial Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -37666,12 +37515,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 209 => - array ( - 'id' => 1710, - 'form_id' => 'HR3361F', - 'form_title' => 'Authorization to Collect Information from Training Institution (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 128 => [ + 'id' => 1620, + 'form_id' => 'HR3241', + 'form_title' => 'PPMB Approval Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -37688,15 +37538,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 210 => - array ( - 'id' => 1711, - 'form_id' => 'HR3362F', - 'form_title' => 'Agreement Self-employment (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 129 => [ + 'id' => 1621, + 'form_id' => 'HR3242', + 'form_title' => 'PPMB Approval Letter - Single w/ Child', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD. Has this been replaced with HR3241 - PPMB Approval? ', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -37706,19 +37557,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 211 => - array ( - 'id' => 1712, - 'form_id' => 'HR3363F', - 'form_title' => 'Agreement Training (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 130 => [ + 'id' => 1622, + 'form_id' => 'HR3243', + 'form_title' => 'PPMB Approval - Married', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD. Has this been replaced with HR3241 - PPMB Approval? ', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -37728,21 +37580,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 212 => - array ( - 'id' => 1713, - 'form_id' => 'HR3364F', - 'form_title' => 'Client Financial Agreement Wage Subsidy (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 131 => [ + 'id' => 1623, + 'form_id' => 'HR3244', + 'form_title' => 'PPMB Approval - Married', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -37754,12 +37607,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 213 => - array ( - 'id' => 1714, - 'form_id' => 'HR3365F', - 'form_title' => 'Client Application - Training (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 132 => [ + 'id' => 1624, + 'form_id' => 'HR3245', + 'form_title' => 'PPMB Denial - New PPMB Applicant', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -37776,15 +37630,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 214 => - array ( - 'id' => 1715, - 'form_id' => 'HR3366F', - 'form_title' => 'Client Application - Self Employment (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 133 => [ + 'id' => 1625, + 'form_id' => 'HR3246', + 'form_title' => 'CPOD and LLSB Revised PPMB Denial (Applicant previously not PPMB)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD. Has this been replaced with HR3245 PPMB Denial New PPMB Applicant? ', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -37794,19 +37649,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 215 => - array ( - 'id' => 1716, - 'form_id' => 'HR3367E', - 'form_title' => 'Employment Readiness Information Questionnaire', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 134 => [ + 'id' => 1626, + 'form_id' => 'HR3247', + 'form_title' => 'PPMB Denial - No Contact', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -37816,16 +37672,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 216 => - array ( - 'id' => 1717, - 'form_id' => 'HR3367F', - 'form_title' => 'Employment Readiness Information Questionnaire (French)', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 135 => [ + 'id' => 1627, + 'form_id' => 'HR3248', + 'form_title' => 'Employment Plan First Appointment Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -37842,12 +37699,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 217 => - array ( - 'id' => 1718, - 'form_id' => 'HR3368F', - 'form_title' => 'Agreement Unpaid work experience placement (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 136 => [ + 'id' => 1628, + 'form_id' => 'HR3249', + 'form_title' => 'CPPD Information Letter when Applying for PWD', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -37864,12 +37722,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 218 => - array ( - 'id' => 1719, - 'form_id' => 'HR3369F', - 'form_title' => 'Agreement Employer Wage Subsidy (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 137 => [ + 'id' => 1629, + 'form_id' => 'HR3251', + 'form_title' => 'Confirmation of ID for Financial Institution', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -37886,12 +37745,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 219 => - array ( - 'id' => 1720, - 'form_id' => 'HR3370F', - 'form_title' => 'Self Employment - Participant Monthly Report (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 138 => [ + 'id' => 1630, + 'form_id' => 'HR3252', + 'form_title' => 'Headquarters Systems Access Add/Change/Deletions', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -37908,34 +37768,36 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 220 => - array ( - 'id' => 1721, - 'form_id' => 'HR3371E', - 'form_title' => 'Wage Subsidy - File Content Checklist', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 139 => [ + 'id' => 1631, + 'form_id' => 'HR3253', + 'form_title' => 'Employee Emergency Contact/Medical Information', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Previously SD3253, ADO1749 migrate to Orbeon', 'fill_type_id' => NULL, 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, + 'form_frequency_id' => 3, + 'form_reach_id' => 2, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 221 => - array ( - 'id' => 1722, - 'form_id' => 'HR3372F', - 'form_title' => 'Direct Deposit Application (French)', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 140 => [ + 'id' => 1632, + 'form_id' => 'HR3254', + 'form_title' => 'Direct Deposit Template Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -37952,17 +37814,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 222 => - array ( - 'id' => 1723, - 'form_id' => 'HR3373E', - 'form_title' => 'Training - File Content Checklist', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 141 => [ + 'id' => 1826, + 'form_id' => 'HR3576', + 'form_title' => 'Reserved for ELMSD', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -37973,18 +37836,19 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 223 => - array ( - 'id' => 1724, - 'form_id' => 'HR3374E', - 'form_title' => 'Wage Subsidy - Employer Proposal Assessment and Recommendation', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 142 => [ + 'id' => 1633, + 'form_id' => 'HR3255', + 'form_title' => 'Equipment and Assistive Technology Initative Consent', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -37995,18 +37859,19 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 224 => - array ( - 'id' => 1725, - 'form_id' => 'HR3375E', - 'form_title' => 'Wage Subsidy - Monitoring Report', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 143 => [ + 'id' => 1634, + 'form_id' => 'HR3256', + 'form_title' => 'Bridging Employment Program Eligibility Application and Consent', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -38017,18 +37882,19 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 225 => - array ( - 'id' => 1726, - 'form_id' => 'HR3375F', - 'form_title' => 'Wage Subsidy - Monitoring Report (French)', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 144 => [ + 'id' => 1635, + 'form_id' => 'HR3257', + 'form_title' => 'Business Continuity Plan February 2009 Edition', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -38040,15 +37906,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 226 => - array ( - 'id' => 1727, - 'form_id' => 'HR3376E', - 'form_title' => 'Wage Subsidy - Employer Payment Claim', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 145 => [ + 'id' => 1636, + 'form_id' => 'HR3258', + 'form_title' => 'Questionnaire and Acceptance of Terms', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Not on Resource Finder', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -38061,13 +37928,14 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 227 => - array ( - 'id' => 1728, - 'form_id' => 'HR3376F', - 'form_title' => 'Wage Subsidy - Employer Payment Claim (French)', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 146 => [ + 'id' => 1637, + 'form_id' => 'HR3259', + 'form_title' => 'Assets in Excess Pending PWD Designation', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -38084,15 +37952,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 228 => - array ( - 'id' => 1729, - 'form_id' => 'HR3377E', - 'form_title' => 'Wage Subsidy / JCP - File Content Checklist', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 147 => [ + 'id' => 1638, + 'form_id' => 'HR3260', + 'form_title' => 'Assets in Excess Pening PWD Designation (60 Days)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -38102,16 +37971,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 229 => - array ( - 'id' => 1730, - 'form_id' => 'HR3378E', - 'form_title' => 'Self Employment - File Content Checklist', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 148 => [ + 'id' => 1639, + 'form_id' => 'HR3261', + 'form_title' => 'PWD Asset File Closure Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -38127,16 +37997,17 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 230 => - array ( - 'id' => 1731, - 'form_id' => 'HR3379F', - 'form_title' => 'Agreement JCP (French)', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 149 => [ + 'id' => 1640, + 'form_id' => 'HR3262', + 'form_title' => 'PPMB No Contact - Missed Appointment', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -38146,21 +38017,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 231 => - array ( - 'id' => 1732, - 'form_id' => 'HR3380F', - 'form_title' => 'Client Action Plan (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 150 => [ + 'id' => 1641, + 'form_id' => 'HR3263', + 'form_title' => 'Consent to Disclosure of Information', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -38172,17 +38044,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 232 => - array ( - 'id' => 1733, - 'form_id' => 'HR3381F', - 'form_title' => 'Application For Service Not Approved (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 151 => [ + 'id' => 1642, + 'form_id' => 'HR3264', + 'form_title' => 'Assignment of Maintenance Rights Income Request Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -38194,12 +38067,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 233 => - array ( - 'id' => 1734, - 'form_id' => 'HR3382F', - 'form_title' => 'Referral to Specialized Assessments (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 152 => [ + 'id' => 1643, + 'form_id' => 'HR3268', + 'form_title' => 'Sole Recipient with a Child with a Physical or Mental Condition - No Longer Eligible Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -38216,12 +38090,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 234 => - array ( - 'id' => 1735, - 'form_id' => 'HR3383F', - 'form_title' => 'Information Missing from Application (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 153 => [ + 'id' => 1644, + 'form_id' => 'HR3269', + 'form_title' => 'Adaptive Technology Summary Report', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -38238,15 +38113,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 235 => - array ( - 'id' => 1736, - 'form_id' => 'HR3384F', - 'form_title' => 'Application for Service Approved (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 154 => [ + 'id' => 1645, + 'form_id' => 'HR3270', + 'form_title' => 'Labour Market Agreement (LMA) Equipment and Assistive Technology Initiative Application', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -38256,19 +38132,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 236 => - array ( - 'id' => 1737, - 'form_id' => 'HR3385F', - 'form_title' => 'Contract Requirement - Receipt Required (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 155 => [ + 'id' => 1646, + 'form_id' => 'HR3272', + 'form_title' => 'Personal Supports Program Personal Strategy', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -38278,21 +38155,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 237 => - array ( - 'id' => 1738, - 'form_id' => 'HR3386F', - 'form_title' => 'Overpayment Established (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 156 => [ + 'id' => 1647, + 'form_id' => 'HR3273', + 'form_title' => 'FMEP Initial Assessment Letter', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not on Loop/Resource Finder or ICM tabs', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -38304,17 +38182,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 238 => - array ( - 'id' => 1739, - 'form_id' => 'HR3387F', - 'form_title' => 'Application Received Too early (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 157 => [ + 'id' => 1648, + 'form_id' => 'HR3275', + 'form_title' => 'Assignment of Rights Appointment Letter', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not on Loop/Resource Finder or ICM tabs', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -38326,17 +38205,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 239 => - array ( - 'id' => 1740, - 'form_id' => 'HR3388F', - 'form_title' => 'Termination of Agreement (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 158 => [ + 'id' => 1649, + 'form_id' => 'HR3284', + 'form_title' => 'DNA Test Results Respondent Contact Letter', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not on Loop/Resource Finder or ICM tabs', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -38348,17 +38228,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 240 => - array ( - 'id' => 1741, - 'form_id' => 'HR3389F', - 'form_title' => 'Letter to Trustee: Participant in Bankruptcy (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 159 => [ + 'id' => 1650, + 'form_id' => 'HR3285', + 'form_title' => 'DNA Test Request Letter', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not on Loop/Resource Finder or ICM tabs', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -38370,17 +38251,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 241 => - array ( - 'id' => 1742, - 'form_id' => 'HR3390F', - 'form_title' => 'Appointment Reminder (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 160 => [ + 'id' => 1651, + 'form_id' => 'HR3286', + 'form_title' => 'Eligibility Review Non-Compliance Denial', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -38392,17 +38274,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 242 => - array ( - 'id' => 1743, - 'form_id' => 'HR3391F', - 'form_title' => 'Case Management File Closure: To client (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 161 => [ + 'id' => 1652, + 'form_id' => 'HR3287', + 'form_title' => 'DNA Test Results Contact Letter', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not on Loop/Resource Finder or ICM tabs', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -38414,12 +38297,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 243 => - array ( - 'id' => 1744, - 'form_id' => 'HR3392F', - 'form_title' => 'Case Management File Closure: To Agency (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 162 => [ + 'id' => 1653, + 'form_id' => 'HR3288', + 'form_title' => 'Staffing Request', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -38436,17 +38320,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 244 => - array ( - 'id' => 1745, - 'form_id' => 'HR3393F', - 'form_title' => 'Additional Information for Alternative Funder (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 163 => [ + 'id' => 1654, + 'form_id' => 'HR3289', + 'form_title' => 'FMEP Maintenance Payments Letter', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not on Loop/Resource Finder or ICM tabs', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -38458,17 +38343,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 245 => - array ( - 'id' => 1746, - 'form_id' => 'HR3394F', - 'form_title' => 'Letter to External Source - Additional Information Required (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 164 => [ + 'id' => 1655, + 'form_id' => 'HR3290', + 'form_title' => 'FMEP Discrepancy Report Letter', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not on Loop/Resource Finder or ICM tabs', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -38480,17 +38366,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 246 => - array ( - 'id' => 1747, - 'form_id' => 'HR3396F', - 'form_title' => 'Letter to External Source - Verification of Information (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 165 => [ + 'id' => 1656, + 'form_id' => 'HR3291', + 'form_title' => 'FMEP Order Review Letter', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not on Loop/Resource Finder or ICM tabs', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -38502,17 +38389,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 247 => - array ( - 'id' => 1748, - 'form_id' => 'HR3397F', - 'form_title' => 'ATQ Approved (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 166 => [ + 'id' => 1657, + 'form_id' => 'HR3292', + 'form_title' => 'FMEP File Review Letter', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not on Loop/Resource Finder or ICM tabs', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -38524,17 +38412,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 248 => - array ( - 'id' => 1749, - 'form_id' => 'HR3398F', - 'form_title' => 'ATQ Denied (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 167 => [ + 'id' => 1658, + 'form_id' => 'HR3293', + 'form_title' => 'FMEP Dependent Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -38546,17 +38435,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 249 => - array ( - 'id' => 1750, - 'form_id' => 'HR3399F', - 'form_title' => 'Template Correspondence (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 168 => [ + 'id' => 1659, + 'form_id' => 'HR3294', + 'form_title' => 'FMEP Action Letter', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not on Loop/Resource Finder or ICM tabs', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -38568,17 +38458,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 250 => - array ( - 'id' => 1751, - 'form_id' => 'HR3400F', - 'form_title' => 'Letter to Self Employment Clients (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 169 => [ + 'id' => 1660, + 'form_id' => 'HR3295', + 'form_title' => 'FMEP No Action Letter', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not on Loop/Resource Finder or ICM tabs', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -38590,17 +38481,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 251 => - array ( - 'id' => 1752, - 'form_id' => 'HR3450F', - 'form_title' => 'ESC Workshop Tracking Form (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 170 => [ + 'id' => 1661, + 'form_id' => 'HR3297', + 'form_title' => 'FMEP Change in Income - Respondent', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -38612,17 +38504,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 252 => - array ( - 'id' => 1753, - 'form_id' => 'HR3451E', - 'form_title' => 'ESC Workshop Client Registration Form', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 171 => [ + 'id' => 1662, + 'form_id' => 'HR3299', + 'form_title' => 'Publication Request', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -38633,18 +38526,19 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 253 => - array ( - 'id' => 1754, - 'form_id' => 'HR3451F', - 'form_title' => 'ESC Workshop Client Registration Form (French)', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 172 => [ + 'id' => 1663, + 'form_id' => 'HR3300', + 'form_title' => 'Communication Request', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -38656,12 +38550,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 254 => - array ( - 'id' => 1755, - 'form_id' => 'HR3452F', - 'form_title' => 'Self Employment - Out of Area Travel Request (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 173 => [ + 'id' => 1664, + 'form_id' => 'HR3303', + 'form_title' => 'Portable Device Usage Agreement', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -38678,17 +38573,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 255 => - array ( - 'id' => 1756, - 'form_id' => 'HR3453F', - 'form_title' => 'Self Employment - Out of Area Travel Report (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 174 => [ + 'id' => 1665, + 'form_id' => 'HR3304', + 'form_title' => 'Maintenance Order File Review', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'No Loop', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -38700,17 +38596,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 256 => - array ( - 'id' => 1757, - 'form_id' => 'HR3454F', - 'form_title' => 'Self Employment - Business Concept Proposal (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 175 => [ + 'id' => 1666, + 'form_id' => 'HR3305', + 'form_title' => '2011 BS Bus Pass PWD Application', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -38722,17 +38619,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 257 => - array ( - 'id' => 1758, - 'form_id' => 'HR3455E', - 'form_title' => 'Assistive Devises Loan / Purchase Agreement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 176 => [ + 'id' => 1667, + 'form_id' => 'HR3306', + 'form_title' => '2011 BS Bus Pass PWD Application', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -38743,13 +38641,14 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 258 => - array ( - 'id' => 1759, - 'form_id' => 'HR3455F', - 'form_title' => 'Assistive Devises Loan / Purchase Agreement (French)', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 177 => [ + 'id' => 1668, + 'form_id' => 'HR3307', + 'form_title' => 'Support Request', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -38766,15 +38665,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 259 => - array ( - 'id' => 1760, - 'form_id' => 'HR3456F', - 'form_title' => 'Undertaking and Indemnity payment not received and Affadavit cheque or Direct Deposit (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 178 => [ + 'id' => 1669, + 'form_id' => 'HR3308', + 'form_title' => 'Labour Market Agreement (LMA) Request for Goods and/or Services', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -38784,21 +38684,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 260 => - array ( - 'id' => 1761, - 'form_id' => 'HR3458E', - 'form_title' => 'General Financial Agreement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 179 => [ + 'id' => 1670, + 'form_id' => 'HR3310', + 'form_title' => 'Criminal Code Conviction Letter - Sanction', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -38809,13 +38710,14 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 261 => - array ( - 'id' => 1762, - 'form_id' => 'HR3458F', - 'form_title' => 'General Financial Agreement (French)', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 180 => [ + 'id' => 1671, + 'form_id' => 'HR3311', + 'form_title' => 'Statute Conviction Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -38832,17 +38734,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 262 => - array ( - 'id' => 1763, - 'form_id' => 'HR3459F', - 'form_title' => 'Client Application - Job Starts / Job Seach Financial Supports (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 181 => [ + 'id' => 1672, + 'form_id' => 'HR3312', + 'form_title' => 'EAPWD Act Conviction Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -38854,15 +38757,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 263 => - array ( - 'id' => 1764, - 'form_id' => 'HR3460E', - 'form_title' => 'Apprentice Online Portal � Application for Support - NCM Apprentice', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 182 => [ + 'id' => 1673, + 'form_id' => 'HR3313', + 'form_title' => 'Court Judgement Sanction Letter', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -38872,21 +38776,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 264 => - array ( - 'id' => 1765, - 'form_id' => 'HR3467', - 'form_title' => 'Service Provider Extranet Information', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 183 => [ + 'id' => 1674, + 'form_id' => 'HR3314', + 'form_title' => 'PWD Court Judgement Sanction Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -38898,12 +38803,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 265 => - array ( - 'id' => 1766, - 'form_id' => 'HR3469', - 'form_title' => 'CPP Cheque hold letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 184 => [ + 'id' => 1675, + 'form_id' => 'HR3316', + 'form_title' => '2010 Bus Pass Eligibility Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -38920,15 +38826,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 266 => - array ( - 'id' => 1767, - 'form_id' => 'HR3471', - 'form_title' => 'Child Cared for Outside the Family Unit Notification and Confirmation', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 185 => [ + 'id' => 1676, + 'form_id' => 'HR3318B', + 'form_title' => 'Original Ministry Decision - PWD', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'CF3471 Used instead and posted to Resource Finder', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => true, 'form_frequency_id' => NULL, @@ -38942,12 +38849,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 267 => - array ( - 'id' => 1768, - 'form_id' => 'HR3476', - 'form_title' => 'IMM Information Required - First Request Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 186 => [ + 'id' => 1677, + 'form_id' => 'HR3319', + 'form_title' => 'Admin and Discharge Form', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -38959,17 +38867,18 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => true, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 268 => - array ( - 'id' => 1769, - 'form_id' => 'HR3478', - 'form_title' => 'OAS/GIS Eligibility Requirements Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 187 => [ + 'id' => 1678, + 'form_id' => 'HR3321', + 'form_title' => 'Prepaid Airfare - Monthly Reconciliation Summary', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -38986,12 +38895,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 269 => - array ( - 'id' => 1770, - 'form_id' => 'HR3479', - 'form_title' => 'NSF Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 188 => [ + 'id' => 1679, + 'form_id' => 'HR3322', + 'form_title' => 'Life Threatening Health Needs Request - Process Requirements', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -39008,12 +38918,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 270 => - array ( - 'id' => 1771, - 'form_id' => 'HR3480', - 'form_title' => 'Refund Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 189 => [ + 'id' => 1680, + 'form_id' => 'HR3327', + 'form_title' => 'Hotel Accomodation Confirmation', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -39030,17 +38941,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 271 => - array ( - 'id' => 1772, - 'form_id' => 'HR3481', - 'form_title' => 'Death Benefits Claim Letter - No Other Contributions', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 190 => [ + 'id' => 1681, + 'form_id' => 'HR3328', + 'form_title' => 'Canada Revenue Agency Authorization', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -39052,12 +38964,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 272 => - array ( - 'id' => 1773, - 'form_id' => 'HR3482', - 'form_title' => 'Death Benefits Claim Letter - Other Contributions', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 191 => [ + 'id' => 1682, + 'form_id' => 'HR3330', + 'form_title' => '3rd Party Database Usage Agreement', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -39074,12 +38987,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 273 => - array ( - 'id' => 1774, - 'form_id' => 'HR3483', - 'form_title' => 'Family and Youth Partnership Project Client Consent', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 192 => [ + 'id' => 1683, + 'form_id' => 'HR3331', + 'form_title' => 'Eligibility Review for Income Assistance for Child in the Home of a Relative', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -39096,15 +39010,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 274 => - array ( - 'id' => 1775, - 'form_id' => 'HR3484E', - 'form_title' => 'General - Client Authorization to Collect Information Directly', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 193 => [ + 'id' => 1684, + 'form_id' => 'HR3332', + 'form_title' => 'Outstanding Warrants Check', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -39113,20 +39028,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 275 => - array ( - 'id' => 1776, - 'form_id' => 'HR3484F', - 'form_title' => 'General - Client Authorization to Collect Information Directly (French)', + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 194 => [ + 'id' => 1685, + 'form_id' => 'HR3333', + 'form_title' => 'Non-Government Device Access Agreement (NDAA)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -39136,16 +39052,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 276 => - array ( - 'id' => 1777, - 'form_id' => 'HR3485', - 'form_title' => 'Employment Readiness Information Questionnaire', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 195 => [ + 'id' => 1686, + 'form_id' => 'HR3334', + 'form_title' => 'Notifying Client with Outstanding Warrant', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -39162,12 +39079,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 277 => - array ( - 'id' => 1778, - 'form_id' => 'HR3486', - 'form_title' => 'Partnership and Innovation Fund Application for Funding', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 196 => [ + 'id' => 1687, + 'form_id' => 'HR3335', + 'form_title' => 'Request for Client Consent to Verify Warrant Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -39184,12 +39102,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 278 => - array ( - 'id' => 1779, - 'form_id' => 'HR3487', - 'form_title' => 'Letter of Intent Submissions', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 197 => [ + 'id' => 1688, + 'form_id' => 'HR3336', + 'form_title' => 'MCFD/SDPR Information Request', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -39206,12 +39125,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 279 => - array ( - 'id' => 1780, - 'form_id' => 'HR3488E', - 'form_title' => 'Letter for Application Decision', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 198 => [ + 'id' => 1689, + 'form_id' => 'HR3337', + 'form_title' => 'IMB Expenditure Request', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -39228,15 +39148,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 280 => - array ( - 'id' => 1781, - 'form_id' => 'HR3489', - 'form_title' => 'Letter Enclosing ISP1613', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 199 => [ + 'id' => 1690, + 'form_id' => 'HR3338', + 'form_title' => 'FASB Collection Letter', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Form template is housed at BC Mail. This form is NOT connected to ICM; To update: Email changes in PDF and TIFF format to CRUISER@gov.bc.ca', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -39246,19 +39167,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 281 => - array ( - 'id' => 1782, - 'form_id' => 'HR3490', - 'form_title' => 'Integrated Services Support Request', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 200 => [ + 'id' => 1691, + 'form_id' => 'HR3339', + 'form_title' => 'Authorization and request to obtain/search court documents (non-maintenance)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -39267,17 +39189,18 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 282 => - array ( - 'id' => 1783, - 'form_id' => 'HR3491', - 'form_title' => 'Request for Information Letter', + 'icm_non_interactive' => true, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 201 => [ + 'id' => 1692, + 'form_id' => 'HR3340', + 'form_title' => 'Consent for Outstanding Warrant Verification', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -39289,17 +39212,18 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, + 'icm_non_interactive' => true, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 283 => - array ( - 'id' => 1784, - 'form_id' => 'HR3492E', - 'form_title' => 'Notice by Assignee to Debtor that a Debt is Assigned', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 202 => [ + 'id' => 1693, + 'form_id' => 'HR3345', + 'form_title' => 'CPPD Information Letter for Declined PWD Applicants', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -39316,15 +39240,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 284 => - array ( - 'id' => 1785, - 'form_id' => 'HR3493E', - 'form_title' => 'Debt Assignment Checklist', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 203 => [ + 'id' => 1694, + 'form_id' => 'HR3346', + 'form_title' => 'Consent to Release Information', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD. Is this replaced with HR3189 - Consent to Disclosure of Information? ', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -39334,16 +39259,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 285 => - array ( - 'id' => 1786, - 'form_id' => 'HR3494E', - 'form_title' => 'Letter of Intent Guildlines Response', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 204 => [ + 'id' => 1695, + 'form_id' => 'HR3347', + 'form_title' => 'Warrants 2 Month Warning Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -39360,12 +39286,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 286 => - array ( - 'id' => 1787, - 'form_id' => 'HR3495E', - 'form_title' => 'Proposal Assessment, Reommendation and Approval Form', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 205 => [ + 'id' => 1696, + 'form_id' => 'HR3348', + 'form_title' => 'Warrants Ineligibility Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -39382,12 +39309,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 287 => - array ( - 'id' => 1788, - 'form_id' => 'HR3496E', - 'form_title' => 'Partnership and Innovation Payment Invoice and Activity Report', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 206 => [ + 'id' => 1697, + 'form_id' => 'HR3349', + 'form_title' => 'Warrants 6 Month Warning Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -39404,12 +39332,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 288 => - array ( - 'id' => 1789, - 'form_id' => 'HR3497E', - 'form_title' => 'Letter of Intent Response', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 207 => [ + 'id' => 1698, + 'form_id' => 'HR3350', + 'form_title' => 'Request for External Hiring', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -39426,17 +39355,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 289 => - array ( - 'id' => 1790, - 'form_id' => 'HR3498E', - 'form_title' => 'Partnership and Innovation Fund Letter of Intent (LOI) Review', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 208 => [ + 'id' => 1699, + 'form_id' => 'HR3351F', + 'form_title' => 'Section 25 Referral (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'WorkBC Extranet', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -39448,17 +39378,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 290 => - array ( - 'id' => 1791, - 'form_id' => 'HR3499E', - 'form_title' => 'Letter Template', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 209 => [ + 'id' => 1700, + 'form_id' => 'HR3352E', + 'form_title' => 'Employer Application - Wage Subsidy', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -39466,19 +39397,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 291 => - array ( - 'id' => 1792, - 'form_id' => 'HR3501', - 'form_title' => 'Risk Assessment Agreement', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 210 => [ + 'id' => 1701, + 'form_id' => 'HR3352F', + 'form_title' => 'Employer Application - Wage Subsidy (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -39488,19 +39420,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 292 => - array ( - 'id' => 1794, - 'form_id' => 'HR3507', - 'form_title' => 'Confirmation of Continued Participation in the Annualized Earnings Exemption', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 211 => [ + 'id' => 1702, + 'form_id' => 'HR3353F', + 'form_title' => 'Essential Financial Supports (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -39510,19 +39443,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 293 => - array ( - 'id' => 1795, - 'form_id' => 'HR3508', - 'form_title' => 'Annual Earnings Exemption Threshold Letter - Sample', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 212 => [ + 'id' => 1703, + 'form_id' => 'HR3354F', + 'form_title' => 'Client Consent to Release Information (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -39532,19 +39466,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 294 => - array ( - 'id' => 1796, - 'form_id' => 'HR3509', - 'form_title' => 'Accrual Invoice Coding Block', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 213 => [ + 'id' => 1704, + 'form_id' => 'HR3355F', + 'form_title' => 'Training - Client Authorization to Pay Institution Directly (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -39554,19 +39489,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 295 => - array ( - 'id' => 1797, - 'form_id' => 'HR3510', - 'form_title' => 'PWD Youth Transition Information Application Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 214 => [ + 'id' => 1705, + 'form_id' => 'HR3356F', + 'form_title' => 'Client Application - Wage Subsidy & JCP (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -39576,19 +39512,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 296 => - array ( - 'id' => 1798, - 'form_id' => 'HR3511', - 'form_title' => 'Employee Initiated Relocation (EIR) Request', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 215 => [ + 'id' => 1706, + 'form_id' => 'HR3357F', + 'form_title' => 'Authorization to Quit (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -39598,19 +39535,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 297 => - array ( - 'id' => 1799, - 'form_id' => 'HR3527E', - 'form_title' => 'Payment Invoice and Activity Report', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 216 => [ + 'id' => 1707, + 'form_id' => 'HR3358F', + 'form_title' => 'Apprentice Application and Agreement (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -39620,21 +39558,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 298 => - array ( - 'id' => 1800, - 'form_id' => 'HR3533', - 'form_title' => 'Third Party Administration - Advance Notice - Behavioural', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 217 => [ + 'id' => 1708, + 'form_id' => 'HR3359AE', + 'form_title' => 'Client Eligibility Check', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -39642,19 +39581,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 299 => - array ( - 'id' => 1801, - 'form_id' => 'HR3534', - 'form_title' => 'Third Party Administration - Advance Notice - Financial Management', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 218 => [ + 'id' => 1709, + 'form_id' => 'HR3360F', + 'form_title' => 'Debt Assignment Agreement (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -39664,19 +39604,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 300 => - array ( - 'id' => 1802, - 'form_id' => 'HR3535', - 'form_title' => 'Third Party Administration - Client Notification - Behavioural', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 219 => [ + 'id' => 1710, + 'form_id' => 'HR3361F', + 'form_title' => 'Authorization to Collect Information from Training Institution (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -39686,21 +39627,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 301 => - array ( - 'id' => 1803, - 'form_id' => 'HR3536', - 'form_title' => 'Third Party Administration - Finanical Management', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 220 => [ + 'id' => 1711, + 'form_id' => 'HR3362F', + 'form_title' => 'Agreement Self-employment (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -39708,19 +39650,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 302 => - array ( - 'id' => 1804, - 'form_id' => 'HR3537', - 'form_title' => 'Third Party Administation - Modifying Third Party Arrangement - Conditional', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 221 => [ + 'id' => 1712, + 'form_id' => 'HR3363F', + 'form_title' => 'Agreement Training (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -39730,19 +39673,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 303 => - array ( - 'id' => 1805, - 'form_id' => 'HR3538', - 'form_title' => 'Third Party Administation - Continuing Third Party Administration Arrangement - Behavioural', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 222 => [ + 'id' => 1713, + 'form_id' => 'HR3364F', + 'form_title' => 'Client Financial Agreement Wage Subsidy (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -39752,19 +39696,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 304 => - array ( - 'id' => 1806, - 'form_id' => 'HR3539', - 'form_title' => 'Third Party Administation - Removing Third Party Administration Arrangement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 223 => [ + 'id' => 1714, + 'form_id' => 'HR3365F', + 'form_title' => 'Client Application - Training (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -39774,21 +39719,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 305 => - array ( - 'id' => 1807, - 'form_id' => 'HR3540', - 'form_title' => 'Third Party Administration - Continuing Arrangement - Financial', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 224 => [ + 'id' => 1827, + 'form_id' => 'HR3577', + 'form_title' => 'Reserved for ELMSD', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -39800,17 +39746,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 306 => - array ( - 'id' => 1808, - 'form_id' => 'HR3543', - 'form_title' => 'FMEP URGENT Fax', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 225 => [ + 'id' => 1715, + 'form_id' => 'HR3366F', + 'form_title' => 'Client Application - Self Employment (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -39818,41 +39765,43 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 307 => - array ( - 'id' => 1809, - 'form_id' => 'HR3544', - 'form_title' => 'Legal URGENT Fax', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 226 => [ + 'id' => 1716, + 'form_id' => 'HR3367E', + 'form_title' => 'Employment Readiness Information Questionnaire', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'barcode, digital signature', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 308 => - array ( - 'id' => 1810, - 'form_id' => 'HR3550', - 'form_title' => 'Automated Telephone Inquiry', + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 227 => [ + 'id' => 1717, + 'form_id' => 'HR3367F', + 'form_title' => 'Employment Readiness Information Questionnaire (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -39862,21 +39811,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 309 => - array ( - 'id' => 1811, - 'form_id' => 'HR3551', - 'form_title' => 'Direct Deposit Application', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 228 => [ + 'id' => 1718, + 'form_id' => 'HR3368F', + 'form_title' => 'Agreement Unpaid work experience placement (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -39884,19 +39834,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 310 => - array ( - 'id' => 1812, - 'form_id' => 'HR3553', - 'form_title' => 'Financial Statement (JAG)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 229 => [ + 'id' => 1719, + 'form_id' => 'HR3369F', + 'form_title' => 'Agreement Employer Wage Subsidy (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -39906,19 +39857,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 311 => - array ( - 'id' => 1813, - 'form_id' => 'HR3555', - 'form_title' => 'Service Request - Information Required', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 230 => [ + 'id' => 1720, + 'form_id' => 'HR3370F', + 'form_title' => 'Self Employment - Participant Monthly Report (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -39928,19 +39880,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 312 => - array ( - 'id' => 1814, - 'form_id' => 'HR3556', - 'form_title' => 'Premiers Awards Leadership Category Peoples Choice Award Nomination Form', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 231 => [ + 'id' => 1721, + 'form_id' => 'HR3371E', + 'form_title' => 'Wage Subsidy - File Content Checklist', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -39949,20 +39902,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 313 => - array ( - 'id' => 1815, - 'form_id' => 'HR3564', - 'form_title' => 'STADD Consent to Collect', - 'ministry_id' => 1, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 232 => [ + 'id' => 1722, + 'form_id' => 'HR3372F', + 'form_title' => 'Direct Deposit Application (French)', + 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -39972,21 +39926,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 314 => - array ( - 'id' => 1816, - 'form_id' => 'HR3566', - 'form_title' => 'Long Service Awards Travel Authorization Form', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 233 => [ + 'id' => 1723, + 'form_id' => 'HR3373E', + 'form_title' => 'Training - File Content Checklist', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Not on resource finder', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -39994,19 +39949,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 315 => - array ( - 'id' => 1817, - 'form_id' => 'HR3567', - 'form_title' => 'Ministry Approval Form', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 234 => [ + 'id' => 1724, + 'form_id' => 'HR3374E', + 'form_title' => 'Wage Subsidy - Employer Proposal Assessment and Recommendation', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -40015,20 +39971,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 316 => - array ( - 'id' => 1818, - 'form_id' => 'HR3568', - 'form_title' => 'Request for Advance or Reimbursement Form', + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 235 => [ + 'id' => 1725, + 'form_id' => 'HR3375E', + 'form_title' => 'Wage Subsidy - Monitoring Report', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -40037,43 +39994,44 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 317 => - array ( - 'id' => 1819, - 'form_id' => 'HR3569', - 'form_title' => 'Assignment of Benefits Transmittal', + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 236 => [ + 'id' => 1726, + 'form_id' => 'HR3375F', + 'form_title' => 'Wage Subsidy - Monitoring Report (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'D?ecommissioned as of Feb 6, 2023 -', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 318 => - array ( - 'id' => 1820, - 'form_id' => 'HR3570', - 'form_title' => 'Reserved for ELMSD', + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 237 => [ + 'id' => 1727, + 'form_id' => 'HR3376E', + 'form_title' => 'Wage Subsidy - Employer Payment Claim', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, 'decommissioned' => true, 'form_frequency_id' => NULL, @@ -40083,21 +40041,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 319 => - array ( - 'id' => 1821, - 'form_id' => 'HR3571', - 'form_title' => 'Reserved for ELMSD', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 238 => [ + 'id' => 1728, + 'form_id' => 'HR3376F', + 'form_title' => 'Wage Subsidy - Employer Payment Claim (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -40105,19 +40064,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 320 => - array ( - 'id' => 1822, - 'form_id' => 'HR3572', - 'form_title' => 'Reserved for ELMSD', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 239 => [ + 'id' => 1729, + 'form_id' => 'HR3377E', + 'form_title' => 'Wage Subsidy / JCP - File Content Checklist', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, 'decommissioned' => true, 'form_frequency_id' => NULL, @@ -40127,19 +40087,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 321 => - array ( - 'id' => 1823, - 'form_id' => 'HR3573', - 'form_title' => 'Reserved for ELMSD', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 240 => [ + 'id' => 1730, + 'form_id' => 'HR3378E', + 'form_title' => 'Self Employment - File Content Checklist', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, 'decommissioned' => true, 'form_frequency_id' => NULL, @@ -40149,21 +40110,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 322 => - array ( - 'id' => 1824, - 'form_id' => 'HR3574', - 'form_title' => 'Reserved for ELMSD', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 241 => [ + 'id' => 1731, + 'form_id' => 'HR3379F', + 'form_title' => 'Agreement JCP (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -40171,21 +40133,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 323 => - array ( - 'id' => 1825, - 'form_id' => 'HR3575', - 'form_title' => 'Reserved for ELMSD', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 242 => [ + 'id' => 1732, + 'form_id' => 'HR3380F', + 'form_title' => 'Client Action Plan (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -40193,21 +40156,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 324 => - array ( - 'id' => 1826, - 'form_id' => 'HR3576', - 'form_title' => 'Reserved for ELMSD', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 243 => [ + 'id' => 1733, + 'form_id' => 'HR3381F', + 'form_title' => 'Application For Service Not Approved (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -40215,21 +40179,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 325 => - array ( - 'id' => 1827, - 'form_id' => 'HR3577', - 'form_title' => 'Reserved for ELMSD', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 244 => [ + 'id' => 1734, + 'form_id' => 'HR3382F', + 'form_title' => 'Referral to Specialized Assessments (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -40237,21 +40202,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 326 => - array ( - 'id' => 1828, - 'form_id' => 'HR3578', - 'form_title' => 'Reserved for ELMSD', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 245 => [ + 'id' => 1735, + 'form_id' => 'HR3383F', + 'form_title' => 'Information Missing from Application (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -40259,21 +40225,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 327 => - array ( - 'id' => 1829, - 'form_id' => 'HR3579', - 'form_title' => 'Reserved for ELMSD', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 246 => [ + 'id' => 1736, + 'form_id' => 'HR3384F', + 'form_title' => 'Application for Service Approved (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -40281,21 +40248,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 328 => - array ( - 'id' => 1830, - 'form_id' => 'HR3580', - 'form_title' => 'FMEP Financial Documents for Court Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 247 => [ + 'id' => 1737, + 'form_id' => 'HR3385F', + 'form_title' => 'Contract Requirement - Receipt Required (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -40303,19 +40271,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 329 => - array ( - 'id' => 1831, - 'form_id' => 'HR3581', - 'form_title' => 'My Self Serve Registration', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 248 => [ + 'id' => 1738, + 'form_id' => 'HR3386F', + 'form_title' => 'Overpayment Established (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -40325,19 +40294,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 330 => - array ( - 'id' => 1832, - 'form_id' => 'HR3582', - 'form_title' => 'Eligibility Review Documents: First Request', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 249 => [ + 'id' => 1739, + 'form_id' => 'HR3387F', + 'form_title' => 'Application Received Too early (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -40347,19 +40317,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 331 => - array ( - 'id' => 1833, - 'form_id' => 'HR3583', - 'form_title' => 'Eligibility Review Documents: Second Request', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 250 => [ + 'id' => 1740, + 'form_id' => 'HR3388F', + 'form_title' => 'Termination of Agreement (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -40369,19 +40340,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 332 => - array ( - 'id' => 1834, - 'form_id' => 'HR3584', - 'form_title' => 'Eligibility Review Interview: First Request', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 251 => [ + 'id' => 1741, + 'form_id' => 'HR3389F', + 'form_title' => 'Letter to Trustee: Participant in Bankruptcy (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -40391,19 +40363,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 333 => - array ( - 'id' => 1835, - 'form_id' => 'HR3585', - 'form_title' => 'Eligibility Review Interview: Second Request', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 252 => [ + 'id' => 1742, + 'form_id' => 'HR3390F', + 'form_title' => 'Appointment Reminder (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -40413,19 +40386,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 334 => - array ( - 'id' => 1836, - 'form_id' => 'HR3586', - 'form_title' => 'Eligibility Review Non-Compliance Denial', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 253 => [ + 'id' => 1743, + 'form_id' => 'HR3391F', + 'form_title' => 'Case Management File Closure: To client (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -40435,19 +40409,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 335 => - array ( - 'id' => 1837, - 'form_id' => 'HR3587', - 'form_title' => 'Bus Pass Returning Info Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 254 => [ + 'id' => 1744, + 'form_id' => 'HR3392F', + 'form_title' => 'Case Management File Closure: To Agency (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -40457,19 +40432,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 336 => - array ( - 'id' => 1838, - 'form_id' => 'HR3588', - 'form_title' => 'First Contact Infornation Sheet - Burial Program', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 255 => [ + 'id' => 1745, + 'form_id' => 'HR3393F', + 'form_title' => 'Additional Information for Alternative Funder (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -40479,19 +40455,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 337 => - array ( - 'id' => 1839, - 'form_id' => 'HR3589A', - 'form_title' => 'Specialized Intake Routing Letter - Drug and Alcohol Facilities', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 256 => [ + 'id' => 1746, + 'form_id' => 'HR3394F', + 'form_title' => 'Letter to External Source - Additional Information Required (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -40501,19 +40478,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 338 => - array ( - 'id' => 1840, - 'form_id' => 'HR3589B', - 'form_title' => 'Specialized Intake Routing Letter - Correctional Facilities', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 257 => [ + 'id' => 1747, + 'form_id' => 'HR3396F', + 'form_title' => 'Letter to External Source - Verification of Information (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -40523,19 +40501,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 339 => - array ( - 'id' => 1841, - 'form_id' => 'HR3589C', - 'form_title' => 'Specialized Intake Routing Letter - Youth Transition', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 258 => [ + 'id' => 1748, + 'form_id' => 'HR3397F', + 'form_title' => 'ATQ Approved (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -40545,41 +40524,43 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 340 => - array ( - 'id' => 1842, - 'form_id' => 'HR3589D', - 'form_title' => 'Specialized Intake Routing Letter - Hospital', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 259 => [ + 'id' => 1749, + 'form_id' => 'HR3398F', + 'form_title' => 'ATQ Denied (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, - 'form_reach_id' => 1, + 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 341 => - array ( - 'id' => 1843, - 'form_id' => 'HR3590', - 'form_title' => 'Canada Job Grant EI Client Eligibility and Section 25 Referral', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 260 => [ + 'id' => 1750, + 'form_id' => 'HR3399F', + 'form_title' => 'Template Correspondence (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -40589,19 +40570,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 342 => - array ( - 'id' => 1844, - 'form_id' => 'HR3591', - 'form_title' => 'Corrections Centre - Release Information', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 261 => [ + 'id' => 1751, + 'form_id' => 'HR3400F', + 'form_title' => 'Letter to Self Employment Clients (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -40611,19 +40593,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 343 => - array ( - 'id' => 1845, - 'form_id' => 'HR3592', - 'form_title' => 'Corrections - Application Completion Requirements ', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 262 => [ + 'id' => 1752, + 'form_id' => 'HR3450F', + 'form_title' => 'ESC Workshop Tracking Form (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -40633,21 +40616,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 344 => - array ( - 'id' => 1846, - 'form_id' => 'HR3593', - 'form_title' => 'Client Notification - PLMS (ICM Email template (No PDF))', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 263 => [ + 'id' => 1753, + 'form_id' => 'HR3451E', + 'form_title' => 'ESC Workshop Client Registration Form', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -40655,19 +40639,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 345 => - array ( - 'id' => 1847, - 'form_id' => 'HR3594', - 'form_title' => 'Appointment or Contact Ministry - PLMS (ICM Email template (No PDF))', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 264 => [ + 'id' => 1754, + 'form_id' => 'HR3451F', + 'form_title' => 'ESC Workshop Client Registration Form (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -40677,19 +40662,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 346 => - array ( - 'id' => 1848, - 'form_id' => 'HR3596', - 'form_title' => 'Request for Information - PLMS (ICM Email template (No PDF))', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 265 => [ + 'id' => 1755, + 'form_id' => 'HR3452F', + 'form_title' => 'Self Employment - Out of Area Travel Request (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -40699,19 +40685,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 347 => - array ( - 'id' => 1849, - 'form_id' => 'HR3597', - 'form_title' => 'Signatures/Form Completion Required - PLMS (ICM Email template (No PDF))', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 266 => [ + 'id' => 1756, + 'form_id' => 'HR3453F', + 'form_title' => 'Self Employment - Out of Area Travel Report (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -40721,19 +40708,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 348 => - array ( - 'id' => 1850, - 'form_id' => 'HR3598', - 'form_title' => 'AEE Income Tracking Sheet', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 267 => [ + 'id' => 1757, + 'form_id' => 'HR3454F', + 'form_title' => 'Self Employment - Business Concept Proposal (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -40743,21 +40731,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 349 => - array ( - 'id' => 1851, - 'form_id' => 'HR3599', - 'form_title' => 'Instructions for Service Providers - Direct Deposit Application (FIN312)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 268 => [ + 'id' => 1758, + 'form_id' => 'HR3455E', + 'form_title' => 'Assistive Devises Loan / Purchase Agreement', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -40765,19 +40754,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 350 => - array ( - 'id' => 1852, - 'form_id' => 'HR3600', - 'form_title' => 'Early Implementation Site Permission to Contact Form', - 'ministry_id' => 1, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 269 => [ + 'id' => 1759, + 'form_id' => 'HR3455F', + 'form_title' => 'Assistive Devises Loan / Purchase Agreement (French)', + 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -40787,19 +40777,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 351 => - array ( - 'id' => 1853, - 'form_id' => 'HR3601E', - 'form_title' => 'Change Request Revenue Flow-Through Schedule A, Part D, Section 5.0', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 270 => [ + 'id' => 1760, + 'form_id' => 'HR3456F', + 'form_title' => 'Undertaking and Indemnity payment not received and Affadavit cheque or Direct Deposit (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -40809,21 +40800,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 352 => - array ( - 'id' => 1854, - 'form_id' => 'HR3602', - 'form_title' => 'Change Request Administrative Error Correction', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 271 => [ + 'id' => 1761, + 'form_id' => 'HR3458E', + 'form_title' => 'General Financial Agreement', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -40831,19 +40823,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 353 => - array ( - 'id' => 1855, - 'form_id' => 'HR3603', - 'form_title' => 'Change Request Service Providers Schedule C', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 272 => [ + 'id' => 1762, + 'form_id' => 'HR3458F', + 'form_title' => 'General Financial Agreement (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -40853,19 +40846,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 354 => - array ( - 'id' => 1856, - 'form_id' => 'HR3604', - 'form_title' => 'Change Request - Contractor Legal Name, Address or Fax Number', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 273 => [ + 'id' => 1763, + 'form_id' => 'HR3459F', + 'form_title' => 'Client Application - Job Starts / Job Seach Financial Supports (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -40875,19 +40869,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 355 => - array ( - 'id' => 1857, - 'form_id' => 'HR3605', - 'form_title' => 'Change Request Itinerant Services Schedule A, Part B, Section 2.6', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 274 => [ + 'id' => 1764, + 'form_id' => 'HR3460E', + 'form_title' => 'Apprentice Online Portal - Application for Support - NCM Apprentice', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Is this the same form as HR3460? ', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -40897,19 +40892,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 356 => - array ( - 'id' => 1858, - 'form_id' => 'HR3606', - 'form_title' => 'Change Request ESC Storefront Address Schedule A, Part B, Section 2.2', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 275 => [ + 'id' => 1765, + 'form_id' => 'HR3467', + 'form_title' => 'Service Provider Extranet Information', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -40919,21 +40915,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 357 => - array ( - 'id' => 1859, - 'form_id' => 'HR3607', - 'form_title' => 'Change Request Key Positions Schedule A, Part B, Section 3.2', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 276 => [ + 'id' => 1766, + 'form_id' => 'HR3469', + 'form_title' => 'CPP Cheque hold letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -40945,17 +40942,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 358 => - array ( - 'id' => 1860, - 'form_id' => 'HR3608', - 'form_title' => 'Change Request Outreach Services Schedule A, Part B, Section 2.7', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 277 => [ + 'id' => 1767, + 'form_id' => 'HR3471', + 'form_title' => 'Child Cared for Outside the Family Unit Notification and Confirmation', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'CF3471 Used instead and posted to Resource Finder', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -40967,12 +40965,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 359 => - array ( - 'id' => 1861, - 'form_id' => 'HR3609', - 'form_title' => 'Change Request Remote Access Services Schedule A, Part B, Section 2.8', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 278 => [ + 'id' => 1768, + 'form_id' => 'HR3476', + 'form_title' => 'IMM Information Required - First Request Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -40989,12 +40988,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 360 => - array ( - 'id' => 1862, - 'form_id' => 'HR3610', - 'form_title' => 'Change Request - Satellite Name, Address or Client Population(s) Served Schedule A, Part B, Section 2.3', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 279 => [ + 'id' => 1769, + 'form_id' => 'HR3478', + 'form_title' => 'OAS/GIS Eligibility Requirements Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -41011,12 +41011,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 361 => - array ( - 'id' => 1863, - 'form_id' => 'HR3611', - 'form_title' => 'Change Request Services in French Schedule A, Part B, Sections 7.6, 7.7, 7.8 and 7.9', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 280 => [ + 'id' => 1770, + 'form_id' => 'HR3479', + 'form_title' => 'NSF Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -41033,12 +41034,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 362 => - array ( - 'id' => 1864, - 'form_id' => 'HR3612', - 'form_title' => 'Change Request Services in Other Languages Schedule A, Part B, Sections 7.10 and 7.11', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 281 => [ + 'id' => 1771, + 'form_id' => 'HR3480', + 'form_title' => 'Refund Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -41055,12 +41057,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 363 => - array ( - 'id' => 1865, - 'form_id' => 'HR3613', - 'form_title' => 'Change Request Revenue Flow-Through Schedule A, Part D, Section 5.0 (A)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 282 => [ + 'id' => 1772, + 'form_id' => 'HR3481', + 'form_title' => 'Death Benefits Claim Letter - No Other Contributions', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -41077,15 +41080,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 364 => - array ( - 'id' => 1866, - 'form_id' => 'HR3614', - 'form_title' => 'FMEP Order/Agreement Attached Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 283 => [ + 'id' => 1773, + 'form_id' => 'HR3482', + 'form_title' => 'Death Benefits Claim Letter - Other Contributions', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Not on resource finder', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -41099,15 +41103,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 365 => - array ( - 'id' => 1867, - 'form_id' => 'HR3615', - 'form_title' => 'Situation Report', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 284 => [ + 'id' => 1774, + 'form_id' => 'HR3483', + 'form_title' => 'Family and Youth Partnership Project Client Consent', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -41117,21 +41122,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 366 => - array ( - 'id' => 1868, - 'form_id' => 'HR3616', - 'form_title' => 'Activity Log', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 285 => [ + 'id' => 1775, + 'form_id' => 'HR3484E', + 'form_title' => 'General - Client Authorization to Collect Information Directly', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '2025 June: business area identified as inactive', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -41139,19 +41145,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 367 => - array ( - 'id' => 1869, - 'form_id' => 'HR3617', - 'form_title' => 'Critical Equipment Status Assessment', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 286 => [ + 'id' => 1776, + 'form_id' => 'HR3484F', + 'form_title' => 'General - Client Authorization to Collect Information Directly (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -41161,16 +41168,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 368 => - array ( - 'id' => 1870, - 'form_id' => 'HR3618', - 'form_title' => 'THS Eligibility Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 287 => [ + 'id' => 1777, + 'form_id' => 'HR3485', + 'form_title' => 'Employment Readiness Information Questionnaire', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -41186,16 +41194,17 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 369 => - array ( - 'id' => 1871, - 'form_id' => 'HR3619', - 'form_title' => 'Change of Representative', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 288 => [ + 'id' => 1778, + 'form_id' => 'HR3486', + 'form_title' => 'Partnership and Innovation Fund Application for Funding', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Not on resource finder', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -41205,19 +41214,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 370 => - array ( - 'id' => 1872, - 'form_id' => 'HR3620', - 'form_title' => 'Change of Representative - Respondent', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 289 => [ + 'id' => 1779, + 'form_id' => 'HR3487', + 'form_title' => 'Letter of Intent Submissions', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Not on resource finder', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -41227,23 +41237,24 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 371 => - array ( - 'id' => 1873, - 'form_id' => 'HR3621', - 'form_title' => 'Family Search Request - FLA SDSI Contract Lawyer (Sample Only)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 290 => [ + 'id' => 1780, + 'form_id' => 'HR3488E', + 'form_title' => 'Letter for Application Decision', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, - 'form_frequency_id' => 3, - 'form_reach_id' => 1, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, @@ -41253,12 +41264,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 372 => - array ( - 'id' => 1874, - 'form_id' => 'HR3622', - 'form_title' => 'Alcohol and Drug Counselling Services Supplement Renewal', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 291 => [ + 'id' => 1781, + 'form_id' => 'HR3489', + 'form_title' => 'Letter Enclosing ISP1613', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -41275,12 +41287,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 373 => - array ( - 'id' => 1875, - 'form_id' => 'HR3623', - 'form_title' => 'Waiver for CPP Death Benefit', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 292 => [ + 'id' => 1782, + 'form_id' => 'HR3490', + 'form_title' => 'Integrated Services Support Request', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -41297,15 +41310,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 374 => - array ( - 'id' => 1876, - 'form_id' => 'HR3624E', - 'form_title' => 'Client Consent to Publication', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 293 => [ + 'id' => 1783, + 'form_id' => 'HR3491', + 'form_title' => 'Request for Information Letter', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Previously HR5619E', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -41319,15 +41333,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 375 => - array ( - 'id' => 1877, - 'form_id' => 'HR3625E', - 'form_title' => 'Community and Emloyer Partnership (CEP) Client Consent to Collection and Publication', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 294 => [ + 'id' => 1784, + 'form_id' => 'HR3492E', + 'form_title' => 'Notice by Assignee to Debtor that a Debt is Assigned', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Previously HR5621E', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -41341,17 +41356,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 376 => - array ( - 'id' => 1878, - 'form_id' => 'HR3626E', - 'form_title' => 'Modification Agreement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 295 => [ + 'id' => 1785, + 'form_id' => 'HR3493E', + 'form_title' => 'Debt Assignment Checklist', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -41359,19 +41375,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 377 => - array ( - 'id' => 1879, - 'form_id' => 'HR3627', - 'form_title' => 'Request for Crisis Supplement - Utilities', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 296 => [ + 'id' => 1786, + 'form_id' => 'HR3494E', + 'form_title' => 'Letter of Intent Guildlines Response', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'auto-filled via Client Initiated Service Request', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -41381,19 +41398,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 378 => - array ( - 'id' => 1880, - 'form_id' => 'HR3628', - 'form_title' => 'Request for Crisis Supplement - Shelter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 297 => [ + 'id' => 1787, + 'form_id' => 'HR3495E', + 'form_title' => 'Proposal Assessment, Reommendation and Approval Form', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'auto-filled via Client Initiated Service Request', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -41403,19 +41421,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 379 => - array ( - 'id' => 1881, - 'form_id' => 'HR3629', - 'form_title' => 'Request for Crisis Supplement - Clothing', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 298 => [ + 'id' => 1788, + 'form_id' => 'HR3496E', + 'form_title' => 'Partnership and Innovation Payment Invoice and Activity Report', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'auto-filled via Client Initiated Service Request', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -41425,19 +41444,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 380 => - array ( - 'id' => 1882, - 'form_id' => 'HR3630', - 'form_title' => 'Request for Crisis Supplement - Food', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 299 => [ + 'id' => 1789, + 'form_id' => 'HR3497E', + 'form_title' => 'Letter of Intent Response', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'auto-filled via Client Initiated Service Request', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -41447,19 +41467,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 381 => - array ( - 'id' => 1883, - 'form_id' => 'HR3631', - 'form_title' => 'Important Reminder - Action Required EP', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 300 => [ + 'id' => 1790, + 'form_id' => 'HR3498E', + 'form_title' => 'Partnership and Innovation Fund Letter of Intent (LOI) Review', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -41469,16 +41490,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 382 => - array ( - 'id' => 1884, - 'form_id' => 'HR3632', - 'form_title' => 'Action Required: Employment Plan', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 301 => [ + 'id' => 1791, + 'form_id' => 'HR3499E', + 'form_title' => 'Letter Template', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -41495,15 +41517,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 383 => - array ( - 'id' => 1885, - 'form_id' => 'HR3633', - 'form_title' => 'Request for Natal Supplement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 302 => [ + 'id' => 1792, + 'form_id' => 'HR3501', + 'form_title' => 'Risk Assessment Agreement', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'auto-filled via Client Initiated Service Request', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -41517,15 +41540,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 384 => - array ( - 'id' => 1886, - 'form_id' => 'HR3634', - 'form_title' => 'Medical Transportation Initiation Request', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 303 => [ + 'id' => 1794, + 'form_id' => 'HR3507', + 'form_title' => 'Confirmation of Continued Participation in the Annualized Earnings Exemption', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'auto-filled via Client Initiated Service Request', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -41535,19 +41559,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 385 => - array ( - 'id' => 1887, - 'form_id' => 'HR3635', - 'form_title' => 'Request for Diet Supplement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 304 => [ + 'id' => 1795, + 'form_id' => 'HR3508', + 'form_title' => 'Annual Earnings Exemption Threshold Letter - Sample', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'auto-filled via Client Initiated Service Request', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -41557,16 +41582,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 386 => - array ( - 'id' => 1888, - 'form_id' => 'HR3636', - 'form_title' => 'Service Provider Portal Access Request ', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 305 => [ + 'id' => 1796, + 'form_id' => 'HR3509', + 'form_title' => 'Accrual Invoice Coding Block', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -41583,15 +41609,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 387 => - array ( - 'id' => 1889, - 'form_id' => 'HR3638', - 'form_title' => 'Request for CPP Death Benefit Recovery Funds Claimed and Received in Error', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 306 => [ + 'id' => 1797, + 'form_id' => 'HR3510', + 'form_title' => 'PWD Youth Transition Information Application Letter', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '', + 'form_purpose' => 'Letter sent to new youth PWD applicants with Intellectual Disability and/or transitioning from the Ministry of Children and Family Development At Home Program Medical Benefits.', + 'notes' => 'program: Intake, + +print form', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -41600,17 +41629,18 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 388 => - array ( - 'id' => 1890, - 'form_id' => 'HR3639', - 'form_title' => 'Confirmation of Income', + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 307 => [ + 'id' => 1798, + 'form_id' => 'HR3511', + 'form_title' => 'Employee Initiated Relocation (EIR) Request', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -41627,12 +41657,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 389 => - array ( - 'id' => 1891, - 'form_id' => 'HR3640', - 'form_title' => 'Provincial After Hours Hotel Authorization', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 308 => [ + 'id' => 1799, + 'form_id' => 'HR3527E', + 'form_title' => 'Payment Invoice and Activity Report', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -41649,12 +41680,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 390 => - array ( - 'id' => 1892, - 'form_id' => 'HR3641', - 'form_title' => 'Bank Profile and Consent', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 309 => [ + 'id' => 1800, + 'form_id' => 'HR3533', + 'form_title' => 'Third Party Administration - Advance Notice - Behavioural', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -41671,15 +41703,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 391 => - array ( - 'id' => 1893, - 'form_id' => 'HR3642', - 'form_title' => 'Persons with Disabilities Designation Application - Prescribed Class', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 310 => [ + 'id' => 1801, + 'form_id' => 'HR3534', + 'form_title' => 'Third Party Administration - Advance Notice - Financial Management', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -41689,16 +41722,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 392 => - array ( - 'id' => 1894, - 'form_id' => 'HR3643', - 'form_title' => 'Monthly Nutritional Supplement Decision Summary', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 311 => [ + 'id' => 1802, + 'form_id' => 'HR3535', + 'form_title' => 'Third Party Administration - Client Notification - Behavioural', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -41715,18 +41749,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 393 => - array ( - 'id' => 1895, - 'form_id' => 'HR3645', - 'form_title' => 'Request for Information - Communication Supports Required', - 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '?Outlook -', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 312 => [ + 'id' => 1803, + 'form_id' => 'HR3536', + 'form_title' => 'Third Party Administration - Finanical Management', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -41738,16 +41772,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 394 => - array ( - 'id' => 1896, - 'form_id' => 'HR3646', - 'form_title' => 'Confirmation of Aplpication Appointment', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 313 => [ + 'id' => 1804, + 'form_id' => 'HR3537', + 'form_title' => 'Third Party Administation - Modifying Third Party Arrangement - Conditional', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '?Outlook -', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -41761,12 +41795,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 395 => - array ( - 'id' => 1897, - 'form_id' => 'HR3647', - 'form_title' => 'Hospital Case Management Routing Cover Sheet - Specialized Intake', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 314 => [ + 'id' => 1805, + 'form_id' => 'HR3538', + 'form_title' => 'Third Party Administation - Continuing Third Party Administration Arrangement - Behavioural', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -41783,12 +41818,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 396 => - array ( - 'id' => 1898, - 'form_id' => 'HR3648', - 'form_title' => 'CPP Initial Information letter (With CPP Application)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 315 => [ + 'id' => 1806, + 'form_id' => 'HR3539', + 'form_title' => 'Third Party Administation - Removing Third Party Administration Arrangement', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -41805,17 +41841,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 397 => - array ( - 'id' => 1899, - 'form_id' => 'HR3649', - 'form_title' => 'OAS/GIS Initial Contact Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 316 => [ + 'id' => 1807, + 'form_id' => 'HR3540', + 'form_title' => 'Third Party Administration - Continuing Arrangement - Financial', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -41823,16 +41860,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 398 => - array ( - 'id' => 1900, - 'form_id' => 'HR3650', - 'form_title' => 'OAS/GIS Second Contact Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 317 => [ + 'id' => 1808, + 'form_id' => 'HR3543', + 'form_title' => 'FMEP URGENT Fax', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -41849,17 +41887,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 399 => - array ( - 'id' => 1901, - 'form_id' => 'HR3651', - 'form_title' => 'BC Bus Pass Program Genery Enquiry Form', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 318 => [ + 'id' => 1809, + 'form_id' => 'HR3544', + 'form_title' => 'Legal URGENT Fax', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -41871,15 +41910,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 400 => - array ( - 'id' => 1902, - 'form_id' => 'HR3652', - 'form_title' => 'Notice of Termination of Family Maintenance Services for contracted Legal Counsel', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 319 => [ + 'id' => 1810, + 'form_id' => 'HR3550', + 'form_title' => 'Automated Telephone Inquiry', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -41889,21 +41929,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 401 => - array ( - 'id' => 1903, - 'form_id' => 'HR3653E', - 'form_title' => 'Client Consent to Collection and Information', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 320 => [ + 'id' => 1811, + 'form_id' => 'HR3551', + 'form_title' => 'Direct Deposit Application', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -41915,17 +41956,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 402 => - array ( - 'id' => 1904, - 'form_id' => 'HR3654E', - 'form_title' => 'Services to Adults with Developmental Disabilities (STADD) Employee Initiated Transfer Request', - 'ministry_id' => 1, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 321 => [ + 'id' => 1812, + 'form_id' => 'HR3553', + 'form_title' => 'Financial Statement (JAG)', + 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Decommissioned 2025 Sep 17. Confirmed with SDPR (both SDD and CPP, OAS, FASB, Senior Supplement and Sponsorship) as well as ELMSD that this form is no longer used. See ADO 2981', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -41933,16 +41975,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 403 => - array ( - 'id' => 1905, - 'form_id' => 'HR3655E', - 'form_title' => 'WorkBC Centre Employer and Service Provider Staff Consent to Collect, Disclose and Publish Personal Information', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 322 => [ + 'id' => 1813, + 'form_id' => 'HR3555', + 'form_title' => 'Service Request - Information Required', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -41959,12 +42002,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 404 => - array ( - 'id' => 1906, - 'form_id' => 'HR3655F', - 'form_title' => 'WorkBC Centre Employer and Service Provider Staff Consent to Collect, Disclose and Publish Personal Information (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 323 => [ + 'id' => 1814, + 'form_id' => 'HR3556', + 'form_title' => 'Premiers Awards Leadership Category Peoples Choice Award Nomination Form', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -41981,13 +42025,14 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 405 => - array ( - 'id' => 1907, - 'form_id' => 'HR3656', - 'form_title' => 'Referral for Criminal Investigation', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 324 => [ + 'id' => 1815, + 'form_id' => 'HR3564', + 'form_title' => 'STADD Consent to Collect', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -42003,15 +42048,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 406 => - array ( - 'id' => 1908, - 'form_id' => 'HR3657E', - 'form_title' => 'Single Parent Employment Initiative (SPEI) Ministry Review Template', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 325 => [ + 'id' => 1816, + 'form_id' => 'HR3566', + 'form_title' => 'Long Service Awards Travel Authorization Form', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not on resource finder', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -42025,17 +42071,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 407 => - array ( - 'id' => 1909, - 'form_id' => 'HR3658', - 'form_title' => 'Group Mentoring - Obsolete', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 326 => [ + 'id' => 1817, + 'form_id' => 'HR3567', + 'form_title' => 'Ministry Approval Form', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -42047,12 +42094,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 408 => - array ( - 'id' => 1910, - 'form_id' => 'HR3659', - 'form_title' => 'START Third Party Checks Recording Document', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 327 => [ + 'id' => 1818, + 'form_id' => 'HR3568', + 'form_title' => 'Request for Advance or Reimbursement Form', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -42069,17 +42117,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 409 => - array ( - 'id' => 1911, - 'form_id' => 'HR3660', - 'form_title' => 'Request for Alternative Hearing Supplement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 328 => [ + 'id' => 1819, + 'form_id' => 'HR3569', + 'form_title' => 'Assignment of Benefits Transmittal', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'D?ecommissioned as of Feb 6, 2023', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -42091,17 +42140,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 410 => - array ( - 'id' => 1912, - 'form_id' => 'HR3661', - 'form_title' => 'WorkBC Centre Apprentice Attendance Confirmation', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 329 => [ + 'id' => 1820, + 'form_id' => 'HR3570', + 'form_title' => 'Reserved for ELMSD', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -42113,12 +42163,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 411 => - array ( - 'id' => 1913, - 'form_id' => 'HR3662', - 'form_title' => 'Service Excellence Reporting and Action (SERA)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 330 => [ + 'id' => 1830, + 'form_id' => 'HR3580', + 'form_title' => 'FMEP Financial Documents for Court Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -42135,12 +42186,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 412 => - array ( - 'id' => 1914, - 'form_id' => 'HR3663', - 'form_title' => 'Interdivisional Working Group Issue Analysis', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 331 => [ + 'id' => 1831, + 'form_id' => 'HR3581', + 'form_title' => 'My Self Serve Registration', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -42157,12 +42209,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 413 => - array ( - 'id' => 1915, - 'form_id' => 'HR3664', - 'form_title' => 'Poverty Reduction Advisory Committee Nomination Form', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 332 => [ + 'id' => 1832, + 'form_id' => 'HR3582', + 'form_title' => 'Eligibility Review Documents: First Request', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -42179,12 +42232,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 414 => - array ( - 'id' => 1916, - 'form_id' => 'HR3665', - 'form_title' => 'Assistive Technology RFQ Response Guidelines and Evaluation Criteria', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 333 => [ + 'id' => 1833, + 'form_id' => 'HR3583', + 'form_title' => 'Eligibility Review Documents: Second Request', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -42201,12 +42255,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 415 => - array ( - 'id' => 1917, - 'form_id' => 'HR3666', - 'form_title' => 'Apprenice Services RFQ Response Guidelines and Evaluation Criteria', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 334 => [ + 'id' => 1834, + 'form_id' => 'HR3584', + 'form_title' => 'Eligibility Review Interview: First Request', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -42223,12 +42278,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 416 => - array ( - 'id' => 1918, - 'form_id' => 'HR3668', - 'form_title' => 'Employment Services RFQ Response Guidelines and Evalution Criteria', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 335 => [ + 'id' => 1835, + 'form_id' => 'HR3585', + 'form_title' => 'Eligibility Review Interview: Second Request', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -42245,12 +42301,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 417 => - array ( - 'id' => 1919, - 'form_id' => 'HR3668B', - 'form_title' => 'Employment Services RFQ Response Guidelines and Evalution Criteria', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 336 => [ + 'id' => 1836, + 'form_id' => 'HR3586', + 'form_title' => 'Eligibility Review Non-Compliance Denial', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -42267,15 +42324,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 418 => - array ( - 'id' => 1920, - 'form_id' => 'HR3671', - 'form_title' => 'Services to Adults with Developmental Disbilities (STADD) Publication Consent', - 'ministry_id' => 1, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 337 => [ + 'id' => 1837, + 'form_id' => 'HR3587', + 'form_title' => 'Bus Pass Returning Info Letter', + 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -42285,21 +42343,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 419 => - array ( - 'id' => 1921, - 'form_id' => 'HR3672', - 'form_title' => 'General Stakeholder Notification E-Signature and Consent', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 338 => [ + 'id' => 1838, + 'form_id' => 'HR3588', + 'form_title' => 'First Contact Infornation Sheet - Burial Program', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -42307,16 +42366,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 420 => - array ( - 'id' => 1922, - 'form_id' => 'HR3673', - 'form_title' => 'Relocation Assistance and/or Househunting Expense Report and Assignment of Wages Agreement', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 339 => [ + 'id' => 1839, + 'form_id' => 'HR3589A', + 'form_title' => 'Specialized Intake Routing Letter - Drug and Alcohol Facilities', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -42333,12 +42393,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 421 => - array ( - 'id' => 1923, - 'form_id' => 'HR3674', - 'form_title' => 'Blanket Travel Pre-Authorization Form', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 340 => [ + 'id' => 1840, + 'form_id' => 'HR3589B', + 'form_title' => 'Specialized Intake Routing Letter - Correctional Facilities', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -42355,12 +42416,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 422 => - array ( - 'id' => 1924, - 'form_id' => 'HR3675', - 'form_title' => 'Single Parent Employment Initiative (SPEI) Ministry Review Template', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 341 => [ + 'id' => 1841, + 'form_id' => 'HR3589C', + 'form_title' => 'Specialized Intake Routing Letter - Youth Transition', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -42377,37 +42439,39 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 423 => - array ( - 'id' => 1925, - 'form_id' => 'HR3676', - 'form_title' => 'Referral for Criminal Investigation - Quality & Compliance Specialist Use Only', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 342 => [ + 'id' => 1842, + 'form_id' => 'HR3589D', + 'form_title' => 'Specialized Intake Routing Letter - Hospital', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, + 'form_reach_id' => 1, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 424 => - array ( - 'id' => 1926, - 'form_id' => 'HR3677', - 'form_title' => 'Schedule A - Appendix A1 Third Party Administration of Benefits Services Referral Form', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 343 => [ + 'id' => 1843, + 'form_id' => 'HR3590', + 'form_title' => 'Canada Job Grant EI Client Eligibility and Section 25 Referral', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , WorkBC Extranet, SR FDD or Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -42417,16 +42481,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 425 => - array ( - 'id' => 1927, - 'form_id' => 'HR3678', - 'form_title' => 'Third Party Administration - Client Review Form', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 344 => [ + 'id' => 1844, + 'form_id' => 'HR3591', + 'form_title' => 'Corrections Centre - Release Information', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -42443,12 +42508,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 426 => - array ( - 'id' => 1928, - 'form_id' => 'HR3678B', - 'form_title' => 'Third Party Administration - Client Input Form', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 345 => [ + 'id' => 1845, + 'form_id' => 'HR3592', + 'form_title' => 'Corrections - Application Completion Requirements ', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -42465,15 +42531,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 427 => - array ( - 'id' => 1929, - 'form_id' => 'HR3679', - 'form_title' => 'Corporate (Designated) Parking Application', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 346 => [ + 'id' => 1846, + 'form_id' => 'HR3593', + 'form_title' => 'Client Notification - PLMS (ICM Email template (No PDF))', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -42483,19 +42550,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 428 => - array ( - 'id' => 1930, - 'form_id' => 'HR3680', - 'form_title' => ' BC Hydro Payment Notification Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 347 => [ + 'id' => 1847, + 'form_id' => 'HR3594', + 'form_title' => 'Appointment or Contact Ministry - PLMS (ICM Email template (No PDF))', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -42505,20 +42573,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 429 => - array ( - 'id' => 1931, - 'form_id' => 'HR3681', - 'form_title' => 'Confirmation of Extended Health Coverage', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 348 => [ + 'id' => 1848, + 'form_id' => 'HR3596', + 'form_title' => 'Request for Information - PLMS (ICM Email template (No PDF))', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '?ICM generated BIP letter -', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -42528,19 +42596,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 430 => - array ( - 'id' => 1932, - 'form_id' => 'HR3682', - 'form_title' => 'Initial Consult - Contract Counsel (Pursuing/Not Pusuing)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 349 => [ + 'id' => 1849, + 'form_id' => 'HR3597', + 'form_title' => 'Signatures/Form Completion Required - PLMS (ICM Email template (No PDF))', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -42550,16 +42619,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 431 => - array ( - 'id' => 1933, - 'form_id' => 'HR3683', - 'form_title' => 'Ad Hoc Referral from Contract Counsel', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 350 => [ + 'id' => 1850, + 'form_id' => 'HR3598', + 'form_title' => 'AEE Income Tracking Sheet', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -42576,15 +42646,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 432 => - array ( - 'id' => 1934, - 'form_id' => 'HR3684', - 'form_title' => 'Notice of Termination of Family Maintenance Services for contracted Legal Counsel', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 351 => [ + 'id' => 1851, + 'form_id' => 'HR3599', + 'form_title' => 'Instructions for Service Providers - Direct Deposit Application (FIN312)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -42594,17 +42665,18 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 433 => - array ( - 'id' => 1935, - 'form_id' => 'HR3685', - 'form_title' => 'Future Leaders Program Application Form', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 352 => [ + 'id' => 1852, + 'form_id' => 'HR3600', + 'form_title' => 'Early Implementation Site Permission to Contact Form', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -42620,12 +42692,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 434 => - array ( - 'id' => 1936, - 'form_id' => 'HR3686', - 'form_title' => 'PWD Income/Assets In Excess Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 353 => [ + 'id' => 1853, + 'form_id' => 'HR3601E', + 'form_title' => 'Change Request Revenue Flow-Through Schedule A, Part D, Section 5.0', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -42642,12 +42715,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 435 => - array ( - 'id' => 1937, - 'form_id' => 'HR3687E-AT', - 'form_title' => 'Disability Related Employment Needs Assessment', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 354 => [ + 'id' => 1854, + 'form_id' => 'HR3602', + 'form_title' => 'Change Request Administrative Error Correction', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -42664,12 +42738,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 436 => - array ( - 'id' => 1938, - 'form_id' => 'HR3687F', - 'form_title' => 'Disability Related Employment Needs Assessment (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 355 => [ + 'id' => 1855, + 'form_id' => 'HR3603', + 'form_title' => 'Change Request Service Providers Schedule C', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -42686,12 +42761,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 437 => - array ( - 'id' => 1939, - 'form_id' => 'HR3688F', - 'form_title' => 'Client Needs Assessment (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 356 => [ + 'id' => 1856, + 'form_id' => 'HR3604', + 'form_title' => 'Change Request - Contractor Legal Name, Address or Fax Number', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -42708,12 +42784,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 438 => - array ( - 'id' => 1940, - 'form_id' => 'HR3689E-AT', - 'form_title' => 'Assistive Technology Intake', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 357 => [ + 'id' => 1857, + 'form_id' => 'HR3605', + 'form_title' => 'Change Request Itinerant Services Schedule A, Part B, Section 2.6', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -42730,12 +42807,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 439 => - array ( - 'id' => 1941, - 'form_id' => 'HR3689F', - 'form_title' => 'Assistive Technology Intake (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 358 => [ + 'id' => 1858, + 'form_id' => 'HR3606', + 'form_title' => 'Change Request ESC Storefront Address Schedule A, Part B, Section 2.2', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -42752,12 +42830,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 440 => - array ( - 'id' => 1942, - 'form_id' => 'HR3690E-AT', - 'form_title' => 'Assistive Technology Services Client Agreement Form', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 359 => [ + 'id' => 1859, + 'form_id' => 'HR3607', + 'form_title' => 'Change Request Key Positions Schedule A, Part B, Section 3.2', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -42774,12 +42853,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 441 => - array ( - 'id' => 1943, - 'form_id' => 'HR3690F', - 'form_title' => 'Assistive Technology Services Client Agreement Form (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 360 => [ + 'id' => 1860, + 'form_id' => 'HR3608', + 'form_title' => 'Change Request Outreach Services Schedule A, Part B, Section 2.7', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -42796,12 +42876,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 442 => - array ( - 'id' => 1944, - 'form_id' => 'HR3691E - ATa', - 'form_title' => 'Client Service Application - Job Search', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 361 => [ + 'id' => 1861, + 'form_id' => 'HR3609', + 'form_title' => 'Change Request Remote Access Services Schedule A, Part B, Section 2.8', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -42818,12 +42899,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 443 => - array ( - 'id' => 1945, - 'form_id' => 'HR3691E - ATb', - 'form_title' => 'Client Serivce Application - Job Start', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 362 => [ + 'id' => 1862, + 'form_id' => 'HR3610', + 'form_title' => 'Change Request - Satellite Name, Address or Client Population(s) Served Schedule A, Part B, Section 2.3', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -42840,12 +42922,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 444 => - array ( - 'id' => 1946, - 'form_id' => 'HR3691E - ATc', - 'form_title' => 'Client Service Application - Job Sustainment', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 363 => [ + 'id' => 1863, + 'form_id' => 'HR3611', + 'form_title' => 'Change Request Services in French Schedule A, Part B, Sections 7.6, 7.7, 7.8 and 7.9', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -42862,12 +42945,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 445 => - array ( - 'id' => 1947, - 'form_id' => 'HR3691E - Atd', - 'form_title' => 'Client Service Application - WorkBC Participation', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 364 => [ + 'id' => 1864, + 'form_id' => 'HR3612', + 'form_title' => 'Change Request Services in Other Languages Schedule A, Part B, Sections 7.10 and 7.11', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -42884,12 +42968,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 446 => - array ( - 'id' => 1948, - 'form_id' => 'HR3691F', - 'form_title' => 'Client Service Application (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 365 => [ + 'id' => 1865, + 'form_id' => 'HR3613', + 'form_title' => 'Change Request Revenue Flow-Through Schedule A, Part D, Section 5.0 (A)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -42906,17 +42991,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 447 => - array ( - 'id' => 1949, - 'form_id' => 'HR3692F', - 'form_title' => 'Client Service Agreement (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 366 => [ + 'id' => 1866, + 'form_id' => 'HR3614', + 'form_title' => 'FMEP Order/Agreement Attached Letter', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '', + 'form_purpose' => 'FMEP discontinued mid 2010s. Form not in ICM, RF or PPM.', + 'notes' => 'Not on resource finder', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -42924,16 +43010,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 448 => - array ( - 'id' => 1950, - 'form_id' => 'HR3693F', - 'form_title' => 'Self-Employment Out of Area Travel Request/Report (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 367 => [ + 'id' => 1867, + 'form_id' => 'HR3615', + 'form_title' => 'Situation Report', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -42950,12 +43037,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 449 => - array ( - 'id' => 1951, - 'form_id' => 'HR3694F', - 'form_title' => 'Work Experience Agreement (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 368 => [ + 'id' => 1868, + 'form_id' => 'HR3616', + 'form_title' => 'Activity Log', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -42972,12 +43060,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 450 => - array ( - 'id' => 1952, - 'form_id' => 'HR3695F', - 'form_title' => 'Section 25 Referral (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 369 => [ + 'id' => 1869, + 'form_id' => 'HR3617', + 'form_title' => 'Critical Equipment Status Assessment', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -42994,15 +43083,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 451 => - array ( - 'id' => 1953, - 'form_id' => 'HR3696F', - 'form_title' => 'Work Experience - Wage Subsidy Employer Application (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 370 => [ + 'id' => 1870, + 'form_id' => 'HR3618', + 'form_title' => 'THS Eligibility Letter', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '', + 'form_purpose' => 'Letter regarding qualification for THS', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -43011,22 +43101,23 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 452 => - array ( - 'id' => 1954, - 'form_id' => 'HR3697F', - 'form_title' => 'Essential Financial Supports (French)', + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 371 => [ + 'id' => 1871, + 'form_id' => 'HR3619', + 'form_title' => 'Change of Representative', 'ministry_id' => 2, - 'form_purpose' => NULL, - 'notes' => '', + 'form_purpose' => 'FMEP discontinued mid 2010s. Form not in ICM, RF or PPM.', + 'notes' => 'Not on resource finder', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -43034,21 +43125,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 453 => - array ( - 'id' => 1955, - 'form_id' => 'HR3698E-AT', - 'form_title' => 'Client Consent to Collect, Use and Disclose Information', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 372 => [ + 'id' => 1872, + 'form_id' => 'HR3620', + 'form_title' => 'Change of Representative - Respondent', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'FMEP discontinued mid 2010s. Form not in ICM, RF or PPM.', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -43056,23 +43148,24 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 454 => - array ( - 'id' => 1956, - 'form_id' => 'HR3698F', - 'form_title' => 'Client Consent to Collect, Use and Disclose Information (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 373 => [ + 'id' => 1873, + 'form_id' => 'HR3621', + 'form_title' => 'Family Search Request - FLA SDSI Contract Lawyer (Sample Only)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, + 'form_frequency_id' => 3, + 'form_reach_id' => 1, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, @@ -43082,12 +43175,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 455 => - array ( - 'id' => 1957, - 'form_id' => 'HR3699F', - 'form_title' => 'Request for Authorization to Quit Employment (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 374 => [ + 'id' => 1874, + 'form_id' => 'HR3622', + 'form_title' => 'Alcohol and Drug Counselling Services Supplement Renewal', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -43104,15 +43198,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 456 => - array ( - 'id' => 1958, - 'form_id' => 'HR3700F', - 'form_title' => 'Debt Assignment Agreement (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 375 => [ + 'id' => 1875, + 'form_id' => 'HR3623', + 'form_title' => 'Waiver for CPP Death Benefit', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -43122,19 +43217,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 457 => - array ( - 'id' => 1959, - 'form_id' => 'HR3701F', - 'form_title' => 'Work Experience - Wage Subsidy Claim Form (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 376 => [ + 'id' => 1876, + 'form_id' => 'HR3624E', + 'form_title' => 'Client Consent to Publication', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Previously HR5619E', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -43144,19 +43240,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 458 => - array ( - 'id' => 1960, - 'form_id' => 'HR3702F', - 'form_title' => 'Action Plan (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 377 => [ + 'id' => 1877, + 'form_id' => 'HR3625E', + 'form_title' => 'Community and Emloyer Partnership (CEP) Client Consent to Collection and Publication', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Previously HR5621E', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -43166,21 +43263,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 459 => - array ( - 'id' => 1961, - 'form_id' => 'HR3703F', - 'form_title' => 'Self-Employment Business Concept Development and Acceptance (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 378 => [ + 'id' => 1878, + 'form_id' => 'HR3626E', + 'form_title' => 'Modification Agreement', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -43192,15 +43290,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 460 => - array ( - 'id' => 1962, - 'form_id' => 'HR3704F', - 'form_title' => 'Apprentice Services Application (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 379 => [ + 'id' => 1879, + 'form_id' => 'HR3627', + 'form_title' => 'Request for Crisis Supplement - Utilities', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'auto-filled via Client Initiated Service Request', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -43214,15 +43313,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 461 => - array ( - 'id' => 1963, - 'form_id' => 'HR3705E', - 'form_title' => 'Reserved for ELMSD', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 380 => [ + 'id' => 1880, + 'form_id' => 'HR3628', + 'form_title' => 'Request for Crisis Supplement - Shelter', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'auto-filled via Client Initiated Service Request', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -43236,15 +43336,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 462 => - array ( - 'id' => 1964, - 'form_id' => 'HR3706E', - 'form_title' => 'Reserved for ELMSD', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 381 => [ + 'id' => 1881, + 'form_id' => 'HR3629', + 'form_title' => 'Request for Crisis Supplement - Clothing', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'auto-filled via Client Initiated Service Request', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -43258,15 +43359,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 463 => - array ( - 'id' => 1965, - 'form_id' => 'HR3707E', - 'form_title' => 'Reserved for ELMSD', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 382 => [ + 'id' => 1882, + 'form_id' => 'HR3630', + 'form_title' => 'Request for Crisis Supplement - Food', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'auto-filled via Client Initiated Service Request', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -43280,15 +43382,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 464 => - array ( - 'id' => 1966, - 'form_id' => 'HR3708E', - 'form_title' => 'Reserved for ELMSD', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 383 => [ + 'id' => 1883, + 'form_id' => 'HR3631', + 'form_title' => 'Important Reminder - Action Required EP', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , WorkBC Extranet, SR FDD or Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -43298,19 +43401,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 465 => - array ( - 'id' => 1967, - 'form_id' => 'HR3709E-AT', - 'form_title' => 'Client Consent to Publication', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 384 => [ + 'id' => 1884, + 'form_id' => 'HR3632', + 'form_title' => 'Action Required: Employment Plan', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , WorkBC Extranet, SR FDD or Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -43320,19 +43424,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 466 => - array ( - 'id' => 1968, - 'form_id' => 'HR3709F', - 'form_title' => 'Client Consent to Publication (French)', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 385 => [ + 'id' => 1885, + 'form_id' => 'HR3633', + 'form_title' => 'Request for Natal Supplement', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'auto-filled via Client Initiated Service Request', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -43342,19 +43447,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 467 => - array ( - 'id' => 1969, - 'form_id' => 'HR3710F', - 'form_title' => 'Direct Deposit Application/Change Request (French)', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 386 => [ + 'id' => 1886, + 'form_id' => 'HR3634', + 'form_title' => 'Medical Transportation Initiation Request', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'auto-filled via Client Initiated Service Request, when selecting "Within Community" In MySS', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -43363,20 +43469,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 468 => - array ( - 'id' => 1970, - 'form_id' => 'HR3711', - 'form_title' => 'Employment Plan', + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 387 => [ + 'id' => 1887, + 'form_id' => 'HR3635', + 'form_title' => 'Request for Diet Supplement', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'auto-filled via Client Initiated Service Request', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -43390,12 +43497,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 469 => - array ( - 'id' => 1971, - 'form_id' => 'HR3712', - 'form_title' => 'Request for Review of Ministry Error Overpayment for Estoppel Defence', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 388 => [ + 'id' => 1888, + 'form_id' => 'HR3636', + 'form_title' => 'Service Provider Portal Access Request ', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -43412,15 +43520,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 470 => - array ( - 'id' => 1972, - 'form_id' => 'HR3713', - 'form_title' => 'Refresher Training Request', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 389 => [ + 'id' => 1889, + 'form_id' => 'HR3638', + 'form_title' => 'Request for CPP Death Benefit Recovery Funds Claimed and Received in Error', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -43430,16 +43539,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 471 => - array ( - 'id' => 1973, - 'form_id' => 'HR3714E', - 'form_title' => 'WorkBC Employment Services', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 390 => [ + 'id' => 1890, + 'form_id' => 'HR3639', + 'form_title' => 'Confirmation of Income', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -43456,12 +43566,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 472 => - array ( - 'id' => 1974, - 'form_id' => 'HR3716', - 'form_title' => 'P&C Supervisor Service Quality Review', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 391 => [ + 'id' => 1891, + 'form_id' => 'HR3640', + 'form_title' => 'Provincial After Hours Hotel Authorization', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -43478,17 +43589,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 473 => - array ( - 'id' => 1975, - 'form_id' => 'HR3717', - 'form_title' => 'PLMS Admin Supervisor Service Quality Review', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 392 => [ + 'id' => 1892, + 'form_id' => 'HR3641', + 'form_title' => 'Bank Profile and Consent', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '?Retired on Dec 11 2020, by Harleen Price, and removed from the Resource Finder by Jonny. Templates still exisit (as of Dec 11 2020) on the LAN.', + 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -43500,12 +43612,36 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 474 => - array ( - 'id' => 1976, - 'form_id' => 'HR3718', - 'form_title' => 'START Supervisor Service Quality Review', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 393 => [ + 'id' => 1893, + 'form_id' => 'HR3642', + 'form_title' => 'Persons with Disabilities Designation Application - Prescribed Class', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => 4, + 'form_reach_id' => 1, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 394 => [ + 'id' => 1894, + 'form_id' => 'HR3643', + 'form_title' => 'Monthly Nutritional Supplement Decision Summary', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -43522,15 +43658,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 475 => - array ( - 'id' => 1977, - 'form_id' => 'HR3719', - 'form_title' => 'START Touchback Service Quality Review', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 395 => [ + 'id' => 1895, + 'form_id' => 'HR3645', + 'form_title' => 'Request for Information - Communication Supports Required', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => ' Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -43540,21 +43677,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 476 => - array ( - 'id' => 1978, - 'form_id' => 'HR3720', - 'form_title' => 'PLMS HITT SR Service Quailty Review', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 396 => [ + 'id' => 1896, + 'form_id' => 'HR3646', + 'form_title' => 'Confirmation of Aplpication Appointment', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => ' Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -43562,16 +43700,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 477 => - array ( - 'id' => 1979, - 'form_id' => 'HR3722', - 'form_title' => 'CPP Section 10 Denial Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 397 => [ + 'id' => 1897, + 'form_id' => 'HR3647', + 'form_title' => 'Hospital Case Management Routing Cover Sheet - Specialized Intake', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -43588,15 +43727,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 478 => - array ( - 'id' => 1980, - 'form_id' => 'HR3723', - 'form_title' => 'AEE Rollover Annual Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 398 => [ + 'id' => 1898, + 'form_id' => 'HR3648', + 'form_title' => 'CPP Initial Information letter (With CPP Application)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -43606,21 +43746,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 479 => - array ( - 'id' => 1981, - 'form_id' => 'HR3724', - 'form_title' => 'Fax Cover Sheet', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 399 => [ + 'id' => 1899, + 'form_id' => 'HR3649', + 'form_title' => 'OAS/GIS Initial Contact Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -43632,17 +43773,18 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 480 => - array ( - 'id' => 1982, - 'form_id' => 'HR3725', - 'form_title' => 'PWD Adjudication Review Letter - Health Assistance Use Only', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 400 => [ + 'id' => 1900, + 'form_id' => 'HR3650', + 'form_title' => 'OAS/GIS Second Contact Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -43654,15 +43796,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 481 => - array ( - 'id' => 1983, - 'form_id' => 'HR3726', - 'form_title' => 'Request to Change Purchase Card Limit', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 401 => [ + 'id' => 1901, + 'form_id' => 'HR3651', + 'form_title' => 'BC Bus Pass Program Genery Enquiry Form', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -43672,19 +43815,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 482 => - array ( - 'id' => 1984, - 'form_id' => 'HR3728', - 'form_title' => 'Quailty Consulation Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 402 => [ + 'id' => 1902, + 'form_id' => 'HR3652', + 'form_title' => 'Notice of Termination of Family Maintenance Services for contracted Legal Counsel', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -43694,16 +43838,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 483 => - array ( - 'id' => 1985, - 'form_id' => 'HR3729', - 'form_title' => 'Spot Light Awards Nomination Form', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 403 => [ + 'id' => 1903, + 'form_id' => 'HR3653E', + 'form_title' => 'Client Consent to Collection and Information', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -43720,13 +43865,14 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 484 => - array ( - 'id' => 1986, - 'form_id' => 'HR3730', - 'form_title' => 'Employee Relocation Information', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 404 => [ + 'id' => 1904, + 'form_id' => 'HR3654E', + 'form_title' => 'Services to Adults with Developmental Disabilities (STADD) Employee Initiated Transfer Request', + 'ministry_id' => 1, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -43742,12 +43888,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 485 => - array ( - 'id' => 1987, - 'form_id' => 'HR3731', - 'form_title' => 'New Bargaining Unit Employees Relocation Payment Request', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 405 => [ + 'id' => 1905, + 'form_id' => 'HR3655E', + 'form_title' => 'WorkBC Centre Employer and Service Provider Staff Consent to Collect, Disclose and Publish Personal Information', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -43764,15 +43911,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 486 => - array ( - 'id' => 1988, - 'form_id' => 'HR3732', - 'form_title' => 'Existing Bargaining Unit Employees Relocation Payment Request', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 406 => [ + 'id' => 1940, + 'form_id' => 'HR3689E-AT', + 'form_title' => 'Assistive Technology Intake', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -43781,20 +43929,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 487 => - array ( - 'id' => 1989, - 'form_id' => 'HR3733', - 'form_title' => 'Exculded Emloyees Relocation Payment Request', + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 407 => [ + 'id' => 1906, + 'form_id' => 'HR3655F', + 'form_title' => 'WorkBC Centre Employer and Service Provider Staff Consent to Collect, Disclose and Publish Personal Information (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -43804,19 +43953,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 488 => - array ( - 'id' => 1990, - 'form_id' => 'HR3734', - 'form_title' => 'Request for Resiliance Module Facilitator', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 408 => [ + 'id' => 1907, + 'form_id' => 'HR3656', + 'form_title' => 'Referral for Criminal Investigation', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -43826,19 +43976,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 489 => - array ( - 'id' => 1991, - 'form_id' => 'HR3735', - 'form_title' => 'Honorarium Payment Request', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 409 => [ + 'id' => 1908, + 'form_id' => 'HR3657E', + 'form_title' => 'Single Parent Employment Initiative (SPEI) Ministry Review Template', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -43848,21 +43999,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 490 => - array ( - 'id' => 1992, - 'form_id' => 'HR4003', - 'form_title' => 'INA Food Voucher - Sample', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 410 => [ + 'id' => 1909, + 'form_id' => 'HR3658', + 'form_title' => 'Group Mentoring - Obsolete', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -43874,15 +44026,39 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 491 => - array ( - 'id' => 1993, - 'form_id' => 'HR4004', - 'form_title' => 'Stakeholder Consent Notification', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 411 => [ + 'id' => 1910, + 'form_id' => 'HR3659', + 'form_title' => 'START Third Party Checks Recording Document', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => 4, + 'form_reach_id' => 1, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 412 => [ + 'id' => 1911, + 'form_id' => 'HR3660', + 'form_title' => 'Request for Alternative Hearing Supplement', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -43892,19 +44068,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 492 => - array ( - 'id' => 1994, - 'form_id' => 'HR4005', - 'form_title' => 'Operations Support - Analytics & Business Intelligance', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 413 => [ + 'id' => 1912, + 'form_id' => 'HR3661', + 'form_title' => 'WorkBC Centre Apprentice Attendance Confirmation', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , WorkBC Extranet, SR FDD or Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -43914,21 +44091,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 493 => - array ( - 'id' => 1995, - 'form_id' => 'HR4006', - 'form_title' => 'Geographic Transfer Request', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 414 => [ + 'id' => 1913, + 'form_id' => 'HR3662', + 'form_title' => 'Service Excellence Reporting and Action (SERA)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -43940,15 +44118,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 494 => - array ( - 'id' => 1996, - 'form_id' => 'HR4007', - 'form_title' => 'Stream Transfer Request', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 415 => [ + 'id' => 1914, + 'form_id' => 'HR3663', + 'form_title' => 'Interdivisional Working Group Issue Analysis', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -43958,19 +44137,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 495 => - array ( - 'id' => 1997, - 'form_id' => 'HR4008', - 'form_title' => 'Staff Update Request', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 416 => [ + 'id' => 1915, + 'form_id' => 'HR3664', + 'form_title' => 'Poverty Reduction Advisory Committee Nomination Form', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -43980,19 +44160,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 496 => - array ( - 'id' => 1998, - 'form_id' => 'HR4009', - 'form_title' => 'PLMS Geographic Transfer Request', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 417 => [ + 'id' => 1916, + 'form_id' => 'HR3665', + 'form_title' => 'Assistive Technology RFQ Response Guidelines and Evaluation Criteria', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -44002,24 +44183,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 497 => - array ( - 'id' => 1999, - 'form_id' => 'HR4010', - 'form_title' => 'Change Request WorkBC Employment Services Agreement Administrative Error Correction', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 418 => [ + 'id' => 1917, + 'form_id' => 'HR3666', + 'form_title' => 'Apprenice Services RFQ Response Guidelines and Evaluation Criteria', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Decommissioned: confirmed August 10/22 - MA - -? -', + 'notes' => 'Not in PPM, RF, ICM , WorkBC Extranet, SR FDD or Forms FDD', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -44027,22 +44206,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 498 => - array ( - 'id' => 2000, - 'form_id' => 'HR4011', - 'form_title' => 'Change Request WorkBC Employment Services Agreement Approved Subcontractor(s) - Schedule C', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 419 => [ + 'id' => 1918, + 'form_id' => 'HR3668', + 'form_title' => 'Employment Services RFQ Response Guidelines and Evalution Criteria', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Decommissioned: confirmed August 10/22 - MA? -WorkBC Extranet', + 'notes' => 'Not in PPM, RF, ICM , WorkBC Extranet, SR FDD or Forms FDD', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -44050,22 +44229,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 499 => - array ( - 'id' => 2001, - 'form_id' => 'HR4012', - 'form_title' => 'Change Request WorkBC Employment Services Agreement Centre Address(es) - Schedule A Section 6.1.1 and 6.1.2', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 420 => [ + 'id' => 1919, + 'form_id' => 'HR3668B', + 'form_title' => 'Employment Services RFQ Response Guidelines and Evalution Criteria', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Decommissioned: confirmed August 10/22 - MA? -WorkBC Extranet', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -44073,28 +44252,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - )); - \DB::table('forms')->insert(array ( - 0 => - array ( - 'id' => 2002, - 'form_id' => 'HR4013', - 'form_title' => 'Change Request WorkBC Employment Services Agreement Contractor Legal Name, Address, Email Address', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 421 => [ + 'id' => 1920, + 'form_id' => 'HR3671', + 'form_title' => 'Services to Adults with Developmental Disbilities (STADD) Publication Consent', + 'ministry_id' => 1, 'form_purpose' => NULL, - 'notes' => 'Decommissioned: confirmed August 10/22 - MA? - - - -WorkBC Extranet -', + 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -44106,15 +44279,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 1 => - array ( - 'id' => 2003, - 'form_id' => 'HR4014', - 'form_title' => 'Change Request WorkBC Employment Services Agreement Service Utilization Targets - Schedule A Section 18.2', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 422 => [ + 'id' => 1921, + 'form_id' => 'HR3672', + 'form_title' => 'General Stakeholder Notification E-Signature and Consent', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Decommissioned: confirmed August 10/22 - MA? ; WorkBC Extranet', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => true, 'form_frequency_id' => NULL, @@ -44128,37 +44302,39 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 2 => - array ( - 'id' => 2004, - 'form_id' => 'HR4015', - 'form_title' => 'Intake Cheque Hold Document', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 423 => [ + 'id' => 1922, + 'form_id' => 'HR3673', + 'form_title' => 'Relocation Assistance and/or Househunting Expense Report and Assignment of Wages Agreement', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, - 'form_reach_id' => 1, + 'form_reach_id' => NULL, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 3 => - array ( - 'id' => 2005, - 'form_id' => 'HR4016', - 'form_title' => 'Corporate Paid Parking Application', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 424 => [ + 'id' => 1923, + 'form_id' => 'HR3674', + 'form_title' => 'Blanket Travel Pre-Authorization Form', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'This may still be a draft only, but we aren\'t sure.', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -44168,19 +44344,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 4 => - array ( - 'id' => 2006, - 'form_id' => 'HR4017', - 'form_title' => 'Personal Information Consent Form', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 425 => [ + 'id' => 1924, + 'form_id' => 'HR3675', + 'form_title' => 'Single Parent Employment Initiative (SPEI) Ministry Review Template', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD. Very likely inactive as the Single Parent Employment Initiative happened several years ago. ', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -44190,19 +44367,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 5 => - array ( - 'id' => 2007, - 'form_id' => 'HR4018', - 'form_title' => 'Certification of Authorization to Collect Information - PPMB', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 426 => [ + 'id' => 1925, + 'form_id' => 'HR3676', + 'form_title' => 'Referral for Criminal Investigation - Quality & Compliance Specialist Use Only', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD. Criminal Investigation Unit receives referrals from the online Fraud Allegation Portal.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -44212,16 +44390,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 6 => - array ( - 'id' => 2008, - 'form_id' => 'HR4019', - 'form_title' => 'Certification of Authorization to Collect Information - PWD', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 427 => [ + 'id' => 1926, + 'form_id' => 'HR3677', + 'form_title' => 'Schedule A - Appendix A1 Third Party Administration of Benefits Services Referral Form', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -44237,13 +44416,14 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 7 => - array ( - 'id' => 2009, - 'form_id' => 'HR4020', - 'form_title' => 'Trust Initial Contact Letter', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 428 => [ + 'id' => 1927, + 'form_id' => 'HR3678', + 'form_title' => 'Third Party Administration - Client Review Form', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -44260,12 +44440,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 8 => - array ( - 'id' => 2010, - 'form_id' => 'HR4021', - 'form_title' => 'Trust More Information Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 429 => [ + 'id' => 1928, + 'form_id' => 'HR3678B', + 'form_title' => 'Third Party Administration - Client Input Form', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -44282,12 +44463,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 9 => - array ( - 'id' => 2011, - 'form_id' => 'HR4022', - 'form_title' => 'Trust Denial Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 430 => [ + 'id' => 1929, + 'form_id' => 'HR3679', + 'form_title' => 'Corporate (Designated) Parking Application', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -44304,12 +44486,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 10 => - array ( - 'id' => 2012, - 'form_id' => 'HR4023', - 'form_title' => 'Period of Ineligibility Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 431 => [ + 'id' => 1930, + 'form_id' => 'HR3680', + 'form_title' => ' BC Hydro Payment Notification Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -44326,15 +44509,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 11 => - array ( - 'id' => 2013, - 'form_id' => 'HR4024', - 'form_title' => 'Trust Review Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 432 => [ + 'id' => 1931, + 'form_id' => 'HR3681', + 'form_title' => 'Confirmation of Extended Health Coverage', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'ICM generated BIP letter', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -44344,20 +44528,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 12 => - array ( - 'id' => 2014, - 'form_id' => 'HR4025', - 'form_title' => 'Staff Update Form', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 433 => [ + 'id' => 1932, + 'form_id' => 'HR3682', + 'form_title' => 'Initial Consult - Contract Counsel (Pursuing/Not Pusuing)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'T?ransferred to Orbeon 2022 -', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -44367,20 +44551,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => 'Email', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 13 => - array ( - 'id' => 2015, - 'form_id' => 'HR4026', - 'form_title' => 'Employee Initiated Transfer Request STREAM', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 434 => [ + 'id' => 1933, + 'form_id' => 'HR3683', + 'form_title' => 'Ad Hoc Referral from Contract Counsel', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '?This lives on the Loop, here: -https://intranet.gov.bc.ca/theloop/service-delivery-division/operations-support/centralized-recruitment-staffing', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -44390,19 +44574,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 14 => - array ( - 'id' => 2016, - 'form_id' => 'HR4027', - 'form_title' => 'Annual OHS Acton Plan', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 435 => [ + 'id' => 1934, + 'form_id' => 'HR3684', + 'form_title' => 'Notice of Termination of Family Maintenance Services for contracted Legal Counsel', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -44412,16 +44597,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 15 => - array ( - 'id' => 2017, - 'form_id' => 'HR4028', - 'form_title' => 'Environmental Risk Assessment', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 436 => [ + 'id' => 1935, + 'form_id' => 'HR3685', + 'form_title' => 'Future Leaders Program Application Form', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -44438,12 +44624,13 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 16 => - array ( - 'id' => 2018, - 'form_id' => 'HR4029', - 'form_title' => 'Violence Prevention Plan � Risk Assessment Guideline', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 437 => [ + 'id' => 1936, + 'form_id' => 'HR3686', + 'form_title' => 'PWD Income/Assets In Excess Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -44460,13 +44647,14 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 17 => - array ( - 'id' => 2019, - 'form_id' => 'HR4030', - 'form_title' => 'Safety Inspection Checklist', - 'ministry_id' => 2, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 438 => [ + 'id' => 1937, + 'form_id' => 'HR3687E-AT', + 'form_title' => 'Disability Related Employment Needs Assessment', + 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -44482,15 +44670,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 18 => - array ( - 'id' => 2020, - 'form_id' => 'HR4031', - 'form_title' => 'WHMIS Review', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 439 => [ + 'id' => 1938, + 'form_id' => 'HR3687F', + 'form_title' => 'Disability Related Employment Needs Assessment (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -44500,19 +44689,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 19 => - array ( - 'id' => 2021, - 'form_id' => 'HR4032', - 'form_title' => 'Additional Security Guard Request', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 440 => [ + 'id' => 1939, + 'form_id' => 'HR3688F', + 'form_title' => 'Client Needs Assessment (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -44522,19 +44712,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 20 => - array ( - 'id' => 2022, - 'form_id' => 'HR4033', - 'form_title' => 'Government Vehicle Assignment Request', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 441 => [ + 'id' => 1941, + 'form_id' => 'HR3689F', + 'form_title' => 'Assistive Technology Intake (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -44544,20 +44735,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 21 => - array ( - 'id' => 2023, - 'form_id' => 'HR4035', - 'form_title' => 'Employee Initiated Transfer Request GEOGRAPHIC', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 442 => [ + 'id' => 1942, + 'form_id' => 'HR3690E-AT', + 'form_title' => 'Assistive Technology Services Client Agreement Form', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '?This form is handled by the business, we do not deal with getting it where it lives. -', + 'notes' => 'Received in ICM from OES', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -44567,19 +44758,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 22 => - array ( - 'id' => 2024, - 'form_id' => 'HR4036', - 'form_title' => 'Community Volunteer Supplement Letter', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 443 => [ + 'id' => 1943, + 'form_id' => 'HR3690F', + 'form_title' => 'Assistive Technology Services Client Agreement Form (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -44589,20 +44781,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 23 => - array ( - 'id' => 2025, - 'form_id' => 'HR4037', - 'form_title' => 'Easier Tool', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 444 => [ + 'id' => 1944, + 'form_id' => 'HR3691E - ATa', + 'form_title' => 'Client Service Application - Job Search', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => ' -', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -44614,17 +44806,18 @@ public function run() 'icm_non_interactive' => NULL, 'footer_fragment_path' => '', 'dcv_material_number' => ' ', - 'orbeon_functions' => 'Email', - 'icm_generated' => NULL, - ), - 24 => - array ( - 'id' => 2026, - 'form_id' => 'HR4038', - 'form_title' => 'Accessibility Feedback Form', + 'orbeon_functions' => '', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 445 => [ + 'id' => 1945, + 'form_id' => 'HR3691E - ATf', + 'form_title' => 'Client Serivce Application - Job Start', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Accessibility Directorate�?', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -44634,19 +44827,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => 'Email', - 'icm_generated' => NULL, - ), - 25 => - array ( - 'id' => 2027, - 'form_id' => 'HR4039', - 'form_title' => 'Annualized Earnings Exemption (0% Remaining) Threshold Letter', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 446 => [ + 'id' => 1946, + 'form_id' => 'HR3691E - ATd', + 'form_title' => 'Client Service Application - Job Sustainment', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -44656,20 +44850,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 26 => - array ( - 'id' => 2028, - 'form_id' => 'HR4040', - 'form_title' => 'Annual Earnings Exemption (0 Percent Remaining) Threshold Letter', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 447 => [ + 'id' => 1947, + 'form_id' => 'HR3691E - ATb', + 'form_title' => 'Client Service Application - WorkBC Participation', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '?also in Policy and Procedure Manual, which is somehow the same as Resource Finder? -', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -44678,17 +44872,18 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => true, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 27 => - array ( - 'id' => 2029, - 'form_id' => 'HR4041', - 'form_title' => 'Crisis Furniture', + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 448 => [ + 'id' => 1948, + 'form_id' => 'HR3691F', + 'form_title' => 'Client Service Application (French)', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -44704,16 +44899,17 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 28 => - array ( - 'id' => 2030, - 'form_id' => 'HR4042', - 'form_title' => 'Crisis Home Repair', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 449 => [ + 'id' => 1949, + 'form_id' => 'HR3692F', + 'form_title' => 'Client Service Agreement (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -44723,19 +44919,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => 'Attachments', - 'icm_generated' => true, - ), - 29 => - array ( - 'id' => 2031, - 'form_id' => 'HRTest', - 'form_title' => 'Section 25 Referral (HR3551E)', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 450 => [ + 'id' => 1950, + 'form_id' => 'HR3693F', + 'form_title' => 'Self-Employment Out of Area Travel Request/Report (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -44745,19 +44942,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 30 => - array ( - 'id' => 2032, - 'form_id' => 'HSD0024', - 'form_title' => 'Declaration and Undertaking for a Lost or Stolen Cheque', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 451 => [ + 'id' => 1951, + 'form_id' => 'HR3694F', + 'form_title' => 'Work Experience Agreement (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Infopath', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -44767,21 +44965,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 31 => - array ( - 'id' => 2033, - 'form_id' => 'HSD0095', - 'form_title' => 'Release of Personal Information', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 452 => [ + 'id' => 1952, + 'form_id' => 'HR3695F', + 'form_title' => 'Section 25 Referral (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Infopath', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -44789,21 +44988,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 32 => - array ( - 'id' => 2034, - 'form_id' => 'HSD0407', - 'form_title' => 'Health Goods & Services Purchase Authorization', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 453 => [ + 'id' => 1953, + 'form_id' => 'HR3696F', + 'form_title' => 'Work Experience - Wage Subsidy Employer Application (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Infopath', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -44811,43 +45011,45 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 33 => - array ( - 'id' => 2035, - 'form_id' => 'HSD2138', - 'form_title' => 'Medical Equipment Request and Justification', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 454 => [ + 'id' => 1954, + 'form_id' => 'HR3697F', + 'form_title' => 'Essential Financial Supports (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Infopath', + 'notes' => 'standalone. All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, - 'decommissioned' => true, - 'form_frequency_id' => NULL, - 'form_reach_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => 4, + 'form_reach_id' => 3, 'created_at' => NULL, 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 34 => - array ( - 'id' => 2036, - 'form_id' => 'HSD2648', - 'form_title' => 'EA or EAPWD Application Direct Deposit Request', + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 455 => [ + 'id' => 1955, + 'form_id' => 'HR3698E-AT', + 'form_title' => 'Client Consent to Collect, Use and Disclose Information', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Infopath', + 'notes' => NULL, 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -44855,21 +45057,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 35 => - array ( - 'id' => 2037, - 'form_id' => 'HSD2748', - 'form_title' => 'Assignment of Maintenance Rights', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 456 => [ + 'id' => 1956, + 'form_id' => 'HR3698F', + 'form_title' => 'Client Consent to Collect, Use and Disclose Information (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Infopath', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -44877,21 +45080,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 36 => - array ( - 'id' => 2038, - 'form_id' => 'HSD2790', - 'form_title' => 'HIGH RISK: FM CLIENT REQUESTS AUTHORITY TO ACT', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 457 => [ + 'id' => 1957, + 'form_id' => 'HR3699F', + 'form_title' => 'Request for Authorization to Quit Employment (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Infopath', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -44899,21 +45103,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 37 => - array ( - 'id' => 2039, - 'form_id' => 'HSD2847', - 'form_title' => 'Application for Monthly Nutritional Supplement', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 458 => [ + 'id' => 1958, + 'form_id' => 'HR3700F', + 'form_title' => 'Debt Assignment Agreement (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Infopath', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -44921,21 +45126,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 38 => - array ( - 'id' => 2040, - 'form_id' => 'HSD2883', - 'form_title' => 'HSD2883', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 459 => [ + 'id' => 1959, + 'form_id' => 'HR3701F', + 'form_title' => 'Work Experience - Wage Subsidy Claim Form (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Infopath', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -44943,21 +45149,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 39 => - array ( - 'id' => 2041, - 'form_id' => 'HSD2892', - 'form_title' => 'Medical Report - Persons with Persistent Multiple Barriers', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 460 => [ + 'id' => 1960, + 'form_id' => 'HR3702F', + 'form_title' => 'Action Plan (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Infopath', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -44965,21 +45172,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 40 => - array ( - 'id' => 2042, - 'form_id' => 'HSD3069', - 'form_title' => 'Medical Report � Employability', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 461 => [ + 'id' => 1961, + 'form_id' => 'HR3703F', + 'form_title' => 'Self-Employment Business Concept Development and Acceptance (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Infopath', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -44987,21 +45195,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 41 => - array ( - 'id' => 2043, - 'form_id' => 'HSD3237', - 'form_title' => 'Information required - Medical', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 462 => [ + 'id' => 1962, + 'form_id' => 'HR3704F', + 'form_title' => 'Apprentice Services Application (French)', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Infopath', + 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -45012,18 +45221,19 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 42 => - array ( - 'id' => 2044, - 'form_id' => 'HSD3266', - 'form_title' => 'Client Identification Level 1', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 463 => [ + 'id' => 1963, + 'form_id' => 'HR3705E', + 'form_title' => 'Reserved for ELMSD', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Infopath', + 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -45034,18 +45244,19 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 43 => - array ( - 'id' => 2045, - 'form_id' => 'HSD3267', - 'form_title' => 'Two Year Independence Assessment', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 464 => [ + 'id' => 1964, + 'form_id' => 'HR3706E', + 'form_title' => 'Reserved for ELMSD', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Infopath', + 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -45056,18 +45267,19 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 44 => - array ( - 'id' => 2046, - 'form_id' => 'HSD3271', - 'form_title' => 'Identity Verification Checklist', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 465 => [ + 'id' => 1965, + 'form_id' => 'HR3707E', + 'form_title' => 'Reserved for ELMSD', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Infopath', + 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => true, + 'decommissioned' => false, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -45078,13 +45290,14 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 45 => - array ( - 'id' => 2047, - 'form_id' => 'ISD0001', - 'form_title' => 'CTO Impact Assessment', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 466 => [ + 'id' => 1966, + 'form_id' => 'HR3708E', + 'form_title' => 'Reserved for ELMSD', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -45101,15 +45314,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 46 => - array ( - 'id' => 2048, - 'form_id' => 'ISD0002', - 'form_title' => 'Pick Me', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 467 => [ + 'id' => 1967, + 'form_id' => 'HR3709E-AT', + 'form_title' => 'Client Consent to Publication', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -45118,20 +45332,21 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 47 => - array ( - 'id' => 2049, - 'form_id' => 'ISD0003', - 'form_title' => 'Appropriate Usage Agreement (Formerly HR3051)', - 'ministry_id' => 1, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 468 => [ + 'id' => 1968, + 'form_id' => 'HR3709F', + 'form_title' => 'Client Consent to Publication (French)', + 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Digital Signature. All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -45141,19 +45356,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 48 => - array ( - 'id' => 2050, - 'form_id' => 'ISD0004', - 'form_title' => 'Remote Access Agreement (Formerly HR3014)', - 'ministry_id' => 1, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 469 => [ + 'id' => 1969, + 'form_id' => 'HR3710F', + 'form_title' => 'Direct Deposit Application/Change Request (French)', + 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'All ELMSD French forms are PDF and located on ELMSD WorkBC Extranet, and do not flow through portal.', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -45163,16 +45379,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, 'icm_generated' => false, - ), - 49 => - array ( - 'id' => 2051, - 'form_id' => 'ISD0005', - 'form_title' => 'Operational Checklist', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 470 => [ + 'id' => 1971, + 'form_id' => 'HR3712', + 'form_title' => 'Request for Review of Ministry Error Overpayment for Estoppel Defence', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -45189,15 +45406,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 50 => - array ( - 'id' => 2052, - 'form_id' => 'ISD0006', - 'form_title' => 'Demo - Form functionality', + 'program' => NULL, + 'deleted_at' => NULL, + ], + 471 => [ + 'id' => 1972, + 'form_id' => 'HR3713', + 'form_title' => 'Refresher Training Request', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'This may still be a draft only, but we aren\'t sure.', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -45210,13 +45428,14 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 51 => - array ( - 'id' => 2053, - 'form_id' => 'ISP1613', - 'form_title' => 'Consent to Deduction and Payment Canada Pension Plan (CPP) (HRDC-ISP1613)', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 472 => [ + 'id' => 1973, + 'form_id' => 'HR3714E', + 'form_title' => 'WorkBC Employment Services', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -45232,16 +45451,17 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 52 => - array ( - 'id' => 2054, - 'form_id' => 'Missing Info Letter', - 'form_title' => 'Missing information letter (associated with PWD application)', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 473 => [ + 'id' => 1974, + 'form_id' => 'HR3716', + 'form_title' => 'P&C Supervisor Service Quality Review', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Infopath', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -45254,18 +45474,19 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 53 => - array ( - 'id' => 2055, - 'form_id' => 'MV2504A', - 'form_title' => 'Secondary ID Attestation', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 474 => [ + 'id' => 1975, + 'form_id' => 'HR3717', + 'form_title' => 'PLMS Admin Supervisor Service Quality Review', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => '?Retired on Dec 11 2020, by Harleen Price, and removed from the Resource Finder by Jonny. Templates still exisit (as of Dec 11 2020) on the LAN.', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -45276,16 +45497,17 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 54 => - array ( - 'id' => 2056, - 'form_id' => 'NOA GST', - 'form_title' => 'Bus Pass NOA GST Letter', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 475 => [ + 'id' => 1976, + 'form_id' => 'HR3718', + 'form_title' => 'START Supervisor Service Quality Review', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => 'Template for Integration Purpose', + 'notes' => '', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -45298,16 +45520,17 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 55 => - array ( - 'id' => 2057, - 'form_id' => 'Outline for Reimbursement Claims', - 'form_title' => 'Outline for Reimbursement Claims', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 476 => [ + 'id' => 1977, + 'form_id' => 'HR3719', + 'form_title' => 'START Touchback Service Quality Review', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -45317,21 +45540,22 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 56 => - array ( - 'id' => 2058, - 'form_id' => 'Petty Cash Reconciliation Replenishment Report', - 'form_title' => 'Petty Cash Reconciliation Replenishment Report', - 'ministry_id' => 1, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 477 => [ + 'id' => 1978, + 'form_id' => 'HR3720', + 'form_title' => 'PLMS HITT SR Service Quailty Review', + 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, - 'decommissioned' => false, + 'decommissioned' => true, 'form_frequency_id' => NULL, 'form_reach_id' => NULL, 'created_at' => NULL, @@ -45342,16 +45566,20 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 57 => - array ( - 'id' => 2059, - 'form_id' => 'S2528', - 'form_title' => 'EI Assignment', - 'ministry_id' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 478 => [ + 'id' => 1979, + 'form_id' => 'HR3722', + 'form_title' => 'CPP Section 10 Denial Letter', + 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'Program: CPPD, +Print and mail to client + +Section 10 denial letter sent to client with non compliance of CPPD requirements', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -45360,18 +45588,19 @@ public function run() 'updated_at' => NULL, 'print_reason' => NULL, 'retention_needs' => NULL, - 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => false, - ), - 58 => - array ( - 'id' => 2060, - 'form_id' => 'Sample Non-Interactive', - 'form_title' => 'BC Logo_Revised', - 'ministry_id' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 479 => [ + 'id' => 1980, + 'form_id' => 'HR3723', + 'form_title' => 'AEE Rollover Annual Letter', + 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -45386,13 +45615,14 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 59 => - array ( - 'id' => 2061, - 'form_id' => 'SD0149', - 'form_title' => 'Purchase Authorization', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 480 => [ + 'id' => 1981, + 'form_id' => 'HR3724', + 'form_title' => 'Fax Cover Sheet', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -45408,13 +45638,14 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => true, - ), - 60 => - array ( - 'id' => 2062, - 'form_id' => 'SD3460', - 'form_title' => 'Apprentice Online Portal � Application for Support - NCM Apprentice', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 481 => [ + 'id' => 1982, + 'form_id' => 'HR3725', + 'form_title' => 'PWD Adjudication Review Letter - Health Assistance Use Only', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -45430,16 +45661,17 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 61 => - array ( - 'id' => 2063, - 'form_id' => 'STN 002', - 'form_title' => 'Envelope Kraft Comp Do Not Forward', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 482 => [ + 'id' => 1983, + 'form_id' => 'HR3726', + 'form_title' => 'Request to Change Purchase Card Limit', 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'This form is handled by the business. ', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -45449,16 +45681,17 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => '7530913001', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 62 => - array ( - 'id' => 2064, - 'form_id' => 'T5007', - 'form_title' => 'T5 Statement of Benefits', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 483 => [ + 'id' => 1984, + 'form_id' => 'HR3728', + 'form_title' => 'Quailty Consulation Letter', 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', @@ -45475,15 +45708,16 @@ public function run() 'dcv_material_number' => ' ', 'orbeon_functions' => '', 'icm_generated' => false, - ), - 63 => - array ( - 'id' => 2065, - 'form_id' => 'Trauma Brief Screen', - 'form_title' => 'Trauma Brief Screen', - 'ministry_id' => 1, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 484 => [ + 'id' => 1985, + 'form_id' => 'HR3729', + 'form_title' => 'Spot Light Awards Nomination Form', + 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'This form is handled by the business ', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -45493,19 +45727,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 64 => - array ( - 'id' => 2066, - 'form_id' => 'vsa430d', - 'form_title' => '', - 'ministry_id' => 1, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 485 => [ + 'id' => 1986, + 'form_id' => 'HR3730', + 'form_title' => 'Employee Relocation Information', + 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => 'This form is handled by the business. ', 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -45515,19 +45750,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 65 => - array ( - 'id' => 2067, - 'form_id' => 'vsa430m', - 'form_title' => '', - 'ministry_id' => 1, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 486 => [ + 'id' => 1987, + 'form_id' => 'HR3731', + 'form_title' => 'New Bargaining Unit Employees Relocation Payment Request', + 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -45537,19 +45773,20 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', - 'dcv_material_number' => ' ', - 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 66 => - array ( - 'id' => 2068, - 'form_id' => 'vsa430mCFb', - 'form_title' => '', - 'ministry_id' => 1, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 487 => [ + 'id' => 1988, + 'form_id' => 'HR3732', + 'form_title' => 'Existing Bargaining Unit Employees Relocation Payment Request', + 'ministry_id' => 2, 'form_purpose' => NULL, - 'notes' => '', + 'notes' => NULL, 'fill_type_id' => NULL, 'decommissioned' => false, 'form_frequency_id' => NULL, @@ -45559,17 +45796,488 @@ public function run() 'print_reason' => NULL, 'retention_needs' => NULL, 'icm_non_interactive' => NULL, - 'footer_fragment_path' => '', + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 488 => [ + 'id' => 1989, + 'form_id' => 'HR3733', + 'form_title' => 'Exculded Emloyees Relocation Payment Request', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 489 => [ + 'id' => 1990, + 'form_id' => 'HR3734', + 'form_title' => 'Request for Resiliance Module Facilitator', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'Not in PPM, RF, ICM , SR FDD or Forms FDD', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 490 => [ + 'id' => 1991, + 'form_id' => 'HR3735', + 'form_title' => 'Honorarium Payment Request', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => '', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - 67 => - array ( - 'id' => 2069, - 'form_id' => 'vsa433', - 'form_title' => '', - 'ministry_id' => 1, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 491 => [ + 'id' => 1992, + 'form_id' => 'HR4003', + 'form_title' => 'INA Food Voucher - Sample', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 492 => [ + 'id' => 1993, + 'form_id' => 'HR4004', + 'form_title' => 'Stakeholder Consent Notification', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 493 => [ + 'id' => 1994, + 'form_id' => 'HR4005', + 'form_title' => 'Operations Support - Analytics & Business Intelligance', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 494 => [ + 'id' => 1995, + 'form_id' => 'HR4006', + 'form_title' => 'Geographic Transfer Request', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'This form is handled by the business. ', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 495 => [ + 'id' => 1996, + 'form_id' => 'HR4007', + 'form_title' => 'Stream Transfer Request', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'Not in RF or Loop. Is this the same form as HR4026? ', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 496 => [ + 'id' => 1997, + 'form_id' => 'HR4008', + 'form_title' => 'Staff Update Request', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'This form is managed by the business. ', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 497 => [ + 'id' => 1998, + 'form_id' => 'HR4009', + 'form_title' => 'PLMS Geographic Transfer Request', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'This form is handled by the business ', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 498 => [ + 'id' => 1999, + 'form_id' => 'HR4010', + 'form_title' => 'Change Request WorkBC Employment Services Agreement Administrative Error Correction', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'Decommissioned: confirmed August 10/22 - MA, + +?', + 'fill_type_id' => NULL, + 'decommissioned' => true, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => '', + 'dcv_material_number' => ' ', + 'orbeon_functions' => '', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 499 => [ + 'id' => 2000, + 'form_id' => 'HR4011', + 'form_title' => 'Change Request WorkBC Employment Services Agreement Approved Subcontractor(s) - Schedule C', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'Decommissioned: confirmed August 10/22 - MA?, +WorkBC Extranet', + 'fill_type_id' => NULL, + 'decommissioned' => true, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => '', + 'dcv_material_number' => ' ', + 'orbeon_functions' => '', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + ]); + \DB::table('forms')->insert([ + 0 => [ + 'id' => 2001, + 'form_id' => 'HR4012', + 'form_title' => 'Change Request WorkBC Employment Services Agreement Centre Address(es) - Schedule A Section 6.1.1 and 6.1.2', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'Decommissioned: confirmed August 10/22 - MA?, +WorkBC Extranet', + 'fill_type_id' => NULL, + 'decommissioned' => true, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => '', + 'dcv_material_number' => ' ', + 'orbeon_functions' => '', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 1 => [ + 'id' => 2002, + 'form_id' => 'HR4013', + 'form_title' => 'Change Request WorkBC Employment Services Agreement Contractor Legal Name, Address, Email Address', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'Decommissioned: confirmed August 10/22 - MA?, + + + +WorkBC Extranet', + 'fill_type_id' => NULL, + 'decommissioned' => true, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => '', + 'dcv_material_number' => ' ', + 'orbeon_functions' => '', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 2 => [ + 'id' => 2003, + 'form_id' => 'HR4014', + 'form_title' => 'Change Request WorkBC Employment Services Agreement Service Utilization Targets - Schedule A Section 18.2', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'Decommissioned: confirmed August 10/22 - MA? ; WorkBC Extranet', + 'fill_type_id' => NULL, + 'decommissioned' => true, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => '', + 'dcv_material_number' => ' ', + 'orbeon_functions' => '', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 3 => [ + 'id' => 2004, + 'form_id' => 'HR4015', + 'form_title' => 'Intake Cheque Hold Document', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => 1, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 4 => [ + 'id' => 2005, + 'form_id' => 'HR4016', + 'form_title' => 'Corporate Paid Parking Application', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'This may still be a draft only, but we aren\'t sure.', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 5 => [ + 'id' => 2006, + 'form_id' => 'HR4017', + 'form_title' => 'Personal Information Consent Form', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 6 => [ + 'id' => 2007, + 'form_id' => 'HR4018', + 'form_title' => 'Certification of Authorization to Collect Information - PPMB', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'Not in PPM, RF, SR FDD or Forms FDD', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 7 => [ + 'id' => 2008, + 'form_id' => 'HR4019', + 'form_title' => 'Certification of Authorization to Collect Information - PWD', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'Not in PPM, RF, SR FDD or Forms FDD', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 8 => [ + 'id' => 2009, + 'form_id' => 'HR4020', + 'form_title' => 'Trust Initial Contact Letter', + 'ministry_id' => 2, 'form_purpose' => NULL, 'notes' => '', 'fill_type_id' => NULL, @@ -45584,10 +46292,2669 @@ public function run() 'footer_fragment_path' => '', 'dcv_material_number' => ' ', 'orbeon_functions' => '', - 'icm_generated' => NULL, - ), - )); - - + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 9 => [ + 'id' => 2010, + 'form_id' => 'HR4021', + 'form_title' => 'Trust More Information Letter', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => '', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => '', + 'dcv_material_number' => ' ', + 'orbeon_functions' => '', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 10 => [ + 'id' => 2011, + 'form_id' => 'HR4022', + 'form_title' => 'Trust Denial Letter', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => '', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => '', + 'dcv_material_number' => ' ', + 'orbeon_functions' => '', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 11 => [ + 'id' => 2012, + 'form_id' => 'HR4023', + 'form_title' => 'Period of Ineligibility Letter', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => '', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => '', + 'dcv_material_number' => ' ', + 'orbeon_functions' => '', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 12 => [ + 'id' => 2013, + 'form_id' => 'HR4024', + 'form_title' => 'Trust Review Letter', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => '', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => '', + 'dcv_material_number' => ' ', + 'orbeon_functions' => '', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 13 => [ + 'id' => 2014, + 'form_id' => 'HR4025', + 'form_title' => 'Staff Update Form', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'Transferred to Orbeon 2022?', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => 'Email', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 14 => [ + 'id' => 2015, + 'form_id' => 'HR4026', + 'form_title' => 'Employee Initiated Transfer Request STREAM', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'Program: Employee Initiated Transfer Request (EITR)', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 15 => [ + 'id' => 2016, + 'form_id' => 'HR4027', + 'form_title' => 'Annual OHS Acton Plan', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'This form is handled by the business', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 16 => [ + 'id' => 2017, + 'form_id' => 'HR4028', + 'form_title' => 'Environmental Risk Assessment', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'This form is handled by the business ', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 17 => [ + 'id' => 2018, + 'form_id' => 'HR4029', + 'form_title' => 'Violence Prevention Plan - Risk Assessment Guideline', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 18 => [ + 'id' => 2019, + 'form_id' => 'HR4030', + 'form_title' => 'Safety Inspection Checklist', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'This form is handled by the business. ', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 19 => [ + 'id' => 2020, + 'form_id' => 'HR4031', + 'form_title' => 'WHMIS Review', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'This form is handled by the business area.', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 20 => [ + 'id' => 2021, + 'form_id' => 'HR4032', + 'form_title' => 'Additional Security Guard Request', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'this form is handled by the business', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 21 => [ + 'id' => 2022, + 'form_id' => 'HR4033', + 'form_title' => 'Government Vehicle Assignment Request', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'This form is handled by the business SDD Facilities and Assets - Easier Tool', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 22 => [ + 'id' => 2023, + 'form_id' => 'HR4035', + 'form_title' => 'Employee Initiated Transfer Request GEOGRAPHIC', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => ' This form is handled by the business, we do not get involved with publishing it', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 23 => [ + 'id' => 2024, + 'form_id' => 'HR4036', + 'form_title' => 'Community Volunteer Supplement Letter', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'Program: Health', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 24 => [ + 'id' => 2025, + 'form_id' => 'HR4037', + 'form_title' => 'Easier Tool', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'Program: Analytics and Business Intelligence. (Facilities and Assets)', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => 'Email', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 25 => [ + 'id' => 2026, + 'form_id' => 'HR4038', + 'form_title' => 'Accessibility Feedback Form', + 'ministry_id' => 2, + 'form_purpose' => 'Reporting barriers to government services and supports', + 'notes' => 'client use cases: Digital/print(ie. Braille)', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => 'Email', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 26 => [ + 'id' => 2027, + 'form_id' => 'HR4039', + 'form_title' => 'Annualized Earnings Exemption (0% Remaining) Threshold Letter', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => ' HR4040 - Annual Earnings Exemption (0 Percent Remaining) Threshold Letter Sample is on Loop', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 27 => [ + 'id' => 2028, + 'form_id' => 'HR4040', + 'form_title' => 'Annual Earnings Exemption (0 Percent Remaining) Threshold Letter', + 'ministry_id' => 2, + 'form_purpose' => 'Annual Earnings Exemption (0 Percent Remaining) Threshold Letter', + 'notes' => 'Not found in Case or SR attachments New from Template. Offline sample form in Resource Finder.', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => true, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 28 => [ + 'id' => 2029, + 'form_id' => 'HR4041', + 'form_title' => 'Crisis Furniture', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 29 => [ + 'id' => 2030, + 'form_id' => 'HR4042', + 'form_title' => 'Crisis Home Repair', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => 'Attachments', + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 30 => [ + 'id' => 2031, + 'form_id' => 'HRTEST0001', + 'form_title' => 'Test Section 25 Referral (HR3551E)', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 31 => [ + 'id' => 2032, + 'form_id' => 'HSD0024', + 'form_title' => 'Declaration and Undertaking for a Lost or Stolen Cheque', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'Infopath. Not found in Case or SR attachments New from Template. SOP found but it does not mention that this form is generated in ICM at all - step 2 is to open the form from the Loop/Resource Finder.', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 32 => [ + 'id' => 2033, + 'form_id' => 'HSD0095', + 'form_title' => 'Release of Personal Information', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'Infopath', + 'fill_type_id' => NULL, + 'decommissioned' => true, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => '', + 'dcv_material_number' => ' ', + 'orbeon_functions' => '', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 33 => [ + 'id' => 2034, + 'form_id' => 'HSD0407', + 'form_title' => 'Health Goods & Services Purchase Authorization', + 'ministry_id' => 4, + 'form_purpose' => NULL, + 'notes' => 'Infopath, +AKA HR0407', + 'fill_type_id' => NULL, + 'decommissioned' => true, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 34 => [ + 'id' => 2035, + 'form_id' => 'HSD2138', + 'form_title' => 'Medical Equipment Request and Justification', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'Infopath', + 'fill_type_id' => NULL, + 'decommissioned' => true, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => '', + 'dcv_material_number' => ' ', + 'orbeon_functions' => '', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 35 => [ + 'id' => 2036, + 'form_id' => 'HSD2648', + 'form_title' => 'EA or EAPWD Application Direct Deposit Request', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'Infopath', + 'fill_type_id' => NULL, + 'decommissioned' => true, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => '', + 'dcv_material_number' => ' ', + 'orbeon_functions' => '', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 36 => [ + 'id' => 2037, + 'form_id' => 'HSD2748', + 'form_title' => 'Assignment of Maintenance Rights', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'Infopath', + 'fill_type_id' => NULL, + 'decommissioned' => true, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => '', + 'dcv_material_number' => ' ', + 'orbeon_functions' => '', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 37 => [ + 'id' => 2038, + 'form_id' => 'HSD2790', + 'form_title' => 'HIGH RISK: FM CLIENT REQUESTS AUTHORITY TO ACT', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'Infopath', + 'fill_type_id' => NULL, + 'decommissioned' => true, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => '', + 'dcv_material_number' => ' ', + 'orbeon_functions' => '', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 38 => [ + 'id' => 2039, + 'form_id' => 'HSD2847', + 'form_title' => 'Application for Monthly Nutritional Supplement', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'Infopath', + 'fill_type_id' => NULL, + 'decommissioned' => true, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => '', + 'dcv_material_number' => ' ', + 'orbeon_functions' => '', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 39 => [ + 'id' => 2040, + 'form_id' => 'HSD2883', + 'form_title' => 'HSD2883', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'Infopath', + 'fill_type_id' => NULL, + 'decommissioned' => true, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => '', + 'dcv_material_number' => ' ', + 'orbeon_functions' => '', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 40 => [ + 'id' => 2041, + 'form_id' => 'HSD2892', + 'form_title' => 'Medical Report - Persons with Persistent Multiple Barriers', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'Infopath', + 'fill_type_id' => NULL, + 'decommissioned' => true, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => '', + 'dcv_material_number' => ' ', + 'orbeon_functions' => '', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 41 => [ + 'id' => 2042, + 'form_id' => 'HSD3069', + 'form_title' => 'Medical Report - Employability', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'Infopath', + 'fill_type_id' => NULL, + 'decommissioned' => true, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 42 => [ + 'id' => 2043, + 'form_id' => 'HSD3237', + 'form_title' => 'Information required - Medical', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'Infopath', + 'fill_type_id' => NULL, + 'decommissioned' => true, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => '', + 'dcv_material_number' => ' ', + 'orbeon_functions' => '', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 43 => [ + 'id' => 2044, + 'form_id' => 'HSD3266', + 'form_title' => 'Client Identification Level 1', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'Infopath', + 'fill_type_id' => NULL, + 'decommissioned' => true, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => '', + 'dcv_material_number' => ' ', + 'orbeon_functions' => '', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 44 => [ + 'id' => 2045, + 'form_id' => 'HSD3267', + 'form_title' => 'Two Year Independence Assessment', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'Infopath', + 'fill_type_id' => NULL, + 'decommissioned' => true, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => '', + 'dcv_material_number' => ' ', + 'orbeon_functions' => '', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 45 => [ + 'id' => 2046, + 'form_id' => 'HSD3271', + 'form_title' => 'Identity Verification Checklist', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'Infopath', + 'fill_type_id' => NULL, + 'decommissioned' => true, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => '', + 'dcv_material_number' => ' ', + 'orbeon_functions' => '', + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 46 => [ + 'id' => 2047, + 'form_id' => 'ISD0001', + 'form_title' => 'CTO Impact Assessment', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'More information needed on what this form is. Is this form handled by the business? ', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 47 => [ + 'id' => 2048, + 'form_id' => 'ISD0002', + 'form_title' => 'Pick Me', + 'ministry_id' => 2, + 'form_purpose' => 'Internally used form to select employees who have applied for a temporary task ', + 'notes' => 'This form is handled by the business.', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 48 => [ + 'id' => 2049, + 'form_id' => 'ISD0003', + 'form_title' => 'Appropriate Usage Agreement (Formerly HR3051)', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 49 => [ + 'id' => 2050, + 'form_id' => 'ISD0004', + 'form_title' => 'Remote Access Agreement (Formerly HR3014)', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 50 => [ + 'id' => 2051, + 'form_id' => 'ISD0005', + 'form_title' => 'Operational Checklist', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'Need more information on what this form is? Is this form handled by the business? ', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 51 => [ + 'id' => 2052, + 'form_id' => 'ISD0006', + 'form_title' => 'Demo - Form functionality', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'This may still be a draft only', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 52 => [ + 'id' => 2053, + 'form_id' => 'ISP1613', + 'form_title' => 'Consent to Deduction and Payment Canada Pension Plan (CPP) (HRDC-ISP1613)', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'We thought it was ICM but Not found in Case or SR attachments New from Template. Loop/Resource Finder: SOP found but it does not mention that this form is generated in ICM at all - step 2 is to open the form from the Loop/Resource Finder.', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 53 => [ + 'id' => 2054, + 'form_id' => 'Missing Info Letter', + 'form_title' => 'Missing information letter (associated with PWD application)', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 54 => [ + 'id' => 2055, + 'form_id' => 'MV2504A', + 'form_title' => 'Secondary ID Attestation', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 55 => [ + 'id' => 2056, + 'form_id' => 'NOA GST', + 'form_title' => 'Bus Pass NOA GST Letter', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'Template for Integration Purpose', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 56 => [ + 'id' => 2057, + 'form_id' => 'Outline for Reimbursement Claims', + 'form_title' => 'Outline for Reimbursement Claims', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'Word to PDF', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 57 => [ + 'id' => 2058, + 'form_id' => 'Petty Cash Reconciliation Replenishment Report', + 'form_title' => 'Petty Cash Reconciliation Replenishment Report', + 'ministry_id' => 1, + 'form_purpose' => NULL, + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 58 => [ + 'id' => 2060, + 'form_id' => 'Sample Non-Interactive', + 'form_title' => 'BC Logo_Revised', + 'ministry_id' => NULL, + 'form_purpose' => NULL, + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 59 => [ + 'id' => 2061, + 'form_id' => 'SD0149', + 'form_title' => 'Purchase Authorization', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'This form is now HR0149. Inactivate this one? ', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 60 => [ + 'id' => 2062, + 'form_id' => 'SD3460', + 'form_title' => 'Apprentice Online Portal, Application for Support - NCM Apprentice', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'Old version of an ELMSDs form that is no longer in use', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 61 => [ + 'id' => 2063, + 'form_id' => 'STN 002', + 'form_title' => 'Envelope Kraft Comp Do Not Forward', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => '7530913001', + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 62 => [ + 'id' => 2064, + 'form_id' => 'T5007', + 'form_title' => 'T5 Statement of Benefits', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 63 => [ + 'id' => 2065, + 'form_id' => 'Trauma Brief Screen', + 'form_title' => 'Trauma Brief Screen', + 'ministry_id' => 1, + 'form_purpose' => NULL, + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 64 => [ + 'id' => 2066, + 'form_id' => 'vsa430d', + 'form_title' => 'Application for Death Certificate', + 'ministry_id' => 1, + 'form_purpose' => NULL, + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => true, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 65 => [ + 'id' => 2067, + 'form_id' => 'vsa430m', + 'form_title' => 'Application for Marriage Certificate', + 'ministry_id' => 1, + 'form_purpose' => NULL, + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => true, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 66 => [ + 'id' => 2068, + 'form_id' => 'vsa430mCFb', + 'form_title' => 'Post Adoption Parental Certificate Request', + 'ministry_id' => 1, + 'form_purpose' => 'enables adoptive parents to apply for new child\'s birth certificate', + 'notes' => 'Actually belongs to Vital Stats Agency., +Users: Social workers, adoptive applicants', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 67 => [ + 'id' => 2069, + 'form_id' => 'vsa433', + 'form_title' => 'Identification of Particulars of Adoptive Person', + 'ministry_id' => 1, + 'form_purpose' => 'part of adoption court package seeking adoption order', + 'notes' => 'Actually belongs to Vital Stats Agency., +Users: Social workers, adoptive applicants', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 68 => [ + 'id' => 2070, + 'form_id' => 'HR3512', + 'form_title' => 'Threat Response Immediate Protocol (TRIP)', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'Originally created in Word and exported to PDF on Resource Finder., +Created an Orbeon version in 2024 (ADO # 1755).', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 69 => [ + 'id' => 2072, + 'form_id' => 'HR3513', + 'form_title' => 'Quarterly Occupational Health and Safety Checklist', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'Form is handled by the business.', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 70 => [ + 'id' => 2073, + 'form_id' => 'HR3514', + 'form_title' => 'Exposure Control Plan', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => 3, + 'form_reach_id' => 2, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 71 => [ + 'id' => 2075, + 'form_id' => 'CF0006', + 'form_title' => 'Learning Fund for Young Adults (LFYA) Grant Application Form', + 'ministry_id' => 1, + 'form_purpose' => NULL, + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 72 => [ + 'id' => 2076, + 'form_id' => 'CF2602', + 'form_title' => 'Consent for Children and Youth with Support Needs - Family Support Services/Disability Services', + 'ministry_id' => 1, + 'form_purpose' => 'consent', + 'notes' => 'non-fillable flat', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 73 => [ + 'id' => 2077, + 'form_id' => 'HR4043', + 'form_title' => 'PLMS Eligibility Review Introduction Letter', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => NULL, + 'fill_type_id' => 2, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 74 => [ + 'id' => 2078, + 'form_id' => 'CF4030', + 'form_title' => 'PDHHS Intake', + 'ministry_id' => 1, + 'form_purpose' => NULL, + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 75 => [ + 'id' => 2079, + 'form_id' => 'CF4031', + 'form_title' => 'PDHHS Intake and Release of Information', + 'ministry_id' => 1, + 'form_purpose' => NULL, + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 76 => [ + 'id' => 2080, + 'form_id' => 'CF4032', + 'form_title' => 'PDHHS Intake Inquiry', + 'ministry_id' => 1, + 'form_purpose' => NULL, + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 77 => [ + 'id' => 2081, + 'form_id' => 'CF4033', + 'form_title' => 'PDHHS Referral', + 'ministry_id' => 1, + 'form_purpose' => NULL, + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 78 => [ + 'id' => 2082, + 'form_id' => 'CF4034', + 'form_title' => 'Victory Hill Dorm Intake', + 'ministry_id' => 1, + 'form_purpose' => NULL, + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 79 => [ + 'id' => 2083, + 'form_id' => 'CF4035', + 'form_title' => 'SHSS Specialized Service Portal Access Form', + 'ministry_id' => 1, + 'form_purpose' => NULL, + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 80 => [ + 'id' => 2092, + 'form_id' => 'HR3410', + 'form_title' => 'SDPR HR Data Access Agreement', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 81 => [ + 'id' => 2093, + 'form_id' => 'CF4160', + 'form_title' => 'Early Childhood Educator Certification Application – Parent/Guardian Consent', + 'ministry_id' => 3, + 'form_purpose' => NULL, + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 82 => [ + 'id' => 2098, + 'form_id' => 'HR3986', + 'form_title' => 'Self-Employment Program Income Tracking Sheet', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'related to HR2988 and HR3987', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 83 => [ + 'id' => 2099, + 'form_id' => 'HR3987', + 'form_title' => 'Self-Employment Program Monthly Deductions Tracking Sheet', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'related to HR2988 and HR3986', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 84 => [ + 'id' => 2100, + 'form_id' => 'CF4036', + 'form_title' => 'Indigenous Deaf Collaborations - Intake', + 'ministry_id' => 1, + 'form_purpose' => NULL, + 'notes' => 'designed and maintained by PDHHS', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 85 => [ + 'id' => 2101, + 'form_id' => 'CF4024', + 'form_title' => 'Request to Change Headquarters', + 'ministry_id' => 1, + 'form_purpose' => NULL, + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => 4, + 'form_reach_id' => 2, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 86 => [ + 'id' => 2102, + 'form_id' => 'RS001', + 'form_title' => 'Rob Seib Test Form 1', + 'ministry_id' => 4, + 'form_purpose' => 'purpose: To test functionality within KLAMM', + 'notes' => 'no additional thoughts or notes', + 'fill_type_id' => NULL, + 'decommissioned' => true, + 'form_frequency_id' => 4, + 'form_reach_id' => 1, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => 'n/a', + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => 'n/a', + 'dcv_material_number' => 'nonenoneno', + 'orbeon_functions' => 'n/a', + 'icm_generated' => false, + 'program' => 'Forms Modernization Team', + 'deleted_at' => NULL, + ], + 87 => [ + 'id' => 2103, + 'form_id' => 'HR3988', + 'form_title' => 'Self-Employment Program (SEP) Information Request', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => 'Self-Employment Program', + 'deleted_at' => NULL, + ], + 88 => [ + 'id' => 2104, + 'form_id' => 'HR3989', + 'form_title' => 'Self-Employment Program (SEP) Denial Letter', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => 'Self-Employment Program', + 'deleted_at' => NULL, + ], + 89 => [ + 'id' => 2105, + 'form_id' => 'CF4177', + 'form_title' => 'SAJE Consent Form', + 'ministry_id' => 1, + 'form_purpose' => NULL, + 'notes' => 'Created by business area and Deloitte, not ISD Forms. +Work Item 2307 +Release 5.2', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => 'SAJE', + 'deleted_at' => NULL, + ], + 90 => [ + 'id' => 2106, + 'form_id' => 'CF8787', + 'form_title' => 'Case Form', + 'ministry_id' => 1, + 'form_purpose' => 'Test form', + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 91 => [ + 'id' => 2107, + 'form_id' => 'CF3003', + 'form_title' => 'PDHHS ASL Interpreter Request Form with JV Information', + 'ministry_id' => 1, + 'form_purpose' => NULL, + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 92 => [ + 'id' => 2108, + 'form_id' => 'CF4179', + 'form_title' => ' Specialized Homes and Support Services (SHSS) Reportable Incident Reporting Form', + 'ministry_id' => 1, + 'form_purpose' => 'This form is used by SHSS Service Providers for reporting critical incidents that may occur in SHSS homes', + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => 'Specialized Homes and Support Services (SHSS)', + 'deleted_at' => NULL, + ], + 93 => [ + 'id' => 2109, + 'form_id' => 'CF0911', + 'form_title' => 'Application for Registry of Autism Service Providers', + 'ministry_id' => 1, + 'form_purpose' => NULL, + 'notes' => 'We did not develop. CHEFS form developed by business area. ADO 2335', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 94 => [ + 'id' => 2110, + 'form_id' => 'CF4180', + 'form_title' => 'TRIP Application', + 'ministry_id' => 1, + 'form_purpose' => NULL, + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 95 => [ + 'id' => 2111, + 'form_id' => 'CF4181', + 'form_title' => 'TRIP Consent Form', + 'ministry_id' => 1, + 'form_purpose' => NULL, + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 96 => [ + 'id' => 2113, + 'form_id' => 'TEST0001', + 'form_title' => 'Comprehensive Test Form', + 'ministry_id' => 2, + 'form_purpose' => 'to test all features of FormFoundry', + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 97 => [ + 'id' => 2114, + 'form_id' => 'JY001', + 'form_title' => 'Element Template Repository', + 'ministry_id' => NULL, + 'form_purpose' => 'Gather all templates here, so that they can be found & safely edited', + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => true, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 98 => [ + 'id' => 2115, + 'form_id' => 'CF0138', + 'form_title' => 'Information Sharing and Confidentiality', + 'ministry_id' => 1, + 'form_purpose' => NULL, + 'notes' => 'MS Word exported to PDF, published to iConnect +work id 2430', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 99 => [ + 'id' => 2116, + 'form_id' => 'HR3189B', + 'form_title' => 'Consent To Disclosure of Medical Information', + 'ministry_id' => 2, + 'form_purpose' => NULL, + 'notes' => 'work item 1478', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => 4, + 'form_reach_id' => 1, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => false, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 100 => [ + 'id' => 2117, + 'form_id' => 'Test-Form-Data-Model-Changes', + 'form_title' => 'Test Form: Data Model Update Check', + 'ministry_id' => 1, + 'form_purpose' => NULL, + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 101 => [ + 'id' => 2118, + 'form_id' => 'JY002', + 'form_title' => 'Common Scripting Patterns and Structures', + 'ministry_id' => 1, + 'form_purpose' => 'This is a TEST FORM for documenting common scripting patterns and structures', + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => true, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 102 => [ + 'id' => 2119, + 'form_id' => 'CFTEST0001', + 'form_title' => 'Caregiver Registry Test form', + 'ministry_id' => 1, + 'form_purpose' => 'Test Form for Caregiver Registry Team', + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 103 => [ + 'id' => 2120, + 'form_id' => 'CFTEST0002', + 'form_title' => 'Test Form ', + 'ministry_id' => 1, + 'form_purpose' => NULL, + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => 3, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 104 => [ + 'id' => 2121, + 'form_id' => 'CF0040', + 'form_title' => 'About Me', + 'ministry_id' => 1, + 'form_purpose' => 'BC Caregiver Portal - Foster Caregiver application - collect information about the primary applicant', + 'notes' => 'In development for Caregiver Registry, +Integrations with Caregiver Portal and ICM', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 105 => [ + 'id' => 2122, + 'form_id' => 'ABCD', + 'form_title' => 'ABCD Form', + 'ministry_id' => 1, + 'form_purpose' => 'To demonstrate creating a form record', + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => 1, + 'form_reach_id' => 3, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => '1234567890', + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => '2025-08-20 11:24:02', + ], + 106 => [ + 'id' => 2123, + 'form_id' => 'CF4182', + 'form_title' => 'SHSS Service Provider Information Request Form', + 'ministry_id' => 1, + 'form_purpose' => NULL, + 'notes' => 'To be built in Form Foundry eventually', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 107 => [ + 'id' => 2124, + 'form_id' => 'CF4183', + 'form_title' => 'SHSS Service Provider Transition-In Completion Certificate', + 'ministry_id' => 1, + 'form_purpose' => NULL, + 'notes' => 'To be built in Form Foundry eventually', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 108 => [ + 'id' => 2125, + 'form_id' => 'CF4184', + 'form_title' => 'SHSS Service Provider Continuous Improvement Plan Template', + 'ministry_id' => 1, + 'form_purpose' => NULL, + 'notes' => 'To be built in Form Foundry eventually', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 109 => [ + 'id' => 2126, + 'form_id' => 'CF4185', + 'form_title' => 'SHSS 90 Day and Annual Review Form ', + 'ministry_id' => 1, + 'form_purpose' => NULL, + 'notes' => 'To be built in Form Foundry eventually', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 110 => [ + 'id' => 2127, + 'form_id' => 'CF0041', + 'form_title' => 'Indigenous Background', + 'ministry_id' => 1, + 'form_purpose' => 'BC Caregiver Portal - Foster Caregiver application - collect information about the primary applicant', + 'notes' => 'In development for Caregiver Registry, +Integrations with Caregiver Portal and ICM', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => 3, + 'form_reach_id' => 1, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 111 => [ + 'id' => 2128, + 'form_id' => 'CF0643', + 'form_title' => 'BC Domestic Violence Risk Assessment', + 'ministry_id' => 1, + 'form_purpose' => NULL, + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 112 => [ + 'id' => 2129, + 'form_id' => 'CF0042', + 'form_title' => 'My Household (Part 2)', + 'ministry_id' => 1, + 'form_purpose' => 'BC Caregiver Portal - Foster Caregiver application - collect information from the primary applicant', + 'notes' => 'In development for Caregiver Registry, +Integrations with Caregiver Portal and ICM', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => 3, + 'form_reach_id' => 1, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 113 => [ + 'id' => 2130, + 'form_id' => 'CF0043', + 'form_title' => 'Type of Placement', + 'ministry_id' => 1, + 'form_purpose' => 'BC Caregiver Portal - Foster Caregiver application - collect information from the primary applicant', + 'notes' => 'In development for Caregiver Registry, +Integrations with Caregiver Portal and ICM', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => 3, + 'form_reach_id' => 1, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 114 => [ + 'id' => 2131, + 'form_id' => 'CF0044', + 'form_title' => 'References', + 'ministry_id' => 1, + 'form_purpose' => 'BC Caregiver Portal - Foster Caregiver application - collect information from the primary applicant', + 'notes' => 'In development for Caregiver Registry, +Integrations with Caregiver Portal and ICM', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => 3, + 'form_reach_id' => 1, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 115 => [ + 'id' => 2132, + 'form_id' => 'CF0045', + 'form_title' => 'Consent for Disclosure of Criminal Record Information', + 'ministry_id' => 1, + 'form_purpose' => 'BC Caregiver Portal - Foster Caregiver application - collect consent from primary applicant, spouse, or adult household member', + 'notes' => 'In development for Caregiver Registry, +Integrations with Caregiver Portal and ICM', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => 3, + 'form_reach_id' => 1, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 116 => [ + 'id' => 2133, + 'form_id' => 'JY003', + 'form_title' => 'Sprint review demo form', + 'ministry_id' => 1, + 'form_purpose' => 'For testing, bugfixing, and prototyping various things', + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => true, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 117 => [ + 'id' => 2134, + 'form_id' => 'CF0046', + 'form_title' => 'About Me', + 'ministry_id' => 1, + 'form_purpose' => 'BC Caregiver Portal - Foster Caregiver application - collect information about the spouse/co-applicant', + 'notes' => 'In development for Caregiver Registry Integrations with Caregiver Portal and ICM', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 118 => [ + 'id' => 2135, + 'form_id' => 'CF0047', + 'form_title' => 'About Me', + 'ministry_id' => 1, + 'form_purpose' => NULL, + 'notes' => 'In development for Caregiver Registry Integrations with Caregiver Portal and ICM', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 119 => [ + 'id' => 2136, + 'form_id' => 'ISD0007', + 'form_title' => 'Forms Modernization Intake Form', + 'ministry_id' => 2, + 'form_purpose' => 'For capturing new work requests to the Forms Modernization Team, previously Information Services Division SDPR. This team is now working on Citizen\'s Services with the 2025 reorg. ', + 'notes' => 'When the form is filled, a Power Automate flow pulls the submissions and creates a work item for the team in their Azure DevOps instance. +Robert Seib, Bojan Zimonja, and David Okulski have access to edit both the form and the PA flow.', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => 4, + 'form_reach_id' => 1, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 120 => [ + 'id' => 2137, + 'form_id' => 'CF0048', + 'form_title' => 'Consent for Prior Contact Check', + 'ministry_id' => 1, + 'form_purpose' => 'BC Caregiver Portal - Foster Caregiver application - collect consent from primary applicant, spouse, or adult household member', + 'notes' => 'In development for Caregiver Registry Integrations with Caregiver Portal and ICM', + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => true, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 121 => [ + 'id' => 2138, + 'form_id' => 'SVTEST01', + 'form_title' => 'Test Form', + 'ministry_id' => 1, + 'form_purpose' => NULL, + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 122 => [ + 'id' => 2139, + 'form_id' => 'CF0673', + 'form_title' => 'Consent to Collection of Information', + 'ministry_id' => 1, + 'form_purpose' => NULL, + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => NULL, + 'form_reach_id' => NULL, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + 123 => [ + 'id' => 2140, + 'form_id' => 'CF0605_portal', + 'form_title' => 'Medical Report on Applicant', + 'ministry_id' => 1, + 'form_purpose' => 'Version of the CF0605 exclusively for integration with the Foster & Care Provider Portal. This version uses a different collection notice for foster and caregiver applications and contains instructions for mailing the completed form to the Centralized Services Hub (CSH) instead of using Section 3 to identify a particular worker/unit to send it to.', + 'notes' => NULL, + 'fill_type_id' => NULL, + 'decommissioned' => false, + 'form_frequency_id' => 4, + 'form_reach_id' => 1, + 'created_at' => NULL, + 'updated_at' => NULL, + 'print_reason' => NULL, + 'retention_needs' => NULL, + 'icm_non_interactive' => NULL, + 'footer_fragment_path' => NULL, + 'dcv_material_number' => NULL, + 'orbeon_functions' => NULL, + 'icm_generated' => false, + 'program' => NULL, + 'deleted_at' => NULL, + ], + ]); } } \ No newline at end of file From e526866380171c98da668709eda33f73ab46be33 Mon Sep 17 00:00:00 2001 From: Christopher Louie Date: Wed, 25 Mar 2026 16:30:25 -0700 Subject: [PATCH 36/43] Update seeders without duplicate data checking that run on default --- database/seeders/ErrorActorSeeder.php | 10 ++- database/seeders/ErrorDataGroupSeeder.php | 74 ++++++++++--------- database/seeders/ErrorEntitySeeder.php | 10 ++- .../seeders/ErrorIntegrationStateSeeder.php | 18 +++-- database/seeders/ErrorSourceSeeder.php | 14 +++- database/seeders/FillTypeSeeder.php | 10 ++- database/seeders/FormFrequencySeeder.php | 18 +++-- database/seeders/FormLocationSeeder.php | 21 ++++-- database/seeders/FormReachSeeder.php | 12 ++- database/seeders/FormRepositorySeeder.php | 14 +++- database/seeders/FormSoftwareSourceSeeder.php | 18 +++-- database/seeders/MinistrySeeder.php | 38 ++++------ database/seeders/UserTypeSeeder.php | 12 ++- database/seeders/ValueTypeSeeder.php | 68 +++++------------ 14 files changed, 182 insertions(+), 155 deletions(-) diff --git a/database/seeders/ErrorActorSeeder.php b/database/seeders/ErrorActorSeeder.php index aaf1da8d..6feb6a95 100644 --- a/database/seeders/ErrorActorSeeder.php +++ b/database/seeders/ErrorActorSeeder.php @@ -12,7 +12,13 @@ class ErrorActorSeeder extends Seeder */ public function run(): void { - ErrorActor::create(['name' => 'User']); - ErrorActor::create(['name' => 'System']); + $actors = [ + 'User', + 'System', + ]; + + foreach ($actors as $name) { + ErrorActor::firstOrCreate(['name' => $name]); + } } } diff --git a/database/seeders/ErrorDataGroupSeeder.php b/database/seeders/ErrorDataGroupSeeder.php index a1385c68..97b8d715 100644 --- a/database/seeders/ErrorDataGroupSeeder.php +++ b/database/seeders/ErrorDataGroupSeeder.php @@ -12,40 +12,44 @@ class ErrorDataGroupSeeder extends Seeder */ public function run(): void { - ErrorDataGroup::insert([ - ['name' => 'Admission'], - ['name' => 'BusPassAttachments'], - ['name' => 'BusPassRefunds'], - ['name' => 'BusPassSticker'], - ['name' => 'BusPassTransLink'], - ['name' => 'Case Information'], - ['name' => 'CaseAddress'], - ['name' => 'CaseBenefitPlan'], - ['name' => 'CaseBenefitRecalc'], - ['name' => 'CaseClientBankInformation'], - ['name' => 'CaseContactEligibility'], - ['name' => 'CaseExpenses'], - ['name' => 'CaseIAInformation'], - ['name' => 'CaseOrderRecalc'], - ['name' => 'CasePlan'], - ['name' => 'CasePositiveReport'], - ['name' => 'CaseServiceOrder'], - ['name' => 'CaseSignalCheque'], - ['name' => 'CFMS Case'], - ['name' => 'Contact Attachment'], - ['name' => 'ContactAboriginal'], - ['name' => 'ContactCaseAssets'], - ['name' => 'ContactCaseIncome'], - ['name' => 'ContactCPA'], - ['name' => 'ContactImmigration'], - ['name' => 'ContactMerge'], - ['name' => 'ContactSanctionAdd'], - ['name' => 'ContactSanctionResolve'], - ['name' => 'ContactTombstone'], - ['name' => 'ExtendedHealthCoverage'], - ['name' => 'MSPCoverage'], - ['name' => 'RequestToCRA'], - ['name' => 'SeniorSupplementPayments'], - ]); + $groups = [ + 'Admission', + 'BusPassAttachments', + 'BusPassRefunds', + 'BusPassSticker', + 'BusPassTransLink', + 'Case Information', + 'CaseAddress', + 'CaseBenefitPlan', + 'CaseBenefitRecalc', + 'CaseClientBankInformation', + 'CaseContactEligibility', + 'CaseExpenses', + 'CaseIAInformation', + 'CaseOrderRecalc', + 'CasePlan', + 'CasePositiveReport', + 'CaseServiceOrder', + 'CaseSignalCheque', + 'CFMS Case', + 'Contact Attachment', + 'ContactAboriginal', + 'ContactCaseAssets', + 'ContactCaseIncome', + 'ContactCPA', + 'ContactImmigration', + 'ContactMerge', + 'ContactSanctionAdd', + 'ContactSanctionResolve', + 'ContactTombstone', + 'ExtendedHealthCoverage', + 'MSPCoverage', + 'RequestToCRA', + 'SeniorSupplementPayments', + ]; + + foreach ($groups as $name) { + ErrorDataGroup::firstOrCreate(['name' => $name]); + } } } diff --git a/database/seeders/ErrorEntitySeeder.php b/database/seeders/ErrorEntitySeeder.php index 8fa423d4..3f134e86 100644 --- a/database/seeders/ErrorEntitySeeder.php +++ b/database/seeders/ErrorEntitySeeder.php @@ -12,7 +12,13 @@ class ErrorEntitySeeder extends Seeder */ public function run(): void { - ErrorEntity::create(['name' => 'Case']); - ErrorEntity::create(['name' => 'Contact']); + $entities = [ + 'Case', + 'Contact', + ]; + + foreach ($entities as $name) { + ErrorEntity::firstOrCreate(['name' => $name]); + } } } diff --git a/database/seeders/ErrorIntegrationStateSeeder.php b/database/seeders/ErrorIntegrationStateSeeder.php index 6df343d4..0e0a0e98 100644 --- a/database/seeders/ErrorIntegrationStateSeeder.php +++ b/database/seeders/ErrorIntegrationStateSeeder.php @@ -12,11 +12,17 @@ class ErrorIntegrationStateSeeder extends Seeder */ public function run(): void { - ErrorIntegrationState::create(['name' => 'Error']); - ErrorIntegrationState::create(['name' => 'Not Integrated']); - ErrorIntegrationState::create(['name' => 'Pending']); - ErrorIntegrationState::create(['name' => 'Processing']); - ErrorIntegrationState::create(['name' => 'Queued']); - ErrorIntegrationState::create(['name' => 'Synced']); + $states = [ + 'Error', + 'Not Integrated', + 'Pending', + 'Processing', + 'Queued', + 'Synced', + ]; + + foreach ($states as $name) { + ErrorIntegrationState::firstOrCreate(['name' => $name]); + } } } diff --git a/database/seeders/ErrorSourceSeeder.php b/database/seeders/ErrorSourceSeeder.php index e0ff280f..a3107c79 100644 --- a/database/seeders/ErrorSourceSeeder.php +++ b/database/seeders/ErrorSourceSeeder.php @@ -12,9 +12,15 @@ class ErrorSourceSeeder extends Seeder */ public function run(): void { - ErrorSource::create(['name' => 'ICM']); - ErrorSource::create(['name' => 'CFMS']); - ErrorSource::create(['name' => 'PBC']); - ErrorSource::create(['name' => 'Successor System']); + $sources = [ + 'ICM', + 'CFMS', + 'PBC', + 'Successor System', + ]; + + foreach ($sources as $name) { + ErrorSource::firstOrCreate(['name' => $name]); + } } } diff --git a/database/seeders/FillTypeSeeder.php b/database/seeders/FillTypeSeeder.php index 8ae56f92..4e02eef8 100644 --- a/database/seeders/FillTypeSeeder.php +++ b/database/seeders/FillTypeSeeder.php @@ -13,7 +13,13 @@ class FillTypeSeeder extends Seeder */ public function run(): void { - FillType::create(['name' => 'Static']); - FillType::create(['name' => 'Dynamic']); + $fillTypes = [ + 'Static', + 'Dynamic', + ]; + + foreach ($fillTypes as $name) { + FillType::firstOrCreate(['name' => $name]); + } } } diff --git a/database/seeders/FormFrequencySeeder.php b/database/seeders/FormFrequencySeeder.php index a5cfd4d2..035bfee5 100644 --- a/database/seeders/FormFrequencySeeder.php +++ b/database/seeders/FormFrequencySeeder.php @@ -6,16 +6,20 @@ use Illuminate\Database\Console\Seeds\WithoutModelEvents; use Illuminate\Database\Seeder; + class FormFrequencySeeder extends Seeder { - /** - * Run the database seeds. - */ public function run(): void { - FormFrequency::create(['name' => 'Annually']); - FormFrequency::create(['name' => 'Quarterly']); - FormFrequency::create(['name' => 'Monthly']); - FormFrequency::create(['name' => 'Weekly or more']); + $frequencies = [ + 'Annually', + 'Quarterly', + 'Monthly', + 'Weekly or more', + ]; + + foreach ($frequencies as $name) { + FormFrequency::firstOrCreate(['name' => $name]); + } } } diff --git a/database/seeders/FormLocationSeeder.php b/database/seeders/FormLocationSeeder.php index 9bb959df..cc027444 100644 --- a/database/seeders/FormLocationSeeder.php +++ b/database/seeders/FormLocationSeeder.php @@ -6,6 +6,7 @@ use Illuminate\Database\Console\Seeds\WithoutModelEvents; use Illuminate\Database\Seeder; + class FormLocationSeeder extends Seeder { /** @@ -13,12 +14,18 @@ class FormLocationSeeder extends Seeder */ public function run(): void { - FormLocation::create(['name' => 'ICM Target']); - FormLocation::create(['name' => 'ICM Dev']); - FormLocation::create(['name' => 'ICM Test']); - FormLocation::create(['name' => 'iConnect']); - FormLocation::create(['name' => 'Resource Finder']); - FormLocation::create(['name' => 'MySelfServe']); - FormLocation::create(['name' => 'Loop']); + $locations = [ + 'ICM Target', + 'ICM Dev', + 'ICM Test', + 'iConnect', + 'Resource Finder', + 'MySelfServe', + 'Loop', + ]; + + foreach ($locations as $name) { + FormLocation::firstOrCreate(['name' => $name]); + } } } diff --git a/database/seeders/FormReachSeeder.php b/database/seeders/FormReachSeeder.php index bcd47030..e92eb412 100644 --- a/database/seeders/FormReachSeeder.php +++ b/database/seeders/FormReachSeeder.php @@ -13,8 +13,14 @@ class FormReachSeeder extends Seeder */ public function run(): void { - FormReach::create(['name' => 'Less than 1000']); - FormReach::create(['name' => '1000 to 5000']); - FormReach::create(['name' => 'More than 5000']); + $reachCategories = [ + 'Less than 1000', + '1000 to 5000', + 'More than 5000', + ]; + + foreach ($reachCategories as $name) { + FormReach::firstOrCreate(['name' => $name]); + } } } diff --git a/database/seeders/FormRepositorySeeder.php b/database/seeders/FormRepositorySeeder.php index 035202c0..36b9e802 100644 --- a/database/seeders/FormRepositorySeeder.php +++ b/database/seeders/FormRepositorySeeder.php @@ -13,9 +13,15 @@ class FormRepositorySeeder extends Seeder */ public function run(): void { - FormRepository::create(['name' => 'ADO']); - FormRepository::create(['name' => 'GitHub']); - FormRepository::create(['name' => 'Klamm']); - FormRepository::create(['name' => 'Adobe Workbench']); + $repositories = [ + 'ADO', + 'GitHub', + 'Klamm', + 'Adobe Workbench', + ]; + + foreach ($repositories as $name) { + FormRepository::firstOrCreate(['name' => $name]); + } } } diff --git a/database/seeders/FormSoftwareSourceSeeder.php b/database/seeders/FormSoftwareSourceSeeder.php index 55a45e30..257b2396 100644 --- a/database/seeders/FormSoftwareSourceSeeder.php +++ b/database/seeders/FormSoftwareSourceSeeder.php @@ -13,11 +13,17 @@ class FormSoftwareSourceSeeder extends Seeder */ public function run(): void { - FormSoftwareSource::create(['name' => 'Livecycle']); - FormSoftwareSource::create(['name' => 'Adobe Acrobat']); - FormSoftwareSource::create(['name' => 'Orbeon']); - FormSoftwareSource::create(['name' => 'Microsoft Word']); - FormSoftwareSource::create(['name' => 'Microsoft PowerPoint']); - FormSoftwareSource::create(['name' => 'Klamm']); // todo: change to new forms platform once named + $softwareSources = [ + 'Livecycle', + 'Adobe Acrobat', + 'Orbeon', + 'Microsoft Word', + 'Microsoft PowerPoint', + 'Klamm', + ]; + + foreach ($softwareSources as $name) { + FormSoftwareSource::firstOrCreate(['name' => $name]); + } } } diff --git a/database/seeders/MinistrySeeder.php b/database/seeders/MinistrySeeder.php index c52e87c2..7c8fbec4 100644 --- a/database/seeders/MinistrySeeder.php +++ b/database/seeders/MinistrySeeder.php @@ -6,35 +6,23 @@ use Illuminate\Database\Console\Seeds\WithoutModelEvents; use Illuminate\Database\Seeder; + class MinistrySeeder extends Seeder { - /** - * Run the database seeds. - * - * $table->id(); - * $table->string('short_name', 20); - * $table->string('name', 400); - */ public function run(): void { - $mcfd = new Ministry(); - $mcfd->short_name = 'MCFD'; - $mcfd->name = 'Ministry of Children and Family Development'; - $mcfd->save(); - - $sdpr = new Ministry(); - $sdpr->short_name = 'SDPR'; - $sdpr->name = 'Ministry of Social Development and Poverty Reduction'; - $sdpr->save(); - - $ecc = new Ministry(); - $ecc->short_name = 'ECC'; - $ecc->name = 'Ministry of Education and Child Care'; - $ecc->save(); + $ministries = [ + 'MCFD' => 'Ministry of Children and Family Development', + 'SDPR' => 'Ministry of Social Development and Poverty Reduction', + 'ECC' => 'Ministry of Education and Child Care', + 'FEDGOVBC' => 'Government of Canada and Province of British Columbia', + ]; - $fedgovbc = new Ministry(); - $fedgovbc->short_name = 'FEDGOVBC'; - $fedgovbc->name = 'Government of Canada and Province of British Columbia'; - $fedgovbc->save(); + foreach ($ministries as $shortName => $name) { + Ministry::firstOrCreate( + ['short_name' => $shortName], + ['name' => $name] + ); + } } } diff --git a/database/seeders/UserTypeSeeder.php b/database/seeders/UserTypeSeeder.php index 46930498..07f23094 100644 --- a/database/seeders/UserTypeSeeder.php +++ b/database/seeders/UserTypeSeeder.php @@ -13,8 +13,14 @@ class UserTypeSeeder extends Seeder */ public function run(): void { - UserType::create(['name' => 'Internal']); - UserType::create(['name' => 'Public']); - UserType::create(['name' => 'Public with Disabilities']); + $userTypes = [ + 'Internal', + 'Public', + 'Public with Disabilities', + ]; + + foreach ($userTypes as $name) { + UserType::firstOrCreate(['name' => $name]); + } } } diff --git a/database/seeders/ValueTypeSeeder.php b/database/seeders/ValueTypeSeeder.php index da934543..ae591f85 100644 --- a/database/seeders/ValueTypeSeeder.php +++ b/database/seeders/ValueTypeSeeder.php @@ -6,61 +6,31 @@ use Illuminate\Database\Console\Seeds\WithoutModelEvents; use Illuminate\Database\Seeder; + class ValueTypeSeeder extends Seeder { /** * Run the database seeds. - * $table->string('name', 400); - * $table->text('description')->nullable(); */ public function run(): void { - $number = new ValueType(); - $number->name = 'Unsigned Integer'; - $number->description = 'An unsigned integer is a whole number greater than or equal to zero.'; - $number->save(); - - $number = new ValueType(); - $number->name = 'Integer'; - $number->description = 'An integer is a whole number, but it may be less than zero (ie. negative values)'; - $number->save(); - - $number = new ValueType(); - $number->name = 'Float'; - $number->description = 'A Float, or Floating Point number, is a numeric value with with possible fractional values'; - $number->save(); - - $identifier = new ValueType(); - $identifier->name = 'Identifier'; - $identifier->description = 'An identifier is an alphanumeric value with no internal semantics - it serves only to index a data collection'; - $identifier->save(); - - $enumNumeric = new ValueType(); - $enumNumeric->name = 'Enum - Numeric'; - $enumNumeric->description = 'An enumerated numeric value is a non-contiguous set of possible values (e.g. 3, 6, 9)'; - $enumNumeric->save(); - - $enumString = new ValueType(); - $enumString->name = 'Enum - String'; - $enumString->description = 'An enumerated string value is one of a set of pre-defined possible values (e.g. Minor, Adult, Senior)'; - $enumString->save(); - - $string = new ValueType(); - $string->name = 'String'; - $string->description = 'String values are for short text inputs - (e.g. First Name, City)'; - $string->save(); - - $longtext = new ValueType(); - $longtext->name = 'Text'; - $longtext->description = 'Text values are longer-form text inputs - (e.g. descriptions, requests, etc.)'; - $longtext->save(); - - $blob = new ValueType(); - $blob->name = 'Blob'; - $blob->description = 'Blob values are file ipunts or data- (e.g. attachments, formdata, etc.)'; - $blob->save(); - - - + $types = [ + 'Unsigned Integer' => 'An unsigned integer is a whole number greater than or equal to zero.', + 'Integer' => 'An integer is a whole number, but it may be less than zero (ie. negative values)', + 'Float' => 'A Float, or Floating Point number, is a numeric value with possible fractional values', + 'Identifier' => 'An identifier is an alphanumeric value with no internal semantics - it serves only to index a data collection', + 'Enum - Numeric' => 'An enumerated numeric value is a non-contiguous set of possible values (e.g. 3, 6, 9)', + 'Enum - String' => 'An enumerated string value is one of a set of pre-defined possible values (e.g. Minor, Adult, Senior)', + 'String' => 'String values are for short text inputs (e.g. First Name, City)', + 'Text' => 'Text values are longer-form text inputs (e.g. descriptions, requests, etc.)', + 'Blob' => 'Blob values are file inputs or raw data (e.g. attachments, formdata, etc.)', + ]; + + foreach ($types as $name => $description) { + ValueType::firstOrCreate( + ['name' => $name], + ['description' => $description] + ); + } } } From 167d5b6dacf4ad68819a7d937c4f1b904522d5f8 Mon Sep 17 00:00:00 2001 From: Christopher Louie Date: Thu, 26 Mar 2026 15:46:07 -0700 Subject: [PATCH 37/43] Update seeders to allow id to auto increment on insert --- .../seeders/FormBusinessAreaTableSeeder.php | 9725 ++--------------- database/seeders/FormDataSourceSeeder.php | 75 +- .../seeders/FormFormLocationTableSeeder.php | 7161 ++---------- database/seeders/FormFormTagsTableSeeder.php | 1401 +-- .../FormSoftwareSourceFormTableSeeder.php | 461 +- database/seeders/FormUserTypeTableSeeder.php | 546 +- .../seeders/FormWorkbenchPathsTableSeeder.php | 4175 +++---- database/seeders/FormsTableSeeder.php | 19 +- 8 files changed, 3460 insertions(+), 20103 deletions(-) diff --git a/database/seeders/FormBusinessAreaTableSeeder.php b/database/seeders/FormBusinessAreaTableSeeder.php index 9c5fe5d7..14795caf 100644 --- a/database/seeders/FormBusinessAreaTableSeeder.php +++ b/database/seeders/FormBusinessAreaTableSeeder.php @@ -3,6 +3,7 @@ namespace Database\Seeders; use Illuminate\Database\Seeder; +use Illuminate\Support\Facades\DB; class FormBusinessAreaTableSeeder extends Seeder { @@ -14,8641 +15,1093 @@ class FormBusinessAreaTableSeeder extends Seeder */ public function run() { - - \DB::table('form_business_area')->delete(); - - \DB::table('form_business_area')->insert(array ( - 0 => - array ( - 'id' => 1, - 'form_id' => 2, - 'business_area_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 1 => - array ( - 'id' => 2, - 'form_id' => 3, - 'business_area_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 2 => - array ( - 'id' => 3, - 'form_id' => 7, - 'business_area_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 3 => - array ( - 'id' => 4, - 'form_id' => 7, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 4 => - array ( - 'id' => 5, - 'form_id' => 8, - 'business_area_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 5 => - array ( - 'id' => 6, - 'form_id' => 8, - 'business_area_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 6 => - array ( - 'id' => 7, - 'form_id' => 9, - 'business_area_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 7 => - array ( - 'id' => 8, - 'form_id' => 9, - 'business_area_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 8 => - array ( - 'id' => 9, - 'form_id' => 10, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 9 => - array ( - 'id' => 10, - 'form_id' => 11, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 10 => - array ( - 'id' => 11, - 'form_id' => 12, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 11 => - array ( - 'id' => 12, - 'form_id' => 13, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 12 => - array ( - 'id' => 13, - 'form_id' => 15, - 'business_area_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 13 => - array ( - 'id' => 14, - 'form_id' => 15, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 14 => - array ( - 'id' => 15, - 'form_id' => 16, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 15 => - array ( - 'id' => 16, - 'form_id' => 16, - 'business_area_id' => 8, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 16 => - array ( - 'id' => 17, - 'form_id' => 16, - 'business_area_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 17 => - array ( - 'id' => 18, - 'form_id' => 19, - 'business_area_id' => 9, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 18 => - array ( - 'id' => 19, - 'form_id' => 20, - 'business_area_id' => 9, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 19 => - array ( - 'id' => 20, - 'form_id' => 21, - 'business_area_id' => 9, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 20 => - array ( - 'id' => 21, - 'form_id' => 22, - 'business_area_id' => 9, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 21 => - array ( - 'id' => 22, - 'form_id' => 23, - 'business_area_id' => 9, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 22 => - array ( - 'id' => 23, - 'form_id' => 24, - 'business_area_id' => 9, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 23 => - array ( - 'id' => 24, - 'form_id' => 25, - 'business_area_id' => 9, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 24 => - array ( - 'id' => 25, - 'form_id' => 26, - 'business_area_id' => 9, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 25 => - array ( - 'id' => 26, - 'form_id' => 26, - 'business_area_id' => 10, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 26 => - array ( - 'id' => 27, - 'form_id' => 27, - 'business_area_id' => 11, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 27 => - array ( - 'id' => 28, - 'form_id' => 27, - 'business_area_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 28 => - array ( - 'id' => 29, - 'form_id' => 27, - 'business_area_id' => 12, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 29 => - array ( - 'id' => 30, - 'form_id' => 28, - 'business_area_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 30 => - array ( - 'id' => 31, - 'form_id' => 28, - 'business_area_id' => 11, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 31 => - array ( - 'id' => 32, - 'form_id' => 28, - 'business_area_id' => 12, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 32 => - array ( - 'id' => 33, - 'form_id' => 29, - 'business_area_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 33 => - array ( - 'id' => 34, - 'form_id' => 29, - 'business_area_id' => 11, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 34 => - array ( - 'id' => 35, - 'form_id' => 29, - 'business_area_id' => 12, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 35 => - array ( - 'id' => 36, - 'form_id' => 30, - 'business_area_id' => 11, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 36 => - array ( - 'id' => 37, - 'form_id' => 31, - 'business_area_id' => 11, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 37 => - array ( - 'id' => 38, - 'form_id' => 32, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 38 => - array ( - 'id' => 39, - 'form_id' => 33, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 39 => - array ( - 'id' => 40, - 'form_id' => 34, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 40 => - array ( - 'id' => 41, - 'form_id' => 35, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 41 => - array ( - 'id' => 42, - 'form_id' => 35, - 'business_area_id' => 13, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 42 => - array ( - 'id' => 43, - 'form_id' => 36, - 'business_area_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 43 => - array ( - 'id' => 44, - 'form_id' => 37, - 'business_area_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 44 => - array ( - 'id' => 45, - 'form_id' => 38, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 45 => - array ( - 'id' => 46, - 'form_id' => 39, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 46 => - array ( - 'id' => 47, - 'form_id' => 39, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 47 => - array ( - 'id' => 48, - 'form_id' => 39, - 'business_area_id' => 14, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 48 => - array ( - 'id' => 49, - 'form_id' => 41, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 49 => - array ( - 'id' => 50, - 'form_id' => 42, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 50 => - array ( - 'id' => 51, - 'form_id' => 43, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 51 => - array ( - 'id' => 52, - 'form_id' => 44, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 52 => - array ( - 'id' => 53, - 'form_id' => 44, - 'business_area_id' => 9, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 53 => - array ( - 'id' => 54, - 'form_id' => 44, - 'business_area_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 54 => - array ( - 'id' => 55, - 'form_id' => 45, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 55 => - array ( - 'id' => 56, - 'form_id' => 45, - 'business_area_id' => 9, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 56 => - array ( - 'id' => 57, - 'form_id' => 46, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 57 => - array ( - 'id' => 58, - 'form_id' => 46, - 'business_area_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 58 => - array ( - 'id' => 59, - 'form_id' => 47, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 59 => - array ( - 'id' => 60, - 'form_id' => 48, - 'business_area_id' => 9, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 60 => - array ( - 'id' => 61, - 'form_id' => 49, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 61 => - array ( - 'id' => 62, - 'form_id' => 50, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 62 => - array ( - 'id' => 63, - 'form_id' => 51, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 63 => - array ( - 'id' => 64, - 'form_id' => 52, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 64 => - array ( - 'id' => 65, - 'form_id' => 53, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 65 => - array ( - 'id' => 66, - 'form_id' => 54, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 66 => - array ( - 'id' => 67, - 'form_id' => 55, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 67 => - array ( - 'id' => 68, - 'form_id' => 56, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 68 => - array ( - 'id' => 69, - 'form_id' => 57, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 69 => - array ( - 'id' => 70, - 'form_id' => 58, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 70 => - array ( - 'id' => 71, - 'form_id' => 59, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 71 => - array ( - 'id' => 72, - 'form_id' => 59, - 'business_area_id' => 15, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 72 => - array ( - 'id' => 73, - 'form_id' => 60, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 73 => - array ( - 'id' => 74, - 'form_id' => 61, - 'business_area_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 74 => - array ( - 'id' => 75, - 'form_id' => 61, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 75 => - array ( - 'id' => 76, - 'form_id' => 64, - 'business_area_id' => 11, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 76 => - array ( - 'id' => 77, - 'form_id' => 65, - 'business_area_id' => 11, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 77 => - array ( - 'id' => 78, - 'form_id' => 66, - 'business_area_id' => 11, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 78 => - array ( - 'id' => 79, - 'form_id' => 67, - 'business_area_id' => 11, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 79 => - array ( - 'id' => 80, - 'form_id' => 68, - 'business_area_id' => 11, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 80 => - array ( - 'id' => 81, - 'form_id' => 69, - 'business_area_id' => 11, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 81 => - array ( - 'id' => 82, - 'form_id' => 70, - 'business_area_id' => 11, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 82 => - array ( - 'id' => 83, - 'form_id' => 71, - 'business_area_id' => 11, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 83 => - array ( - 'id' => 84, - 'form_id' => 72, - 'business_area_id' => 11, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 84 => - array ( - 'id' => 85, - 'form_id' => 73, - 'business_area_id' => 11, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 85 => - array ( - 'id' => 86, - 'form_id' => 74, - 'business_area_id' => 11, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 86 => - array ( - 'id' => 87, - 'form_id' => 76, - 'business_area_id' => 11, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 87 => - array ( - 'id' => 88, - 'form_id' => 77, - 'business_area_id' => 11, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 88 => - array ( - 'id' => 89, - 'form_id' => 78, - 'business_area_id' => 11, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 89 => - array ( - 'id' => 90, - 'form_id' => 79, - 'business_area_id' => 11, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 90 => - array ( - 'id' => 91, - 'form_id' => 80, - 'business_area_id' => 11, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 91 => - array ( - 'id' => 92, - 'form_id' => 84, - 'business_area_id' => 11, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 92 => - array ( - 'id' => 93, - 'form_id' => 85, - 'business_area_id' => 11, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 93 => - array ( - 'id' => 94, - 'form_id' => 86, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 94 => - array ( - 'id' => 95, - 'form_id' => 87, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 95 => - array ( - 'id' => 96, - 'form_id' => 88, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 96 => - array ( - 'id' => 97, - 'form_id' => 89, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 97 => - array ( - 'id' => 98, - 'form_id' => 90, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 98 => - array ( - 'id' => 99, - 'form_id' => 91, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 99 => - array ( - 'id' => 100, - 'form_id' => 92, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 100 => - array ( - 'id' => 101, - 'form_id' => 93, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 101 => - array ( - 'id' => 102, - 'form_id' => 94, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 102 => - array ( - 'id' => 103, - 'form_id' => 95, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 103 => - array ( - 'id' => 104, - 'form_id' => 96, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 104 => - array ( - 'id' => 105, - 'form_id' => 99, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 105 => - array ( - 'id' => 106, - 'form_id' => 100, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 106 => - array ( - 'id' => 107, - 'form_id' => 104, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 107 => - array ( - 'id' => 108, - 'form_id' => 105, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 108 => - array ( - 'id' => 109, - 'form_id' => 106, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 109 => - array ( - 'id' => 110, - 'form_id' => 107, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 110 => - array ( - 'id' => 111, - 'form_id' => 108, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 111 => - array ( - 'id' => 112, - 'form_id' => 109, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 112 => - array ( - 'id' => 113, - 'form_id' => 110, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 113 => - array ( - 'id' => 114, - 'form_id' => 111, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 114 => - array ( - 'id' => 115, - 'form_id' => 114, - 'business_area_id' => 16, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 115 => - array ( - 'id' => 116, - 'form_id' => 116, - 'business_area_id' => 16, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 116 => - array ( - 'id' => 117, - 'form_id' => 119, - 'business_area_id' => 16, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 117 => - array ( - 'id' => 118, - 'form_id' => 120, - 'business_area_id' => 16, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 118 => - array ( - 'id' => 119, - 'form_id' => 126, - 'business_area_id' => 16, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 119 => - array ( - 'id' => 120, - 'form_id' => 127, - 'business_area_id' => 16, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 120 => - array ( - 'id' => 121, - 'form_id' => 129, - 'business_area_id' => 16, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 121 => - array ( - 'id' => 122, - 'form_id' => 130, - 'business_area_id' => 16, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 122 => - array ( - 'id' => 123, - 'form_id' => 131, - 'business_area_id' => 16, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 123 => - array ( - 'id' => 124, - 'form_id' => 132, - 'business_area_id' => 16, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 124 => - array ( - 'id' => 125, - 'form_id' => 133, - 'business_area_id' => 16, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 125 => - array ( - 'id' => 126, - 'form_id' => 136, - 'business_area_id' => 16, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 126 => - array ( - 'id' => 127, - 'form_id' => 139, - 'business_area_id' => 16, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 127 => - array ( - 'id' => 128, - 'form_id' => 140, - 'business_area_id' => 16, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 128 => - array ( - 'id' => 129, - 'form_id' => 142, - 'business_area_id' => 16, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 129 => - array ( - 'id' => 130, - 'form_id' => 147, - 'business_area_id' => 16, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 130 => - array ( - 'id' => 131, - 'form_id' => 149, - 'business_area_id' => 16, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 131 => - array ( - 'id' => 132, - 'form_id' => 157, - 'business_area_id' => 17, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 132 => - array ( - 'id' => 133, - 'form_id' => 157, - 'business_area_id' => 18, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 133 => - array ( - 'id' => 134, - 'form_id' => 158, - 'business_area_id' => 17, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 134 => - array ( - 'id' => 135, - 'form_id' => 158, - 'business_area_id' => 18, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 135 => - array ( - 'id' => 136, - 'form_id' => 159, - 'business_area_id' => 17, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 136 => - array ( - 'id' => 137, - 'form_id' => 159, - 'business_area_id' => 18, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 137 => - array ( - 'id' => 138, - 'form_id' => 160, - 'business_area_id' => 17, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 138 => - array ( - 'id' => 139, - 'form_id' => 161, - 'business_area_id' => 17, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 139 => - array ( - 'id' => 140, - 'form_id' => 162, - 'business_area_id' => 17, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 140 => - array ( - 'id' => 141, - 'form_id' => 178, - 'business_area_id' => 17, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 141 => - array ( - 'id' => 142, - 'form_id' => 197, - 'business_area_id' => 17, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 142 => - array ( - 'id' => 143, - 'form_id' => 207, - 'business_area_id' => 17, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 143 => - array ( - 'id' => 144, - 'form_id' => 208, - 'business_area_id' => 17, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 144 => - array ( - 'id' => 145, - 'form_id' => 219, - 'business_area_id' => 17, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 145 => - array ( - 'id' => 146, - 'form_id' => 220, - 'business_area_id' => 17, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 146 => - array ( - 'id' => 147, - 'form_id' => 221, - 'business_area_id' => 17, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 147 => - array ( - 'id' => 148, - 'form_id' => 228, - 'business_area_id' => 17, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 148 => - array ( - 'id' => 149, - 'form_id' => 231, - 'business_area_id' => 17, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 149 => - array ( - 'id' => 150, - 'form_id' => 263, - 'business_area_id' => 14, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 150 => - array ( - 'id' => 151, - 'form_id' => 272, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 151 => - array ( - 'id' => 152, - 'form_id' => 273, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 152 => - array ( - 'id' => 153, - 'form_id' => 274, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 153 => - array ( - 'id' => 154, - 'form_id' => 275, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 154 => - array ( - 'id' => 155, - 'form_id' => 276, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 155 => - array ( - 'id' => 156, - 'form_id' => 277, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 156 => - array ( - 'id' => 157, - 'form_id' => 278, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 157 => - array ( - 'id' => 158, - 'form_id' => 279, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 158 => - array ( - 'id' => 159, - 'form_id' => 280, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 159 => - array ( - 'id' => 160, - 'form_id' => 281, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 160 => - array ( - 'id' => 161, - 'form_id' => 282, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 161 => - array ( - 'id' => 162, - 'form_id' => 283, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 162 => - array ( - 'id' => 163, - 'form_id' => 284, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 163 => - array ( - 'id' => 164, - 'form_id' => 285, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 164 => - array ( - 'id' => 165, - 'form_id' => 286, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 165 => - array ( - 'id' => 166, - 'form_id' => 287, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 166 => - array ( - 'id' => 167, - 'form_id' => 288, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 167 => - array ( - 'id' => 168, - 'form_id' => 289, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 168 => - array ( - 'id' => 169, - 'form_id' => 291, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 169 => - array ( - 'id' => 170, - 'form_id' => 292, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 170 => - array ( - 'id' => 171, - 'form_id' => 293, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 171 => - array ( - 'id' => 172, - 'form_id' => 294, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 172 => - array ( - 'id' => 173, - 'form_id' => 295, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 173 => - array ( - 'id' => 174, - 'form_id' => 296, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 174 => - array ( - 'id' => 175, - 'form_id' => 297, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 175 => - array ( - 'id' => 176, - 'form_id' => 298, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 176 => - array ( - 'id' => 177, - 'form_id' => 299, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 177 => - array ( - 'id' => 178, - 'form_id' => 300, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 178 => - array ( - 'id' => 179, - 'form_id' => 301, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 179 => - array ( - 'id' => 180, - 'form_id' => 302, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 180 => - array ( - 'id' => 181, - 'form_id' => 303, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 181 => - array ( - 'id' => 182, - 'form_id' => 304, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 182 => - array ( - 'id' => 183, - 'form_id' => 305, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 183 => - array ( - 'id' => 184, - 'form_id' => 306, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 184 => - array ( - 'id' => 185, - 'form_id' => 307, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 185 => - array ( - 'id' => 186, - 'form_id' => 308, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 186 => - array ( - 'id' => 187, - 'form_id' => 309, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 187 => - array ( - 'id' => 188, - 'form_id' => 310, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 188 => - array ( - 'id' => 189, - 'form_id' => 311, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 189 => - array ( - 'id' => 190, - 'form_id' => 312, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 190 => - array ( - 'id' => 191, - 'form_id' => 313, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 191 => - array ( - 'id' => 192, - 'form_id' => 314, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 192 => - array ( - 'id' => 193, - 'form_id' => 315, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 193 => - array ( - 'id' => 194, - 'form_id' => 316, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 194 => - array ( - 'id' => 195, - 'form_id' => 317, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 195 => - array ( - 'id' => 196, - 'form_id' => 318, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 196 => - array ( - 'id' => 197, - 'form_id' => 319, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 197 => - array ( - 'id' => 198, - 'form_id' => 320, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 198 => - array ( - 'id' => 199, - 'form_id' => 321, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 199 => - array ( - 'id' => 200, - 'form_id' => 327, - 'business_area_id' => 17, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 200 => - array ( - 'id' => 201, - 'form_id' => 331, - 'business_area_id' => 20, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 201 => - array ( - 'id' => 202, - 'form_id' => 339, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 202 => - array ( - 'id' => 203, - 'form_id' => 358, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 203 => - array ( - 'id' => 204, - 'form_id' => 359, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 204 => - array ( - 'id' => 205, - 'form_id' => 360, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 205 => - array ( - 'id' => 206, - 'form_id' => 361, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 206 => - array ( - 'id' => 207, - 'form_id' => 362, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 207 => - array ( - 'id' => 208, - 'form_id' => 363, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 208 => - array ( - 'id' => 209, - 'form_id' => 364, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 209 => - array ( - 'id' => 210, - 'form_id' => 365, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 210 => - array ( - 'id' => 211, - 'form_id' => 366, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 211 => - array ( - 'id' => 212, - 'form_id' => 367, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 212 => - array ( - 'id' => 213, - 'form_id' => 368, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 213 => - array ( - 'id' => 214, - 'form_id' => 369, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 214 => - array ( - 'id' => 215, - 'form_id' => 370, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 215 => - array ( - 'id' => 216, - 'form_id' => 371, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 216 => - array ( - 'id' => 217, - 'form_id' => 372, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 217 => - array ( - 'id' => 218, - 'form_id' => 373, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 218 => - array ( - 'id' => 219, - 'form_id' => 374, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 219 => - array ( - 'id' => 220, - 'form_id' => 375, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 220 => - array ( - 'id' => 221, - 'form_id' => 376, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 221 => - array ( - 'id' => 222, - 'form_id' => 377, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 222 => - array ( - 'id' => 223, - 'form_id' => 378, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 223 => - array ( - 'id' => 224, - 'form_id' => 379, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 224 => - array ( - 'id' => 225, - 'form_id' => 380, - 'business_area_id' => 20, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 225 => - array ( - 'id' => 226, - 'form_id' => 381, - 'business_area_id' => 17, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 226 => - array ( - 'id' => 227, - 'form_id' => 382, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 227 => - array ( - 'id' => 228, - 'form_id' => 383, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 228 => - array ( - 'id' => 229, - 'form_id' => 384, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 229 => - array ( - 'id' => 230, - 'form_id' => 385, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 230 => - array ( - 'id' => 231, - 'form_id' => 386, - 'business_area_id' => 17, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 231 => - array ( - 'id' => 232, - 'form_id' => 387, - 'business_area_id' => 21, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 232 => - array ( - 'id' => 233, - 'form_id' => 388, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 233 => - array ( - 'id' => 234, - 'form_id' => 392, - 'business_area_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 234 => - array ( - 'id' => 235, - 'form_id' => 393, - 'business_area_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 235 => - array ( - 'id' => 236, - 'form_id' => 394, - 'business_area_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 236 => - array ( - 'id' => 237, - 'form_id' => 395, - 'business_area_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 237 => - array ( - 'id' => 238, - 'form_id' => 396, - 'business_area_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 238 => - array ( - 'id' => 239, - 'form_id' => 397, - 'business_area_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 239 => - array ( - 'id' => 240, - 'form_id' => 398, - 'business_area_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 240 => - array ( - 'id' => 241, - 'form_id' => 399, - 'business_area_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 241 => - array ( - 'id' => 242, - 'form_id' => 400, - 'business_area_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 242 => - array ( - 'id' => 243, - 'form_id' => 402, - 'business_area_id' => 22, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 243 => - array ( - 'id' => 244, - 'form_id' => 403, - 'business_area_id' => 23, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 244 => - array ( - 'id' => 245, - 'form_id' => 404, - 'business_area_id' => 24, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 245 => - array ( - 'id' => 246, - 'form_id' => 405, - 'business_area_id' => 22, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 246 => - array ( - 'id' => 247, - 'form_id' => 407, - 'business_area_id' => 22, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 247 => - array ( - 'id' => 248, - 'form_id' => 408, - 'business_area_id' => 22, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 248 => - array ( - 'id' => 249, - 'form_id' => 410, - 'business_area_id' => 25, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 249 => - array ( - 'id' => 250, - 'form_id' => 411, - 'business_area_id' => 25, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 250 => - array ( - 'id' => 251, - 'form_id' => 412, - 'business_area_id' => 26, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 251 => - array ( - 'id' => 252, - 'form_id' => 414, - 'business_area_id' => 14, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 252 => - array ( - 'id' => 253, - 'form_id' => 415, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 253 => - array ( - 'id' => 254, - 'form_id' => 416, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 254 => - array ( - 'id' => 255, - 'form_id' => 417, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 255 => - array ( - 'id' => 256, - 'form_id' => 418, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 256 => - array ( - 'id' => 257, - 'form_id' => 422, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 257 => - array ( - 'id' => 258, - 'form_id' => 423, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 258 => - array ( - 'id' => 259, - 'form_id' => 424, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 259 => - array ( - 'id' => 260, - 'form_id' => 426, - 'business_area_id' => 24, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 260 => - array ( - 'id' => 261, - 'form_id' => 427, - 'business_area_id' => 22, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 261 => - array ( - 'id' => 262, - 'form_id' => 428, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 262 => - array ( - 'id' => 263, - 'form_id' => 430, - 'business_area_id' => 29, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 263 => - array ( - 'id' => 264, - 'form_id' => 431, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 264 => - array ( - 'id' => 265, - 'form_id' => 432, - 'business_area_id' => 29, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 265 => - array ( - 'id' => 266, - 'form_id' => 433, - 'business_area_id' => 29, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 266 => - array ( - 'id' => 267, - 'form_id' => 434, - 'business_area_id' => 29, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 267 => - array ( - 'id' => 268, - 'form_id' => 435, - 'business_area_id' => 29, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 268 => - array ( - 'id' => 269, - 'form_id' => 436, - 'business_area_id' => 29, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 269 => - array ( - 'id' => 270, - 'form_id' => 437, - 'business_area_id' => 29, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 270 => - array ( - 'id' => 271, - 'form_id' => 438, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 271 => - array ( - 'id' => 272, - 'form_id' => 438, - 'business_area_id' => 29, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 272 => - array ( - 'id' => 273, - 'form_id' => 439, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 273 => - array ( - 'id' => 274, - 'form_id' => 439, - 'business_area_id' => 29, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 274 => - array ( - 'id' => 275, - 'form_id' => 440, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 275 => - array ( - 'id' => 276, - 'form_id' => 440, - 'business_area_id' => 29, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 276 => - array ( - 'id' => 277, - 'form_id' => 441, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 277 => - array ( - 'id' => 278, - 'form_id' => 441, - 'business_area_id' => 29, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 278 => - array ( - 'id' => 279, - 'form_id' => 442, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 279 => - array ( - 'id' => 280, - 'form_id' => 442, - 'business_area_id' => 29, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 280 => - array ( - 'id' => 281, - 'form_id' => 444, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 281 => - array ( - 'id' => 282, - 'form_id' => 445, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 282 => - array ( - 'id' => 283, - 'form_id' => 445, - 'business_area_id' => 29, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 283 => - array ( - 'id' => 284, - 'form_id' => 446, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 284 => - array ( - 'id' => 285, - 'form_id' => 447, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 285 => - array ( - 'id' => 286, - 'form_id' => 447, - 'business_area_id' => 29, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 286 => - array ( - 'id' => 287, - 'form_id' => 449, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 287 => - array ( - 'id' => 288, - 'form_id' => 449, - 'business_area_id' => 29, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 288 => - array ( - 'id' => 289, - 'form_id' => 450, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 289 => - array ( - 'id' => 290, - 'form_id' => 450, - 'business_area_id' => 29, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 290 => - array ( - 'id' => 291, - 'form_id' => 451, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 291 => - array ( - 'id' => 292, - 'form_id' => 451, - 'business_area_id' => 29, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 292 => - array ( - 'id' => 293, - 'form_id' => 455, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 293 => - array ( - 'id' => 294, - 'form_id' => 456, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 294 => - array ( - 'id' => 295, - 'form_id' => 456, - 'business_area_id' => 29, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 295 => - array ( - 'id' => 296, - 'form_id' => 457, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 296 => - array ( - 'id' => 297, - 'form_id' => 457, - 'business_area_id' => 29, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 297 => - array ( - 'id' => 298, - 'form_id' => 458, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 298 => - array ( - 'id' => 299, - 'form_id' => 458, - 'business_area_id' => 29, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 299 => - array ( - 'id' => 300, - 'form_id' => 459, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 300 => - array ( - 'id' => 301, - 'form_id' => 459, - 'business_area_id' => 29, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 301 => - array ( - 'id' => 302, - 'form_id' => 460, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 302 => - array ( - 'id' => 303, - 'form_id' => 460, - 'business_area_id' => 29, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 303 => - array ( - 'id' => 304, - 'form_id' => 461, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 304 => - array ( - 'id' => 305, - 'form_id' => 461, - 'business_area_id' => 29, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 305 => - array ( - 'id' => 306, - 'form_id' => 462, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 306 => - array ( - 'id' => 307, - 'form_id' => 463, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 307 => - array ( - 'id' => 308, - 'form_id' => 463, - 'business_area_id' => 29, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 308 => - array ( - 'id' => 309, - 'form_id' => 464, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 309 => - array ( - 'id' => 310, - 'form_id' => 464, - 'business_area_id' => 29, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 310 => - array ( - 'id' => 311, - 'form_id' => 465, - 'business_area_id' => 29, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 311 => - array ( - 'id' => 312, - 'form_id' => 466, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 312 => - array ( - 'id' => 313, - 'form_id' => 467, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 313 => - array ( - 'id' => 314, - 'form_id' => 468, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 314 => - array ( - 'id' => 315, - 'form_id' => 469, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 315 => - array ( - 'id' => 316, - 'form_id' => 470, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 316 => - array ( - 'id' => 317, - 'form_id' => 471, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 317 => - array ( - 'id' => 318, - 'form_id' => 472, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 318 => - array ( - 'id' => 319, - 'form_id' => 473, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 319 => - array ( - 'id' => 320, - 'form_id' => 474, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 320 => - array ( - 'id' => 321, - 'form_id' => 475, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 321 => - array ( - 'id' => 322, - 'form_id' => 476, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 322 => - array ( - 'id' => 323, - 'form_id' => 477, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 323 => - array ( - 'id' => 324, - 'form_id' => 478, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 324 => - array ( - 'id' => 325, - 'form_id' => 480, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 325 => - array ( - 'id' => 326, - 'form_id' => 481, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 326 => - array ( - 'id' => 327, - 'form_id' => 482, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 327 => - array ( - 'id' => 328, - 'form_id' => 483, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 328 => - array ( - 'id' => 329, - 'form_id' => 484, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 329 => - array ( - 'id' => 330, - 'form_id' => 485, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 330 => - array ( - 'id' => 331, - 'form_id' => 488, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 331 => - array ( - 'id' => 332, - 'form_id' => 489, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 332 => - array ( - 'id' => 333, - 'form_id' => 490, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 333 => - array ( - 'id' => 334, - 'form_id' => 491, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 334 => - array ( - 'id' => 335, - 'form_id' => 492, - 'business_area_id' => 30, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 335 => - array ( - 'id' => 336, - 'form_id' => 493, - 'business_area_id' => 29, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 336 => - array ( - 'id' => 337, - 'form_id' => 493, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 337 => - array ( - 'id' => 338, - 'form_id' => 494, - 'business_area_id' => 29, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 338 => - array ( - 'id' => 339, - 'form_id' => 494, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 339 => - array ( - 'id' => 340, - 'form_id' => 495, - 'business_area_id' => 29, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 340 => - array ( - 'id' => 341, - 'form_id' => 496, - 'business_area_id' => 29, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 341 => - array ( - 'id' => 342, - 'form_id' => 497, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 342 => - array ( - 'id' => 343, - 'form_id' => 498, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 343 => - array ( - 'id' => 344, - 'form_id' => 498, - 'business_area_id' => 29, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 344 => - array ( - 'id' => 345, - 'form_id' => 499, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 345 => - array ( - 'id' => 346, - 'form_id' => 499, - 'business_area_id' => 29, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 346 => - array ( - 'id' => 347, - 'form_id' => 500, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 347 => - array ( - 'id' => 348, - 'form_id' => 500, - 'business_area_id' => 29, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 348 => - array ( - 'id' => 349, - 'form_id' => 501, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 349 => - array ( - 'id' => 350, - 'form_id' => 501, - 'business_area_id' => 14, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 350 => - array ( - 'id' => 351, - 'form_id' => 502, - 'business_area_id' => 29, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 351 => - array ( - 'id' => 352, - 'form_id' => 503, - 'business_area_id' => 29, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 352 => - array ( - 'id' => 353, - 'form_id' => 504, - 'business_area_id' => 29, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 353 => - array ( - 'id' => 354, - 'form_id' => 505, - 'business_area_id' => 29, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 354 => - array ( - 'id' => 355, - 'form_id' => 506, - 'business_area_id' => 29, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 355 => - array ( - 'id' => 356, - 'form_id' => 507, - 'business_area_id' => 29, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 356 => - array ( - 'id' => 357, - 'form_id' => 508, - 'business_area_id' => 29, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 357 => - array ( - 'id' => 358, - 'form_id' => 509, - 'business_area_id' => 29, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 358 => - array ( - 'id' => 359, - 'form_id' => 510, - 'business_area_id' => 29, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 359 => - array ( - 'id' => 360, - 'form_id' => 511, - 'business_area_id' => 29, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 360 => - array ( - 'id' => 361, - 'form_id' => 512, - 'business_area_id' => 29, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 361 => - array ( - 'id' => 362, - 'form_id' => 513, - 'business_area_id' => 29, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 362 => - array ( - 'id' => 363, - 'form_id' => 514, - 'business_area_id' => 29, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 363 => - array ( - 'id' => 364, - 'form_id' => 515, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 364 => - array ( - 'id' => 365, - 'form_id' => 516, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 365 => - array ( - 'id' => 366, - 'form_id' => 518, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 366 => - array ( - 'id' => 367, - 'form_id' => 519, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 367 => - array ( - 'id' => 368, - 'form_id' => 520, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 368 => - array ( - 'id' => 369, - 'form_id' => 521, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 369 => - array ( - 'id' => 370, - 'form_id' => 522, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 370 => - array ( - 'id' => 371, - 'form_id' => 523, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 371 => - array ( - 'id' => 372, - 'form_id' => 524, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 372 => - array ( - 'id' => 373, - 'form_id' => 528, - 'business_area_id' => 31, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 373 => - array ( - 'id' => 374, - 'form_id' => 529, - 'business_area_id' => 22, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 374 => - array ( - 'id' => 375, - 'form_id' => 529, - 'business_area_id' => 14, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 375 => - array ( - 'id' => 376, - 'form_id' => 530, - 'business_area_id' => 32, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 376 => - array ( - 'id' => 377, - 'form_id' => 531, - 'business_area_id' => 33, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 377 => - array ( - 'id' => 378, - 'form_id' => 535, - 'business_area_id' => 24, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 378 => - array ( - 'id' => 379, - 'form_id' => 537, - 'business_area_id' => 33, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 379 => - array ( - 'id' => 380, - 'form_id' => 537, - 'business_area_id' => 22, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 380 => - array ( - 'id' => 381, - 'form_id' => 538, - 'business_area_id' => 34, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 381 => - array ( - 'id' => 382, - 'form_id' => 540, - 'business_area_id' => 33, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 382 => - array ( - 'id' => 383, - 'form_id' => 541, - 'business_area_id' => 33, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 383 => - array ( - 'id' => 384, - 'form_id' => 542, - 'business_area_id' => 33, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 384 => - array ( - 'id' => 385, - 'form_id' => 543, - 'business_area_id' => 35, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 385 => - array ( - 'id' => 386, - 'form_id' => 545, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 386 => - array ( - 'id' => 387, - 'form_id' => 546, - 'business_area_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 387 => - array ( - 'id' => 388, - 'form_id' => 550, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 388 => - array ( - 'id' => 389, - 'form_id' => 551, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 389 => - array ( - 'id' => 390, - 'form_id' => 552, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 390 => - array ( - 'id' => 391, - 'form_id' => 553, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 391 => - array ( - 'id' => 392, - 'form_id' => 554, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 392 => - array ( - 'id' => 393, - 'form_id' => 555, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 393 => - array ( - 'id' => 394, - 'form_id' => 557, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 394 => - array ( - 'id' => 395, - 'form_id' => 560, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 395 => - array ( - 'id' => 396, - 'form_id' => 561, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 396 => - array ( - 'id' => 397, - 'form_id' => 565, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 397 => - array ( - 'id' => 398, - 'form_id' => 567, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 398 => - array ( - 'id' => 399, - 'form_id' => 568, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 399 => - array ( - 'id' => 400, - 'form_id' => 569, - 'business_area_id' => 22, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 400 => - array ( - 'id' => 401, - 'form_id' => 570, - 'business_area_id' => 36, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 401 => - array ( - 'id' => 402, - 'form_id' => 572, - 'business_area_id' => 36, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 402 => - array ( - 'id' => 403, - 'form_id' => 572, - 'business_area_id' => 22, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 403 => - array ( - 'id' => 404, - 'form_id' => 573, - 'business_area_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 404 => - array ( - 'id' => 405, - 'form_id' => 575, - 'business_area_id' => 24, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 405 => - array ( - 'id' => 406, - 'form_id' => 577, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 406 => - array ( - 'id' => 407, - 'form_id' => 579, - 'business_area_id' => 8, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 407 => - array ( - 'id' => 408, - 'form_id' => 580, - 'business_area_id' => 8, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 408 => - array ( - 'id' => 409, - 'form_id' => 581, - 'business_area_id' => 8, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 409 => - array ( - 'id' => 410, - 'form_id' => 582, - 'business_area_id' => 8, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 410 => - array ( - 'id' => 411, - 'form_id' => 583, - 'business_area_id' => 8, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 411 => - array ( - 'id' => 412, - 'form_id' => 584, - 'business_area_id' => 8, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 412 => - array ( - 'id' => 413, - 'form_id' => 585, - 'business_area_id' => 8, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 413 => - array ( - 'id' => 414, - 'form_id' => 586, - 'business_area_id' => 8, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 414 => - array ( - 'id' => 415, - 'form_id' => 587, - 'business_area_id' => 8, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 415 => - array ( - 'id' => 416, - 'form_id' => 588, - 'business_area_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 416 => - array ( - 'id' => 417, - 'form_id' => 589, - 'business_area_id' => 9, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 417 => - array ( - 'id' => 418, - 'form_id' => 590, - 'business_area_id' => 9, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 418 => - array ( - 'id' => 419, - 'form_id' => 590, - 'business_area_id' => 37, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 419 => - array ( - 'id' => 420, - 'form_id' => 591, - 'business_area_id' => 9, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 420 => - array ( - 'id' => 421, - 'form_id' => 591, - 'business_area_id' => 37, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 421 => - array ( - 'id' => 422, - 'form_id' => 594, - 'business_area_id' => 9, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 422 => - array ( - 'id' => 423, - 'form_id' => 596, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 423 => - array ( - 'id' => 424, - 'form_id' => 596, - 'business_area_id' => 14, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 424 => - array ( - 'id' => 425, - 'form_id' => 598, - 'business_area_id' => 9, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 425 => - array ( - 'id' => 426, - 'form_id' => 606, - 'business_area_id' => 11, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 426 => - array ( - 'id' => 427, - 'form_id' => 608, - 'business_area_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 427 => - array ( - 'id' => 428, - 'form_id' => 608, - 'business_area_id' => 12, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 428 => - array ( - 'id' => 429, - 'form_id' => 609, - 'business_area_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 429 => - array ( - 'id' => 430, - 'form_id' => 609, - 'business_area_id' => 12, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 430 => - array ( - 'id' => 431, - 'form_id' => 610, - 'business_area_id' => 11, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 431 => - array ( - 'id' => 432, - 'form_id' => 610, - 'business_area_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 432 => - array ( - 'id' => 433, - 'form_id' => 610, - 'business_area_id' => 12, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 433 => - array ( - 'id' => 434, - 'form_id' => 613, - 'business_area_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 434 => - array ( - 'id' => 435, - 'form_id' => 613, - 'business_area_id' => 12, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 435 => - array ( - 'id' => 436, - 'form_id' => 614, - 'business_area_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 436 => - array ( - 'id' => 437, - 'form_id' => 614, - 'business_area_id' => 12, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 437 => - array ( - 'id' => 438, - 'form_id' => 615, - 'business_area_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 438 => - array ( - 'id' => 439, - 'form_id' => 615, - 'business_area_id' => 12, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 439 => - array ( - 'id' => 440, - 'form_id' => 616, - 'business_area_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 440 => - array ( - 'id' => 441, - 'form_id' => 616, - 'business_area_id' => 12, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 441 => - array ( - 'id' => 442, - 'form_id' => 617, - 'business_area_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 442 => - array ( - 'id' => 443, - 'form_id' => 617, - 'business_area_id' => 12, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 443 => - array ( - 'id' => 444, - 'form_id' => 618, - 'business_area_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 444 => - array ( - 'id' => 445, - 'form_id' => 618, - 'business_area_id' => 12, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 445 => - array ( - 'id' => 446, - 'form_id' => 619, - 'business_area_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 446 => - array ( - 'id' => 447, - 'form_id' => 619, - 'business_area_id' => 12, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 447 => - array ( - 'id' => 448, - 'form_id' => 621, - 'business_area_id' => 11, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 448 => - array ( - 'id' => 449, - 'form_id' => 622, - 'business_area_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 449 => - array ( - 'id' => 450, - 'form_id' => 622, - 'business_area_id' => 11, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 450 => - array ( - 'id' => 451, - 'form_id' => 622, - 'business_area_id' => 12, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 451 => - array ( - 'id' => 452, - 'form_id' => 623, - 'business_area_id' => 11, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 452 => - array ( - 'id' => 453, - 'form_id' => 624, - 'business_area_id' => 11, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 453 => - array ( - 'id' => 454, - 'form_id' => 625, - 'business_area_id' => 11, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 454 => - array ( - 'id' => 455, - 'form_id' => 626, - 'business_area_id' => 11, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 455 => - array ( - 'id' => 456, - 'form_id' => 627, - 'business_area_id' => 11, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 456 => - array ( - 'id' => 457, - 'form_id' => 628, - 'business_area_id' => 11, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 457 => - array ( - 'id' => 458, - 'form_id' => 629, - 'business_area_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 458 => - array ( - 'id' => 459, - 'form_id' => 629, - 'business_area_id' => 12, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 459 => - array ( - 'id' => 460, - 'form_id' => 630, - 'business_area_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 460 => - array ( - 'id' => 461, - 'form_id' => 630, - 'business_area_id' => 12, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 461 => - array ( - 'id' => 462, - 'form_id' => 631, - 'business_area_id' => 38, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 462 => - array ( - 'id' => 463, - 'form_id' => 632, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 463 => - array ( - 'id' => 464, - 'form_id' => 633, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 464 => - array ( - 'id' => 465, - 'form_id' => 634, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 465 => - array ( - 'id' => 466, - 'form_id' => 635, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 466 => - array ( - 'id' => 467, - 'form_id' => 636, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 467 => - array ( - 'id' => 468, - 'form_id' => 637, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 468 => - array ( - 'id' => 469, - 'form_id' => 638, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 469 => - array ( - 'id' => 470, - 'form_id' => 640, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 470 => - array ( - 'id' => 471, - 'form_id' => 640, - 'business_area_id' => 39, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 471 => - array ( - 'id' => 472, - 'form_id' => 640, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 472 => - array ( - 'id' => 473, - 'form_id' => 641, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 473 => - array ( - 'id' => 474, - 'form_id' => 642, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 474 => - array ( - 'id' => 475, - 'form_id' => 643, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 475 => - array ( - 'id' => 476, - 'form_id' => 644, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 476 => - array ( - 'id' => 477, - 'form_id' => 645, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 477 => - array ( - 'id' => 478, - 'form_id' => 647, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 478 => - array ( - 'id' => 479, - 'form_id' => 648, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 479 => - array ( - 'id' => 480, - 'form_id' => 650, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 480 => - array ( - 'id' => 481, - 'form_id' => 650, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 481 => - array ( - 'id' => 482, - 'form_id' => 650, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 482 => - array ( - 'id' => 483, - 'form_id' => 651, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 483 => - array ( - 'id' => 484, - 'form_id' => 652, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 484 => - array ( - 'id' => 485, - 'form_id' => 653, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 485 => - array ( - 'id' => 486, - 'form_id' => 653, - 'business_area_id' => 39, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 486 => - array ( - 'id' => 487, - 'form_id' => 653, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 487 => - array ( - 'id' => 488, - 'form_id' => 655, - 'business_area_id' => 40, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 488 => - array ( - 'id' => 489, - 'form_id' => 658, - 'business_area_id' => 40, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 489 => - array ( - 'id' => 490, - 'form_id' => 659, - 'business_area_id' => 40, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 490 => - array ( - 'id' => 491, - 'form_id' => 664, - 'business_area_id' => 41, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 491 => - array ( - 'id' => 492, - 'form_id' => 665, - 'business_area_id' => 41, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 492 => - array ( - 'id' => 493, - 'form_id' => 666, - 'business_area_id' => 41, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 493 => - array ( - 'id' => 494, - 'form_id' => 667, - 'business_area_id' => 41, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 494 => - array ( - 'id' => 495, - 'form_id' => 668, - 'business_area_id' => 41, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 495 => - array ( - 'id' => 496, - 'form_id' => 669, - 'business_area_id' => 41, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 496 => - array ( - 'id' => 497, - 'form_id' => 670, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 497 => - array ( - 'id' => 498, - 'form_id' => 671, - 'business_area_id' => 41, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 498 => - array ( - 'id' => 499, - 'form_id' => 672, - 'business_area_id' => 35, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 499 => - array ( - 'id' => 500, - 'form_id' => 673, - 'business_area_id' => 41, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - )); - \DB::table('form_business_area')->insert(array ( - 0 => - array ( - 'id' => 501, - 'form_id' => 674, - 'business_area_id' => 35, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 1 => - array ( - 'id' => 502, - 'form_id' => 675, - 'business_area_id' => 35, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 2 => - array ( - 'id' => 503, - 'form_id' => 677, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 3 => - array ( - 'id' => 504, - 'form_id' => 678, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 4 => - array ( - 'id' => 505, - 'form_id' => 679, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 5 => - array ( - 'id' => 506, - 'form_id' => 680, - 'business_area_id' => 42, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 6 => - array ( - 'id' => 507, - 'form_id' => 681, - 'business_area_id' => 35, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 7 => - array ( - 'id' => 508, - 'form_id' => 683, - 'business_area_id' => 35, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 8 => - array ( - 'id' => 509, - 'form_id' => 684, - 'business_area_id' => 35, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 9 => - array ( - 'id' => 510, - 'form_id' => 685, - 'business_area_id' => 35, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 10 => - array ( - 'id' => 511, - 'form_id' => 686, - 'business_area_id' => 35, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 11 => - array ( - 'id' => 512, - 'form_id' => 687, - 'business_area_id' => 35, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 12 => - array ( - 'id' => 513, - 'form_id' => 688, - 'business_area_id' => 35, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 13 => - array ( - 'id' => 514, - 'form_id' => 689, - 'business_area_id' => 35, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 14 => - array ( - 'id' => 515, - 'form_id' => 691, - 'business_area_id' => 43, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 15 => - array ( - 'id' => 516, - 'form_id' => 692, - 'business_area_id' => 43, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 16 => - array ( - 'id' => 517, - 'form_id' => 693, - 'business_area_id' => 43, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 17 => - array ( - 'id' => 518, - 'form_id' => 694, - 'business_area_id' => 43, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 18 => - array ( - 'id' => 519, - 'form_id' => 695, - 'business_area_id' => 43, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 19 => - array ( - 'id' => 520, - 'form_id' => 696, - 'business_area_id' => 43, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 20 => - array ( - 'id' => 521, - 'form_id' => 697, - 'business_area_id' => 43, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 21 => - array ( - 'id' => 522, - 'form_id' => 698, - 'business_area_id' => 43, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 22 => - array ( - 'id' => 523, - 'form_id' => 699, - 'business_area_id' => 43, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 23 => - array ( - 'id' => 524, - 'form_id' => 700, - 'business_area_id' => 43, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 24 => - array ( - 'id' => 525, - 'form_id' => 701, - 'business_area_id' => 43, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 25 => - array ( - 'id' => 526, - 'form_id' => 702, - 'business_area_id' => 43, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 26 => - array ( - 'id' => 527, - 'form_id' => 703, - 'business_area_id' => 43, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 27 => - array ( - 'id' => 528, - 'form_id' => 704, - 'business_area_id' => 10, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 28 => - array ( - 'id' => 529, - 'form_id' => 705, - 'business_area_id' => 10, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 29 => - array ( - 'id' => 530, - 'form_id' => 706, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 30 => - array ( - 'id' => 531, - 'form_id' => 706, - 'business_area_id' => 39, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 31 => - array ( - 'id' => 532, - 'form_id' => 707, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 32 => - array ( - 'id' => 533, - 'form_id' => 708, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 33 => - array ( - 'id' => 534, - 'form_id' => 709, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 34 => - array ( - 'id' => 535, - 'form_id' => 709, - 'business_area_id' => 39, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 35 => - array ( - 'id' => 536, - 'form_id' => 709, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 36 => - array ( - 'id' => 537, - 'form_id' => 710, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 37 => - array ( - 'id' => 538, - 'form_id' => 710, - 'business_area_id' => 39, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 38 => - array ( - 'id' => 539, - 'form_id' => 710, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 39 => - array ( - 'id' => 540, - 'form_id' => 711, - 'business_area_id' => 44, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 40 => - array ( - 'id' => 541, - 'form_id' => 712, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 41 => - array ( - 'id' => 542, - 'form_id' => 712, - 'business_area_id' => 39, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 42 => - array ( - 'id' => 543, - 'form_id' => 713, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 43 => - array ( - 'id' => 544, - 'form_id' => 713, - 'business_area_id' => 39, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 44 => - array ( - 'id' => 545, - 'form_id' => 714, - 'business_area_id' => 45, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 45 => - array ( - 'id' => 546, - 'form_id' => 715, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 46 => - array ( - 'id' => 547, - 'form_id' => 717, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 47 => - array ( - 'id' => 548, - 'form_id' => 718, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 48 => - array ( - 'id' => 549, - 'form_id' => 720, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 49 => - array ( - 'id' => 550, - 'form_id' => 721, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 50 => - array ( - 'id' => 551, - 'form_id' => 723, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 51 => - array ( - 'id' => 552, - 'form_id' => 724, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 52 => - array ( - 'id' => 553, - 'form_id' => 725, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 53 => - array ( - 'id' => 554, - 'form_id' => 726, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 54 => - array ( - 'id' => 555, - 'form_id' => 727, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 55 => - array ( - 'id' => 556, - 'form_id' => 728, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 56 => - array ( - 'id' => 557, - 'form_id' => 729, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 57 => - array ( - 'id' => 558, - 'form_id' => 730, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 58 => - array ( - 'id' => 559, - 'form_id' => 731, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 59 => - array ( - 'id' => 560, - 'form_id' => 733, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 60 => - array ( - 'id' => 561, - 'form_id' => 733, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 61 => - array ( - 'id' => 562, - 'form_id' => 734, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 62 => - array ( - 'id' => 563, - 'form_id' => 734, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 63 => - array ( - 'id' => 564, - 'form_id' => 735, - 'business_area_id' => 46, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 64 => - array ( - 'id' => 565, - 'form_id' => 736, - 'business_area_id' => 46, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 65 => - array ( - 'id' => 566, - 'form_id' => 737, - 'business_area_id' => 46, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 66 => - array ( - 'id' => 567, - 'form_id' => 738, - 'business_area_id' => 46, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 67 => - array ( - 'id' => 568, - 'form_id' => 739, - 'business_area_id' => 46, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 68 => - array ( - 'id' => 569, - 'form_id' => 740, - 'business_area_id' => 46, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 69 => - array ( - 'id' => 570, - 'form_id' => 741, - 'business_area_id' => 46, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 70 => - array ( - 'id' => 571, - 'form_id' => 743, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 71 => - array ( - 'id' => 572, - 'form_id' => 744, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 72 => - array ( - 'id' => 573, - 'form_id' => 745, - 'business_area_id' => 26, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 73 => - array ( - 'id' => 574, - 'form_id' => 746, - 'business_area_id' => 47, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 74 => - array ( - 'id' => 575, - 'form_id' => 747, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 75 => - array ( - 'id' => 576, - 'form_id' => 748, - 'business_area_id' => 38, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 76 => - array ( - 'id' => 577, - 'form_id' => 749, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 77 => - array ( - 'id' => 578, - 'form_id' => 752, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 78 => - array ( - 'id' => 579, - 'form_id' => 754, - 'business_area_id' => 22, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 79 => - array ( - 'id' => 580, - 'form_id' => 755, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 80 => - array ( - 'id' => 581, - 'form_id' => 757, - 'business_area_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 81 => - array ( - 'id' => 582, - 'form_id' => 757, - 'business_area_id' => 40, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 82 => - array ( - 'id' => 583, - 'form_id' => 758, - 'business_area_id' => 48, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 83 => - array ( - 'id' => 584, - 'form_id' => 759, - 'business_area_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 84 => - array ( - 'id' => 585, - 'form_id' => 759, - 'business_area_id' => 16, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 85 => - array ( - 'id' => 586, - 'form_id' => 759, - 'business_area_id' => 48, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 86 => - array ( - 'id' => 587, - 'form_id' => 761, - 'business_area_id' => 48, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 87 => - array ( - 'id' => 588, - 'form_id' => 762, - 'business_area_id' => 48, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 88 => - array ( - 'id' => 589, - 'form_id' => 762, - 'business_area_id' => 16, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 89 => - array ( - 'id' => 590, - 'form_id' => 763, - 'business_area_id' => 48, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 90 => - array ( - 'id' => 591, - 'form_id' => 764, - 'business_area_id' => 48, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 91 => - array ( - 'id' => 592, - 'form_id' => 765, - 'business_area_id' => 48, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 92 => - array ( - 'id' => 593, - 'form_id' => 766, - 'business_area_id' => 48, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 93 => - array ( - 'id' => 594, - 'form_id' => 768, - 'business_area_id' => 48, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 94 => - array ( - 'id' => 595, - 'form_id' => 768, - 'business_area_id' => 49, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 95 => - array ( - 'id' => 596, - 'form_id' => 769, - 'business_area_id' => 48, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 96 => - array ( - 'id' => 597, - 'form_id' => 770, - 'business_area_id' => 48, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 97 => - array ( - 'id' => 598, - 'form_id' => 771, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 98 => - array ( - 'id' => 599, - 'form_id' => 772, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 99 => - array ( - 'id' => 600, - 'form_id' => 773, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 100 => - array ( - 'id' => 601, - 'form_id' => 774, - 'business_area_id' => 48, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 101 => - array ( - 'id' => 602, - 'form_id' => 775, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 102 => - array ( - 'id' => 603, - 'form_id' => 776, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 103 => - array ( - 'id' => 604, - 'form_id' => 777, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 104 => - array ( - 'id' => 605, - 'form_id' => 778, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 105 => - array ( - 'id' => 606, - 'form_id' => 779, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 106 => - array ( - 'id' => 607, - 'form_id' => 780, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 107 => - array ( - 'id' => 608, - 'form_id' => 781, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 108 => - array ( - 'id' => 609, - 'form_id' => 782, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 109 => - array ( - 'id' => 610, - 'form_id' => 783, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 110 => - array ( - 'id' => 611, - 'form_id' => 787, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 111 => - array ( - 'id' => 612, - 'form_id' => 788, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 112 => - array ( - 'id' => 613, - 'form_id' => 789, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 113 => - array ( - 'id' => 614, - 'form_id' => 790, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 114 => - array ( - 'id' => 615, - 'form_id' => 791, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 115 => - array ( - 'id' => 616, - 'form_id' => 792, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 116 => - array ( - 'id' => 617, - 'form_id' => 793, - 'business_area_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 117 => - array ( - 'id' => 618, - 'form_id' => 795, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 118 => - array ( - 'id' => 619, - 'form_id' => 796, - 'business_area_id' => 33, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 119 => - array ( - 'id' => 620, - 'form_id' => 796, - 'business_area_id' => 14, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 120 => - array ( - 'id' => 621, - 'form_id' => 797, - 'business_area_id' => 33, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 121 => - array ( - 'id' => 622, - 'form_id' => 797, - 'business_area_id' => 14, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 122 => - array ( - 'id' => 623, - 'form_id' => 798, - 'business_area_id' => 33, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 123 => - array ( - 'id' => 624, - 'form_id' => 798, - 'business_area_id' => 14, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 124 => - array ( - 'id' => 625, - 'form_id' => 799, - 'business_area_id' => 22, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 125 => - array ( - 'id' => 626, - 'form_id' => 800, - 'business_area_id' => 33, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 126 => - array ( - 'id' => 627, - 'form_id' => 801, - 'business_area_id' => 33, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 127 => - array ( - 'id' => 628, - 'form_id' => 802, - 'business_area_id' => 33, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 128 => - array ( - 'id' => 629, - 'form_id' => 803, - 'business_area_id' => 22, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 129 => - array ( - 'id' => 630, - 'form_id' => 806, - 'business_area_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 130 => - array ( - 'id' => 631, - 'form_id' => 807, - 'business_area_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 131 => - array ( - 'id' => 632, - 'form_id' => 808, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 132 => - array ( - 'id' => 633, - 'form_id' => 809, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 133 => - array ( - 'id' => 634, - 'form_id' => 813, - 'business_area_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 134 => - array ( - 'id' => 635, - 'form_id' => 814, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 135 => - array ( - 'id' => 636, - 'form_id' => 815, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 136 => - array ( - 'id' => 637, - 'form_id' => 816, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 137 => - array ( - 'id' => 638, - 'form_id' => 817, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 138 => - array ( - 'id' => 639, - 'form_id' => 817, - 'business_area_id' => 9, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 139 => - array ( - 'id' => 640, - 'form_id' => 817, - 'business_area_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 140 => - array ( - 'id' => 641, - 'form_id' => 822, - 'business_area_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 141 => - array ( - 'id' => 642, - 'form_id' => 823, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 142 => - array ( - 'id' => 643, - 'form_id' => 824, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 143 => - array ( - 'id' => 644, - 'form_id' => 825, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 144 => - array ( - 'id' => 645, - 'form_id' => 826, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 145 => - array ( - 'id' => 646, - 'form_id' => 830, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 146 => - array ( - 'id' => 647, - 'form_id' => 831, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 147 => - array ( - 'id' => 648, - 'form_id' => 832, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 148 => - array ( - 'id' => 649, - 'form_id' => 833, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 149 => - array ( - 'id' => 650, - 'form_id' => 835, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 150 => - array ( - 'id' => 651, - 'form_id' => 835, - 'business_area_id' => 39, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 151 => - array ( - 'id' => 652, - 'form_id' => 835, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 152 => - array ( - 'id' => 653, - 'form_id' => 836, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 153 => - array ( - 'id' => 654, - 'form_id' => 836, - 'business_area_id' => 39, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 154 => - array ( - 'id' => 655, - 'form_id' => 836, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 155 => - array ( - 'id' => 656, - 'form_id' => 837, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 156 => - array ( - 'id' => 657, - 'form_id' => 837, - 'business_area_id' => 39, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 157 => - array ( - 'id' => 658, - 'form_id' => 837, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 158 => - array ( - 'id' => 659, - 'form_id' => 838, - 'business_area_id' => 39, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 159 => - array ( - 'id' => 660, - 'form_id' => 839, - 'business_area_id' => 26, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 160 => - array ( - 'id' => 661, - 'form_id' => 841, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 161 => - array ( - 'id' => 662, - 'form_id' => 842, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 162 => - array ( - 'id' => 663, - 'form_id' => 843, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 163 => - array ( - 'id' => 664, - 'form_id' => 844, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 164 => - array ( - 'id' => 665, - 'form_id' => 845, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 165 => - array ( - 'id' => 666, - 'form_id' => 846, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 166 => - array ( - 'id' => 667, - 'form_id' => 847, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 167 => - array ( - 'id' => 668, - 'form_id' => 848, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 168 => - array ( - 'id' => 669, - 'form_id' => 849, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 169 => - array ( - 'id' => 670, - 'form_id' => 850, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 170 => - array ( - 'id' => 671, - 'form_id' => 851, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 171 => - array ( - 'id' => 672, - 'form_id' => 854, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 172 => - array ( - 'id' => 673, - 'form_id' => 855, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 173 => - array ( - 'id' => 674, - 'form_id' => 856, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 174 => - array ( - 'id' => 675, - 'form_id' => 857, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 175 => - array ( - 'id' => 676, - 'form_id' => 858, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 176 => - array ( - 'id' => 677, - 'form_id' => 860, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 177 => - array ( - 'id' => 678, - 'form_id' => 862, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 178 => - array ( - 'id' => 679, - 'form_id' => 862, - 'business_area_id' => 35, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 179 => - array ( - 'id' => 680, - 'form_id' => 863, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 180 => - array ( - 'id' => 681, - 'form_id' => 865, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 181 => - array ( - 'id' => 682, - 'form_id' => 866, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 182 => - array ( - 'id' => 683, - 'form_id' => 867, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 183 => - array ( - 'id' => 684, - 'form_id' => 868, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 184 => - array ( - 'id' => 685, - 'form_id' => 869, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 185 => - array ( - 'id' => 686, - 'form_id' => 870, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 186 => - array ( - 'id' => 687, - 'form_id' => 872, - 'business_area_id' => 50, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 187 => - array ( - 'id' => 688, - 'form_id' => 873, - 'business_area_id' => 11, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 188 => - array ( - 'id' => 689, - 'form_id' => 873, - 'business_area_id' => 16, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 189 => - array ( - 'id' => 690, - 'form_id' => 873, - 'business_area_id' => 48, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 190 => - array ( - 'id' => 691, - 'form_id' => 873, - 'business_area_id' => 12, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 191 => - array ( - 'id' => 692, - 'form_id' => 874, - 'business_area_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 192 => - array ( - 'id' => 693, - 'form_id' => 876, - 'business_area_id' => 51, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 193 => - array ( - 'id' => 694, - 'form_id' => 877, - 'business_area_id' => 52, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 194 => - array ( - 'id' => 695, - 'form_id' => 878, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 195 => - array ( - 'id' => 696, - 'form_id' => 879, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 196 => - array ( - 'id' => 697, - 'form_id' => 880, - 'business_area_id' => 53, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 197 => - array ( - 'id' => 698, - 'form_id' => 881, - 'business_area_id' => 53, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 198 => - array ( - 'id' => 699, - 'form_id' => 882, - 'business_area_id' => 53, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 199 => - array ( - 'id' => 700, - 'form_id' => 883, - 'business_area_id' => 53, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 200 => - array ( - 'id' => 701, - 'form_id' => 884, - 'business_area_id' => 53, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 201 => - array ( - 'id' => 702, - 'form_id' => 885, - 'business_area_id' => 53, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 202 => - array ( - 'id' => 703, - 'form_id' => 886, - 'business_area_id' => 53, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 203 => - array ( - 'id' => 704, - 'form_id' => 887, - 'business_area_id' => 53, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 204 => - array ( - 'id' => 705, - 'form_id' => 888, - 'business_area_id' => 53, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 205 => - array ( - 'id' => 706, - 'form_id' => 889, - 'business_area_id' => 54, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 206 => - array ( - 'id' => 707, - 'form_id' => 890, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 207 => - array ( - 'id' => 708, - 'form_id' => 890, - 'business_area_id' => 55, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 208 => - array ( - 'id' => 709, - 'form_id' => 891, - 'business_area_id' => 55, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 209 => - array ( - 'id' => 710, - 'form_id' => 891, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 210 => - array ( - 'id' => 711, - 'form_id' => 892, - 'business_area_id' => 55, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 211 => - array ( - 'id' => 712, - 'form_id' => 892, - 'business_area_id' => 45, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 212 => - array ( - 'id' => 713, - 'form_id' => 893, - 'business_area_id' => 55, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 213 => - array ( - 'id' => 714, - 'form_id' => 893, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 214 => - array ( - 'id' => 715, - 'form_id' => 894, - 'business_area_id' => 55, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 215 => - array ( - 'id' => 716, - 'form_id' => 894, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 216 => - array ( - 'id' => 717, - 'form_id' => 895, - 'business_area_id' => 55, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 217 => - array ( - 'id' => 718, - 'form_id' => 896, - 'business_area_id' => 55, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 218 => - array ( - 'id' => 719, - 'form_id' => 897, - 'business_area_id' => 55, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 219 => - array ( - 'id' => 720, - 'form_id' => 898, - 'business_area_id' => 55, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 220 => - array ( - 'id' => 721, - 'form_id' => 899, - 'business_area_id' => 56, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 221 => - array ( - 'id' => 722, - 'form_id' => 900, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 222 => - array ( - 'id' => 723, - 'form_id' => 901, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 223 => - array ( - 'id' => 724, - 'form_id' => 902, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 224 => - array ( - 'id' => 725, - 'form_id' => 903, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 225 => - array ( - 'id' => 726, - 'form_id' => 904, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 226 => - array ( - 'id' => 727, - 'form_id' => 905, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 227 => - array ( - 'id' => 728, - 'form_id' => 906, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 228 => - array ( - 'id' => 729, - 'form_id' => 907, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 229 => - array ( - 'id' => 730, - 'form_id' => 908, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 230 => - array ( - 'id' => 731, - 'form_id' => 909, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 231 => - array ( - 'id' => 732, - 'form_id' => 910, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 232 => - array ( - 'id' => 733, - 'form_id' => 911, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 233 => - array ( - 'id' => 734, - 'form_id' => 912, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 234 => - array ( - 'id' => 735, - 'form_id' => 913, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 235 => - array ( - 'id' => 736, - 'form_id' => 917, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 236 => - array ( - 'id' => 737, - 'form_id' => 918, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 237 => - array ( - 'id' => 738, - 'form_id' => 919, - 'business_area_id' => 8, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 238 => - array ( - 'id' => 739, - 'form_id' => 921, - 'business_area_id' => 53, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 239 => - array ( - 'id' => 740, - 'form_id' => 922, - 'business_area_id' => 53, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 240 => - array ( - 'id' => 741, - 'form_id' => 923, - 'business_area_id' => 53, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 241 => - array ( - 'id' => 742, - 'form_id' => 924, - 'business_area_id' => 53, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 242 => - array ( - 'id' => 743, - 'form_id' => 925, - 'business_area_id' => 53, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 243 => - array ( - 'id' => 744, - 'form_id' => 926, - 'business_area_id' => 53, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 244 => - array ( - 'id' => 745, - 'form_id' => 927, - 'business_area_id' => 57, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 245 => - array ( - 'id' => 746, - 'form_id' => 928, - 'business_area_id' => 35, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 246 => - array ( - 'id' => 747, - 'form_id' => 930, - 'business_area_id' => 44, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 247 => - array ( - 'id' => 748, - 'form_id' => 931, - 'business_area_id' => 8, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 248 => - array ( - 'id' => 749, - 'form_id' => 932, - 'business_area_id' => 42, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 249 => - array ( - 'id' => 750, - 'form_id' => 932, - 'business_area_id' => 58, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 250 => - array ( - 'id' => 751, - 'form_id' => 933, - 'business_area_id' => 46, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 251 => - array ( - 'id' => 752, - 'form_id' => 933, - 'business_area_id' => 9, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 252 => - array ( - 'id' => 753, - 'form_id' => 933, - 'business_area_id' => 14, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 253 => - array ( - 'id' => 754, - 'form_id' => 934, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 254 => - array ( - 'id' => 755, - 'form_id' => 934, - 'business_area_id' => 9, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 255 => - array ( - 'id' => 756, - 'form_id' => 935, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 256 => - array ( - 'id' => 757, - 'form_id' => 935, - 'business_area_id' => 9, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 257 => - array ( - 'id' => 758, - 'form_id' => 936, - 'business_area_id' => 8, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 258 => - array ( - 'id' => 759, - 'form_id' => 937, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 259 => - array ( - 'id' => 760, - 'form_id' => 937, - 'business_area_id' => 29, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 260 => - array ( - 'id' => 761, - 'form_id' => 938, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 261 => - array ( - 'id' => 762, - 'form_id' => 938, - 'business_area_id' => 29, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 262 => - array ( - 'id' => 763, - 'form_id' => 939, - 'business_area_id' => 9, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 263 => - array ( - 'id' => 764, - 'form_id' => 940, - 'business_area_id' => 59, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 264 => - array ( - 'id' => 765, - 'form_id' => 940, - 'business_area_id' => 22, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 265 => - array ( - 'id' => 766, - 'form_id' => 941, - 'business_area_id' => 8, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 266 => - array ( - 'id' => 767, - 'form_id' => 942, - 'business_area_id' => 8, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 267 => - array ( - 'id' => 768, - 'form_id' => 943, - 'business_area_id' => 22, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 268 => - array ( - 'id' => 769, - 'form_id' => 944, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 269 => - array ( - 'id' => 770, - 'form_id' => 959, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 270 => - array ( - 'id' => 771, - 'form_id' => 960, - 'business_area_id' => 60, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 271 => - array ( - 'id' => 772, - 'form_id' => 961, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 272 => - array ( - 'id' => 773, - 'form_id' => 961, - 'business_area_id' => 61, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 273 => - array ( - 'id' => 774, - 'form_id' => 962, - 'business_area_id' => 10, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 274 => - array ( - 'id' => 775, - 'form_id' => 962, - 'business_area_id' => 14, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 275 => - array ( - 'id' => 776, - 'form_id' => 963, - 'business_area_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 276 => - array ( - 'id' => 777, - 'form_id' => 964, - 'business_area_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 277 => - array ( - 'id' => 778, - 'form_id' => 965, - 'business_area_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 278 => - array ( - 'id' => 779, - 'form_id' => 966, - 'business_area_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 279 => - array ( - 'id' => 780, - 'form_id' => 966, - 'business_area_id' => 12, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 280 => - array ( - 'id' => 781, - 'form_id' => 966, - 'business_area_id' => 46, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 281 => - array ( - 'id' => 782, - 'form_id' => 967, - 'business_area_id' => 46, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 282 => - array ( - 'id' => 783, - 'form_id' => 967, - 'business_area_id' => 48, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 283 => - array ( - 'id' => 784, - 'form_id' => 968, - 'business_area_id' => 8, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 284 => - array ( - 'id' => 785, - 'form_id' => 968, - 'business_area_id' => 14, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 285 => - array ( - 'id' => 786, - 'form_id' => 969, - 'business_area_id' => 29, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 286 => - array ( - 'id' => 787, - 'form_id' => 969, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 287 => - array ( - 'id' => 788, - 'form_id' => 970, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 288 => - array ( - 'id' => 789, - 'form_id' => 970, - 'business_area_id' => 29, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 289 => - array ( - 'id' => 790, - 'form_id' => 971, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 290 => - array ( - 'id' => 791, - 'form_id' => 972, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 291 => - array ( - 'id' => 792, - 'form_id' => 973, - 'business_area_id' => 53, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 292 => - array ( - 'id' => 793, - 'form_id' => 974, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 293 => - array ( - 'id' => 794, - 'form_id' => 975, - 'business_area_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 294 => - array ( - 'id' => 795, - 'form_id' => 976, - 'business_area_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 295 => - array ( - 'id' => 796, - 'form_id' => 976, - 'business_area_id' => 11, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 296 => - array ( - 'id' => 797, - 'form_id' => 976, - 'business_area_id' => 12, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 297 => - array ( - 'id' => 798, - 'form_id' => 977, - 'business_area_id' => 48, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 298 => - array ( - 'id' => 799, - 'form_id' => 977, - 'business_area_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 299 => - array ( - 'id' => 800, - 'form_id' => 978, - 'business_area_id' => 9, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 300 => - array ( - 'id' => 801, - 'form_id' => 978, - 'business_area_id' => 10, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 301 => - array ( - 'id' => 802, - 'form_id' => 979, - 'business_area_id' => 10, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 302 => - array ( - 'id' => 803, - 'form_id' => 979, - 'business_area_id' => 9, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 303 => - array ( - 'id' => 804, - 'form_id' => 980, - 'business_area_id' => 9, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 304 => - array ( - 'id' => 805, - 'form_id' => 980, - 'business_area_id' => 14, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 305 => - array ( - 'id' => 806, - 'form_id' => 981, - 'business_area_id' => 9, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 306 => - array ( - 'id' => 807, - 'form_id' => 981, - 'business_area_id' => 10, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 307 => - array ( - 'id' => 808, - 'form_id' => 982, - 'business_area_id' => 9, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 308 => - array ( - 'id' => 809, - 'form_id' => 982, - 'business_area_id' => 10, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 309 => - array ( - 'id' => 810, - 'form_id' => 983, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 310 => - array ( - 'id' => 811, - 'form_id' => 983, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 311 => - array ( - 'id' => 812, - 'form_id' => 984, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 312 => - array ( - 'id' => 813, - 'form_id' => 984, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 313 => - array ( - 'id' => 814, - 'form_id' => 985, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 314 => - array ( - 'id' => 815, - 'form_id' => 986, - 'business_area_id' => 43, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 315 => - array ( - 'id' => 816, - 'form_id' => 987, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 316 => - array ( - 'id' => 817, - 'form_id' => 987, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 317 => - array ( - 'id' => 818, - 'form_id' => 988, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 318 => - array ( - 'id' => 819, - 'form_id' => 989, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 319 => - array ( - 'id' => 820, - 'form_id' => 990, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 320 => - array ( - 'id' => 821, - 'form_id' => 991, - 'business_area_id' => 9, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 321 => - array ( - 'id' => 822, - 'form_id' => 991, - 'business_area_id' => 10, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 322 => - array ( - 'id' => 823, - 'form_id' => 991, - 'business_area_id' => 8, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 323 => - array ( - 'id' => 824, - 'form_id' => 992, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 324 => - array ( - 'id' => 825, - 'form_id' => 992, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 325 => - array ( - 'id' => 826, - 'form_id' => 993, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 326 => - array ( - 'id' => 827, - 'form_id' => 993, - 'business_area_id' => 44, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 327 => - array ( - 'id' => 828, - 'form_id' => 994, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 328 => - array ( - 'id' => 829, - 'form_id' => 995, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 329 => - array ( - 'id' => 830, - 'form_id' => 995, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 330 => - array ( - 'id' => 831, - 'form_id' => 996, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 331 => - array ( - 'id' => 832, - 'form_id' => 996, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 332 => - array ( - 'id' => 833, - 'form_id' => 997, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 333 => - array ( - 'id' => 834, - 'form_id' => 997, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 334 => - array ( - 'id' => 835, - 'form_id' => 998, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 335 => - array ( - 'id' => 836, - 'form_id' => 998, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 336 => - array ( - 'id' => 837, - 'form_id' => 999, - 'business_area_id' => 62, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 337 => - array ( - 'id' => 838, - 'form_id' => 999, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 338 => - array ( - 'id' => 839, - 'form_id' => 1000, - 'business_area_id' => 8, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 339 => - array ( - 'id' => 840, - 'form_id' => 1001, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 340 => - array ( - 'id' => 841, - 'form_id' => 1001, - 'business_area_id' => 14, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 341 => - array ( - 'id' => 842, - 'form_id' => 1002, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 342 => - array ( - 'id' => 843, - 'form_id' => 1002, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 343 => - array ( - 'id' => 844, - 'form_id' => 1003, - 'business_area_id' => 9, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 344 => - array ( - 'id' => 845, - 'form_id' => 1003, - 'business_area_id' => 10, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 345 => - array ( - 'id' => 846, - 'form_id' => 1004, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 346 => - array ( - 'id' => 847, - 'form_id' => 1004, - 'business_area_id' => 9, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 347 => - array ( - 'id' => 848, - 'form_id' => 1005, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 348 => - array ( - 'id' => 849, - 'form_id' => 1005, - 'business_area_id' => 9, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 349 => - array ( - 'id' => 850, - 'form_id' => 1005, - 'business_area_id' => 10, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 350 => - array ( - 'id' => 851, - 'form_id' => 1006, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 351 => - array ( - 'id' => 852, - 'form_id' => 1006, - 'business_area_id' => 9, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 352 => - array ( - 'id' => 853, - 'form_id' => 1007, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 353 => - array ( - 'id' => 854, - 'form_id' => 1007, - 'business_area_id' => 9, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 354 => - array ( - 'id' => 855, - 'form_id' => 1007, - 'business_area_id' => 10, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 355 => - array ( - 'id' => 856, - 'form_id' => 1008, - 'business_area_id' => 8, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 356 => - array ( - 'id' => 857, - 'form_id' => 1009, - 'business_area_id' => 8, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 357 => - array ( - 'id' => 858, - 'form_id' => 1010, - 'business_area_id' => 8, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 358 => - array ( - 'id' => 859, - 'form_id' => 1011, - 'business_area_id' => 8, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 359 => - array ( - 'id' => 860, - 'form_id' => 1012, - 'business_area_id' => 28, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 360 => - array ( - 'id' => 861, - 'form_id' => 1013, - 'business_area_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 361 => - array ( - 'id' => 862, - 'form_id' => 1015, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 362 => - array ( - 'id' => 863, - 'form_id' => 1057, - 'business_area_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 363 => - array ( - 'id' => 864, - 'form_id' => 1058, - 'business_area_id' => 29, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 364 => - array ( - 'id' => 865, - 'form_id' => 1061, - 'business_area_id' => 17, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 365 => - array ( - 'id' => 866, - 'form_id' => 1075, - 'business_area_id' => 17, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 366 => - array ( - 'id' => 867, - 'form_id' => 1080, - 'business_area_id' => 17, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 367 => - array ( - 'id' => 868, - 'form_id' => 1081, - 'business_area_id' => 17, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 368 => - array ( - 'id' => 869, - 'form_id' => 1082, - 'business_area_id' => 17, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 369 => - array ( - 'id' => 870, - 'form_id' => 1093, - 'business_area_id' => 17, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 370 => - array ( - 'id' => 871, - 'form_id' => 1094, - 'business_area_id' => 17, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 371 => - array ( - 'id' => 872, - 'form_id' => 1096, - 'business_area_id' => 18, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 372 => - array ( - 'id' => 873, - 'form_id' => 1124, - 'business_area_id' => 63, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 373 => - array ( - 'id' => 874, - 'form_id' => 1134, - 'business_area_id' => 17, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 374 => - array ( - 'id' => 875, - 'form_id' => 1139, - 'business_area_id' => 18, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 375 => - array ( - 'id' => 876, - 'form_id' => 1140, - 'business_area_id' => 18, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 376 => - array ( - 'id' => 877, - 'form_id' => 1155, - 'business_area_id' => 64, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 377 => - array ( - 'id' => 878, - 'form_id' => 1163, - 'business_area_id' => 65, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 378 => - array ( - 'id' => 879, - 'form_id' => 1166, - 'business_area_id' => 66, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 379 => - array ( - 'id' => 880, - 'form_id' => 1171, - 'business_area_id' => 64, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 380 => - array ( - 'id' => 881, - 'form_id' => 1208, - 'business_area_id' => 17, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 381 => - array ( - 'id' => 882, - 'form_id' => 1216, - 'business_area_id' => 17, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 382 => - array ( - 'id' => 883, - 'form_id' => 1289, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 383 => - array ( - 'id' => 884, - 'form_id' => 1291, - 'business_area_id' => 17, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 384 => - array ( - 'id' => 885, - 'form_id' => 1373, - 'business_area_id' => 67, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 385 => - array ( - 'id' => 886, - 'form_id' => 1410, - 'business_area_id' => 17, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 386 => - array ( - 'id' => 887, - 'form_id' => 1411, - 'business_area_id' => 17, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 387 => - array ( - 'id' => 888, - 'form_id' => 1423, - 'business_area_id' => 17, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 388 => - array ( - 'id' => 889, - 'form_id' => 1445, - 'business_area_id' => 17, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 389 => - array ( - 'id' => 890, - 'form_id' => 1459, - 'business_area_id' => 64, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 390 => - array ( - 'id' => 891, - 'form_id' => 1534, - 'business_area_id' => 68, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 391 => - array ( - 'id' => 892, - 'form_id' => 1575, - 'business_area_id' => 68, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 392 => - array ( - 'id' => 893, - 'form_id' => 1583, - 'business_area_id' => 69, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 393 => - array ( - 'id' => 894, - 'form_id' => 1605, - 'business_area_id' => 17, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 394 => - array ( - 'id' => 895, - 'form_id' => 1613, - 'business_area_id' => 70, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 395 => - array ( - 'id' => 896, - 'form_id' => 1631, - 'business_area_id' => 21, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 396 => - array ( - 'id' => 897, - 'form_id' => 1637, - 'business_area_id' => 17, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 397 => - array ( - 'id' => 898, - 'form_id' => 1653, - 'business_area_id' => 71, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 398 => - array ( - 'id' => 899, - 'form_id' => 1688, - 'business_area_id' => 18, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 399 => - array ( - 'id' => 900, - 'form_id' => 1690, - 'business_area_id' => 64, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 400 => - array ( - 'id' => 901, - 'form_id' => 1699, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 401 => - array ( - 'id' => 902, - 'form_id' => 1700, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 402 => - array ( - 'id' => 903, - 'form_id' => 1701, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 403 => - array ( - 'id' => 904, - 'form_id' => 1702, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 404 => - array ( - 'id' => 905, - 'form_id' => 1703, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 405 => - array ( - 'id' => 906, - 'form_id' => 1704, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 406 => - array ( - 'id' => 907, - 'form_id' => 1705, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 407 => - array ( - 'id' => 908, - 'form_id' => 1706, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 408 => - array ( - 'id' => 909, - 'form_id' => 1707, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 409 => - array ( - 'id' => 910, - 'form_id' => 1708, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 410 => - array ( - 'id' => 911, - 'form_id' => 1709, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 411 => - array ( - 'id' => 912, - 'form_id' => 1710, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 412 => - array ( - 'id' => 913, - 'form_id' => 1711, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 413 => - array ( - 'id' => 914, - 'form_id' => 1712, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 414 => - array ( - 'id' => 915, - 'form_id' => 1713, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 415 => - array ( - 'id' => 916, - 'form_id' => 1714, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 416 => - array ( - 'id' => 917, - 'form_id' => 1715, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 417 => - array ( - 'id' => 918, - 'form_id' => 1716, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 418 => - array ( - 'id' => 919, - 'form_id' => 1717, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 419 => - array ( - 'id' => 920, - 'form_id' => 1718, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 420 => - array ( - 'id' => 921, - 'form_id' => 1719, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 421 => - array ( - 'id' => 922, - 'form_id' => 1720, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 422 => - array ( - 'id' => 923, - 'form_id' => 1722, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 423 => - array ( - 'id' => 924, - 'form_id' => 1723, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 424 => - array ( - 'id' => 925, - 'form_id' => 1728, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 425 => - array ( - 'id' => 926, - 'form_id' => 1729, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 426 => - array ( - 'id' => 927, - 'form_id' => 1730, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 427 => - array ( - 'id' => 928, - 'form_id' => 1731, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 428 => - array ( - 'id' => 929, - 'form_id' => 1732, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 429 => - array ( - 'id' => 930, - 'form_id' => 1733, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 430 => - array ( - 'id' => 931, - 'form_id' => 1734, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 431 => - array ( - 'id' => 932, - 'form_id' => 1735, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 432 => - array ( - 'id' => 933, - 'form_id' => 1736, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 433 => - array ( - 'id' => 934, - 'form_id' => 1737, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 434 => - array ( - 'id' => 935, - 'form_id' => 1738, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 435 => - array ( - 'id' => 936, - 'form_id' => 1739, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 436 => - array ( - 'id' => 937, - 'form_id' => 1740, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 437 => - array ( - 'id' => 938, - 'form_id' => 1741, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 438 => - array ( - 'id' => 939, - 'form_id' => 1742, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 439 => - array ( - 'id' => 940, - 'form_id' => 1743, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 440 => - array ( - 'id' => 941, - 'form_id' => 1744, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 441 => - array ( - 'id' => 942, - 'form_id' => 1745, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 442 => - array ( - 'id' => 943, - 'form_id' => 1746, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 443 => - array ( - 'id' => 944, - 'form_id' => 1747, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 444 => - array ( - 'id' => 945, - 'form_id' => 1748, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 445 => - array ( - 'id' => 946, - 'form_id' => 1749, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 446 => - array ( - 'id' => 947, - 'form_id' => 1750, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 447 => - array ( - 'id' => 948, - 'form_id' => 1751, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 448 => - array ( - 'id' => 949, - 'form_id' => 1752, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 449 => - array ( - 'id' => 950, - 'form_id' => 1753, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 450 => - array ( - 'id' => 951, - 'form_id' => 1754, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 451 => - array ( - 'id' => 952, - 'form_id' => 1755, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 452 => - array ( - 'id' => 953, - 'form_id' => 1756, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 453 => - array ( - 'id' => 954, - 'form_id' => 1757, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 454 => - array ( - 'id' => 955, - 'form_id' => 1758, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 455 => - array ( - 'id' => 956, - 'form_id' => 1759, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 456 => - array ( - 'id' => 957, - 'form_id' => 1760, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 457 => - array ( - 'id' => 958, - 'form_id' => 1761, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 458 => - array ( - 'id' => 959, - 'form_id' => 1762, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 459 => - array ( - 'id' => 960, - 'form_id' => 1763, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 460 => - array ( - 'id' => 961, - 'form_id' => 1775, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 461 => - array ( - 'id' => 962, - 'form_id' => 1776, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 462 => - array ( - 'id' => 963, - 'form_id' => 1784, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 463 => - array ( - 'id' => 964, - 'form_id' => 1805, - 'business_area_id' => 17, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 464 => - array ( - 'id' => 965, - 'form_id' => 1815, - 'business_area_id' => 56, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 465 => - array ( - 'id' => 966, - 'form_id' => 1842, - 'business_area_id' => 65, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 466 => - array ( - 'id' => 967, - 'form_id' => 1852, - 'business_area_id' => 56, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 467 => - array ( - 'id' => 968, - 'form_id' => 1853, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 468 => - array ( - 'id' => 969, - 'form_id' => 1854, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 469 => - array ( - 'id' => 970, - 'form_id' => 1855, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 470 => - array ( - 'id' => 971, - 'form_id' => 1856, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 471 => - array ( - 'id' => 972, - 'form_id' => 1857, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 472 => - array ( - 'id' => 973, - 'form_id' => 1858, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 473 => - array ( - 'id' => 974, - 'form_id' => 1859, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 474 => - array ( - 'id' => 975, - 'form_id' => 1860, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 475 => - array ( - 'id' => 976, - 'form_id' => 1861, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 476 => - array ( - 'id' => 977, - 'form_id' => 1862, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 477 => - array ( - 'id' => 978, - 'form_id' => 1863, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 478 => - array ( - 'id' => 979, - 'form_id' => 1864, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 479 => - array ( - 'id' => 980, - 'form_id' => 1865, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 480 => - array ( - 'id' => 981, - 'form_id' => 1866, - 'business_area_id' => 66, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 481 => - array ( - 'id' => 982, - 'form_id' => 1871, - 'business_area_id' => 66, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 482 => - array ( - 'id' => 983, - 'form_id' => 1872, - 'business_area_id' => 66, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 483 => - array ( - 'id' => 984, - 'form_id' => 1873, - 'business_area_id' => 17, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 484 => - array ( - 'id' => 985, - 'form_id' => 1879, - 'business_area_id' => 17, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 485 => - array ( - 'id' => 986, - 'form_id' => 1880, - 'business_area_id' => 17, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 486 => - array ( - 'id' => 987, - 'form_id' => 1881, - 'business_area_id' => 17, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 487 => - array ( - 'id' => 988, - 'form_id' => 1882, - 'business_area_id' => 17, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 488 => - array ( - 'id' => 989, - 'form_id' => 1898, - 'business_area_id' => 69, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 489 => - array ( - 'id' => 990, - 'form_id' => 1904, - 'business_area_id' => 56, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 490 => - array ( - 'id' => 991, - 'form_id' => 1905, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 491 => - array ( - 'id' => 992, - 'form_id' => 1906, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 492 => - array ( - 'id' => 993, - 'form_id' => 1910, - 'business_area_id' => 18, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 493 => - array ( - 'id' => 994, - 'form_id' => 1920, - 'business_area_id' => 56, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 494 => - array ( - 'id' => 995, - 'form_id' => 1921, - 'business_area_id' => 18, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 495 => - array ( - 'id' => 996, - 'form_id' => 1923, - 'business_area_id' => 71, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 496 => - array ( - 'id' => 997, - 'form_id' => 1937, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 497 => - array ( - 'id' => 998, - 'form_id' => 1938, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 498 => - array ( - 'id' => 999, - 'form_id' => 1939, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 499 => - array ( - 'id' => 1000, - 'form_id' => 1940, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - )); - \DB::table('form_business_area')->insert(array ( - 0 => - array ( - 'id' => 1001, - 'form_id' => 1941, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 1 => - array ( - 'id' => 1002, - 'form_id' => 1942, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 2 => - array ( - 'id' => 1003, - 'form_id' => 1943, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 3 => - array ( - 'id' => 1004, - 'form_id' => 1944, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 4 => - array ( - 'id' => 1005, - 'form_id' => 1945, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 5 => - array ( - 'id' => 1006, - 'form_id' => 1946, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 6 => - array ( - 'id' => 1007, - 'form_id' => 1947, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 7 => - array ( - 'id' => 1008, - 'form_id' => 1948, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 8 => - array ( - 'id' => 1009, - 'form_id' => 1949, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 9 => - array ( - 'id' => 1010, - 'form_id' => 1950, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 10 => - array ( - 'id' => 1011, - 'form_id' => 1951, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 11 => - array ( - 'id' => 1012, - 'form_id' => 1952, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 12 => - array ( - 'id' => 1013, - 'form_id' => 1953, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 13 => - array ( - 'id' => 1014, - 'form_id' => 1954, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 14 => - array ( - 'id' => 1015, - 'form_id' => 1955, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 15 => - array ( - 'id' => 1016, - 'form_id' => 1956, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 16 => - array ( - 'id' => 1017, - 'form_id' => 1957, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 17 => - array ( - 'id' => 1018, - 'form_id' => 1958, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 18 => - array ( - 'id' => 1019, - 'form_id' => 1959, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 19 => - array ( - 'id' => 1020, - 'form_id' => 1960, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 20 => - array ( - 'id' => 1021, - 'form_id' => 1961, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 21 => - array ( - 'id' => 1022, - 'form_id' => 1962, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 22 => - array ( - 'id' => 1023, - 'form_id' => 1963, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 23 => - array ( - 'id' => 1024, - 'form_id' => 1964, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 24 => - array ( - 'id' => 1025, - 'form_id' => 1965, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 25 => - array ( - 'id' => 1026, - 'form_id' => 1966, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 26 => - array ( - 'id' => 1027, - 'form_id' => 1967, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 27 => - array ( - 'id' => 1028, - 'form_id' => 1968, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 28 => - array ( - 'id' => 1029, - 'form_id' => 1969, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 29 => - array ( - 'id' => 1030, - 'form_id' => 1973, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 30 => - array ( - 'id' => 1031, - 'form_id' => 1976, - 'business_area_id' => 18, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 31 => - array ( - 'id' => 1032, - 'form_id' => 1984, - 'business_area_id' => 18, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 32 => - array ( - 'id' => 1033, - 'form_id' => 1985, - 'business_area_id' => 71, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 33 => - array ( - 'id' => 1034, - 'form_id' => 1999, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 34 => - array ( - 'id' => 1035, - 'form_id' => 2000, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 35 => - array ( - 'id' => 1036, - 'form_id' => 2001, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 36 => - array ( - 'id' => 1037, - 'form_id' => 2002, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 37 => - array ( - 'id' => 1038, - 'form_id' => 2003, - 'business_area_id' => 19, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 38 => - array ( - 'id' => 1039, - 'form_id' => 2004, - 'business_area_id' => 17, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 39 => - array ( - 'id' => 1040, - 'form_id' => 2005, - 'business_area_id' => 64, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 40 => - array ( - 'id' => 1041, - 'form_id' => 2006, - 'business_area_id' => 72, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 41 => - array ( - 'id' => 1042, - 'form_id' => 2014, - 'business_area_id' => 73, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 42 => - array ( - 'id' => 1043, - 'form_id' => 2015, - 'business_area_id' => 74, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 43 => - array ( - 'id' => 1044, - 'form_id' => 2016, - 'business_area_id' => 68, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 44 => - array ( - 'id' => 1045, - 'form_id' => 2017, - 'business_area_id' => 68, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 45 => - array ( - 'id' => 1046, - 'form_id' => 2018, - 'business_area_id' => 68, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 46 => - array ( - 'id' => 1047, - 'form_id' => 2019, - 'business_area_id' => 68, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 47 => - array ( - 'id' => 1048, - 'form_id' => 2020, - 'business_area_id' => 68, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 48 => - array ( - 'id' => 1049, - 'form_id' => 2022, - 'business_area_id' => 64, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 49 => - array ( - 'id' => 1050, - 'form_id' => 2023, - 'business_area_id' => 73, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 50 => - array ( - 'id' => 1051, - 'form_id' => 2024, - 'business_area_id' => 17, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 51 => - array ( - 'id' => 1052, - 'form_id' => 2025, - 'business_area_id' => 75, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 52 => - array ( - 'id' => 1053, - 'form_id' => 2028, - 'business_area_id' => 17, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 53 => - array ( - 'id' => 1054, - 'form_id' => 2029, - 'business_area_id' => 17, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 54 => - array ( - 'id' => 1055, - 'form_id' => 2030, - 'business_area_id' => 17, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 55 => - array ( - 'id' => 1056, - 'form_id' => 2049, - 'business_area_id' => 20, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 56 => - array ( - 'id' => 1057, - 'form_id' => 2050, - 'business_area_id' => 20, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 57 => - array ( - 'id' => 1058, - 'form_id' => 2057, - 'business_area_id' => 64, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 58 => - array ( - 'id' => 1059, - 'form_id' => 2065, - 'business_area_id' => 8, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 59 => - array ( - 'id' => 1060, - 'form_id' => 2066, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 60 => - array ( - 'id' => 1061, - 'form_id' => 2066, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 61 => - array ( - 'id' => 1062, - 'form_id' => 2067, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 62 => - array ( - 'id' => 1063, - 'form_id' => 2067, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 63 => - array ( - 'id' => 1064, - 'form_id' => 2068, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 64 => - array ( - 'id' => 1065, - 'form_id' => 2069, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 65 => - array ( - 'id' => 1066, - 'form_id' => 2028, - 'business_area_id' => 17, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 66 => - array ( - 'id' => 1067, - 'form_id' => 2029, - 'business_area_id' => 17, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 67 => - array ( - 'id' => 1068, - 'form_id' => 2030, - 'business_area_id' => 17, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 68 => - array ( - 'id' => 1069, - 'form_id' => 2049, - 'business_area_id' => 20, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 69 => - array ( - 'id' => 1070, - 'form_id' => 2050, - 'business_area_id' => 20, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 70 => - array ( - 'id' => 1071, - 'form_id' => 2057, - 'business_area_id' => 64, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 71 => - array ( - 'id' => 1072, - 'form_id' => 2065, - 'business_area_id' => 8, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 72 => - array ( - 'id' => 1073, - 'form_id' => 2066, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 73 => - array ( - 'id' => 1074, - 'form_id' => 2066, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 74 => - array ( - 'id' => 1075, - 'form_id' => 2067, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 75 => - array ( - 'id' => 1076, - 'form_id' => 2067, - 'business_area_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 76 => - array ( - 'id' => 1077, - 'form_id' => 2068, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 77 => - array ( - 'id' => 1078, - 'form_id' => 2069, - 'business_area_id' => 27, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - )); - - + + DB::table('form_business_area')->truncate(); + + DB::table('form_business_area')->insert([ + ['form_id' => 2, 'business_area_id' => 1,], + ['form_id' => 3, 'business_area_id' => 1,], + ['form_id' => 7, 'business_area_id' => 2,], + ['form_id' => 7, 'business_area_id' => 3,], + ['form_id' => 8, 'business_area_id' => 2,], + ['form_id' => 8, 'business_area_id' => 4,], + ['form_id' => 9, 'business_area_id' => 4,], + ['form_id' => 9, 'business_area_id' => 2,], + ['form_id' => 10, 'business_area_id' => 3,], + ['form_id' => 11, 'business_area_id' => 3,], + ['form_id' => 12, 'business_area_id' => 3,], + ['form_id' => 13, 'business_area_id' => 3,], + ['form_id' => 15, 'business_area_id' => 5,], + ['form_id' => 15, 'business_area_id' => 6,], + ['form_id' => 16, 'business_area_id' => 7,], + ['form_id' => 16, 'business_area_id' => 8,], + ['form_id' => 16, 'business_area_id' => 2,], + ['form_id' => 19, 'business_area_id' => 9,], + ['form_id' => 20, 'business_area_id' => 9,], + ['form_id' => 21, 'business_area_id' => 9,], + ['form_id' => 22, 'business_area_id' => 9,], + ['form_id' => 23, 'business_area_id' => 9,], + ['form_id' => 24, 'business_area_id' => 9,], + ['form_id' => 25, 'business_area_id' => 9,], + ['form_id' => 26, 'business_area_id' => 9,], + ['form_id' => 26, 'business_area_id' => 10,], + ['form_id' => 27, 'business_area_id' => 11,], + ['form_id' => 27, 'business_area_id' => 2,], + ['form_id' => 27, 'business_area_id' => 12,], + ['form_id' => 28, 'business_area_id' => 2,], + ['form_id' => 28, 'business_area_id' => 11,], + ['form_id' => 28, 'business_area_id' => 12,], + ['form_id' => 29, 'business_area_id' => 2,], + ['form_id' => 29, 'business_area_id' => 11,], + ['form_id' => 29, 'business_area_id' => 12,], + ['form_id' => 30, 'business_area_id' => 11,], + ['form_id' => 31, 'business_area_id' => 11,], + ['form_id' => 32, 'business_area_id' => 3,], + ['form_id' => 33, 'business_area_id' => 3,], + ['form_id' => 34, 'business_area_id' => 3,], + ['form_id' => 35, 'business_area_id' => 7,], + ['form_id' => 35, 'business_area_id' => 13,], + ['form_id' => 36, 'business_area_id' => 2,], + ['form_id' => 37, 'business_area_id' => 2,], + ['form_id' => 38, 'business_area_id' => 6,], + ['form_id' => 39, 'business_area_id' => 6,], + ['form_id' => 39, 'business_area_id' => 3,], + ['form_id' => 39, 'business_area_id' => 14,], + ['form_id' => 41, 'business_area_id' => 6,], + ['form_id' => 42, 'business_area_id' => 3,], + ['form_id' => 43, 'business_area_id' => 3,], + ['form_id' => 44, 'business_area_id' => 3,], + ['form_id' => 44, 'business_area_id' => 9,], + ['form_id' => 44, 'business_area_id' => 2,], + ['form_id' => 45, 'business_area_id' => 3,], + ['form_id' => 45, 'business_area_id' => 9,], + ['form_id' => 46, 'business_area_id' => 3,], + ['form_id' => 46, 'business_area_id' => 2,], + ['form_id' => 47, 'business_area_id' => 3,], + ['form_id' => 48, 'business_area_id' => 9,], + ['form_id' => 49, 'business_area_id' => 7,], + ['form_id' => 50, 'business_area_id' => 7,], + ['form_id' => 51, 'business_area_id' => 7,], + ['form_id' => 52, 'business_area_id' => 3,], + ['form_id' => 53, 'business_area_id' => 3,], + ['form_id' => 54, 'business_area_id' => 3,], + ['form_id' => 55, 'business_area_id' => 3,], + ['form_id' => 56, 'business_area_id' => 3,], + ['form_id' => 57, 'business_area_id' => 3,], + ['form_id' => 58, 'business_area_id' => 3,], + ['form_id' => 59, 'business_area_id' => 3,], + ['form_id' => 59, 'business_area_id' => 15,], + ['form_id' => 60, 'business_area_id' => 3,], + ['form_id' => 61, 'business_area_id' => 2,], + ['form_id' => 61, 'business_area_id' => 6,], + ['form_id' => 64, 'business_area_id' => 11,], + ['form_id' => 65, 'business_area_id' => 11,], + ['form_id' => 66, 'business_area_id' => 11,], + ['form_id' => 67, 'business_area_id' => 11,], + ['form_id' => 68, 'business_area_id' => 11,], + ['form_id' => 69, 'business_area_id' => 11,], + ['form_id' => 70, 'business_area_id' => 11,], + ['form_id' => 71, 'business_area_id' => 11,], + ['form_id' => 72, 'business_area_id' => 11,], + ['form_id' => 73, 'business_area_id' => 11,], + ['form_id' => 74, 'business_area_id' => 11,], + ['form_id' => 76, 'business_area_id' => 11,], + ['form_id' => 77, 'business_area_id' => 11,], + ['form_id' => 78, 'business_area_id' => 11,], + ['form_id' => 79, 'business_area_id' => 11,], + ['form_id' => 80, 'business_area_id' => 11,], + ['form_id' => 84, 'business_area_id' => 11,], + ['form_id' => 85, 'business_area_id' => 11,], + ['form_id' => 86, 'business_area_id' => 7,], + ['form_id' => 87, 'business_area_id' => 7,], + ['form_id' => 88, 'business_area_id' => 7,], + ['form_id' => 89, 'business_area_id' => 7,], + ['form_id' => 90, 'business_area_id' => 7,], + ['form_id' => 91, 'business_area_id' => 7,], + ['form_id' => 92, 'business_area_id' => 7,], + ['form_id' => 93, 'business_area_id' => 7,], + ['form_id' => 94, 'business_area_id' => 7,], + ['form_id' => 95, 'business_area_id' => 7,], + ['form_id' => 96, 'business_area_id' => 7,], + ['form_id' => 99, 'business_area_id' => 7,], + ['form_id' => 100, 'business_area_id' => 7,], + ['form_id' => 104, 'business_area_id' => 7,], + ['form_id' => 105, 'business_area_id' => 7,], + ['form_id' => 106, 'business_area_id' => 7,], + ['form_id' => 107, 'business_area_id' => 3,], + ['form_id' => 108, 'business_area_id' => 3,], + ['form_id' => 109, 'business_area_id' => 3,], + ['form_id' => 110, 'business_area_id' => 3,], + ['form_id' => 111, 'business_area_id' => 3,], + ['form_id' => 114, 'business_area_id' => 16,], + ['form_id' => 116, 'business_area_id' => 16,], + ['form_id' => 119, 'business_area_id' => 16,], + ['form_id' => 120, 'business_area_id' => 16,], + ['form_id' => 126, 'business_area_id' => 16,], + ['form_id' => 127, 'business_area_id' => 16,], + ['form_id' => 129, 'business_area_id' => 16,], + ['form_id' => 130, 'business_area_id' => 16,], + ['form_id' => 131, 'business_area_id' => 16,], + ['form_id' => 132, 'business_area_id' => 16,], + ['form_id' => 133, 'business_area_id' => 16,], + ['form_id' => 136, 'business_area_id' => 16,], + ['form_id' => 139, 'business_area_id' => 16,], + ['form_id' => 140, 'business_area_id' => 16,], + ['form_id' => 142, 'business_area_id' => 16,], + ['form_id' => 147, 'business_area_id' => 16,], + ['form_id' => 149, 'business_area_id' => 16,], + ['form_id' => 157, 'business_area_id' => 17,], + ['form_id' => 157, 'business_area_id' => 18,], + ['form_id' => 158, 'business_area_id' => 17,], + ['form_id' => 158, 'business_area_id' => 18,], + ['form_id' => 159, 'business_area_id' => 17,], + ['form_id' => 159, 'business_area_id' => 18,], + ['form_id' => 160, 'business_area_id' => 17,], + ['form_id' => 161, 'business_area_id' => 17,], + ['form_id' => 162, 'business_area_id' => 17,], + ['form_id' => 178, 'business_area_id' => 17,], + ['form_id' => 197, 'business_area_id' => 17,], + ['form_id' => 207, 'business_area_id' => 17,], + ['form_id' => 208, 'business_area_id' => 17,], + ['form_id' => 219, 'business_area_id' => 17,], + ['form_id' => 220, 'business_area_id' => 17,], + ['form_id' => 221, 'business_area_id' => 17,], + ['form_id' => 228, 'business_area_id' => 17,], + ['form_id' => 231, 'business_area_id' => 17,], + ['form_id' => 263, 'business_area_id' => 14,], + ['form_id' => 272, 'business_area_id' => 19,], + ['form_id' => 273, 'business_area_id' => 19,], + ['form_id' => 274, 'business_area_id' => 19,], + ['form_id' => 275, 'business_area_id' => 19,], + ['form_id' => 276, 'business_area_id' => 19,], + ['form_id' => 277, 'business_area_id' => 19,], + ['form_id' => 278, 'business_area_id' => 19,], + ['form_id' => 279, 'business_area_id' => 19,], + ['form_id' => 280, 'business_area_id' => 19,], + ['form_id' => 281, 'business_area_id' => 19,], + ['form_id' => 282, 'business_area_id' => 19,], + ['form_id' => 283, 'business_area_id' => 19,], + ['form_id' => 284, 'business_area_id' => 19,], + ['form_id' => 285, 'business_area_id' => 19,], + ['form_id' => 286, 'business_area_id' => 19,], + ['form_id' => 287, 'business_area_id' => 19,], + ['form_id' => 288, 'business_area_id' => 19,], + ['form_id' => 289, 'business_area_id' => 19,], + ['form_id' => 291, 'business_area_id' => 19,], + ['form_id' => 292, 'business_area_id' => 19,], + ['form_id' => 293, 'business_area_id' => 19,], + ['form_id' => 294, 'business_area_id' => 19,], + ['form_id' => 295, 'business_area_id' => 19,], + ['form_id' => 296, 'business_area_id' => 19,], + ['form_id' => 297, 'business_area_id' => 19,], + ['form_id' => 298, 'business_area_id' => 19,], + ['form_id' => 299, 'business_area_id' => 19,], + ['form_id' => 300, 'business_area_id' => 19,], + ['form_id' => 301, 'business_area_id' => 19,], + ['form_id' => 302, 'business_area_id' => 19,], + ['form_id' => 303, 'business_area_id' => 19,], + ['form_id' => 304, 'business_area_id' => 19,], + ['form_id' => 305, 'business_area_id' => 19,], + ['form_id' => 306, 'business_area_id' => 19,], + ['form_id' => 307, 'business_area_id' => 19,], + ['form_id' => 308, 'business_area_id' => 19,], + ['form_id' => 309, 'business_area_id' => 19,], + ['form_id' => 310, 'business_area_id' => 19,], + ['form_id' => 311, 'business_area_id' => 19,], + ['form_id' => 312, 'business_area_id' => 19,], + ['form_id' => 313, 'business_area_id' => 19,], + ['form_id' => 314, 'business_area_id' => 19,], + ['form_id' => 315, 'business_area_id' => 19,], + ['form_id' => 316, 'business_area_id' => 19,], + ['form_id' => 317, 'business_area_id' => 19,], + ['form_id' => 318, 'business_area_id' => 19,], + ['form_id' => 319, 'business_area_id' => 19,], + ['form_id' => 320, 'business_area_id' => 19,], + ['form_id' => 321, 'business_area_id' => 19,], + ['form_id' => 327, 'business_area_id' => 17,], + ['form_id' => 331, 'business_area_id' => 20,], + ['form_id' => 339, 'business_area_id' => 19,], + ['form_id' => 358, 'business_area_id' => 19,], + ['form_id' => 359, 'business_area_id' => 19,], + ['form_id' => 360, 'business_area_id' => 19,], + ['form_id' => 361, 'business_area_id' => 19,], + ['form_id' => 362, 'business_area_id' => 19,], + ['form_id' => 363, 'business_area_id' => 19,], + ['form_id' => 364, 'business_area_id' => 19,], + ['form_id' => 365, 'business_area_id' => 19,], + ['form_id' => 366, 'business_area_id' => 19,], + ['form_id' => 367, 'business_area_id' => 19,], + ['form_id' => 368, 'business_area_id' => 19,], + ['form_id' => 369, 'business_area_id' => 19,], + ['form_id' => 370, 'business_area_id' => 19,], + ['form_id' => 371, 'business_area_id' => 19,], + ['form_id' => 372, 'business_area_id' => 19,], + ['form_id' => 373, 'business_area_id' => 19,], + ['form_id' => 374, 'business_area_id' => 19,], + ['form_id' => 375, 'business_area_id' => 19,], + ['form_id' => 376, 'business_area_id' => 19,], + ['form_id' => 377, 'business_area_id' => 19,], + ['form_id' => 378, 'business_area_id' => 19,], + ['form_id' => 379, 'business_area_id' => 19,], + ['form_id' => 380, 'business_area_id' => 20,], + ['form_id' => 381, 'business_area_id' => 17,], + ['form_id' => 382, 'business_area_id' => 19,], + ['form_id' => 383, 'business_area_id' => 19,], + ['form_id' => 384, 'business_area_id' => 19,], + ['form_id' => 385, 'business_area_id' => 19,], + ['form_id' => 386, 'business_area_id' => 17,], + ['form_id' => 387, 'business_area_id' => 21,], + ['form_id' => 388, 'business_area_id' => 19,], + ['form_id' => 392, 'business_area_id' => 1,], + ['form_id' => 393, 'business_area_id' => 1,], + ['form_id' => 394, 'business_area_id' => 1,], + ['form_id' => 395, 'business_area_id' => 1,], + ['form_id' => 396, 'business_area_id' => 1,], + ['form_id' => 397, 'business_area_id' => 1,], + ['form_id' => 398, 'business_area_id' => 1,], + ['form_id' => 399, 'business_area_id' => 1,], + ['form_id' => 400, 'business_area_id' => 1,], + ['form_id' => 402, 'business_area_id' => 22,], + ['form_id' => 403, 'business_area_id' => 23,], + ['form_id' => 404, 'business_area_id' => 24,], + ['form_id' => 405, 'business_area_id' => 22,], + ['form_id' => 407, 'business_area_id' => 22,], + ['form_id' => 408, 'business_area_id' => 22,], + ['form_id' => 410, 'business_area_id' => 25,], + ['form_id' => 411, 'business_area_id' => 25,], + ['form_id' => 412, 'business_area_id' => 26,], + ['form_id' => 414, 'business_area_id' => 14,], + ['form_id' => 415, 'business_area_id' => 27,], + ['form_id' => 416, 'business_area_id' => 27,], + ['form_id' => 417, 'business_area_id' => 27,], + ['form_id' => 418, 'business_area_id' => 27,], + ['form_id' => 422, 'business_area_id' => 28,], + ['form_id' => 423, 'business_area_id' => 28,], + ['form_id' => 424, 'business_area_id' => 28,], + ['form_id' => 426, 'business_area_id' => 24,], + ['form_id' => 427, 'business_area_id' => 22,], + ['form_id' => 428, 'business_area_id' => 6,], + ['form_id' => 430, 'business_area_id' => 29,], + ['form_id' => 431, 'business_area_id' => 28,], + ['form_id' => 432, 'business_area_id' => 29,], + ['form_id' => 433, 'business_area_id' => 29,], + ['form_id' => 434, 'business_area_id' => 29,], + ['form_id' => 435, 'business_area_id' => 29,], + ['form_id' => 436, 'business_area_id' => 29,], + ['form_id' => 437, 'business_area_id' => 29,], + ['form_id' => 438, 'business_area_id' => 28,], + ['form_id' => 438, 'business_area_id' => 29,], + ['form_id' => 439, 'business_area_id' => 28,], + ['form_id' => 439, 'business_area_id' => 29,], + ['form_id' => 440, 'business_area_id' => 28,], + ['form_id' => 440, 'business_area_id' => 29,], + ['form_id' => 441, 'business_area_id' => 28,], + ['form_id' => 441, 'business_area_id' => 29,], + ['form_id' => 442, 'business_area_id' => 28,], + ['form_id' => 442, 'business_area_id' => 29,], + ['form_id' => 444, 'business_area_id' => 28,], + ['form_id' => 445, 'business_area_id' => 28,], + ['form_id' => 445, 'business_area_id' => 29,], + ['form_id' => 446, 'business_area_id' => 28,], + ['form_id' => 447, 'business_area_id' => 28,], + ['form_id' => 447, 'business_area_id' => 29,], + ['form_id' => 449, 'business_area_id' => 28,], + ['form_id' => 449, 'business_area_id' => 29,], + ['form_id' => 450, 'business_area_id' => 28,], + ['form_id' => 450, 'business_area_id' => 29,], + ['form_id' => 451, 'business_area_id' => 28,], + ['form_id' => 451, 'business_area_id' => 29,], + ['form_id' => 455, 'business_area_id' => 28,], + ['form_id' => 456, 'business_area_id' => 28,], + ['form_id' => 456, 'business_area_id' => 29,], + ['form_id' => 457, 'business_area_id' => 28,], + ['form_id' => 457, 'business_area_id' => 29,], + ['form_id' => 458, 'business_area_id' => 28,], + ['form_id' => 458, 'business_area_id' => 29,], + ['form_id' => 459, 'business_area_id' => 28,], + ['form_id' => 459, 'business_area_id' => 29,], + ['form_id' => 460, 'business_area_id' => 28,], + ['form_id' => 460, 'business_area_id' => 29,], + ['form_id' => 461, 'business_area_id' => 28,], + ['form_id' => 461, 'business_area_id' => 29,], + ['form_id' => 462, 'business_area_id' => 28,], + ['form_id' => 463, 'business_area_id' => 28,], + ['form_id' => 463, 'business_area_id' => 29,], + ['form_id' => 464, 'business_area_id' => 28,], + ['form_id' => 464, 'business_area_id' => 29,], + ['form_id' => 465, 'business_area_id' => 29,], + ['form_id' => 466, 'business_area_id' => 28,], + ['form_id' => 467, 'business_area_id' => 28,], + ['form_id' => 468, 'business_area_id' => 28,], + ['form_id' => 469, 'business_area_id' => 28,], + ['form_id' => 470, 'business_area_id' => 28,], + ['form_id' => 471, 'business_area_id' => 28,], + ['form_id' => 472, 'business_area_id' => 28,], + ['form_id' => 473, 'business_area_id' => 28,], + ['form_id' => 474, 'business_area_id' => 28,], + ['form_id' => 475, 'business_area_id' => 28,], + ['form_id' => 476, 'business_area_id' => 28,], + ['form_id' => 477, 'business_area_id' => 28,], + ['form_id' => 478, 'business_area_id' => 28,], + ['form_id' => 480, 'business_area_id' => 28,], + ['form_id' => 481, 'business_area_id' => 28,], + ['form_id' => 482, 'business_area_id' => 28,], + ['form_id' => 483, 'business_area_id' => 28,], + ['form_id' => 484, 'business_area_id' => 28,], + ['form_id' => 485, 'business_area_id' => 28,], + ['form_id' => 488, 'business_area_id' => 28,], + ['form_id' => 489, 'business_area_id' => 28,], + ['form_id' => 490, 'business_area_id' => 28,], + ['form_id' => 491, 'business_area_id' => 28,], + ['form_id' => 492, 'business_area_id' => 30,], + ['form_id' => 493, 'business_area_id' => 29,], + ['form_id' => 493, 'business_area_id' => 28,], + ['form_id' => 494, 'business_area_id' => 29,], + ['form_id' => 494, 'business_area_id' => 28,], + ['form_id' => 495, 'business_area_id' => 29,], + ['form_id' => 496, 'business_area_id' => 29,], + ['form_id' => 497, 'business_area_id' => 28,], + ['form_id' => 498, 'business_area_id' => 28,], + ['form_id' => 498, 'business_area_id' => 29,], + ['form_id' => 499, 'business_area_id' => 28,], + ['form_id' => 499, 'business_area_id' => 29,], + ['form_id' => 500, 'business_area_id' => 28,], + ['form_id' => 500, 'business_area_id' => 29,], + ['form_id' => 501, 'business_area_id' => 28,], + ['form_id' => 501, 'business_area_id' => 14,], + ['form_id' => 502, 'business_area_id' => 29,], + ['form_id' => 503, 'business_area_id' => 29,], + ['form_id' => 504, 'business_area_id' => 29,], + ['form_id' => 505, 'business_area_id' => 29,], + ['form_id' => 506, 'business_area_id' => 29,], + ['form_id' => 507, 'business_area_id' => 29,], + ['form_id' => 508, 'business_area_id' => 29,], + ['form_id' => 509, 'business_area_id' => 29,], + ['form_id' => 510, 'business_area_id' => 29,], + ['form_id' => 511, 'business_area_id' => 29,], + ['form_id' => 512, 'business_area_id' => 29,], + ['form_id' => 513, 'business_area_id' => 29,], + ['form_id' => 514, 'business_area_id' => 29,], + ['form_id' => 515, 'business_area_id' => 28,], + ['form_id' => 516, 'business_area_id' => 28,], + ['form_id' => 518, 'business_area_id' => 3,], + ['form_id' => 519, 'business_area_id' => 27,], + ['form_id' => 520, 'business_area_id' => 27,], + ['form_id' => 521, 'business_area_id' => 27,], + ['form_id' => 522, 'business_area_id' => 27,], + ['form_id' => 523, 'business_area_id' => 27,], + ['form_id' => 524, 'business_area_id' => 27,], + ['form_id' => 528, 'business_area_id' => 31,], + ['form_id' => 529, 'business_area_id' => 22,], + ['form_id' => 529, 'business_area_id' => 14,], + ['form_id' => 530, 'business_area_id' => 32,], + ['form_id' => 531, 'business_area_id' => 33,], + ['form_id' => 535, 'business_area_id' => 24,], + ['form_id' => 537, 'business_area_id' => 33,], + ['form_id' => 537, 'business_area_id' => 22,], + ['form_id' => 538, 'business_area_id' => 34,], + ['form_id' => 540, 'business_area_id' => 33,], + ['form_id' => 541, 'business_area_id' => 33,], + ['form_id' => 542, 'business_area_id' => 33,], + ['form_id' => 543, 'business_area_id' => 35,], + ['form_id' => 545, 'business_area_id' => 27,], + ['form_id' => 546, 'business_area_id' => 4,], + ['form_id' => 550, 'business_area_id' => 6,], + ['form_id' => 551, 'business_area_id' => 6,], + ['form_id' => 552, 'business_area_id' => 6,], + ['form_id' => 553, 'business_area_id' => 6,], + ['form_id' => 554, 'business_area_id' => 6,], + ['form_id' => 555, 'business_area_id' => 3,], + ['form_id' => 557, 'business_area_id' => 6,], + ['form_id' => 560, 'business_area_id' => 3,], + ['form_id' => 561, 'business_area_id' => 6,], + ['form_id' => 565, 'business_area_id' => 6,], + ['form_id' => 567, 'business_area_id' => 3,], + ['form_id' => 568, 'business_area_id' => 6,], + ['form_id' => 569, 'business_area_id' => 22,], + ['form_id' => 570, 'business_area_id' => 36,], + ['form_id' => 572, 'business_area_id' => 36,], + ['form_id' => 572, 'business_area_id' => 22,], + ['form_id' => 573, 'business_area_id' => 4,], + ['form_id' => 575, 'business_area_id' => 24,], + ['form_id' => 577, 'business_area_id' => 7,], + ['form_id' => 579, 'business_area_id' => 8,], + ['form_id' => 580, 'business_area_id' => 8,], + ['form_id' => 581, 'business_area_id' => 8,], + ['form_id' => 582, 'business_area_id' => 8,], + ['form_id' => 583, 'business_area_id' => 8,], + ['form_id' => 584, 'business_area_id' => 8,], + ['form_id' => 585, 'business_area_id' => 8,], + ['form_id' => 586, 'business_area_id' => 8,], + ['form_id' => 587, 'business_area_id' => 8,], + ['form_id' => 588, 'business_area_id' => 2,], + ['form_id' => 589, 'business_area_id' => 9,], + ['form_id' => 590, 'business_area_id' => 9,], + ['form_id' => 590, 'business_area_id' => 37,], + ['form_id' => 591, 'business_area_id' => 9,], + ['form_id' => 591, 'business_area_id' => 37,], + ['form_id' => 594, 'business_area_id' => 9,], + ['form_id' => 596, 'business_area_id' => 3,], + ['form_id' => 596, 'business_area_id' => 14,], + ['form_id' => 598, 'business_area_id' => 9,], + ['form_id' => 606, 'business_area_id' => 11,], + ['form_id' => 608, 'business_area_id' => 2,], + ['form_id' => 608, 'business_area_id' => 12,], + ['form_id' => 609, 'business_area_id' => 2,], + ['form_id' => 609, 'business_area_id' => 12,], + ['form_id' => 610, 'business_area_id' => 11,], + ['form_id' => 610, 'business_area_id' => 2,], + ['form_id' => 610, 'business_area_id' => 12,], + ['form_id' => 613, 'business_area_id' => 2,], + ['form_id' => 613, 'business_area_id' => 12,], + ['form_id' => 614, 'business_area_id' => 2,], + ['form_id' => 614, 'business_area_id' => 12,], + ['form_id' => 615, 'business_area_id' => 2,], + ['form_id' => 615, 'business_area_id' => 12,], + ['form_id' => 616, 'business_area_id' => 2,], + ['form_id' => 616, 'business_area_id' => 12,], + ['form_id' => 617, 'business_area_id' => 2,], + ['form_id' => 617, 'business_area_id' => 12,], + ['form_id' => 618, 'business_area_id' => 2,], + ['form_id' => 618, 'business_area_id' => 12,], + ['form_id' => 619, 'business_area_id' => 2,], + ['form_id' => 619, 'business_area_id' => 12,], + ['form_id' => 621, 'business_area_id' => 11,], + ['form_id' => 622, 'business_area_id' => 2,], + ['form_id' => 622, 'business_area_id' => 11,], + ['form_id' => 622, 'business_area_id' => 12,], + ['form_id' => 623, 'business_area_id' => 11,], + ['form_id' => 624, 'business_area_id' => 11,], + ['form_id' => 625, 'business_area_id' => 11,], + ['form_id' => 626, 'business_area_id' => 11,], + ['form_id' => 627, 'business_area_id' => 11,], + ['form_id' => 628, 'business_area_id' => 11,], + ['form_id' => 629, 'business_area_id' => 2,], + ['form_id' => 629, 'business_area_id' => 12,], + ['form_id' => 630, 'business_area_id' => 2,], + ['form_id' => 630, 'business_area_id' => 12,], + ['form_id' => 631, 'business_area_id' => 38,], + ['form_id' => 632, 'business_area_id' => 27,], + ['form_id' => 633, 'business_area_id' => 27,], + ['form_id' => 634, 'business_area_id' => 27,], + ['form_id' => 635, 'business_area_id' => 27,], + ['form_id' => 636, 'business_area_id' => 27,], + ['form_id' => 637, 'business_area_id' => 27,], + ['form_id' => 638, 'business_area_id' => 27,], + ['form_id' => 640, 'business_area_id' => 3,], + ['form_id' => 640, 'business_area_id' => 39,], + ['form_id' => 640, 'business_area_id' => 27,], + ['form_id' => 641, 'business_area_id' => 27,], + ['form_id' => 642, 'business_area_id' => 27,], + ['form_id' => 643, 'business_area_id' => 27,], + ['form_id' => 644, 'business_area_id' => 27,], + ['form_id' => 645, 'business_area_id' => 27,], + ['form_id' => 647, 'business_area_id' => 27,], + ['form_id' => 648, 'business_area_id' => 27,], + ['form_id' => 650, 'business_area_id' => 27,], + ['form_id' => 650, 'business_area_id' => 6,], + ['form_id' => 650, 'business_area_id' => 28,], + ['form_id' => 651, 'business_area_id' => 27,], + ['form_id' => 652, 'business_area_id' => 27,], + ['form_id' => 653, 'business_area_id' => 3,], + ['form_id' => 653, 'business_area_id' => 39,], + ['form_id' => 653, 'business_area_id' => 27,], + ['form_id' => 655, 'business_area_id' => 40,], + ['form_id' => 658, 'business_area_id' => 40,], + ['form_id' => 659, 'business_area_id' => 40,], + ['form_id' => 664, 'business_area_id' => 41,], + ['form_id' => 665, 'business_area_id' => 41,], + ['form_id' => 666, 'business_area_id' => 41,], + ['form_id' => 667, 'business_area_id' => 41,], + ['form_id' => 668, 'business_area_id' => 41,], + ['form_id' => 669, 'business_area_id' => 41,], + ['form_id' => 670, 'business_area_id' => 7,], + ['form_id' => 671, 'business_area_id' => 41,], + ['form_id' => 672, 'business_area_id' => 35,], + ['form_id' => 673, 'business_area_id' => 41,], + ]); + DB::table('form_business_area')->insert([ + ['form_id' => 674, 'business_area_id' => 35,], + ['form_id' => 675, 'business_area_id' => 35,], + ['form_id' => 677, 'business_area_id' => 7,], + ['form_id' => 678, 'business_area_id' => 7,], + ['form_id' => 679, 'business_area_id' => 7,], + ['form_id' => 680, 'business_area_id' => 42,], + ['form_id' => 681, 'business_area_id' => 35,], + ['form_id' => 683, 'business_area_id' => 35,], + ['form_id' => 684, 'business_area_id' => 35,], + ['form_id' => 685, 'business_area_id' => 35,], + ['form_id' => 686, 'business_area_id' => 35,], + ['form_id' => 687, 'business_area_id' => 35,], + ['form_id' => 688, 'business_area_id' => 35,], + ['form_id' => 689, 'business_area_id' => 35,], + ['form_id' => 691, 'business_area_id' => 43,], + ['form_id' => 692, 'business_area_id' => 43,], + ['form_id' => 693, 'business_area_id' => 43,], + ['form_id' => 694, 'business_area_id' => 43,], + ['form_id' => 695, 'business_area_id' => 43,], + ['form_id' => 696, 'business_area_id' => 43,], + ['form_id' => 697, 'business_area_id' => 43,], + ['form_id' => 698, 'business_area_id' => 43,], + ['form_id' => 699, 'business_area_id' => 43,], + ['form_id' => 700, 'business_area_id' => 43,], + ['form_id' => 701, 'business_area_id' => 43,], + ['form_id' => 702, 'business_area_id' => 43,], + ['form_id' => 703, 'business_area_id' => 43,], + ['form_id' => 704, 'business_area_id' => 10,], + ['form_id' => 705, 'business_area_id' => 10,], + ['form_id' => 706, 'business_area_id' => 3,], + ['form_id' => 706, 'business_area_id' => 39,], + ['form_id' => 707, 'business_area_id' => 3,], + ['form_id' => 708, 'business_area_id' => 27,], + ['form_id' => 709, 'business_area_id' => 3,], + ['form_id' => 709, 'business_area_id' => 39,], + ['form_id' => 709, 'business_area_id' => 27,], + ['form_id' => 710, 'business_area_id' => 3,], + ['form_id' => 710, 'business_area_id' => 39,], + ['form_id' => 710, 'business_area_id' => 27,], + ['form_id' => 711, 'business_area_id' => 44,], + ['form_id' => 712, 'business_area_id' => 3,], + ['form_id' => 712, 'business_area_id' => 39,], + ['form_id' => 713, 'business_area_id' => 3,], + ['form_id' => 713, 'business_area_id' => 39,], + ['form_id' => 714, 'business_area_id' => 45,], + ['form_id' => 715, 'business_area_id' => 7,], + ['form_id' => 717, 'business_area_id' => 7,], + ['form_id' => 718, 'business_area_id' => 7,], + ['form_id' => 720, 'business_area_id' => 7,], + ['form_id' => 721, 'business_area_id' => 7,], + ['form_id' => 723, 'business_area_id' => 7,], + ['form_id' => 724, 'business_area_id' => 7,], + ['form_id' => 725, 'business_area_id' => 7,], + ['form_id' => 726, 'business_area_id' => 7,], + ['form_id' => 727, 'business_area_id' => 7,], + ['form_id' => 728, 'business_area_id' => 7,], + ['form_id' => 729, 'business_area_id' => 7,], + ['form_id' => 730, 'business_area_id' => 7,], + ['form_id' => 731, 'business_area_id' => 7,], + ['form_id' => 733, 'business_area_id' => 27,], + ['form_id' => 733, 'business_area_id' => 6,], + ['form_id' => 734, 'business_area_id' => 6,], + ['form_id' => 734, 'business_area_id' => 3,], + ['form_id' => 735, 'business_area_id' => 46,], + ['form_id' => 736, 'business_area_id' => 46,], + ['form_id' => 737, 'business_area_id' => 46,], + ['form_id' => 738, 'business_area_id' => 46,], + ['form_id' => 739, 'business_area_id' => 46,], + ['form_id' => 740, 'business_area_id' => 46,], + ['form_id' => 741, 'business_area_id' => 46,], + ['form_id' => 743, 'business_area_id' => 6,], + ['form_id' => 744, 'business_area_id' => 6,], + ['form_id' => 745, 'business_area_id' => 26,], + ['form_id' => 746, 'business_area_id' => 47,], + ['form_id' => 747, 'business_area_id' => 3,], + ['form_id' => 748, 'business_area_id' => 38,], + ['form_id' => 749, 'business_area_id' => 6,], + ['form_id' => 752, 'business_area_id' => 7,], + ['form_id' => 754, 'business_area_id' => 22,], + ['form_id' => 755, 'business_area_id' => 3,], + ['form_id' => 757, 'business_area_id' => 2,], + ['form_id' => 757, 'business_area_id' => 40,], + ['form_id' => 758, 'business_area_id' => 48,], + ['form_id' => 759, 'business_area_id' => 2,], + ['form_id' => 759, 'business_area_id' => 16,], + ['form_id' => 759, 'business_area_id' => 48,], + ['form_id' => 761, 'business_area_id' => 48,], + ['form_id' => 762, 'business_area_id' => 48,], + ['form_id' => 762, 'business_area_id' => 16,], + ['form_id' => 763, 'business_area_id' => 48,], + ['form_id' => 764, 'business_area_id' => 48,], + ['form_id' => 765, 'business_area_id' => 48,], + ['form_id' => 766, 'business_area_id' => 48,], + ['form_id' => 768, 'business_area_id' => 48,], + ['form_id' => 768, 'business_area_id' => 49,], + ['form_id' => 769, 'business_area_id' => 48,], + ['form_id' => 770, 'business_area_id' => 48,], + ['form_id' => 771, 'business_area_id' => 6,], + ['form_id' => 772, 'business_area_id' => 6,], + ['form_id' => 773, 'business_area_id' => 6,], + ['form_id' => 774, 'business_area_id' => 48,], + ['form_id' => 775, 'business_area_id' => 3,], + ['form_id' => 776, 'business_area_id' => 3,], + ['form_id' => 777, 'business_area_id' => 3,], + ['form_id' => 778, 'business_area_id' => 3,], + ['form_id' => 779, 'business_area_id' => 6,], + ['form_id' => 780, 'business_area_id' => 27,], + ['form_id' => 781, 'business_area_id' => 27,], + ['form_id' => 782, 'business_area_id' => 27,], + ['form_id' => 783, 'business_area_id' => 6,], + ['form_id' => 787, 'business_area_id' => 27,], + ['form_id' => 788, 'business_area_id' => 27,], + ['form_id' => 789, 'business_area_id' => 27,], + ['form_id' => 790, 'business_area_id' => 3,], + ['form_id' => 791, 'business_area_id' => 3,], + ['form_id' => 792, 'business_area_id' => 3,], + ['form_id' => 793, 'business_area_id' => 2,], + ['form_id' => 795, 'business_area_id' => 3,], + ['form_id' => 796, 'business_area_id' => 33,], + ['form_id' => 796, 'business_area_id' => 14,], + ['form_id' => 797, 'business_area_id' => 33,], + ['form_id' => 797, 'business_area_id' => 14,], + ['form_id' => 798, 'business_area_id' => 33,], + ['form_id' => 798, 'business_area_id' => 14,], + ['form_id' => 799, 'business_area_id' => 22,], + ['form_id' => 800, 'business_area_id' => 33,], + ['form_id' => 801, 'business_area_id' => 33,], + ['form_id' => 802, 'business_area_id' => 33,], + ['form_id' => 803, 'business_area_id' => 22,], + ['form_id' => 806, 'business_area_id' => 4,], + ['form_id' => 807, 'business_area_id' => 2,], + ['form_id' => 808, 'business_area_id' => 7,], + ['form_id' => 809, 'business_area_id' => 6,], + ['form_id' => 813, 'business_area_id' => 2,], + ['form_id' => 814, 'business_area_id' => 6,], + ['form_id' => 815, 'business_area_id' => 6,], + ['form_id' => 816, 'business_area_id' => 6,], + ['form_id' => 817, 'business_area_id' => 3,], + ['form_id' => 817, 'business_area_id' => 9,], + ['form_id' => 817, 'business_area_id' => 2,], + ['form_id' => 822, 'business_area_id' => 4,], + ['form_id' => 823, 'business_area_id' => 27,], + ['form_id' => 824, 'business_area_id' => 27,], + ['form_id' => 825, 'business_area_id' => 27,], + ['form_id' => 826, 'business_area_id' => 27,], + ['form_id' => 830, 'business_area_id' => 27,], + ['form_id' => 831, 'business_area_id' => 27,], + ['form_id' => 832, 'business_area_id' => 27,], + ['form_id' => 833, 'business_area_id' => 27,], + ['form_id' => 835, 'business_area_id' => 3,], + ['form_id' => 835, 'business_area_id' => 39,], + ['form_id' => 835, 'business_area_id' => 27,], + ['form_id' => 836, 'business_area_id' => 3,], + ['form_id' => 836, 'business_area_id' => 39,], + ['form_id' => 836, 'business_area_id' => 27,], + ['form_id' => 837, 'business_area_id' => 3,], + ['form_id' => 837, 'business_area_id' => 39,], + ['form_id' => 837, 'business_area_id' => 27,], + ['form_id' => 838, 'business_area_id' => 39,], + ['form_id' => 839, 'business_area_id' => 26,], + ['form_id' => 841, 'business_area_id' => 3,], + ['form_id' => 842, 'business_area_id' => 27,], + ['form_id' => 843, 'business_area_id' => 27,], + ['form_id' => 844, 'business_area_id' => 27,], + ['form_id' => 845, 'business_area_id' => 27,], + ['form_id' => 846, 'business_area_id' => 27,], + ['form_id' => 847, 'business_area_id' => 27,], + ['form_id' => 848, 'business_area_id' => 27,], + ['form_id' => 849, 'business_area_id' => 27,], + ['form_id' => 850, 'business_area_id' => 27,], + ['form_id' => 851, 'business_area_id' => 27,], + ['form_id' => 854, 'business_area_id' => 6,], + ['form_id' => 855, 'business_area_id' => 7,], + ['form_id' => 856, 'business_area_id' => 7,], + ['form_id' => 857, 'business_area_id' => 7,], + ['form_id' => 858, 'business_area_id' => 7,], + ['form_id' => 860, 'business_area_id' => 7,], + ['form_id' => 862, 'business_area_id' => 7,], + ['form_id' => 862, 'business_area_id' => 35,], + ['form_id' => 863, 'business_area_id' => 7,], + ['form_id' => 865, 'business_area_id' => 7,], + ['form_id' => 866, 'business_area_id' => 7,], + ['form_id' => 867, 'business_area_id' => 7,], + ['form_id' => 868, 'business_area_id' => 7,], + ['form_id' => 869, 'business_area_id' => 7,], + ['form_id' => 870, 'business_area_id' => 7,], + ['form_id' => 872, 'business_area_id' => 50,], + ['form_id' => 873, 'business_area_id' => 11,], + ['form_id' => 873, 'business_area_id' => 16,], + ['form_id' => 873, 'business_area_id' => 48,], + ['form_id' => 873, 'business_area_id' => 12,], + ['form_id' => 874, 'business_area_id' => 7,], + ['form_id' => 876, 'business_area_id' => 51,], + ['form_id' => 877, 'business_area_id' => 52,], + ['form_id' => 878, 'business_area_id' => 3,], + ['form_id' => 879, 'business_area_id' => 3,], + ['form_id' => 880, 'business_area_id' => 53,], + ['form_id' => 881, 'business_area_id' => 53,], + ['form_id' => 882, 'business_area_id' => 53,], + ['form_id' => 883, 'business_area_id' => 53,], + ['form_id' => 884, 'business_area_id' => 53,], + ['form_id' => 885, 'business_area_id' => 53,], + ['form_id' => 886, 'business_area_id' => 53,], + ['form_id' => 887, 'business_area_id' => 53,], + ['form_id' => 888, 'business_area_id' => 53,], + ['form_id' => 889, 'business_area_id' => 54,], + ['form_id' => 890, 'business_area_id' => 27,], + ['form_id' => 890, 'business_area_id' => 55,], + ['form_id' => 891, 'business_area_id' => 55,], + ['form_id' => 891, 'business_area_id' => 3,], + ['form_id' => 892, 'business_area_id' => 55,], + ['form_id' => 892, 'business_area_id' => 45,], + ['form_id' => 893, 'business_area_id' => 55,], + ['form_id' => 893, 'business_area_id' => 3,], + ['form_id' => 894, 'business_area_id' => 55,], + ['form_id' => 894, 'business_area_id' => 3,], + ['form_id' => 895, 'business_area_id' => 55,], + ['form_id' => 896, 'business_area_id' => 55,], + ['form_id' => 897, 'business_area_id' => 55,], + ['form_id' => 898, 'business_area_id' => 55,], + ['form_id' => 899, 'business_area_id' => 56,], + ['form_id' => 900, 'business_area_id' => 6,], + ['form_id' => 901, 'business_area_id' => 6,], + ['form_id' => 902, 'business_area_id' => 6,], + ['form_id' => 903, 'business_area_id' => 3,], + ['form_id' => 904, 'business_area_id' => 3,], + ['form_id' => 905, 'business_area_id' => 3,], + ['form_id' => 906, 'business_area_id' => 3,], + ['form_id' => 907, 'business_area_id' => 3,], + ['form_id' => 908, 'business_area_id' => 3,], + ['form_id' => 909, 'business_area_id' => 3,], + ['form_id' => 910, 'business_area_id' => 27,], + ['form_id' => 911, 'business_area_id' => 3,], + ['form_id' => 912, 'business_area_id' => 6,], + ['form_id' => 913, 'business_area_id' => 6,], + ['form_id' => 917, 'business_area_id' => 27,], + ['form_id' => 918, 'business_area_id' => 6,], + ['form_id' => 919, 'business_area_id' => 8,], + ['form_id' => 921, 'business_area_id' => 53,], + ['form_id' => 922, 'business_area_id' => 53,], + ['form_id' => 923, 'business_area_id' => 53,], + ['form_id' => 924, 'business_area_id' => 53,], + ['form_id' => 925, 'business_area_id' => 53,], + ['form_id' => 926, 'business_area_id' => 53,], + ['form_id' => 927, 'business_area_id' => 57,], + ['form_id' => 928, 'business_area_id' => 35,], + ['form_id' => 930, 'business_area_id' => 44,], + ['form_id' => 931, 'business_area_id' => 8,], + ['form_id' => 932, 'business_area_id' => 42,], + ['form_id' => 932, 'business_area_id' => 58,], + ['form_id' => 933, 'business_area_id' => 46,], + ['form_id' => 933, 'business_area_id' => 9,], + ['form_id' => 933, 'business_area_id' => 14,], + ['form_id' => 934, 'business_area_id' => 6,], + ['form_id' => 934, 'business_area_id' => 9,], + ['form_id' => 935, 'business_area_id' => 6,], + ['form_id' => 935, 'business_area_id' => 9,], + ['form_id' => 936, 'business_area_id' => 8,], + ['form_id' => 937, 'business_area_id' => 28,], + ['form_id' => 937, 'business_area_id' => 29,], + ['form_id' => 938, 'business_area_id' => 28,], + ['form_id' => 938, 'business_area_id' => 29,], + ['form_id' => 939, 'business_area_id' => 9,], + ['form_id' => 940, 'business_area_id' => 59,], + ['form_id' => 940, 'business_area_id' => 22,], + ['form_id' => 941, 'business_area_id' => 8,], + ['form_id' => 942, 'business_area_id' => 8,], + ['form_id' => 943, 'business_area_id' => 22,], + ['form_id' => 944, 'business_area_id' => 28,], + ['form_id' => 959, 'business_area_id' => 27,], + ['form_id' => 960, 'business_area_id' => 60,], + ['form_id' => 961, 'business_area_id' => 6,], + ['form_id' => 961, 'business_area_id' => 61,], + ['form_id' => 962, 'business_area_id' => 10,], + ['form_id' => 962, 'business_area_id' => 14,], + ['form_id' => 963, 'business_area_id' => 2,], + ['form_id' => 964, 'business_area_id' => 2,], + ['form_id' => 965, 'business_area_id' => 2,], + ['form_id' => 966, 'business_area_id' => 2,], + ['form_id' => 966, 'business_area_id' => 12,], + ['form_id' => 966, 'business_area_id' => 46,], + ['form_id' => 967, 'business_area_id' => 46,], + ['form_id' => 967, 'business_area_id' => 48,], + ['form_id' => 968, 'business_area_id' => 8,], + ['form_id' => 968, 'business_area_id' => 14,], + ['form_id' => 969, 'business_area_id' => 29,], + ['form_id' => 969, 'business_area_id' => 28,], + ['form_id' => 970, 'business_area_id' => 28,], + ['form_id' => 970, 'business_area_id' => 29,], + ['form_id' => 971, 'business_area_id' => 3,], + ['form_id' => 972, 'business_area_id' => 3,], + ['form_id' => 973, 'business_area_id' => 53,], + ['form_id' => 974, 'business_area_id' => 6,], + ['form_id' => 975, 'business_area_id' => 2,], + ['form_id' => 976, 'business_area_id' => 2,], + ['form_id' => 976, 'business_area_id' => 11,], + ['form_id' => 976, 'business_area_id' => 12,], + ['form_id' => 977, 'business_area_id' => 48,], + ['form_id' => 977, 'business_area_id' => 2,], + ['form_id' => 978, 'business_area_id' => 9,], + ['form_id' => 978, 'business_area_id' => 10,], + ['form_id' => 979, 'business_area_id' => 10,], + ['form_id' => 979, 'business_area_id' => 9,], + ['form_id' => 980, 'business_area_id' => 9,], + ['form_id' => 980, 'business_area_id' => 14,], + ['form_id' => 981, 'business_area_id' => 9,], + ['form_id' => 981, 'business_area_id' => 10,], + ['form_id' => 982, 'business_area_id' => 9,], + ['form_id' => 982, 'business_area_id' => 10,], + ['form_id' => 983, 'business_area_id' => 3,], + ['form_id' => 983, 'business_area_id' => 6,], + ['form_id' => 984, 'business_area_id' => 3,], + ['form_id' => 984, 'business_area_id' => 6,], + ['form_id' => 985, 'business_area_id' => 6,], + ['form_id' => 986, 'business_area_id' => 43,], + ['form_id' => 987, 'business_area_id' => 27,], + ['form_id' => 987, 'business_area_id' => 3,], + ['form_id' => 988, 'business_area_id' => 27,], + ['form_id' => 989, 'business_area_id' => 27,], + ['form_id' => 990, 'business_area_id' => 27,], + ['form_id' => 991, 'business_area_id' => 9,], + ['form_id' => 991, 'business_area_id' => 10,], + ['form_id' => 991, 'business_area_id' => 8,], + ['form_id' => 992, 'business_area_id' => 27,], + ['form_id' => 992, 'business_area_id' => 3,], + ['form_id' => 993, 'business_area_id' => 27,], + ['form_id' => 993, 'business_area_id' => 44,], + ['form_id' => 994, 'business_area_id' => 27,], + ['form_id' => 995, 'business_area_id' => 27,], + ['form_id' => 995, 'business_area_id' => 3,], + ['form_id' => 996, 'business_area_id' => 27,], + ['form_id' => 996, 'business_area_id' => 3,], + ['form_id' => 997, 'business_area_id' => 27,], + ['form_id' => 997, 'business_area_id' => 3,], + ['form_id' => 998, 'business_area_id' => 27,], + ['form_id' => 998, 'business_area_id' => 3,], + ['form_id' => 999, 'business_area_id' => 62,], + ['form_id' => 999, 'business_area_id' => 3,], + ['form_id' => 1000, 'business_area_id' => 8,], + ['form_id' => 1001, 'business_area_id' => 3,], + ['form_id' => 1001, 'business_area_id' => 14,], + ['form_id' => 1002, 'business_area_id' => 6,], + ['form_id' => 1002, 'business_area_id' => 3,], + ['form_id' => 1003, 'business_area_id' => 9,], + ['form_id' => 1003, 'business_area_id' => 10,], + ['form_id' => 1004, 'business_area_id' => 6,], + ['form_id' => 1004, 'business_area_id' => 9,], + ['form_id' => 1005, 'business_area_id' => 6,], + ['form_id' => 1005, 'business_area_id' => 9,], + ['form_id' => 1005, 'business_area_id' => 10,], + ['form_id' => 1006, 'business_area_id' => 6,], + ['form_id' => 1006, 'business_area_id' => 9,], + ['form_id' => 1007, 'business_area_id' => 6,], + ['form_id' => 1007, 'business_area_id' => 9,], + ['form_id' => 1007, 'business_area_id' => 10,], + ['form_id' => 1008, 'business_area_id' => 8,], + ['form_id' => 1009, 'business_area_id' => 8,], + ['form_id' => 1010, 'business_area_id' => 8,], + ['form_id' => 1011, 'business_area_id' => 8,], + ['form_id' => 1012, 'business_area_id' => 28,], + ['form_id' => 1013, 'business_area_id' => 2,], + ['form_id' => 1015, 'business_area_id' => 27,], + ['form_id' => 1057, 'business_area_id' => 3,], + ['form_id' => 1058, 'business_area_id' => 29,], + ['form_id' => 1061, 'business_area_id' => 17,], + ['form_id' => 1075, 'business_area_id' => 17,], + ['form_id' => 1080, 'business_area_id' => 17,], + ['form_id' => 1081, 'business_area_id' => 17,], + ['form_id' => 1082, 'business_area_id' => 17,], + ['form_id' => 1093, 'business_area_id' => 17,], + ['form_id' => 1094, 'business_area_id' => 17,], + ['form_id' => 1096, 'business_area_id' => 18,], + ['form_id' => 1124, 'business_area_id' => 63,], + ['form_id' => 1134, 'business_area_id' => 17,], + ['form_id' => 1139, 'business_area_id' => 18,], + ['form_id' => 1140, 'business_area_id' => 18,], + ['form_id' => 1155, 'business_area_id' => 64,], + ['form_id' => 1163, 'business_area_id' => 65,], + ['form_id' => 1166, 'business_area_id' => 66,], + ['form_id' => 1171, 'business_area_id' => 64,], + ['form_id' => 1208, 'business_area_id' => 17,], + ['form_id' => 1216, 'business_area_id' => 17,], + ['form_id' => 1289, 'business_area_id' => 19,], + ['form_id' => 1291, 'business_area_id' => 17,], + ['form_id' => 1373, 'business_area_id' => 67,], + ['form_id' => 1410, 'business_area_id' => 17,], + ['form_id' => 1411, 'business_area_id' => 17,], + ['form_id' => 1423, 'business_area_id' => 17,], + ['form_id' => 1445, 'business_area_id' => 17,], + ['form_id' => 1459, 'business_area_id' => 64,], + ['form_id' => 1534, 'business_area_id' => 68,], + ['form_id' => 1575, 'business_area_id' => 68,], + ['form_id' => 1583, 'business_area_id' => 69,], + ['form_id' => 1605, 'business_area_id' => 17,], + ['form_id' => 1613, 'business_area_id' => 70,], + ['form_id' => 1631, 'business_area_id' => 21,], + ['form_id' => 1637, 'business_area_id' => 17,], + ['form_id' => 1653, 'business_area_id' => 71,], + ['form_id' => 1688, 'business_area_id' => 18,], + ['form_id' => 1690, 'business_area_id' => 64,], + ['form_id' => 1699, 'business_area_id' => 19,], + ['form_id' => 1700, 'business_area_id' => 19,], + ['form_id' => 1701, 'business_area_id' => 19,], + ['form_id' => 1702, 'business_area_id' => 19,], + ['form_id' => 1703, 'business_area_id' => 19,], + ['form_id' => 1704, 'business_area_id' => 19,], + ['form_id' => 1705, 'business_area_id' => 19,], + ['form_id' => 1706, 'business_area_id' => 19,], + ['form_id' => 1707, 'business_area_id' => 19,], + ['form_id' => 1708, 'business_area_id' => 19,], + ['form_id' => 1709, 'business_area_id' => 19,], + ['form_id' => 1710, 'business_area_id' => 19,], + ['form_id' => 1711, 'business_area_id' => 19,], + ['form_id' => 1712, 'business_area_id' => 19,], + ['form_id' => 1713, 'business_area_id' => 19,], + ['form_id' => 1714, 'business_area_id' => 19,], + ['form_id' => 1715, 'business_area_id' => 19,], + ['form_id' => 1716, 'business_area_id' => 19,], + ['form_id' => 1717, 'business_area_id' => 19,], + ['form_id' => 1718, 'business_area_id' => 19,], + ['form_id' => 1719, 'business_area_id' => 19,], + ['form_id' => 1720, 'business_area_id' => 19,], + ['form_id' => 1722, 'business_area_id' => 19,], + ['form_id' => 1723, 'business_area_id' => 19,], + ['form_id' => 1728, 'business_area_id' => 19,], + ['form_id' => 1729, 'business_area_id' => 19,], + ['form_id' => 1730, 'business_area_id' => 19,], + ['form_id' => 1731, 'business_area_id' => 19,], + ['form_id' => 1732, 'business_area_id' => 19,], + ['form_id' => 1733, 'business_area_id' => 19,], + ['form_id' => 1734, 'business_area_id' => 19,], + ['form_id' => 1735, 'business_area_id' => 19,], + ['form_id' => 1736, 'business_area_id' => 19,], + ['form_id' => 1737, 'business_area_id' => 19,], + ['form_id' => 1738, 'business_area_id' => 19,], + ['form_id' => 1739, 'business_area_id' => 19,], + ['form_id' => 1740, 'business_area_id' => 19,], + ['form_id' => 1741, 'business_area_id' => 19,], + ['form_id' => 1742, 'business_area_id' => 19,], + ['form_id' => 1743, 'business_area_id' => 19,], + ['form_id' => 1744, 'business_area_id' => 19,], + ['form_id' => 1745, 'business_area_id' => 19,], + ['form_id' => 1746, 'business_area_id' => 19,], + ['form_id' => 1747, 'business_area_id' => 19,], + ['form_id' => 1748, 'business_area_id' => 19,], + ['form_id' => 1749, 'business_area_id' => 19,], + ['form_id' => 1750, 'business_area_id' => 19,], + ['form_id' => 1751, 'business_area_id' => 19,], + ['form_id' => 1752, 'business_area_id' => 19,], + ['form_id' => 1753, 'business_area_id' => 19,], + ['form_id' => 1754, 'business_area_id' => 19,], + ['form_id' => 1755, 'business_area_id' => 19,], + ['form_id' => 1756, 'business_area_id' => 19,], + ['form_id' => 1757, 'business_area_id' => 19,], + ['form_id' => 1758, 'business_area_id' => 19,], + ['form_id' => 1759, 'business_area_id' => 19,], + ['form_id' => 1760, 'business_area_id' => 19,], + ['form_id' => 1761, 'business_area_id' => 19,], + ['form_id' => 1762, 'business_area_id' => 19,], + ['form_id' => 1763, 'business_area_id' => 19,], + ['form_id' => 1775, 'business_area_id' => 19,], + ['form_id' => 1776, 'business_area_id' => 19,], + ['form_id' => 1784, 'business_area_id' => 19,], + ['form_id' => 1805, 'business_area_id' => 17,], + ['form_id' => 1815, 'business_area_id' => 56,], + ['form_id' => 1842, 'business_area_id' => 65,], + ['form_id' => 1852, 'business_area_id' => 56,], + ['form_id' => 1853, 'business_area_id' => 19,], + ['form_id' => 1854, 'business_area_id' => 19,], + ['form_id' => 1855, 'business_area_id' => 19,], + ['form_id' => 1856, 'business_area_id' => 19,], + ['form_id' => 1857, 'business_area_id' => 19,], + ['form_id' => 1858, 'business_area_id' => 19,], + ['form_id' => 1859, 'business_area_id' => 19,], + ['form_id' => 1860, 'business_area_id' => 19,], + ['form_id' => 1861, 'business_area_id' => 19,], + ['form_id' => 1862, 'business_area_id' => 19,], + ['form_id' => 1863, 'business_area_id' => 19,], + ['form_id' => 1864, 'business_area_id' => 19,], + ['form_id' => 1865, 'business_area_id' => 19,], + ['form_id' => 1866, 'business_area_id' => 66,], + ['form_id' => 1871, 'business_area_id' => 66,], + ['form_id' => 1872, 'business_area_id' => 66,], + ['form_id' => 1873, 'business_area_id' => 17,], + ['form_id' => 1879, 'business_area_id' => 17,], + ['form_id' => 1880, 'business_area_id' => 17,], + ['form_id' => 1881, 'business_area_id' => 17,], + ['form_id' => 1882, 'business_area_id' => 17,], + ['form_id' => 1898, 'business_area_id' => 69,], + ['form_id' => 1904, 'business_area_id' => 56,], + ['form_id' => 1905, 'business_area_id' => 19,], + ['form_id' => 1906, 'business_area_id' => 19,], + ['form_id' => 1910, 'business_area_id' => 18,], + ['form_id' => 1920, 'business_area_id' => 56,], + ['form_id' => 1921, 'business_area_id' => 18,], + ['form_id' => 1923, 'business_area_id' => 71,], + ['form_id' => 1937, 'business_area_id' => 19,], + ['form_id' => 1938, 'business_area_id' => 19,], + ['form_id' => 1939, 'business_area_id' => 19,], + ['form_id' => 1940, 'business_area_id' => 19,], + ]); + DB::table('form_business_area')->insert([ + ['form_id' => 1941, 'business_area_id' => 19,], + ['form_id' => 1942, 'business_area_id' => 19,], + ['form_id' => 1943, 'business_area_id' => 19,], + ['form_id' => 1944, 'business_area_id' => 19,], + ['form_id' => 1945, 'business_area_id' => 19,], + ['form_id' => 1946, 'business_area_id' => 19,], + ['form_id' => 1947, 'business_area_id' => 19,], + ['form_id' => 1948, 'business_area_id' => 19,], + ['form_id' => 1949, 'business_area_id' => 19,], + ['form_id' => 1950, 'business_area_id' => 19,], + ['form_id' => 1951, 'business_area_id' => 19,], + ['form_id' => 1952, 'business_area_id' => 19,], + ['form_id' => 1953, 'business_area_id' => 19,], + ['form_id' => 1954, 'business_area_id' => 19,], + ['form_id' => 1955, 'business_area_id' => 19,], + ['form_id' => 1956, 'business_area_id' => 19,], + ['form_id' => 1957, 'business_area_id' => 19,], + ['form_id' => 1958, 'business_area_id' => 19,], + ['form_id' => 1959, 'business_area_id' => 19,], + ['form_id' => 1960, 'business_area_id' => 19,], + ['form_id' => 1961, 'business_area_id' => 19,], + ['form_id' => 1962, 'business_area_id' => 19,], + ['form_id' => 1963, 'business_area_id' => 19,], + ['form_id' => 1964, 'business_area_id' => 19,], + ['form_id' => 1965, 'business_area_id' => 19,], + ['form_id' => 1966, 'business_area_id' => 19,], + ['form_id' => 1967, 'business_area_id' => 19,], + ['form_id' => 1968, 'business_area_id' => 19,], + ['form_id' => 1969, 'business_area_id' => 19,], + ['form_id' => 1973, 'business_area_id' => 19,], + ['form_id' => 1976, 'business_area_id' => 18,], + ['form_id' => 1984, 'business_area_id' => 18,], + ['form_id' => 1985, 'business_area_id' => 71,], + ['form_id' => 1999, 'business_area_id' => 19,], + ['form_id' => 2000, 'business_area_id' => 19,], + ['form_id' => 2001, 'business_area_id' => 19,], + ['form_id' => 2002, 'business_area_id' => 19,], + ['form_id' => 2003, 'business_area_id' => 19,], + ['form_id' => 2004, 'business_area_id' => 17,], + ['form_id' => 2005, 'business_area_id' => 64,], + ['form_id' => 2006, 'business_area_id' => 72,], + ['form_id' => 2014, 'business_area_id' => 73,], + ['form_id' => 2015, 'business_area_id' => 74,], + ['form_id' => 2016, 'business_area_id' => 68,], + ['form_id' => 2017, 'business_area_id' => 68,], + ['form_id' => 2018, 'business_area_id' => 68,], + ['form_id' => 2019, 'business_area_id' => 68,], + ['form_id' => 2020, 'business_area_id' => 68,], + ['form_id' => 2022, 'business_area_id' => 64,], + ['form_id' => 2023, 'business_area_id' => 73,], + ['form_id' => 2024, 'business_area_id' => 17,], + ['form_id' => 2025, 'business_area_id' => 75,], + ['form_id' => 2028, 'business_area_id' => 17,], + ['form_id' => 2029, 'business_area_id' => 17,], + ['form_id' => 2030, 'business_area_id' => 17,], + ['form_id' => 2049, 'business_area_id' => 20,], + ['form_id' => 2050, 'business_area_id' => 20,], + ['form_id' => 2057, 'business_area_id' => 64,], + ['form_id' => 2065, 'business_area_id' => 8,], + ['form_id' => 2066, 'business_area_id' => 27,], + ['form_id' => 2066, 'business_area_id' => 6,], + ['form_id' => 2067, 'business_area_id' => 27,], + ['form_id' => 2067, 'business_area_id' => 6,], + ['form_id' => 2068, 'business_area_id' => 27,], + ['form_id' => 2069, 'business_area_id' => 27,], + ['form_id' => 2028, 'business_area_id' => 17,], + ['form_id' => 2029, 'business_area_id' => 17,], + ['form_id' => 2030, 'business_area_id' => 17,], + ['form_id' => 2049, 'business_area_id' => 20,], + ['form_id' => 2050, 'business_area_id' => 20,], + ['form_id' => 2057, 'business_area_id' => 64,], + ['form_id' => 2065, 'business_area_id' => 8,], + ['form_id' => 2066, 'business_area_id' => 27,], + ['form_id' => 2066, 'business_area_id' => 6,], + ['form_id' => 2067, 'business_area_id' => 27,], + ['form_id' => 2067, 'business_area_id' => 6,], + ['form_id' => 2068, 'business_area_id' => 27,], + ['form_id' => 2069, 'business_area_id' => 27,], + ]); } -} \ No newline at end of file +} diff --git a/database/seeders/FormDataSourceSeeder.php b/database/seeders/FormDataSourceSeeder.php index ed047812..c0f49a7d 100644 --- a/database/seeders/FormDataSourceSeeder.php +++ b/database/seeders/FormDataSourceSeeder.php @@ -15,12 +15,10 @@ class FormDataSourceSeeder extends Seeder */ public function run() { - DB::table('form_data_sources')->delete(); + DB::table('form_data_sources')->truncate(); - DB::table('form_data_sources')->insert(array( - 0 => - array( - 'id' => 1, + DB::table('form_data_sources')->insert([ + [ 'name' => 'Case', 'type' => 'GET', 'endpoint' => 'ICM REST Forms Case/DT Form Instance/@@attachmentId', @@ -28,10 +26,8 @@ public function run() 'body' => '', 'headers' => '{"Authorization":"Bearer @@token@@"}', 'host' => 'SIEBEL_ICM_API_HOST', - ), - 1 => - array( - 'id' => 2, + ], + [ 'name' => 'Contact', 'type' => 'GET', 'endpoint' => 'ICM REST Forms Contact/DT Form Instance/@@attachmentId', @@ -39,10 +35,8 @@ public function run() 'body' => '', 'headers' => '{"Authorization":"Bearer @@token@@"}', 'host' => 'SIEBEL_ICM_API_HOST', - ), - 2 => - array( - 'id' => 3, + ], + [ 'name' => 'Service Request', 'type' => 'GET', 'endpoint' => 'ICM REST Forms Service Request/DT Form Instance/@@attachmentId', @@ -50,10 +44,8 @@ public function run() 'body' => '', 'headers' => '{"Authorization":"Bearer @@token@@"}', 'host' => 'SIEBEL_ICM_API_HOST', - ), - 3 => - array( - 'id' => 4, + ], + [ 'name' => 'Benefit Plan', 'type' => 'GET', 'endpoint' => 'ICM REST Forms Benefit Plan/DT Form Instance/@@attachmentId', @@ -61,10 +53,8 @@ public function run() 'body' => '', 'headers' => '{"Authorization":"Bearer @@token@@"}', 'host' => 'SIEBEL_ICM_API_HOST', - ), - 4 => - array( - 'id' => 5, + ], + [ 'name' => 'Case Review', 'type' => 'GET', 'endpoint' => 'ICM REST Forms Case Review/DT Form Instance/@@attachmentId', @@ -72,10 +62,8 @@ public function run() 'body' => '', 'headers' => '{"Authorization":"Bearer @@token@@"}', 'host' => 'SIEBEL_ICM_API_HOST', - ), - 5 => - array( - 'id' => 6, + ], + [ 'name' => 'Incident', 'type' => 'GET', 'endpoint' => 'ICM REST Forms Incident/DT Form Instance/@@attachmentId', @@ -83,10 +71,8 @@ public function run() 'body' => '', 'headers' => '{"Authorization":"Bearer @@token@@"}', 'host' => 'SIEBEL_ICM_API_HOST', - ), - 6 => - array( - 'id' => 7, + ], + [ 'name' => 'Service Order', 'type' => 'GET', 'endpoint' => 'ICM REST Forms Service Order/DT Form Instance/@@attachmentId', @@ -94,10 +80,8 @@ public function run() 'body' => '', 'headers' => '{"Authorization":"Bearer @@token@@"}', 'host' => 'SIEBEL_ICM_API_HOST', - ), - 7 => - array( - 'id' => 8, + ], + [ 'name' => 'Service Plan', 'type' => 'GET', 'endpoint' => 'ICM REST Forms Service Plan/DT Form Instance/@@attachmentId', @@ -105,10 +89,8 @@ public function run() 'body' => '', 'headers' => '{"Authorization":"Bearer @@token@@"}', 'host' => 'SIEBEL_ICM_API_HOST', - ), - 8 => - array( - 'id' => 9, + ], + [ 'name' => 'Service Provider', 'type' => 'GET', 'endpoint' => 'ICM REST Forms Service Provider/DT Form Instance/@@attachmentId', @@ -116,10 +98,8 @@ public function run() 'body' => '', 'headers' => '{"Authorization":"Bearer @@token@@"}', 'host' => 'SIEBEL_ICM_API_HOST', - ), - 9 => - array( - 'id' => 10, + ], + [ 'name' => 'Transacation Summary', 'type' => 'GET', 'endpoint' => 'ICM REST Forms Transaction Summary/DT Form Instance/@@attachmentId', @@ -127,16 +107,7 @@ public function run() 'body' => '', 'headers' => '{"Authorization":"Bearer @@token@@"}', 'host' => 'SIEBEL_ICM_API_HOST', - ), - )); - - // Reset the ID sequence to avoid conflicts with future inserts - DB::statement(" - SELECT setval( - pg_get_serial_sequence('form_data_sources', 'id'), - COALESCE((SELECT MAX(id) FROM form_data_sources), 0) + 1, - false - ) - "); + ], + ]); } } diff --git a/database/seeders/FormFormLocationTableSeeder.php b/database/seeders/FormFormLocationTableSeeder.php index f7ffbf28..385fc767 100644 --- a/database/seeders/FormFormLocationTableSeeder.php +++ b/database/seeders/FormFormLocationTableSeeder.php @@ -3,6 +3,7 @@ namespace Database\Seeders; use Illuminate\Database\Seeder; +use Illuminate\Support\Facades\DB; class FormFormLocationTableSeeder extends Seeder { @@ -14,6367 +15,807 @@ class FormFormLocationTableSeeder extends Seeder */ public function run() { - - \DB::table('form_form_location')->delete(); - - \DB::table('form_form_location')->insert(array ( - 0 => - array ( - 'id' => 1, - 'form_id' => 7, - 'form_location_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 1 => - array ( - 'id' => 2, - 'form_id' => 7, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 2 => - array ( - 'id' => 3, - 'form_id' => 8, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 3 => - array ( - 'id' => 4, - 'form_id' => 9, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 4 => - array ( - 'id' => 5, - 'form_id' => 10, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 5 => - array ( - 'id' => 6, - 'form_id' => 11, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 6 => - array ( - 'id' => 7, - 'form_id' => 12, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 7 => - array ( - 'id' => 8, - 'form_id' => 13, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 8 => - array ( - 'id' => 9, - 'form_id' => 15, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 9 => - array ( - 'id' => 10, - 'form_id' => 16, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 10 => - array ( - 'id' => 11, - 'form_id' => 18, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 11 => - array ( - 'id' => 12, - 'form_id' => 19, - 'form_location_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 12 => - array ( - 'id' => 13, - 'form_id' => 19, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 13 => - array ( - 'id' => 14, - 'form_id' => 20, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 14 => - array ( - 'id' => 15, - 'form_id' => 21, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 15 => - array ( - 'id' => 16, - 'form_id' => 22, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 16 => - array ( - 'id' => 17, - 'form_id' => 24, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 17 => - array ( - 'id' => 18, - 'form_id' => 25, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 18 => - array ( - 'id' => 19, - 'form_id' => 26, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 19 => - array ( - 'id' => 20, - 'form_id' => 27, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 20 => - array ( - 'id' => 21, - 'form_id' => 28, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 21 => - array ( - 'id' => 22, - 'form_id' => 29, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 22 => - array ( - 'id' => 23, - 'form_id' => 32, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 23 => - array ( - 'id' => 24, - 'form_id' => 35, - 'form_location_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 24 => - array ( - 'id' => 25, - 'form_id' => 35, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 25 => - array ( - 'id' => 26, - 'form_id' => 36, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 26 => - array ( - 'id' => 27, - 'form_id' => 37, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 27 => - array ( - 'id' => 28, - 'form_id' => 39, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 28 => - array ( - 'id' => 29, - 'form_id' => 39, - 'form_location_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 29 => - array ( - 'id' => 30, - 'form_id' => 41, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 30 => - array ( - 'id' => 31, - 'form_id' => 42, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 31 => - array ( - 'id' => 32, - 'form_id' => 43, - 'form_location_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 32 => - array ( - 'id' => 33, - 'form_id' => 43, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 33 => - array ( - 'id' => 34, - 'form_id' => 44, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 34 => - array ( - 'id' => 35, - 'form_id' => 45, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 35 => - array ( - 'id' => 36, - 'form_id' => 46, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 36 => - array ( - 'id' => 37, - 'form_id' => 47, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 37 => - array ( - 'id' => 38, - 'form_id' => 48, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 38 => - array ( - 'id' => 39, - 'form_id' => 49, - 'form_location_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 39 => - array ( - 'id' => 40, - 'form_id' => 49, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 40 => - array ( - 'id' => 41, - 'form_id' => 51, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 41 => - array ( - 'id' => 42, - 'form_id' => 52, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 42 => - array ( - 'id' => 43, - 'form_id' => 53, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 43 => - array ( - 'id' => 44, - 'form_id' => 55, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 44 => - array ( - 'id' => 45, - 'form_id' => 56, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 45 => - array ( - 'id' => 46, - 'form_id' => 57, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 46 => - array ( - 'id' => 47, - 'form_id' => 58, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 47 => - array ( - 'id' => 48, - 'form_id' => 59, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 48 => - array ( - 'id' => 49, - 'form_id' => 60, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 49 => - array ( - 'id' => 50, - 'form_id' => 61, - 'form_location_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 50 => - array ( - 'id' => 51, - 'form_id' => 86, - 'form_location_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 51 => - array ( - 'id' => 52, - 'form_id' => 87, - 'form_location_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 52 => - array ( - 'id' => 53, - 'form_id' => 88, - 'form_location_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 53 => - array ( - 'id' => 54, - 'form_id' => 90, - 'form_location_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 54 => - array ( - 'id' => 55, - 'form_id' => 91, - 'form_location_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 55 => - array ( - 'id' => 56, - 'form_id' => 92, - 'form_location_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 56 => - array ( - 'id' => 57, - 'form_id' => 93, - 'form_location_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 57 => - array ( - 'id' => 58, - 'form_id' => 94, - 'form_location_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 58 => - array ( - 'id' => 59, - 'form_id' => 94, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 59 => - array ( - 'id' => 60, - 'form_id' => 95, - 'form_location_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 60 => - array ( - 'id' => 61, - 'form_id' => 96, - 'form_location_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 61 => - array ( - 'id' => 62, - 'form_id' => 99, - 'form_location_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 62 => - array ( - 'id' => 63, - 'form_id' => 100, - 'form_location_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 63 => - array ( - 'id' => 64, - 'form_id' => 154, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 64 => - array ( - 'id' => 65, - 'form_id' => 155, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 65 => - array ( - 'id' => 66, - 'form_id' => 156, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 66 => - array ( - 'id' => 67, - 'form_id' => 157, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 67 => - array ( - 'id' => 68, - 'form_id' => 158, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 68 => - array ( - 'id' => 69, - 'form_id' => 159, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 69 => - array ( - 'id' => 70, - 'form_id' => 160, - 'form_location_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 70 => - array ( - 'id' => 71, - 'form_id' => 160, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 71 => - array ( - 'id' => 72, - 'form_id' => 161, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 72 => - array ( - 'id' => 73, - 'form_id' => 163, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 73 => - array ( - 'id' => 74, - 'form_id' => 164, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 74 => - array ( - 'id' => 75, - 'form_id' => 165, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 75 => - array ( - 'id' => 76, - 'form_id' => 166, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 76 => - array ( - 'id' => 77, - 'form_id' => 173, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 77 => - array ( - 'id' => 78, - 'form_id' => 174, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 78 => - array ( - 'id' => 79, - 'form_id' => 175, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 79 => - array ( - 'id' => 80, - 'form_id' => 177, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 80 => - array ( - 'id' => 81, - 'form_id' => 178, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 81 => - array ( - 'id' => 82, - 'form_id' => 184, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 82 => - array ( - 'id' => 83, - 'form_id' => 185, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 83 => - array ( - 'id' => 84, - 'form_id' => 187, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 84 => - array ( - 'id' => 85, - 'form_id' => 193, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 85 => - array ( - 'id' => 86, - 'form_id' => 195, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 86 => - array ( - 'id' => 87, - 'form_id' => 197, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 87 => - array ( - 'id' => 88, - 'form_id' => 198, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 88 => - array ( - 'id' => 89, - 'form_id' => 199, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 89 => - array ( - 'id' => 90, - 'form_id' => 200, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 90 => - array ( - 'id' => 91, - 'form_id' => 201, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 91 => - array ( - 'id' => 92, - 'form_id' => 206, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 92 => - array ( - 'id' => 93, - 'form_id' => 207, - 'form_location_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 93 => - array ( - 'id' => 94, - 'form_id' => 207, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 94 => - array ( - 'id' => 95, - 'form_id' => 208, - 'form_location_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 95 => - array ( - 'id' => 96, - 'form_id' => 208, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 96 => - array ( - 'id' => 97, - 'form_id' => 209, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 97 => - array ( - 'id' => 98, - 'form_id' => 210, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 98 => - array ( - 'id' => 99, - 'form_id' => 211, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 99 => - array ( - 'id' => 100, - 'form_id' => 212, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 100 => - array ( - 'id' => 101, - 'form_id' => 214, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 101 => - array ( - 'id' => 102, - 'form_id' => 215, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 102 => - array ( - 'id' => 103, - 'form_id' => 216, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 103 => - array ( - 'id' => 104, - 'form_id' => 218, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 104 => - array ( - 'id' => 105, - 'form_id' => 219, - 'form_location_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 105 => - array ( - 'id' => 106, - 'form_id' => 219, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 106 => - array ( - 'id' => 107, - 'form_id' => 220, - 'form_location_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 107 => - array ( - 'id' => 108, - 'form_id' => 220, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 108 => - array ( - 'id' => 109, - 'form_id' => 221, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 109 => - array ( - 'id' => 110, - 'form_id' => 222, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 110 => - array ( - 'id' => 111, - 'form_id' => 225, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 111 => - array ( - 'id' => 112, - 'form_id' => 226, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 112 => - array ( - 'id' => 113, - 'form_id' => 227, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 113 => - array ( - 'id' => 114, - 'form_id' => 228, - 'form_location_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 114 => - array ( - 'id' => 115, - 'form_id' => 228, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 115 => - array ( - 'id' => 116, - 'form_id' => 229, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 116 => - array ( - 'id' => 117, - 'form_id' => 231, - 'form_location_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 117 => - array ( - 'id' => 118, - 'form_id' => 231, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 118 => - array ( - 'id' => 119, - 'form_id' => 232, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 119 => - array ( - 'id' => 120, - 'form_id' => 234, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 120 => - array ( - 'id' => 121, - 'form_id' => 237, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 121 => - array ( - 'id' => 122, - 'form_id' => 238, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 122 => - array ( - 'id' => 123, - 'form_id' => 242, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 123 => - array ( - 'id' => 124, - 'form_id' => 244, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 124 => - array ( - 'id' => 125, - 'form_id' => 259, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 125 => - array ( - 'id' => 126, - 'form_id' => 260, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 126 => - array ( - 'id' => 127, - 'form_id' => 261, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 127 => - array ( - 'id' => 128, - 'form_id' => 262, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 128 => - array ( - 'id' => 129, - 'form_id' => 263, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 129 => - array ( - 'id' => 130, - 'form_id' => 269, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 130 => - array ( - 'id' => 131, - 'form_id' => 270, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 131 => - array ( - 'id' => 132, - 'form_id' => 271, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 132 => - array ( - 'id' => 133, - 'form_id' => 290, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 133 => - array ( - 'id' => 134, - 'form_id' => 325, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 134 => - array ( - 'id' => 135, - 'form_id' => 327, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 135 => - array ( - 'id' => 136, - 'form_id' => 329, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 136 => - array ( - 'id' => 137, - 'form_id' => 330, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 137 => - array ( - 'id' => 138, - 'form_id' => 331, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 138 => - array ( - 'id' => 139, - 'form_id' => 332, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 139 => - array ( - 'id' => 140, - 'form_id' => 333, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 140 => - array ( - 'id' => 141, - 'form_id' => 334, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 141 => - array ( - 'id' => 142, - 'form_id' => 335, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 142 => - array ( - 'id' => 143, - 'form_id' => 336, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 143 => - array ( - 'id' => 144, - 'form_id' => 337, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 144 => - array ( - 'id' => 145, - 'form_id' => 345, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 145 => - array ( - 'id' => 146, - 'form_id' => 346, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 146 => - array ( - 'id' => 147, - 'form_id' => 351, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 147 => - array ( - 'id' => 148, - 'form_id' => 353, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 148 => - array ( - 'id' => 149, - 'form_id' => 357, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 149 => - array ( - 'id' => 150, - 'form_id' => 380, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 150 => - array ( - 'id' => 151, - 'form_id' => 381, - 'form_location_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 151 => - array ( - 'id' => 152, - 'form_id' => 381, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 152 => - array ( - 'id' => 153, - 'form_id' => 386, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 153 => - array ( - 'id' => 154, - 'form_id' => 402, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 154 => - array ( - 'id' => 155, - 'form_id' => 403, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 155 => - array ( - 'id' => 156, - 'form_id' => 404, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 156 => - array ( - 'id' => 157, - 'form_id' => 405, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 157 => - array ( - 'id' => 158, - 'form_id' => 407, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 158 => - array ( - 'id' => 159, - 'form_id' => 408, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 159 => - array ( - 'id' => 160, - 'form_id' => 409, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 160 => - array ( - 'id' => 161, - 'form_id' => 410, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 161 => - array ( - 'id' => 162, - 'form_id' => 411, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 162 => - array ( - 'id' => 163, - 'form_id' => 412, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 163 => - array ( - 'id' => 164, - 'form_id' => 414, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 164 => - array ( - 'id' => 165, - 'form_id' => 415, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 165 => - array ( - 'id' => 166, - 'form_id' => 416, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 166 => - array ( - 'id' => 167, - 'form_id' => 417, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 167 => - array ( - 'id' => 168, - 'form_id' => 418, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 168 => - array ( - 'id' => 169, - 'form_id' => 422, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 169 => - array ( - 'id' => 170, - 'form_id' => 423, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 170 => - array ( - 'id' => 171, - 'form_id' => 424, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 171 => - array ( - 'id' => 172, - 'form_id' => 430, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 172 => - array ( - 'id' => 173, - 'form_id' => 431, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 173 => - array ( - 'id' => 174, - 'form_id' => 432, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 174 => - array ( - 'id' => 175, - 'form_id' => 433, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 175 => - array ( - 'id' => 176, - 'form_id' => 434, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 176 => - array ( - 'id' => 177, - 'form_id' => 435, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 177 => - array ( - 'id' => 178, - 'form_id' => 436, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 178 => - array ( - 'id' => 179, - 'form_id' => 437, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 179 => - array ( - 'id' => 180, - 'form_id' => 438, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 180 => - array ( - 'id' => 181, - 'form_id' => 439, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 181 => - array ( - 'id' => 182, - 'form_id' => 440, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 182 => - array ( - 'id' => 183, - 'form_id' => 441, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 183 => - array ( - 'id' => 184, - 'form_id' => 442, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 184 => - array ( - 'id' => 185, - 'form_id' => 444, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 185 => - array ( - 'id' => 186, - 'form_id' => 445, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 186 => - array ( - 'id' => 187, - 'form_id' => 446, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 187 => - array ( - 'id' => 188, - 'form_id' => 447, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 188 => - array ( - 'id' => 189, - 'form_id' => 449, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 189 => - array ( - 'id' => 190, - 'form_id' => 450, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 190 => - array ( - 'id' => 191, - 'form_id' => 451, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 191 => - array ( - 'id' => 192, - 'form_id' => 455, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 192 => - array ( - 'id' => 193, - 'form_id' => 456, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 193 => - array ( - 'id' => 194, - 'form_id' => 457, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 194 => - array ( - 'id' => 195, - 'form_id' => 458, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 195 => - array ( - 'id' => 196, - 'form_id' => 459, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 196 => - array ( - 'id' => 197, - 'form_id' => 460, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 197 => - array ( - 'id' => 198, - 'form_id' => 461, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 198 => - array ( - 'id' => 199, - 'form_id' => 463, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 199 => - array ( - 'id' => 200, - 'form_id' => 464, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 200 => - array ( - 'id' => 201, - 'form_id' => 466, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 201 => - array ( - 'id' => 202, - 'form_id' => 467, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 202 => - array ( - 'id' => 203, - 'form_id' => 468, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 203 => - array ( - 'id' => 204, - 'form_id' => 469, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 204 => - array ( - 'id' => 205, - 'form_id' => 470, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 205 => - array ( - 'id' => 206, - 'form_id' => 471, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 206 => - array ( - 'id' => 207, - 'form_id' => 472, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 207 => - array ( - 'id' => 208, - 'form_id' => 473, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 208 => - array ( - 'id' => 209, - 'form_id' => 474, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 209 => - array ( - 'id' => 210, - 'form_id' => 475, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 210 => - array ( - 'id' => 211, - 'form_id' => 476, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 211 => - array ( - 'id' => 212, - 'form_id' => 477, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 212 => - array ( - 'id' => 213, - 'form_id' => 478, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 213 => - array ( - 'id' => 214, - 'form_id' => 480, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 214 => - array ( - 'id' => 215, - 'form_id' => 481, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 215 => - array ( - 'id' => 216, - 'form_id' => 482, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 216 => - array ( - 'id' => 217, - 'form_id' => 483, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 217 => - array ( - 'id' => 218, - 'form_id' => 484, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 218 => - array ( - 'id' => 219, - 'form_id' => 485, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 219 => - array ( - 'id' => 220, - 'form_id' => 488, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 220 => - array ( - 'id' => 221, - 'form_id' => 489, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 221 => - array ( - 'id' => 222, - 'form_id' => 490, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 222 => - array ( - 'id' => 223, - 'form_id' => 491, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 223 => - array ( - 'id' => 224, - 'form_id' => 493, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 224 => - array ( - 'id' => 225, - 'form_id' => 494, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 225 => - array ( - 'id' => 226, - 'form_id' => 495, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 226 => - array ( - 'id' => 227, - 'form_id' => 496, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 227 => - array ( - 'id' => 228, - 'form_id' => 498, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 228 => - array ( - 'id' => 229, - 'form_id' => 499, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 229 => - array ( - 'id' => 230, - 'form_id' => 500, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 230 => - array ( - 'id' => 231, - 'form_id' => 501, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 231 => - array ( - 'id' => 232, - 'form_id' => 502, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 232 => - array ( - 'id' => 233, - 'form_id' => 503, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 233 => - array ( - 'id' => 234, - 'form_id' => 504, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 234 => - array ( - 'id' => 235, - 'form_id' => 505, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 235 => - array ( - 'id' => 236, - 'form_id' => 506, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 236 => - array ( - 'id' => 237, - 'form_id' => 507, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 237 => - array ( - 'id' => 238, - 'form_id' => 508, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 238 => - array ( - 'id' => 239, - 'form_id' => 509, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 239 => - array ( - 'id' => 240, - 'form_id' => 510, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 240 => - array ( - 'id' => 241, - 'form_id' => 511, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 241 => - array ( - 'id' => 242, - 'form_id' => 512, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 242 => - array ( - 'id' => 243, - 'form_id' => 513, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 243 => - array ( - 'id' => 244, - 'form_id' => 514, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 244 => - array ( - 'id' => 245, - 'form_id' => 515, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 245 => - array ( - 'id' => 246, - 'form_id' => 516, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 246 => - array ( - 'id' => 247, - 'form_id' => 518, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 247 => - array ( - 'id' => 248, - 'form_id' => 519, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 248 => - array ( - 'id' => 249, - 'form_id' => 520, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 249 => - array ( - 'id' => 250, - 'form_id' => 529, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 250 => - array ( - 'id' => 251, - 'form_id' => 530, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 251 => - array ( - 'id' => 252, - 'form_id' => 531, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 252 => - array ( - 'id' => 253, - 'form_id' => 535, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 253 => - array ( - 'id' => 254, - 'form_id' => 537, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 254 => - array ( - 'id' => 255, - 'form_id' => 538, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 255 => - array ( - 'id' => 256, - 'form_id' => 540, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 256 => - array ( - 'id' => 257, - 'form_id' => 541, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 257 => - array ( - 'id' => 258, - 'form_id' => 542, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 258 => - array ( - 'id' => 259, - 'form_id' => 544, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 259 => - array ( - 'id' => 260, - 'form_id' => 545, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 260 => - array ( - 'id' => 261, - 'form_id' => 546, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 261 => - array ( - 'id' => 262, - 'form_id' => 548, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 262 => - array ( - 'id' => 263, - 'form_id' => 550, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 263 => - array ( - 'id' => 264, - 'form_id' => 551, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 264 => - array ( - 'id' => 265, - 'form_id' => 552, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 265 => - array ( - 'id' => 266, - 'form_id' => 553, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 266 => - array ( - 'id' => 267, - 'form_id' => 554, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 267 => - array ( - 'id' => 268, - 'form_id' => 555, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 268 => - array ( - 'id' => 269, - 'form_id' => 557, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 269 => - array ( - 'id' => 270, - 'form_id' => 558, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 270 => - array ( - 'id' => 271, - 'form_id' => 560, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 271 => - array ( - 'id' => 272, - 'form_id' => 561, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 272 => - array ( - 'id' => 273, - 'form_id' => 567, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 273 => - array ( - 'id' => 274, - 'form_id' => 568, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 274 => - array ( - 'id' => 275, - 'form_id' => 569, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 275 => - array ( - 'id' => 276, - 'form_id' => 570, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 276 => - array ( - 'id' => 277, - 'form_id' => 572, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 277 => - array ( - 'id' => 278, - 'form_id' => 575, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 278 => - array ( - 'id' => 279, - 'form_id' => 577, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 279 => - array ( - 'id' => 280, - 'form_id' => 579, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 280 => - array ( - 'id' => 281, - 'form_id' => 580, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 281 => - array ( - 'id' => 282, - 'form_id' => 581, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 282 => - array ( - 'id' => 283, - 'form_id' => 583, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 283 => - array ( - 'id' => 284, - 'form_id' => 585, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 284 => - array ( - 'id' => 285, - 'form_id' => 586, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 285 => - array ( - 'id' => 286, - 'form_id' => 587, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 286 => - array ( - 'id' => 287, - 'form_id' => 589, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 287 => - array ( - 'id' => 288, - 'form_id' => 590, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 288 => - array ( - 'id' => 289, - 'form_id' => 591, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 289 => - array ( - 'id' => 290, - 'form_id' => 594, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 290 => - array ( - 'id' => 291, - 'form_id' => 596, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 291 => - array ( - 'id' => 292, - 'form_id' => 598, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 292 => - array ( - 'id' => 293, - 'form_id' => 608, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 293 => - array ( - 'id' => 294, - 'form_id' => 609, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 294 => - array ( - 'id' => 295, - 'form_id' => 610, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 295 => - array ( - 'id' => 296, - 'form_id' => 613, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 296 => - array ( - 'id' => 297, - 'form_id' => 614, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 297 => - array ( - 'id' => 298, - 'form_id' => 615, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 298 => - array ( - 'id' => 299, - 'form_id' => 616, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 299 => - array ( - 'id' => 300, - 'form_id' => 617, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 300 => - array ( - 'id' => 301, - 'form_id' => 618, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 301 => - array ( - 'id' => 302, - 'form_id' => 619, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 302 => - array ( - 'id' => 303, - 'form_id' => 622, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 303 => - array ( - 'id' => 304, - 'form_id' => 629, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 304 => - array ( - 'id' => 305, - 'form_id' => 630, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 305 => - array ( - 'id' => 306, - 'form_id' => 635, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 306 => - array ( - 'id' => 307, - 'form_id' => 636, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 307 => - array ( - 'id' => 308, - 'form_id' => 638, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 308 => - array ( - 'id' => 309, - 'form_id' => 640, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 309 => - array ( - 'id' => 310, - 'form_id' => 641, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 310 => - array ( - 'id' => 311, - 'form_id' => 642, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 311 => - array ( - 'id' => 312, - 'form_id' => 643, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 312 => - array ( - 'id' => 313, - 'form_id' => 644, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 313 => - array ( - 'id' => 314, - 'form_id' => 645, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 314 => - array ( - 'id' => 315, - 'form_id' => 648, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 315 => - array ( - 'id' => 316, - 'form_id' => 650, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 316 => - array ( - 'id' => 317, - 'form_id' => 651, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 317 => - array ( - 'id' => 318, - 'form_id' => 652, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 318 => - array ( - 'id' => 319, - 'form_id' => 653, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 319 => - array ( - 'id' => 320, - 'form_id' => 654, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 320 => - array ( - 'id' => 321, - 'form_id' => 655, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 321 => - array ( - 'id' => 322, - 'form_id' => 691, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 322 => - array ( - 'id' => 323, - 'form_id' => 692, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 323 => - array ( - 'id' => 324, - 'form_id' => 693, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 324 => - array ( - 'id' => 325, - 'form_id' => 694, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 325 => - array ( - 'id' => 326, - 'form_id' => 695, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 326 => - array ( - 'id' => 327, - 'form_id' => 696, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 327 => - array ( - 'id' => 328, - 'form_id' => 697, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 328 => - array ( - 'id' => 329, - 'form_id' => 698, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 329 => - array ( - 'id' => 330, - 'form_id' => 699, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 330 => - array ( - 'id' => 331, - 'form_id' => 706, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 331 => - array ( - 'id' => 332, - 'form_id' => 707, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 332 => - array ( - 'id' => 333, - 'form_id' => 708, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 333 => - array ( - 'id' => 334, - 'form_id' => 709, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 334 => - array ( - 'id' => 335, - 'form_id' => 710, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 335 => - array ( - 'id' => 336, - 'form_id' => 711, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 336 => - array ( - 'id' => 337, - 'form_id' => 712, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 337 => - array ( - 'id' => 338, - 'form_id' => 713, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 338 => - array ( - 'id' => 339, - 'form_id' => 714, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 339 => - array ( - 'id' => 340, - 'form_id' => 717, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 340 => - array ( - 'id' => 341, - 'form_id' => 720, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 341 => - array ( - 'id' => 342, - 'form_id' => 723, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 342 => - array ( - 'id' => 343, - 'form_id' => 726, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 343 => - array ( - 'id' => 344, - 'form_id' => 729, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 344 => - array ( - 'id' => 345, - 'form_id' => 733, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 345 => - array ( - 'id' => 346, - 'form_id' => 734, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 346 => - array ( - 'id' => 347, - 'form_id' => 741, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 347 => - array ( - 'id' => 348, - 'form_id' => 746, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 348 => - array ( - 'id' => 349, - 'form_id' => 747, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 349 => - array ( - 'id' => 350, - 'form_id' => 748, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 350 => - array ( - 'id' => 351, - 'form_id' => 754, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 351 => - array ( - 'id' => 352, - 'form_id' => 757, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 352 => - array ( - 'id' => 353, - 'form_id' => 758, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 353 => - array ( - 'id' => 354, - 'form_id' => 759, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 354 => - array ( - 'id' => 355, - 'form_id' => 760, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 355 => - array ( - 'id' => 356, - 'form_id' => 761, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 356 => - array ( - 'id' => 357, - 'form_id' => 762, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 357 => - array ( - 'id' => 358, - 'form_id' => 763, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 358 => - array ( - 'id' => 359, - 'form_id' => 764, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 359 => - array ( - 'id' => 360, - 'form_id' => 765, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 360 => - array ( - 'id' => 361, - 'form_id' => 766, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 361 => - array ( - 'id' => 362, - 'form_id' => 768, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 362 => - array ( - 'id' => 363, - 'form_id' => 769, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 363 => - array ( - 'id' => 364, - 'form_id' => 770, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 364 => - array ( - 'id' => 365, - 'form_id' => 771, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 365 => - array ( - 'id' => 366, - 'form_id' => 772, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 366 => - array ( - 'id' => 367, - 'form_id' => 773, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 367 => - array ( - 'id' => 368, - 'form_id' => 774, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 368 => - array ( - 'id' => 369, - 'form_id' => 775, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 369 => - array ( - 'id' => 370, - 'form_id' => 776, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 370 => - array ( - 'id' => 371, - 'form_id' => 777, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 371 => - array ( - 'id' => 372, - 'form_id' => 778, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 372 => - array ( - 'id' => 373, - 'form_id' => 779, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 373 => - array ( - 'id' => 374, - 'form_id' => 780, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 374 => - array ( - 'id' => 375, - 'form_id' => 781, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 375 => - array ( - 'id' => 376, - 'form_id' => 782, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 376 => - array ( - 'id' => 377, - 'form_id' => 783, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 377 => - array ( - 'id' => 378, - 'form_id' => 787, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 378 => - array ( - 'id' => 379, - 'form_id' => 788, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 379 => - array ( - 'id' => 380, - 'form_id' => 789, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 380 => - array ( - 'id' => 381, - 'form_id' => 790, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 381 => - array ( - 'id' => 382, - 'form_id' => 791, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 382 => - array ( - 'id' => 383, - 'form_id' => 792, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 383 => - array ( - 'id' => 384, - 'form_id' => 793, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 384 => - array ( - 'id' => 385, - 'form_id' => 795, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 385 => - array ( - 'id' => 386, - 'form_id' => 796, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 386 => - array ( - 'id' => 387, - 'form_id' => 797, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 387 => - array ( - 'id' => 388, - 'form_id' => 798, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 388 => - array ( - 'id' => 389, - 'form_id' => 799, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 389 => - array ( - 'id' => 390, - 'form_id' => 800, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 390 => - array ( - 'id' => 391, - 'form_id' => 801, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 391 => - array ( - 'id' => 392, - 'form_id' => 802, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 392 => - array ( - 'id' => 393, - 'form_id' => 806, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 393 => - array ( - 'id' => 394, - 'form_id' => 807, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 394 => - array ( - 'id' => 395, - 'form_id' => 809, - 'form_location_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 395 => - array ( - 'id' => 396, - 'form_id' => 809, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 396 => - array ( - 'id' => 397, - 'form_id' => 811, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 397 => - array ( - 'id' => 398, - 'form_id' => 813, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 398 => - array ( - 'id' => 399, - 'form_id' => 814, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 399 => - array ( - 'id' => 400, - 'form_id' => 815, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 400 => - array ( - 'id' => 401, - 'form_id' => 816, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 401 => - array ( - 'id' => 402, - 'form_id' => 817, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 402 => - array ( - 'id' => 403, - 'form_id' => 822, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 403 => - array ( - 'id' => 404, - 'form_id' => 823, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 404 => - array ( - 'id' => 405, - 'form_id' => 824, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 405 => - array ( - 'id' => 406, - 'form_id' => 830, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 406 => - array ( - 'id' => 407, - 'form_id' => 831, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 407 => - array ( - 'id' => 408, - 'form_id' => 833, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 408 => - array ( - 'id' => 409, - 'form_id' => 836, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 409 => - array ( - 'id' => 410, - 'form_id' => 837, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 410 => - array ( - 'id' => 411, - 'form_id' => 838, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 411 => - array ( - 'id' => 412, - 'form_id' => 839, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 412 => - array ( - 'id' => 413, - 'form_id' => 841, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 413 => - array ( - 'id' => 414, - 'form_id' => 845, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 414 => - array ( - 'id' => 415, - 'form_id' => 846, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 415 => - array ( - 'id' => 416, - 'form_id' => 850, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 416 => - array ( - 'id' => 417, - 'form_id' => 854, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 417 => - array ( - 'id' => 418, - 'form_id' => 855, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 418 => - array ( - 'id' => 419, - 'form_id' => 856, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 419 => - array ( - 'id' => 420, - 'form_id' => 858, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 420 => - array ( - 'id' => 421, - 'form_id' => 860, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 421 => - array ( - 'id' => 422, - 'form_id' => 862, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 422 => - array ( - 'id' => 423, - 'form_id' => 863, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 423 => - array ( - 'id' => 424, - 'form_id' => 865, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 424 => - array ( - 'id' => 425, - 'form_id' => 866, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 425 => - array ( - 'id' => 426, - 'form_id' => 867, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 426 => - array ( - 'id' => 427, - 'form_id' => 872, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 427 => - array ( - 'id' => 428, - 'form_id' => 873, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 428 => - array ( - 'id' => 429, - 'form_id' => 876, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 429 => - array ( - 'id' => 430, - 'form_id' => 878, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 430 => - array ( - 'id' => 431, - 'form_id' => 879, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 431 => - array ( - 'id' => 432, - 'form_id' => 879, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 432 => - array ( - 'id' => 433, - 'form_id' => 882, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 433 => - array ( - 'id' => 434, - 'form_id' => 885, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 434 => - array ( - 'id' => 435, - 'form_id' => 886, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 435 => - array ( - 'id' => 436, - 'form_id' => 887, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 436 => - array ( - 'id' => 437, - 'form_id' => 888, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 437 => - array ( - 'id' => 438, - 'form_id' => 890, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 438 => - array ( - 'id' => 439, - 'form_id' => 891, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 439 => - array ( - 'id' => 440, - 'form_id' => 892, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 440 => - array ( - 'id' => 441, - 'form_id' => 893, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 441 => - array ( - 'id' => 442, - 'form_id' => 894, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 442 => - array ( - 'id' => 443, - 'form_id' => 895, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 443 => - array ( - 'id' => 444, - 'form_id' => 896, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 444 => - array ( - 'id' => 445, - 'form_id' => 897, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 445 => - array ( - 'id' => 446, - 'form_id' => 898, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 446 => - array ( - 'id' => 447, - 'form_id' => 899, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 447 => - array ( - 'id' => 448, - 'form_id' => 900, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 448 => - array ( - 'id' => 449, - 'form_id' => 901, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 449 => - array ( - 'id' => 450, - 'form_id' => 902, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 450 => - array ( - 'id' => 451, - 'form_id' => 903, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 451 => - array ( - 'id' => 452, - 'form_id' => 904, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 452 => - array ( - 'id' => 453, - 'form_id' => 905, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 453 => - array ( - 'id' => 454, - 'form_id' => 906, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 454 => - array ( - 'id' => 455, - 'form_id' => 907, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 455 => - array ( - 'id' => 456, - 'form_id' => 908, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 456 => - array ( - 'id' => 457, - 'form_id' => 909, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 457 => - array ( - 'id' => 458, - 'form_id' => 910, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 458 => - array ( - 'id' => 459, - 'form_id' => 911, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 459 => - array ( - 'id' => 460, - 'form_id' => 912, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 460 => - array ( - 'id' => 461, - 'form_id' => 913, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 461 => - array ( - 'id' => 462, - 'form_id' => 917, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 462 => - array ( - 'id' => 463, - 'form_id' => 918, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 463 => - array ( - 'id' => 464, - 'form_id' => 919, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 464 => - array ( - 'id' => 465, - 'form_id' => 921, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 465 => - array ( - 'id' => 466, - 'form_id' => 922, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 466 => - array ( - 'id' => 467, - 'form_id' => 923, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 467 => - array ( - 'id' => 468, - 'form_id' => 924, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 468 => - array ( - 'id' => 469, - 'form_id' => 925, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 469 => - array ( - 'id' => 470, - 'form_id' => 926, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 470 => - array ( - 'id' => 471, - 'form_id' => 932, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 471 => - array ( - 'id' => 472, - 'form_id' => 933, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 472 => - array ( - 'id' => 473, - 'form_id' => 934, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 473 => - array ( - 'id' => 474, - 'form_id' => 935, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 474 => - array ( - 'id' => 475, - 'form_id' => 937, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 475 => - array ( - 'id' => 476, - 'form_id' => 938, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 476 => - array ( - 'id' => 477, - 'form_id' => 939, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 477 => - array ( - 'id' => 478, - 'form_id' => 940, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 478 => - array ( - 'id' => 479, - 'form_id' => 941, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 479 => - array ( - 'id' => 480, - 'form_id' => 942, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 480 => - array ( - 'id' => 481, - 'form_id' => 943, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 481 => - array ( - 'id' => 482, - 'form_id' => 944, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 482 => - array ( - 'id' => 483, - 'form_id' => 960, - 'form_location_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 483 => - array ( - 'id' => 484, - 'form_id' => 960, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 484 => - array ( - 'id' => 485, - 'form_id' => 961, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 485 => - array ( - 'id' => 486, - 'form_id' => 963, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 486 => - array ( - 'id' => 487, - 'form_id' => 965, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 487 => - array ( - 'id' => 488, - 'form_id' => 966, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 488 => - array ( - 'id' => 489, - 'form_id' => 967, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 489 => - array ( - 'id' => 490, - 'form_id' => 968, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 490 => - array ( - 'id' => 491, - 'form_id' => 969, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 491 => - array ( - 'id' => 492, - 'form_id' => 970, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 492 => - array ( - 'id' => 493, - 'form_id' => 971, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 493 => - array ( - 'id' => 494, - 'form_id' => 972, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 494 => - array ( - 'id' => 495, - 'form_id' => 973, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 495 => - array ( - 'id' => 496, - 'form_id' => 976, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 496 => - array ( - 'id' => 497, - 'form_id' => 977, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 497 => - array ( - 'id' => 498, - 'form_id' => 978, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 498 => - array ( - 'id' => 499, - 'form_id' => 979, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 499 => - array ( - 'id' => 500, - 'form_id' => 980, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), + + DB::table('form_form_location')->truncate(); + + DB::table('form_form_location')->insert(array( + ['form_id' => 7, 'form_location_id' => 1], + ['form_id' => 7, 'form_location_id' => 4], + ['form_id' => 8, 'form_location_id' => 4], + ['form_id' => 9, 'form_location_id' => 4], + ['form_id' => 10, 'form_location_id' => 4], + ['form_id' => 11, 'form_location_id' => 4], + ['form_id' => 12, 'form_location_id' => 4], + ['form_id' => 13, 'form_location_id' => 4], + ['form_id' => 15, 'form_location_id' => 4], + ['form_id' => 16, 'form_location_id' => 4], + ['form_id' => 18, 'form_location_id' => 4], + ['form_id' => 19, 'form_location_id' => 1], + ['form_id' => 19, 'form_location_id' => 4], + ['form_id' => 20, 'form_location_id' => 4], + ['form_id' => 21, 'form_location_id' => 4], + ['form_id' => 22, 'form_location_id' => 4], + ['form_id' => 24, 'form_location_id' => 4], + ['form_id' => 25, 'form_location_id' => 4], + ['form_id' => 26, 'form_location_id' => 4], + ['form_id' => 27, 'form_location_id' => 4], + ['form_id' => 28, 'form_location_id' => 4], + ['form_id' => 29, 'form_location_id' => 4], + ['form_id' => 32, 'form_location_id' => 4], + ['form_id' => 35, 'form_location_id' => 1], + ['form_id' => 35, 'form_location_id' => 4], + ['form_id' => 36, 'form_location_id' => 4], + ['form_id' => 37, 'form_location_id' => 4], + ['form_id' => 39, 'form_location_id' => 4], + ['form_id' => 39, 'form_location_id' => 1], + ['form_id' => 41, 'form_location_id' => 4], + ['form_id' => 42, 'form_location_id' => 4], + ['form_id' => 43, 'form_location_id' => 1], + ['form_id' => 43, 'form_location_id' => 4], + ['form_id' => 44, 'form_location_id' => 4], + ['form_id' => 45, 'form_location_id' => 4], + ['form_id' => 46, 'form_location_id' => 4], + ['form_id' => 47, 'form_location_id' => 4], + ['form_id' => 48, 'form_location_id' => 4], + ['form_id' => 49, 'form_location_id' => 1], + ['form_id' => 49, 'form_location_id' => 4], + ['form_id' => 51, 'form_location_id' => 4], + ['form_id' => 52, 'form_location_id' => 4], + ['form_id' => 53, 'form_location_id' => 4], + ['form_id' => 55, 'form_location_id' => 4], + ['form_id' => 56, 'form_location_id' => 4], + ['form_id' => 57, 'form_location_id' => 4], + ['form_id' => 58, 'form_location_id' => 4], + ['form_id' => 59, 'form_location_id' => 4], + ['form_id' => 60, 'form_location_id' => 4], + ['form_id' => 61, 'form_location_id' => 1], + ['form_id' => 86, 'form_location_id' => 1], + ['form_id' => 87, 'form_location_id' => 1], + ['form_id' => 88, 'form_location_id' => 1], + ['form_id' => 90, 'form_location_id' => 1], + ['form_id' => 91, 'form_location_id' => 1], + ['form_id' => 92, 'form_location_id' => 1], + ['form_id' => 93, 'form_location_id' => 1], + ['form_id' => 94, 'form_location_id' => 1], + ['form_id' => 94, 'form_location_id' => 4], + ['form_id' => 95, 'form_location_id' => 1], + ['form_id' => 96, 'form_location_id' => 1], + ['form_id' => 99, 'form_location_id' => 1], + ['form_id' => 100, 'form_location_id' => 1], + ['form_id' => 154, 'form_location_id' => 5], + ['form_id' => 155, 'form_location_id' => 5], + ['form_id' => 156, 'form_location_id' => 5], + ['form_id' => 157, 'form_location_id' => 5], + ['form_id' => 158, 'form_location_id' => 5], + ['form_id' => 159, 'form_location_id' => 5], + ['form_id' => 160, 'form_location_id' => 1], + ['form_id' => 160, 'form_location_id' => 5], + ['form_id' => 161, 'form_location_id' => 5], + ['form_id' => 163, 'form_location_id' => 5], + ['form_id' => 164, 'form_location_id' => 5], + ['form_id' => 165, 'form_location_id' => 5], + ['form_id' => 166, 'form_location_id' => 5], + ['form_id' => 173, 'form_location_id' => 5], + ['form_id' => 174, 'form_location_id' => 5], + ['form_id' => 175, 'form_location_id' => 5], + ['form_id' => 177, 'form_location_id' => 5], + ['form_id' => 178, 'form_location_id' => 5], + ['form_id' => 184, 'form_location_id' => 5], + ['form_id' => 185, 'form_location_id' => 5], + ['form_id' => 187, 'form_location_id' => 5], + ['form_id' => 193, 'form_location_id' => 5], + ['form_id' => 195, 'form_location_id' => 5], + ['form_id' => 197, 'form_location_id' => 5], + ['form_id' => 198, 'form_location_id' => 5], + ['form_id' => 199, 'form_location_id' => 5], + ['form_id' => 200, 'form_location_id' => 5], + ['form_id' => 201, 'form_location_id' => 5], + ['form_id' => 206, 'form_location_id' => 5], + ['form_id' => 207, 'form_location_id' => 1], + ['form_id' => 207, 'form_location_id' => 5], + ['form_id' => 208, 'form_location_id' => 1], + ['form_id' => 208, 'form_location_id' => 5], + ['form_id' => 209, 'form_location_id' => 5], + ['form_id' => 210, 'form_location_id' => 5], + ['form_id' => 211, 'form_location_id' => 5], + ['form_id' => 212, 'form_location_id' => 5], + ['form_id' => 214, 'form_location_id' => 5], + ['form_id' => 215, 'form_location_id' => 5], + ['form_id' => 216, 'form_location_id' => 5], + ['form_id' => 218, 'form_location_id' => 5], + ['form_id' => 219, 'form_location_id' => 1], + ['form_id' => 219, 'form_location_id' => 5], + ['form_id' => 220, 'form_location_id' => 1], + ['form_id' => 220, 'form_location_id' => 5], + ['form_id' => 221, 'form_location_id' => 5], + ['form_id' => 222, 'form_location_id' => 5], + ['form_id' => 225, 'form_location_id' => 5], + ['form_id' => 226, 'form_location_id' => 5], + ['form_id' => 227, 'form_location_id' => 5], + ['form_id' => 228, 'form_location_id' => 1], + ['form_id' => 228, 'form_location_id' => 5], + ['form_id' => 229, 'form_location_id' => 5], + ['form_id' => 231, 'form_location_id' => 1], + ['form_id' => 231, 'form_location_id' => 5], + ['form_id' => 232, 'form_location_id' => 5], + ['form_id' => 234, 'form_location_id' => 5], + ['form_id' => 237, 'form_location_id' => 5], + ['form_id' => 238, 'form_location_id' => 5], + ['form_id' => 242, 'form_location_id' => 5], + ['form_id' => 244, 'form_location_id' => 5], + ['form_id' => 259, 'form_location_id' => 5], + ['form_id' => 260, 'form_location_id' => 5], + ['form_id' => 261, 'form_location_id' => 5], + ['form_id' => 262, 'form_location_id' => 5], + ['form_id' => 263, 'form_location_id' => 5], + ['form_id' => 269, 'form_location_id' => 5], + ['form_id' => 270, 'form_location_id' => 5], + ['form_id' => 271, 'form_location_id' => 5], + ['form_id' => 290, 'form_location_id' => 5], + ['form_id' => 325, 'form_location_id' => 5], + ['form_id' => 327, 'form_location_id' => 5], + ['form_id' => 329, 'form_location_id' => 5], + ['form_id' => 330, 'form_location_id' => 5], + ['form_id' => 331, 'form_location_id' => 5], + ['form_id' => 332, 'form_location_id' => 5], + ['form_id' => 333, 'form_location_id' => 5], + ['form_id' => 334, 'form_location_id' => 5], + ['form_id' => 335, 'form_location_id' => 5], + ['form_id' => 336, 'form_location_id' => 5], + ['form_id' => 337, 'form_location_id' => 5], + ['form_id' => 345, 'form_location_id' => 5], + ['form_id' => 346, 'form_location_id' => 5], + ['form_id' => 351, 'form_location_id' => 5], + ['form_id' => 353, 'form_location_id' => 5], + ['form_id' => 357, 'form_location_id' => 5], + ['form_id' => 380, 'form_location_id' => 5], + ['form_id' => 381, 'form_location_id' => 1], + ['form_id' => 381, 'form_location_id' => 5], + ['form_id' => 386, 'form_location_id' => 5], + ['form_id' => 402, 'form_location_id' => 4], + ['form_id' => 403, 'form_location_id' => 4], + ['form_id' => 404, 'form_location_id' => 4], + ['form_id' => 405, 'form_location_id' => 4], + ['form_id' => 407, 'form_location_id' => 4], + ['form_id' => 408, 'form_location_id' => 4], + ['form_id' => 409, 'form_location_id' => 4], + ['form_id' => 410, 'form_location_id' => 4], + ['form_id' => 411, 'form_location_id' => 4], + ['form_id' => 412, 'form_location_id' => 4], + ['form_id' => 414, 'form_location_id' => 4], + ['form_id' => 415, 'form_location_id' => 4], + ['form_id' => 416, 'form_location_id' => 4], + ['form_id' => 417, 'form_location_id' => 4], + ['form_id' => 418, 'form_location_id' => 4], + ['form_id' => 422, 'form_location_id' => 4], + ['form_id' => 423, 'form_location_id' => 4], + ['form_id' => 424, 'form_location_id' => 4], + ['form_id' => 430, 'form_location_id' => 4], + ['form_id' => 431, 'form_location_id' => 4], + ['form_id' => 432, 'form_location_id' => 4], + ['form_id' => 433, 'form_location_id' => 4], + ['form_id' => 434, 'form_location_id' => 4], + ['form_id' => 435, 'form_location_id' => 4], + ['form_id' => 436, 'form_location_id' => 4], + ['form_id' => 437, 'form_location_id' => 4], + ['form_id' => 438, 'form_location_id' => 4], + ['form_id' => 439, 'form_location_id' => 4], + ['form_id' => 440, 'form_location_id' => 4], + ['form_id' => 441, 'form_location_id' => 4], + ['form_id' => 442, 'form_location_id' => 4], + ['form_id' => 444, 'form_location_id' => 4], + ['form_id' => 445, 'form_location_id' => 4], + ['form_id' => 446, 'form_location_id' => 4], + ['form_id' => 447, 'form_location_id' => 4], + ['form_id' => 449, 'form_location_id' => 4], + ['form_id' => 450, 'form_location_id' => 4], + ['form_id' => 451, 'form_location_id' => 4], + ['form_id' => 455, 'form_location_id' => 4], + ['form_id' => 456, 'form_location_id' => 4], + ['form_id' => 457, 'form_location_id' => 4], + ['form_id' => 458, 'form_location_id' => 4], + ['form_id' => 459, 'form_location_id' => 4], + ['form_id' => 460, 'form_location_id' => 4], + ['form_id' => 461, 'form_location_id' => 4], + ['form_id' => 463, 'form_location_id' => 4], + ['form_id' => 464, 'form_location_id' => 4], + ['form_id' => 466, 'form_location_id' => 4], + ['form_id' => 467, 'form_location_id' => 4], + ['form_id' => 468, 'form_location_id' => 4], + ['form_id' => 469, 'form_location_id' => 4], + ['form_id' => 470, 'form_location_id' => 4], + ['form_id' => 471, 'form_location_id' => 4], + ['form_id' => 472, 'form_location_id' => 4], + ['form_id' => 473, 'form_location_id' => 4], + ['form_id' => 474, 'form_location_id' => 4], + ['form_id' => 475, 'form_location_id' => 4], + ['form_id' => 476, 'form_location_id' => 4], + ['form_id' => 477, 'form_location_id' => 4], + ['form_id' => 478, 'form_location_id' => 4], + ['form_id' => 480, 'form_location_id' => 4], + ['form_id' => 481, 'form_location_id' => 4], + ['form_id' => 482, 'form_location_id' => 4], + ['form_id' => 483, 'form_location_id' => 4], + ['form_id' => 484, 'form_location_id' => 4], + ['form_id' => 485, 'form_location_id' => 4], + ['form_id' => 488, 'form_location_id' => 4], + ['form_id' => 489, 'form_location_id' => 4], + ['form_id' => 490, 'form_location_id' => 4], + ['form_id' => 491, 'form_location_id' => 4], + ['form_id' => 493, 'form_location_id' => 4], + ['form_id' => 494, 'form_location_id' => 4], + ['form_id' => 495, 'form_location_id' => 4], + ['form_id' => 496, 'form_location_id' => 4], + ['form_id' => 498, 'form_location_id' => 4], + ['form_id' => 499, 'form_location_id' => 4], + ['form_id' => 500, 'form_location_id' => 4], + ['form_id' => 501, 'form_location_id' => 4], + ['form_id' => 502, 'form_location_id' => 4], + ['form_id' => 503, 'form_location_id' => 4], + ['form_id' => 504, 'form_location_id' => 4], + ['form_id' => 505, 'form_location_id' => 4], + ['form_id' => 506, 'form_location_id' => 4], + ['form_id' => 507, 'form_location_id' => 4], + ['form_id' => 508, 'form_location_id' => 4], + ['form_id' => 509, 'form_location_id' => 4], + ['form_id' => 510, 'form_location_id' => 4], + ['form_id' => 511, 'form_location_id' => 4], + ['form_id' => 512, 'form_location_id' => 4], + ['form_id' => 513, 'form_location_id' => 4], + ['form_id' => 514, 'form_location_id' => 4], + ['form_id' => 515, 'form_location_id' => 4], + ['form_id' => 516, 'form_location_id' => 4], + ['form_id' => 518, 'form_location_id' => 4], + ['form_id' => 519, 'form_location_id' => 4], + ['form_id' => 520, 'form_location_id' => 4], + ['form_id' => 529, 'form_location_id' => 4], + ['form_id' => 530, 'form_location_id' => 4], + ['form_id' => 531, 'form_location_id' => 4], + ['form_id' => 535, 'form_location_id' => 4], + ['form_id' => 537, 'form_location_id' => 4], + ['form_id' => 538, 'form_location_id' => 4], + ['form_id' => 540, 'form_location_id' => 4], + ['form_id' => 541, 'form_location_id' => 4], + ['form_id' => 542, 'form_location_id' => 4], + ['form_id' => 544, 'form_location_id' => 4], + ['form_id' => 545, 'form_location_id' => 4], + ['form_id' => 546, 'form_location_id' => 4], + ['form_id' => 548, 'form_location_id' => 4], + ['form_id' => 550, 'form_location_id' => 4], + ['form_id' => 551, 'form_location_id' => 4], + ['form_id' => 552, 'form_location_id' => 4], + ['form_id' => 553, 'form_location_id' => 4], + ['form_id' => 554, 'form_location_id' => 4], + ['form_id' => 555, 'form_location_id' => 4], + ['form_id' => 557, 'form_location_id' => 4], + ['form_id' => 558, 'form_location_id' => 4], + ['form_id' => 560, 'form_location_id' => 4], + ['form_id' => 561, 'form_location_id' => 4], + ['form_id' => 567, 'form_location_id' => 4], + ['form_id' => 568, 'form_location_id' => 4], + ['form_id' => 569, 'form_location_id' => 4], + ['form_id' => 570, 'form_location_id' => 4], + ['form_id' => 572, 'form_location_id' => 4], + ['form_id' => 575, 'form_location_id' => 4], + ['form_id' => 577, 'form_location_id' => 4], + ['form_id' => 579, 'form_location_id' => 4], + ['form_id' => 580, 'form_location_id' => 4], + ['form_id' => 581, 'form_location_id' => 4], + ['form_id' => 583, 'form_location_id' => 4], + ['form_id' => 585, 'form_location_id' => 4], + ['form_id' => 586, 'form_location_id' => 4], + ['form_id' => 587, 'form_location_id' => 4], + ['form_id' => 589, 'form_location_id' => 4], + ['form_id' => 590, 'form_location_id' => 4], + ['form_id' => 591, 'form_location_id' => 4], + ['form_id' => 594, 'form_location_id' => 4], + ['form_id' => 596, 'form_location_id' => 4], + ['form_id' => 598, 'form_location_id' => 4], + ['form_id' => 608, 'form_location_id' => 4], + ['form_id' => 609, 'form_location_id' => 4], + ['form_id' => 610, 'form_location_id' => 4], + ['form_id' => 613, 'form_location_id' => 4], + ['form_id' => 614, 'form_location_id' => 4], + ['form_id' => 615, 'form_location_id' => 4], + ['form_id' => 616, 'form_location_id' => 4], + ['form_id' => 617, 'form_location_id' => 4], + ['form_id' => 618, 'form_location_id' => 4], + ['form_id' => 619, 'form_location_id' => 4], + ['form_id' => 622, 'form_location_id' => 4], + ['form_id' => 629, 'form_location_id' => 4], + ['form_id' => 630, 'form_location_id' => 4], + ['form_id' => 635, 'form_location_id' => 4], + ['form_id' => 636, 'form_location_id' => 4], + ['form_id' => 638, 'form_location_id' => 4], + ['form_id' => 640, 'form_location_id' => 4], + ['form_id' => 641, 'form_location_id' => 4], + ['form_id' => 642, 'form_location_id' => 4], + ['form_id' => 643, 'form_location_id' => 4], + ['form_id' => 644, 'form_location_id' => 4], + ['form_id' => 645, 'form_location_id' => 4], + ['form_id' => 648, 'form_location_id' => 4], + ['form_id' => 650, 'form_location_id' => 4], + ['form_id' => 651, 'form_location_id' => 4], + ['form_id' => 652, 'form_location_id' => 4], + ['form_id' => 653, 'form_location_id' => 4], + ['form_id' => 654, 'form_location_id' => 4], + ['form_id' => 655, 'form_location_id' => 4], + ['form_id' => 691, 'form_location_id' => 4], + ['form_id' => 692, 'form_location_id' => 4], + ['form_id' => 693, 'form_location_id' => 4], + ['form_id' => 694, 'form_location_id' => 4], + ['form_id' => 695, 'form_location_id' => 4], + ['form_id' => 696, 'form_location_id' => 4], + ['form_id' => 697, 'form_location_id' => 4], + ['form_id' => 698, 'form_location_id' => 4], + ['form_id' => 699, 'form_location_id' => 4], + ['form_id' => 706, 'form_location_id' => 4], + ['form_id' => 707, 'form_location_id' => 4], + ['form_id' => 708, 'form_location_id' => 4], + ['form_id' => 709, 'form_location_id' => 4], + ['form_id' => 710, 'form_location_id' => 4], + ['form_id' => 711, 'form_location_id' => 4], + ['form_id' => 712, 'form_location_id' => 4], + ['form_id' => 713, 'form_location_id' => 4], + ['form_id' => 714, 'form_location_id' => 4], + ['form_id' => 717, 'form_location_id' => 4], + ['form_id' => 720, 'form_location_id' => 4], + ['form_id' => 723, 'form_location_id' => 4], + ['form_id' => 726, 'form_location_id' => 4], + ['form_id' => 729, 'form_location_id' => 4], + ['form_id' => 733, 'form_location_id' => 4], + ['form_id' => 734, 'form_location_id' => 4], + ['form_id' => 741, 'form_location_id' => 4], + ['form_id' => 746, 'form_location_id' => 4], + ['form_id' => 747, 'form_location_id' => 4], + ['form_id' => 748, 'form_location_id' => 4], + ['form_id' => 754, 'form_location_id' => 4], + ['form_id' => 757, 'form_location_id' => 4], + ['form_id' => 758, 'form_location_id' => 4], + ['form_id' => 759, 'form_location_id' => 4], + ['form_id' => 760, 'form_location_id' => 4], + ['form_id' => 761, 'form_location_id' => 4], + ['form_id' => 762, 'form_location_id' => 4], + ['form_id' => 763, 'form_location_id' => 4], + ['form_id' => 764, 'form_location_id' => 4], + ['form_id' => 765, 'form_location_id' => 4], + ['form_id' => 766, 'form_location_id' => 4], + ['form_id' => 768, 'form_location_id' => 4], + ['form_id' => 769, 'form_location_id' => 4], + ['form_id' => 770, 'form_location_id' => 4], + ['form_id' => 771, 'form_location_id' => 4], + ['form_id' => 772, 'form_location_id' => 4], + ['form_id' => 773, 'form_location_id' => 4], + ['form_id' => 774, 'form_location_id' => 4], + ['form_id' => 775, 'form_location_id' => 4], + ['form_id' => 776, 'form_location_id' => 4], + ['form_id' => 777, 'form_location_id' => 4], + ['form_id' => 778, 'form_location_id' => 4], + ['form_id' => 779, 'form_location_id' => 4], + ['form_id' => 780, 'form_location_id' => 4], + ['form_id' => 781, 'form_location_id' => 4], + ['form_id' => 782, 'form_location_id' => 4], + ['form_id' => 783, 'form_location_id' => 4], + ['form_id' => 787, 'form_location_id' => 4], + ['form_id' => 788, 'form_location_id' => 4], + ['form_id' => 789, 'form_location_id' => 4], + ['form_id' => 790, 'form_location_id' => 4], + ['form_id' => 791, 'form_location_id' => 4], + ['form_id' => 792, 'form_location_id' => 4], + ['form_id' => 793, 'form_location_id' => 4], + ['form_id' => 795, 'form_location_id' => 4], + ['form_id' => 796, 'form_location_id' => 4], + ['form_id' => 797, 'form_location_id' => 4], + ['form_id' => 798, 'form_location_id' => 4], + ['form_id' => 799, 'form_location_id' => 4], + ['form_id' => 800, 'form_location_id' => 4], + ['form_id' => 801, 'form_location_id' => 4], + ['form_id' => 802, 'form_location_id' => 4], + ['form_id' => 806, 'form_location_id' => 4], + ['form_id' => 807, 'form_location_id' => 4], + ['form_id' => 809, 'form_location_id' => 1], + ['form_id' => 809, 'form_location_id' => 4], + ['form_id' => 811, 'form_location_id' => 4], + ['form_id' => 813, 'form_location_id' => 4], + ['form_id' => 814, 'form_location_id' => 4], + ['form_id' => 815, 'form_location_id' => 4], + ['form_id' => 816, 'form_location_id' => 4], + ['form_id' => 817, 'form_location_id' => 4], + ['form_id' => 822, 'form_location_id' => 4], + ['form_id' => 823, 'form_location_id' => 4], + ['form_id' => 824, 'form_location_id' => 4], + ['form_id' => 830, 'form_location_id' => 4], + ['form_id' => 831, 'form_location_id' => 4], + ['form_id' => 833, 'form_location_id' => 4], + ['form_id' => 836, 'form_location_id' => 4], + ['form_id' => 837, 'form_location_id' => 4], + ['form_id' => 838, 'form_location_id' => 4], + ['form_id' => 839, 'form_location_id' => 4], + ['form_id' => 841, 'form_location_id' => 4], + ['form_id' => 845, 'form_location_id' => 4], + ['form_id' => 846, 'form_location_id' => 4], + ['form_id' => 850, 'form_location_id' => 4], + ['form_id' => 854, 'form_location_id' => 4], + ['form_id' => 855, 'form_location_id' => 4], + ['form_id' => 856, 'form_location_id' => 4], + ['form_id' => 858, 'form_location_id' => 4], + ['form_id' => 860, 'form_location_id' => 4], + ['form_id' => 862, 'form_location_id' => 4], + ['form_id' => 863, 'form_location_id' => 4], + ['form_id' => 865, 'form_location_id' => 4], + ['form_id' => 866, 'form_location_id' => 4], + ['form_id' => 867, 'form_location_id' => 4], + ['form_id' => 872, 'form_location_id' => 4], + ['form_id' => 873, 'form_location_id' => 4], + ['form_id' => 876, 'form_location_id' => 4], + ['form_id' => 878, 'form_location_id' => 4], + ['form_id' => 879, 'form_location_id' => 4], + ['form_id' => 879, 'form_location_id' => 5], + ['form_id' => 882, 'form_location_id' => 4], + ['form_id' => 885, 'form_location_id' => 4], + ['form_id' => 886, 'form_location_id' => 4], + ['form_id' => 887, 'form_location_id' => 4], + ['form_id' => 888, 'form_location_id' => 4], + ['form_id' => 890, 'form_location_id' => 4], + ['form_id' => 891, 'form_location_id' => 4], + ['form_id' => 892, 'form_location_id' => 4], + ['form_id' => 893, 'form_location_id' => 4], + ['form_id' => 894, 'form_location_id' => 4], + ['form_id' => 895, 'form_location_id' => 4], + ['form_id' => 896, 'form_location_id' => 4], + ['form_id' => 897, 'form_location_id' => 4], + ['form_id' => 898, 'form_location_id' => 4], + ['form_id' => 899, 'form_location_id' => 4], + ['form_id' => 900, 'form_location_id' => 4], + ['form_id' => 901, 'form_location_id' => 4], + ['form_id' => 902, 'form_location_id' => 4], + ['form_id' => 903, 'form_location_id' => 4], + ['form_id' => 904, 'form_location_id' => 4], + ['form_id' => 905, 'form_location_id' => 4], + ['form_id' => 906, 'form_location_id' => 4], + ['form_id' => 907, 'form_location_id' => 4], + ['form_id' => 908, 'form_location_id' => 4], + ['form_id' => 909, 'form_location_id' => 4], + ['form_id' => 910, 'form_location_id' => 4], + ['form_id' => 911, 'form_location_id' => 4], + ['form_id' => 912, 'form_location_id' => 4], + ['form_id' => 913, 'form_location_id' => 4], + ['form_id' => 917, 'form_location_id' => 4], + ['form_id' => 918, 'form_location_id' => 4], + ['form_id' => 919, 'form_location_id' => 4], + ['form_id' => 921, 'form_location_id' => 4], + ['form_id' => 922, 'form_location_id' => 4], + ['form_id' => 923, 'form_location_id' => 4], + ['form_id' => 924, 'form_location_id' => 4], + ['form_id' => 925, 'form_location_id' => 4], + ['form_id' => 926, 'form_location_id' => 4], + ['form_id' => 932, 'form_location_id' => 4], + ['form_id' => 933, 'form_location_id' => 4], + ['form_id' => 934, 'form_location_id' => 4], + ['form_id' => 935, 'form_location_id' => 4], + ['form_id' => 937, 'form_location_id' => 4], + ['form_id' => 938, 'form_location_id' => 4], + ['form_id' => 939, 'form_location_id' => 4], + ['form_id' => 940, 'form_location_id' => 4], + ['form_id' => 941, 'form_location_id' => 4], + ['form_id' => 942, 'form_location_id' => 4], + ['form_id' => 943, 'form_location_id' => 4], + ['form_id' => 944, 'form_location_id' => 4], + ['form_id' => 960, 'form_location_id' => 3], + ['form_id' => 960, 'form_location_id' => 4], + ['form_id' => 961, 'form_location_id' => 4], + ['form_id' => 963, 'form_location_id' => 4], + ['form_id' => 965, 'form_location_id' => 4], + ['form_id' => 966, 'form_location_id' => 4], + ['form_id' => 967, 'form_location_id' => 4], + ['form_id' => 968, 'form_location_id' => 4], + ['form_id' => 969, 'form_location_id' => 4], + ['form_id' => 970, 'form_location_id' => 4], + ['form_id' => 971, 'form_location_id' => 4], + ['form_id' => 972, 'form_location_id' => 4], + ['form_id' => 973, 'form_location_id' => 4], + ['form_id' => 976, 'form_location_id' => 4], + ['form_id' => 977, 'form_location_id' => 4], + ['form_id' => 978, 'form_location_id' => 4], + ['form_id' => 979, 'form_location_id' => 4], + ['form_id' => 980, 'form_location_id' => 4], )); - \DB::table('form_form_location')->insert(array ( - 0 => - array ( - 'id' => 501, - 'form_id' => 981, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 1 => - array ( - 'id' => 502, - 'form_id' => 982, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 2 => - array ( - 'id' => 503, - 'form_id' => 983, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 3 => - array ( - 'id' => 504, - 'form_id' => 984, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 4 => - array ( - 'id' => 505, - 'form_id' => 985, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 5 => - array ( - 'id' => 506, - 'form_id' => 987, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 6 => - array ( - 'id' => 507, - 'form_id' => 991, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 7 => - array ( - 'id' => 508, - 'form_id' => 992, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 8 => - array ( - 'id' => 509, - 'form_id' => 993, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 9 => - array ( - 'id' => 510, - 'form_id' => 994, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 10 => - array ( - 'id' => 511, - 'form_id' => 995, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 11 => - array ( - 'id' => 512, - 'form_id' => 996, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 12 => - array ( - 'id' => 513, - 'form_id' => 997, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 13 => - array ( - 'id' => 514, - 'form_id' => 998, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 14 => - array ( - 'id' => 515, - 'form_id' => 999, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 15 => - array ( - 'id' => 516, - 'form_id' => 1001, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 16 => - array ( - 'id' => 517, - 'form_id' => 1002, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 17 => - array ( - 'id' => 518, - 'form_id' => 1003, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 18 => - array ( - 'id' => 519, - 'form_id' => 1004, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 19 => - array ( - 'id' => 520, - 'form_id' => 1005, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 20 => - array ( - 'id' => 521, - 'form_id' => 1006, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 21 => - array ( - 'id' => 522, - 'form_id' => 1007, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 22 => - array ( - 'id' => 523, - 'form_id' => 1008, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 23 => - array ( - 'id' => 524, - 'form_id' => 1009, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 24 => - array ( - 'id' => 525, - 'form_id' => 1010, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 25 => - array ( - 'id' => 526, - 'form_id' => 1011, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 26 => - array ( - 'id' => 527, - 'form_id' => 1012, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 27 => - array ( - 'id' => 528, - 'form_id' => 1057, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 28 => - array ( - 'id' => 529, - 'form_id' => 1058, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 29 => - array ( - 'id' => 530, - 'form_id' => 1063, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 30 => - array ( - 'id' => 531, - 'form_id' => 1070, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 31 => - array ( - 'id' => 532, - 'form_id' => 1075, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 32 => - array ( - 'id' => 533, - 'form_id' => 1078, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 33 => - array ( - 'id' => 534, - 'form_id' => 1090, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 34 => - array ( - 'id' => 535, - 'form_id' => 1093, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 35 => - array ( - 'id' => 536, - 'form_id' => 1094, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 36 => - array ( - 'id' => 537, - 'form_id' => 1099, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 37 => - array ( - 'id' => 538, - 'form_id' => 1108, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 38 => - array ( - 'id' => 539, - 'form_id' => 1114, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 39 => - array ( - 'id' => 540, - 'form_id' => 1115, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 40 => - array ( - 'id' => 541, - 'form_id' => 1118, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 41 => - array ( - 'id' => 542, - 'form_id' => 1122, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 42 => - array ( - 'id' => 543, - 'form_id' => 1123, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 43 => - array ( - 'id' => 544, - 'form_id' => 1124, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 44 => - array ( - 'id' => 545, - 'form_id' => 1132, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 45 => - array ( - 'id' => 546, - 'form_id' => 1133, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 46 => - array ( - 'id' => 547, - 'form_id' => 1134, - 'form_location_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 47 => - array ( - 'id' => 548, - 'form_id' => 1134, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 48 => - array ( - 'id' => 549, - 'form_id' => 1136, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 49 => - array ( - 'id' => 550, - 'form_id' => 1139, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 50 => - array ( - 'id' => 551, - 'form_id' => 1140, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 51 => - array ( - 'id' => 552, - 'form_id' => 1144, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 52 => - array ( - 'id' => 553, - 'form_id' => 1153, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 53 => - array ( - 'id' => 554, - 'form_id' => 1154, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 54 => - array ( - 'id' => 555, - 'form_id' => 1155, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 55 => - array ( - 'id' => 556, - 'form_id' => 1156, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 56 => - array ( - 'id' => 557, - 'form_id' => 1163, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 57 => - array ( - 'id' => 558, - 'form_id' => 1193, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 58 => - array ( - 'id' => 559, - 'form_id' => 1208, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 59 => - array ( - 'id' => 560, - 'form_id' => 1211, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 60 => - array ( - 'id' => 561, - 'form_id' => 1216, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 61 => - array ( - 'id' => 562, - 'form_id' => 1218, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 62 => - array ( - 'id' => 563, - 'form_id' => 1225, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 63 => - array ( - 'id' => 564, - 'form_id' => 1232, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 64 => - array ( - 'id' => 565, - 'form_id' => 1237, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 65 => - array ( - 'id' => 566, - 'form_id' => 1252, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 66 => - array ( - 'id' => 567, - 'form_id' => 1253, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 67 => - array ( - 'id' => 568, - 'form_id' => 1254, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 68 => - array ( - 'id' => 569, - 'form_id' => 1255, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 69 => - array ( - 'id' => 570, - 'form_id' => 1256, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 70 => - array ( - 'id' => 571, - 'form_id' => 1259, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 71 => - array ( - 'id' => 572, - 'form_id' => 1262, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 72 => - array ( - 'id' => 573, - 'form_id' => 1284, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 73 => - array ( - 'id' => 574, - 'form_id' => 1288, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 74 => - array ( - 'id' => 575, - 'form_id' => 1289, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 75 => - array ( - 'id' => 576, - 'form_id' => 1291, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 76 => - array ( - 'id' => 577, - 'form_id' => 1316, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 77 => - array ( - 'id' => 578, - 'form_id' => 1343, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 78 => - array ( - 'id' => 579, - 'form_id' => 1344, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 79 => - array ( - 'id' => 580, - 'form_id' => 1363, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 80 => - array ( - 'id' => 581, - 'form_id' => 1373, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 81 => - array ( - 'id' => 582, - 'form_id' => 1402, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 82 => - array ( - 'id' => 583, - 'form_id' => 1403, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 83 => - array ( - 'id' => 584, - 'form_id' => 1404, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 84 => - array ( - 'id' => 585, - 'form_id' => 1408, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 85 => - array ( - 'id' => 586, - 'form_id' => 1410, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 86 => - array ( - 'id' => 587, - 'form_id' => 1411, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 87 => - array ( - 'id' => 588, - 'form_id' => 1412, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 88 => - array ( - 'id' => 589, - 'form_id' => 1413, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 89 => - array ( - 'id' => 590, - 'form_id' => 1414, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 90 => - array ( - 'id' => 591, - 'form_id' => 1418, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 91 => - array ( - 'id' => 592, - 'form_id' => 1421, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 92 => - array ( - 'id' => 593, - 'form_id' => 1422, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 93 => - array ( - 'id' => 594, - 'form_id' => 1423, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 94 => - array ( - 'id' => 595, - 'form_id' => 1425, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 95 => - array ( - 'id' => 596, - 'form_id' => 1429, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 96 => - array ( - 'id' => 597, - 'form_id' => 1431, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 97 => - array ( - 'id' => 598, - 'form_id' => 1440, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 98 => - array ( - 'id' => 599, - 'form_id' => 1441, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 99 => - array ( - 'id' => 600, - 'form_id' => 1444, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 100 => - array ( - 'id' => 601, - 'form_id' => 1445, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 101 => - array ( - 'id' => 602, - 'form_id' => 1458, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 102 => - array ( - 'id' => 603, - 'form_id' => 1459, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 103 => - array ( - 'id' => 604, - 'form_id' => 1465, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 104 => - array ( - 'id' => 605, - 'form_id' => 1479, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 105 => - array ( - 'id' => 606, - 'form_id' => 1491, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 106 => - array ( - 'id' => 607, - 'form_id' => 1492, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 107 => - array ( - 'id' => 608, - 'form_id' => 1494, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 108 => - array ( - 'id' => 609, - 'form_id' => 1495, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 109 => - array ( - 'id' => 610, - 'form_id' => 1504, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 110 => - array ( - 'id' => 611, - 'form_id' => 1505, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 111 => - array ( - 'id' => 612, - 'form_id' => 1506, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 112 => - array ( - 'id' => 613, - 'form_id' => 1507, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 113 => - array ( - 'id' => 614, - 'form_id' => 1508, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 114 => - array ( - 'id' => 615, - 'form_id' => 1511, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 115 => - array ( - 'id' => 616, - 'form_id' => 1514, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 116 => - array ( - 'id' => 617, - 'form_id' => 1515, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 117 => - array ( - 'id' => 618, - 'form_id' => 1531, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 118 => - array ( - 'id' => 619, - 'form_id' => 1534, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 119 => - array ( - 'id' => 620, - 'form_id' => 1535, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 120 => - array ( - 'id' => 621, - 'form_id' => 1538, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 121 => - array ( - 'id' => 622, - 'form_id' => 1539, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 122 => - array ( - 'id' => 623, - 'form_id' => 1575, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 123 => - array ( - 'id' => 624, - 'form_id' => 1576, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 124 => - array ( - 'id' => 625, - 'form_id' => 1577, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 125 => - array ( - 'id' => 626, - 'form_id' => 1579, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 126 => - array ( - 'id' => 627, - 'form_id' => 1581, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 127 => - array ( - 'id' => 628, - 'form_id' => 1583, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 128 => - array ( - 'id' => 629, - 'form_id' => 1585, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 129 => - array ( - 'id' => 630, - 'form_id' => 1586, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 130 => - array ( - 'id' => 631, - 'form_id' => 1591, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 131 => - array ( - 'id' => 632, - 'form_id' => 1595, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 132 => - array ( - 'id' => 633, - 'form_id' => 1598, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 133 => - array ( - 'id' => 634, - 'form_id' => 1600, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 134 => - array ( - 'id' => 635, - 'form_id' => 1605, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 135 => - array ( - 'id' => 636, - 'form_id' => 1606, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 136 => - array ( - 'id' => 637, - 'form_id' => 1608, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 137 => - array ( - 'id' => 638, - 'form_id' => 1612, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 138 => - array ( - 'id' => 639, - 'form_id' => 1613, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 139 => - array ( - 'id' => 640, - 'form_id' => 1614, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 140 => - array ( - 'id' => 641, - 'form_id' => 1616, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 141 => - array ( - 'id' => 642, - 'form_id' => 1617, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 142 => - array ( - 'id' => 643, - 'form_id' => 1618, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 143 => - array ( - 'id' => 644, - 'form_id' => 1620, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 144 => - array ( - 'id' => 645, - 'form_id' => 1624, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 145 => - array ( - 'id' => 646, - 'form_id' => 1627, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 146 => - array ( - 'id' => 647, - 'form_id' => 1628, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 147 => - array ( - 'id' => 648, - 'form_id' => 1629, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 148 => - array ( - 'id' => 649, - 'form_id' => 1630, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 149 => - array ( - 'id' => 650, - 'form_id' => 1632, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 150 => - array ( - 'id' => 651, - 'form_id' => 1636, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 151 => - array ( - 'id' => 652, - 'form_id' => 1637, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 152 => - array ( - 'id' => 653, - 'form_id' => 1639, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 153 => - array ( - 'id' => 654, - 'form_id' => 1643, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 154 => - array ( - 'id' => 655, - 'form_id' => 1644, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 155 => - array ( - 'id' => 656, - 'form_id' => 1653, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 156 => - array ( - 'id' => 657, - 'form_id' => 1664, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 157 => - array ( - 'id' => 658, - 'form_id' => 1668, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 158 => - array ( - 'id' => 659, - 'form_id' => 1669, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 159 => - array ( - 'id' => 660, - 'form_id' => 1671, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 160 => - array ( - 'id' => 661, - 'form_id' => 1677, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 161 => - array ( - 'id' => 662, - 'form_id' => 1678, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 162 => - array ( - 'id' => 663, - 'form_id' => 1679, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 163 => - array ( - 'id' => 664, - 'form_id' => 1680, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 164 => - array ( - 'id' => 665, - 'form_id' => 1682, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 165 => - array ( - 'id' => 666, - 'form_id' => 1683, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 166 => - array ( - 'id' => 667, - 'form_id' => 1684, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 167 => - array ( - 'id' => 668, - 'form_id' => 1686, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 168 => - array ( - 'id' => 669, - 'form_id' => 1687, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 169 => - array ( - 'id' => 670, - 'form_id' => 1688, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 170 => - array ( - 'id' => 671, - 'form_id' => 1689, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 171 => - array ( - 'id' => 672, - 'form_id' => 1692, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 172 => - array ( - 'id' => 673, - 'form_id' => 1693, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 173 => - array ( - 'id' => 674, - 'form_id' => 1695, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 174 => - array ( - 'id' => 675, - 'form_id' => 1696, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 175 => - array ( - 'id' => 676, - 'form_id' => 1697, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 176 => - array ( - 'id' => 677, - 'form_id' => 1698, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 177 => - array ( - 'id' => 678, - 'form_id' => 1700, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 178 => - array ( - 'id' => 679, - 'form_id' => 1727, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 179 => - array ( - 'id' => 680, - 'form_id' => 1768, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 180 => - array ( - 'id' => 681, - 'form_id' => 1769, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 181 => - array ( - 'id' => 682, - 'form_id' => 1770, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 182 => - array ( - 'id' => 683, - 'form_id' => 1771, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 183 => - array ( - 'id' => 684, - 'form_id' => 1772, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 184 => - array ( - 'id' => 685, - 'form_id' => 1773, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 185 => - array ( - 'id' => 686, - 'form_id' => 1777, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 186 => - array ( - 'id' => 687, - 'form_id' => 1780, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 187 => - array ( - 'id' => 688, - 'form_id' => 1781, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 188 => - array ( - 'id' => 689, - 'form_id' => 1782, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 189 => - array ( - 'id' => 690, - 'form_id' => 1783, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 190 => - array ( - 'id' => 691, - 'form_id' => 1791, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 191 => - array ( - 'id' => 692, - 'form_id' => 1792, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 192 => - array ( - 'id' => 693, - 'form_id' => 1795, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 193 => - array ( - 'id' => 694, - 'form_id' => 1796, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 194 => - array ( - 'id' => 695, - 'form_id' => 1797, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 195 => - array ( - 'id' => 696, - 'form_id' => 1798, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 196 => - array ( - 'id' => 697, - 'form_id' => 1799, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 197 => - array ( - 'id' => 698, - 'form_id' => 1800, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 198 => - array ( - 'id' => 699, - 'form_id' => 1802, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 199 => - array ( - 'id' => 700, - 'form_id' => 1804, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 200 => - array ( - 'id' => 701, - 'form_id' => 1805, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 201 => - array ( - 'id' => 702, - 'form_id' => 1806, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 202 => - array ( - 'id' => 703, - 'form_id' => 1813, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 203 => - array ( - 'id' => 704, - 'form_id' => 1814, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 204 => - array ( - 'id' => 705, - 'form_id' => 1815, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 205 => - array ( - 'id' => 706, - 'form_id' => 1816, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 206 => - array ( - 'id' => 707, - 'form_id' => 1817, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 207 => - array ( - 'id' => 708, - 'form_id' => 1818, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 208 => - array ( - 'id' => 709, - 'form_id' => 1831, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 209 => - array ( - 'id' => 710, - 'form_id' => 1832, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 210 => - array ( - 'id' => 711, - 'form_id' => 1833, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 211 => - array ( - 'id' => 712, - 'form_id' => 1834, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 212 => - array ( - 'id' => 713, - 'form_id' => 1835, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 213 => - array ( - 'id' => 714, - 'form_id' => 1836, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 214 => - array ( - 'id' => 715, - 'form_id' => 1839, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 215 => - array ( - 'id' => 716, - 'form_id' => 1840, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 216 => - array ( - 'id' => 717, - 'form_id' => 1841, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 217 => - array ( - 'id' => 718, - 'form_id' => 1842, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 218 => - array ( - 'id' => 719, - 'form_id' => 1844, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 219 => - array ( - 'id' => 720, - 'form_id' => 1845, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 220 => - array ( - 'id' => 721, - 'form_id' => 1850, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 221 => - array ( - 'id' => 722, - 'form_id' => 1867, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 222 => - array ( - 'id' => 723, - 'form_id' => 1868, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 223 => - array ( - 'id' => 724, - 'form_id' => 1869, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 224 => - array ( - 'id' => 725, - 'form_id' => 1870, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 225 => - array ( - 'id' => 726, - 'form_id' => 1873, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 226 => - array ( - 'id' => 727, - 'form_id' => 1874, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 227 => - array ( - 'id' => 728, - 'form_id' => 1879, - 'form_location_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 228 => - array ( - 'id' => 729, - 'form_id' => 1880, - 'form_location_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 229 => - array ( - 'id' => 730, - 'form_id' => 1881, - 'form_location_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 230 => - array ( - 'id' => 731, - 'form_id' => 1882, - 'form_location_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 231 => - array ( - 'id' => 732, - 'form_id' => 1887, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 232 => - array ( - 'id' => 733, - 'form_id' => 1888, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 233 => - array ( - 'id' => 734, - 'form_id' => 1890, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 234 => - array ( - 'id' => 735, - 'form_id' => 1891, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 235 => - array ( - 'id' => 736, - 'form_id' => 1892, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 236 => - array ( - 'id' => 737, - 'form_id' => 1893, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 237 => - array ( - 'id' => 738, - 'form_id' => 1894, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 238 => - array ( - 'id' => 739, - 'form_id' => 1897, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 239 => - array ( - 'id' => 740, - 'form_id' => 1903, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 240 => - array ( - 'id' => 741, - 'form_id' => 1910, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 241 => - array ( - 'id' => 742, - 'form_id' => 1926, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 242 => - array ( - 'id' => 743, - 'form_id' => 1927, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 243 => - array ( - 'id' => 744, - 'form_id' => 1928, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 244 => - array ( - 'id' => 745, - 'form_id' => 1929, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 245 => - array ( - 'id' => 746, - 'form_id' => 1930, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 246 => - array ( - 'id' => 747, - 'form_id' => 1935, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 247 => - array ( - 'id' => 748, - 'form_id' => 1936, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 248 => - array ( - 'id' => 749, - 'form_id' => 1948, - 'form_location_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 249 => - array ( - 'id' => 750, - 'form_id' => 1948, - 'form_location_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 250 => - array ( - 'id' => 751, - 'form_id' => 1962, - 'form_location_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 251 => - array ( - 'id' => 752, - 'form_id' => 1962, - 'form_location_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 252 => - array ( - 'id' => 753, - 'form_id' => 1971, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 253 => - array ( - 'id' => 754, - 'form_id' => 1972, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 254 => - array ( - 'id' => 755, - 'form_id' => 1974, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 255 => - array ( - 'id' => 756, - 'form_id' => 1976, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 256 => - array ( - 'id' => 757, - 'form_id' => 1979, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 257 => - array ( - 'id' => 758, - 'form_id' => 1980, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 258 => - array ( - 'id' => 759, - 'form_id' => 1981, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 259 => - array ( - 'id' => 760, - 'form_id' => 1982, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 260 => - array ( - 'id' => 761, - 'form_id' => 1984, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 261 => - array ( - 'id' => 762, - 'form_id' => 1991, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 262 => - array ( - 'id' => 763, - 'form_id' => 1992, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 263 => - array ( - 'id' => 764, - 'form_id' => 2006, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 264 => - array ( - 'id' => 765, - 'form_id' => 2009, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 265 => - array ( - 'id' => 766, - 'form_id' => 2010, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 266 => - array ( - 'id' => 767, - 'form_id' => 2011, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 267 => - array ( - 'id' => 768, - 'form_id' => 2012, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 268 => - array ( - 'id' => 769, - 'form_id' => 2013, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 269 => - array ( - 'id' => 770, - 'form_id' => 2024, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 270 => - array ( - 'id' => 771, - 'form_id' => 2028, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 271 => - array ( - 'id' => 772, - 'form_id' => 2029, - 'form_location_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 272 => - array ( - 'id' => 773, - 'form_id' => 2030, - 'form_location_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 273 => - array ( - 'id' => 774, - 'form_id' => 2049, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 274 => - array ( - 'id' => 775, - 'form_id' => 2049, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 275 => - array ( - 'id' => 776, - 'form_id' => 2050, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 276 => - array ( - 'id' => 777, - 'form_id' => 2050, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 277 => - array ( - 'id' => 778, - 'form_id' => 2057, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 278 => - array ( - 'id' => 779, - 'form_id' => 2066, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 279 => - array ( - 'id' => 780, - 'form_id' => 2067, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 280 => - array ( - 'id' => 781, - 'form_id' => 2068, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 281 => - array ( - 'id' => 782, - 'form_id' => 2069, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 282 => - array ( - 'id' => 783, - 'form_id' => 2028, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 283 => - array ( - 'id' => 784, - 'form_id' => 2029, - 'form_location_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 284 => - array ( - 'id' => 785, - 'form_id' => 2030, - 'form_location_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 285 => - array ( - 'id' => 786, - 'form_id' => 2049, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 286 => - array ( - 'id' => 787, - 'form_id' => 2049, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 287 => - array ( - 'id' => 788, - 'form_id' => 2050, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 288 => - array ( - 'id' => 789, - 'form_id' => 2050, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 289 => - array ( - 'id' => 790, - 'form_id' => 2057, - 'form_location_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 290 => - array ( - 'id' => 791, - 'form_id' => 2066, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 291 => - array ( - 'id' => 792, - 'form_id' => 2067, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 292 => - array ( - 'id' => 793, - 'form_id' => 2068, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 293 => - array ( - 'id' => 794, - 'form_id' => 2069, - 'form_location_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), + DB::table('form_form_location')->insert(array( + ['form_id' => 981, 'form_location_id' => 4], + ['form_id' => 982, 'form_location_id' => 4], + ['form_id' => 983, 'form_location_id' => 4], + ['form_id' => 984, 'form_location_id' => 4], + ['form_id' => 985, 'form_location_id' => 4], + ['form_id' => 987, 'form_location_id' => 4], + ['form_id' => 991, 'form_location_id' => 4], + ['form_id' => 992, 'form_location_id' => 4], + ['form_id' => 993, 'form_location_id' => 4], + ['form_id' => 994, 'form_location_id' => 4], + ['form_id' => 995, 'form_location_id' => 4], + ['form_id' => 996, 'form_location_id' => 4], + ['form_id' => 997, 'form_location_id' => 4], + ['form_id' => 998, 'form_location_id' => 4], + ['form_id' => 999, 'form_location_id' => 4], + ['form_id' => 1001, 'form_location_id' => 4], + ['form_id' => 1002, 'form_location_id' => 4], + ['form_id' => 1003, 'form_location_id' => 4], + ['form_id' => 1004, 'form_location_id' => 4], + ['form_id' => 1005, 'form_location_id' => 4], + ['form_id' => 1006, 'form_location_id' => 4], + ['form_id' => 1007, 'form_location_id' => 4], + ['form_id' => 1008, 'form_location_id' => 4], + ['form_id' => 1009, 'form_location_id' => 4], + ['form_id' => 1010, 'form_location_id' => 4], + ['form_id' => 1011, 'form_location_id' => 4], + ['form_id' => 1012, 'form_location_id' => 4], + ['form_id' => 1057, 'form_location_id' => 4], + ['form_id' => 1058, 'form_location_id' => 4], + ['form_id' => 1063, 'form_location_id' => 5], + ['form_id' => 1070, 'form_location_id' => 5], + ['form_id' => 1075, 'form_location_id' => 5], + ['form_id' => 1078, 'form_location_id' => 5], + ['form_id' => 1090, 'form_location_id' => 5], + ['form_id' => 1093, 'form_location_id' => 5], + ['form_id' => 1094, 'form_location_id' => 5], + ['form_id' => 1099, 'form_location_id' => 5], + ['form_id' => 1108, 'form_location_id' => 5], + ['form_id' => 1114, 'form_location_id' => 5], + ['form_id' => 1115, 'form_location_id' => 5], + ['form_id' => 1118, 'form_location_id' => 5], + ['form_id' => 1122, 'form_location_id' => 5], + ['form_id' => 1123, 'form_location_id' => 5], + ['form_id' => 1124, 'form_location_id' => 5], + ['form_id' => 1132, 'form_location_id' => 5], + ['form_id' => 1133, 'form_location_id' => 5], + ['form_id' => 1134, 'form_location_id' => 1], + ['form_id' => 1134, 'form_location_id' => 5], + ['form_id' => 1136, 'form_location_id' => 5], + ['form_id' => 1139, 'form_location_id' => 5], + ['form_id' => 1140, 'form_location_id' => 5], + ['form_id' => 1144, 'form_location_id' => 5], + ['form_id' => 1153, 'form_location_id' => 5], + ['form_id' => 1154, 'form_location_id' => 5], + ['form_id' => 1155, 'form_location_id' => 5], + ['form_id' => 1156, 'form_location_id' => 5], + ['form_id' => 1163, 'form_location_id' => 5], + ['form_id' => 1193, 'form_location_id' => 5], + ['form_id' => 1208, 'form_location_id' => 5], + ['form_id' => 1211, 'form_location_id' => 5], + ['form_id' => 1216, 'form_location_id' => 5], + ['form_id' => 1218, 'form_location_id' => 5], + ['form_id' => 1225, 'form_location_id' => 5], + ['form_id' => 1232, 'form_location_id' => 5], + ['form_id' => 1237, 'form_location_id' => 5], + ['form_id' => 1252, 'form_location_id' => 5], + ['form_id' => 1253, 'form_location_id' => 5], + ['form_id' => 1254, 'form_location_id' => 5], + ['form_id' => 1255, 'form_location_id' => 5], + ['form_id' => 1256, 'form_location_id' => 5], + ['form_id' => 1259, 'form_location_id' => 5], + ['form_id' => 1262, 'form_location_id' => 5], + ['form_id' => 1284, 'form_location_id' => 5], + ['form_id' => 1288, 'form_location_id' => 5], + ['form_id' => 1289, 'form_location_id' => 5], + ['form_id' => 1291, 'form_location_id' => 5], + ['form_id' => 1316, 'form_location_id' => 5], + ['form_id' => 1343, 'form_location_id' => 5], + ['form_id' => 1344, 'form_location_id' => 5], + ['form_id' => 1363, 'form_location_id' => 5], + ['form_id' => 1373, 'form_location_id' => 5], + ['form_id' => 1402, 'form_location_id' => 5], + ['form_id' => 1403, 'form_location_id' => 5], + ['form_id' => 1404, 'form_location_id' => 5], + ['form_id' => 1408, 'form_location_id' => 5], + ['form_id' => 1410, 'form_location_id' => 5], + ['form_id' => 1411, 'form_location_id' => 5], + ['form_id' => 1412, 'form_location_id' => 5], + ['form_id' => 1413, 'form_location_id' => 5], + ['form_id' => 1414, 'form_location_id' => 5], + ['form_id' => 1418, 'form_location_id' => 5], + ['form_id' => 1421, 'form_location_id' => 5], + ['form_id' => 1422, 'form_location_id' => 5], + ['form_id' => 1423, 'form_location_id' => 5], + ['form_id' => 1425, 'form_location_id' => 5], + ['form_id' => 1429, 'form_location_id' => 5], + ['form_id' => 1431, 'form_location_id' => 5], + ['form_id' => 1440, 'form_location_id' => 5], + ['form_id' => 1441, 'form_location_id' => 5], + ['form_id' => 1444, 'form_location_id' => 5], + ['form_id' => 1445, 'form_location_id' => 5], + ['form_id' => 1458, 'form_location_id' => 5], + ['form_id' => 1459, 'form_location_id' => 5], + ['form_id' => 1465, 'form_location_id' => 5], + ['form_id' => 1479, 'form_location_id' => 5], + ['form_id' => 1491, 'form_location_id' => 5], + ['form_id' => 1492, 'form_location_id' => 5], + ['form_id' => 1494, 'form_location_id' => 5], + ['form_id' => 1495, 'form_location_id' => 5], + ['form_id' => 1504, 'form_location_id' => 5], + ['form_id' => 1505, 'form_location_id' => 5], + ['form_id' => 1506, 'form_location_id' => 5], + ['form_id' => 1507, 'form_location_id' => 5], + ['form_id' => 1508, 'form_location_id' => 5], + ['form_id' => 1511, 'form_location_id' => 5], + ['form_id' => 1514, 'form_location_id' => 5], + ['form_id' => 1515, 'form_location_id' => 5], + ['form_id' => 1531, 'form_location_id' => 5], + ['form_id' => 1534, 'form_location_id' => 5], + ['form_id' => 1535, 'form_location_id' => 5], + ['form_id' => 1538, 'form_location_id' => 5], + ['form_id' => 1539, 'form_location_id' => 5], + ['form_id' => 1575, 'form_location_id' => 5], + ['form_id' => 1576, 'form_location_id' => 5], + ['form_id' => 1577, 'form_location_id' => 5], + ['form_id' => 1579, 'form_location_id' => 5], + ['form_id' => 1581, 'form_location_id' => 5], + ['form_id' => 1583, 'form_location_id' => 5], + ['form_id' => 1585, 'form_location_id' => 5], + ['form_id' => 1586, 'form_location_id' => 5], + ['form_id' => 1591, 'form_location_id' => 5], + ['form_id' => 1595, 'form_location_id' => 5], + ['form_id' => 1598, 'form_location_id' => 5], + ['form_id' => 1600, 'form_location_id' => 5], + ['form_id' => 1605, 'form_location_id' => 5], + ['form_id' => 1606, 'form_location_id' => 5], + ['form_id' => 1608, 'form_location_id' => 5], + ['form_id' => 1612, 'form_location_id' => 5], + ['form_id' => 1613, 'form_location_id' => 5], + ['form_id' => 1614, 'form_location_id' => 5], + ['form_id' => 1616, 'form_location_id' => 5], + ['form_id' => 1617, 'form_location_id' => 5], + ['form_id' => 1618, 'form_location_id' => 5], + ['form_id' => 1620, 'form_location_id' => 5], + ['form_id' => 1624, 'form_location_id' => 5], + ['form_id' => 1627, 'form_location_id' => 5], + ['form_id' => 1628, 'form_location_id' => 5], + ['form_id' => 1629, 'form_location_id' => 5], + ['form_id' => 1630, 'form_location_id' => 5], + ['form_id' => 1632, 'form_location_id' => 5], + ['form_id' => 1636, 'form_location_id' => 5], + ['form_id' => 1637, 'form_location_id' => 5], + ['form_id' => 1639, 'form_location_id' => 5], + ['form_id' => 1643, 'form_location_id' => 5], + ['form_id' => 1644, 'form_location_id' => 5], + ['form_id' => 1653, 'form_location_id' => 5], + ['form_id' => 1664, 'form_location_id' => 5], + ['form_id' => 1668, 'form_location_id' => 5], + ['form_id' => 1669, 'form_location_id' => 5], + ['form_id' => 1671, 'form_location_id' => 5], + ['form_id' => 1677, 'form_location_id' => 5], + ['form_id' => 1678, 'form_location_id' => 5], + ['form_id' => 1679, 'form_location_id' => 5], + ['form_id' => 1680, 'form_location_id' => 5], + ['form_id' => 1682, 'form_location_id' => 5], + ['form_id' => 1683, 'form_location_id' => 5], + ['form_id' => 1684, 'form_location_id' => 5], + ['form_id' => 1686, 'form_location_id' => 5], + ['form_id' => 1687, 'form_location_id' => 5], + ['form_id' => 1688, 'form_location_id' => 5], + ['form_id' => 1689, 'form_location_id' => 5], + ['form_id' => 1692, 'form_location_id' => 5], + ['form_id' => 1693, 'form_location_id' => 5], + ['form_id' => 1695, 'form_location_id' => 5], + ['form_id' => 1696, 'form_location_id' => 5], + ['form_id' => 1697, 'form_location_id' => 5], + ['form_id' => 1698, 'form_location_id' => 5], + ['form_id' => 1700, 'form_location_id' => 5], + ['form_id' => 1727, 'form_location_id' => 5], + ['form_id' => 1768, 'form_location_id' => 5], + ['form_id' => 1769, 'form_location_id' => 5], + ['form_id' => 1770, 'form_location_id' => 5], + ['form_id' => 1771, 'form_location_id' => 5], + ['form_id' => 1772, 'form_location_id' => 5], + ['form_id' => 1773, 'form_location_id' => 5], + ['form_id' => 1777, 'form_location_id' => 5], + ['form_id' => 1780, 'form_location_id' => 5], + ['form_id' => 1781, 'form_location_id' => 5], + ['form_id' => 1782, 'form_location_id' => 5], + ['form_id' => 1783, 'form_location_id' => 5], + ['form_id' => 1791, 'form_location_id' => 5], + ['form_id' => 1792, 'form_location_id' => 5], + ['form_id' => 1795, 'form_location_id' => 5], + ['form_id' => 1796, 'form_location_id' => 5], + ['form_id' => 1797, 'form_location_id' => 5], + ['form_id' => 1798, 'form_location_id' => 5], + ['form_id' => 1799, 'form_location_id' => 5], + ['form_id' => 1800, 'form_location_id' => 5], + ['form_id' => 1802, 'form_location_id' => 5], + ['form_id' => 1804, 'form_location_id' => 5], + ['form_id' => 1805, 'form_location_id' => 5], + ['form_id' => 1806, 'form_location_id' => 5], + ['form_id' => 1813, 'form_location_id' => 5], + ['form_id' => 1814, 'form_location_id' => 5], + ['form_id' => 1815, 'form_location_id' => 5], + ['form_id' => 1816, 'form_location_id' => 5], + ['form_id' => 1817, 'form_location_id' => 5], + ['form_id' => 1818, 'form_location_id' => 5], + ['form_id' => 1831, 'form_location_id' => 5], + ['form_id' => 1832, 'form_location_id' => 5], + ['form_id' => 1833, 'form_location_id' => 5], + ['form_id' => 1834, 'form_location_id' => 5], + ['form_id' => 1835, 'form_location_id' => 5], + ['form_id' => 1836, 'form_location_id' => 5], + ['form_id' => 1839, 'form_location_id' => 5], + ['form_id' => 1840, 'form_location_id' => 5], + ['form_id' => 1841, 'form_location_id' => 5], + ['form_id' => 1842, 'form_location_id' => 5], + ['form_id' => 1844, 'form_location_id' => 5], + ['form_id' => 1845, 'form_location_id' => 5], + ['form_id' => 1850, 'form_location_id' => 5], + ['form_id' => 1867, 'form_location_id' => 5], + ['form_id' => 1868, 'form_location_id' => 5], + ['form_id' => 1869, 'form_location_id' => 5], + ['form_id' => 1870, 'form_location_id' => 5], + ['form_id' => 1873, 'form_location_id' => 5], + ['form_id' => 1874, 'form_location_id' => 5], + ['form_id' => 1879, 'form_location_id' => 1], + ['form_id' => 1880, 'form_location_id' => 1], + ['form_id' => 1881, 'form_location_id' => 1], + ['form_id' => 1882, 'form_location_id' => 1], + ['form_id' => 1887, 'form_location_id' => 5], + ['form_id' => 1888, 'form_location_id' => 5], + ['form_id' => 1890, 'form_location_id' => 5], + ['form_id' => 1891, 'form_location_id' => 5], + ['form_id' => 1892, 'form_location_id' => 5], + ['form_id' => 1893, 'form_location_id' => 5], + ['form_id' => 1894, 'form_location_id' => 5], + ['form_id' => 1897, 'form_location_id' => 5], + ['form_id' => 1903, 'form_location_id' => 5], + ['form_id' => 1910, 'form_location_id' => 5], + ['form_id' => 1926, 'form_location_id' => 5], + ['form_id' => 1927, 'form_location_id' => 5], + ['form_id' => 1928, 'form_location_id' => 5], + ['form_id' => 1929, 'form_location_id' => 5], + ['form_id' => 1930, 'form_location_id' => 5], + ['form_id' => 1935, 'form_location_id' => 5], + ['form_id' => 1936, 'form_location_id' => 5], + ['form_id' => 1948, 'form_location_id' => 1], + ['form_id' => 1948, 'form_location_id' => 3], + ['form_id' => 1962, 'form_location_id' => 1], + ['form_id' => 1962, 'form_location_id' => 3], + ['form_id' => 1971, 'form_location_id' => 5], + ['form_id' => 1972, 'form_location_id' => 5], + ['form_id' => 1974, 'form_location_id' => 5], + ['form_id' => 1976, 'form_location_id' => 5], + ['form_id' => 1979, 'form_location_id' => 5], + ['form_id' => 1980, 'form_location_id' => 5], + ['form_id' => 1981, 'form_location_id' => 5], + ['form_id' => 1982, 'form_location_id' => 5], + ['form_id' => 1984, 'form_location_id' => 5], + ['form_id' => 1991, 'form_location_id' => 5], + ['form_id' => 1992, 'form_location_id' => 5], + ['form_id' => 2006, 'form_location_id' => 5], + ['form_id' => 2009, 'form_location_id' => 5], + ['form_id' => 2010, 'form_location_id' => 5], + ['form_id' => 2011, 'form_location_id' => 5], + ['form_id' => 2012, 'form_location_id' => 5], + ['form_id' => 2013, 'form_location_id' => 5], + ['form_id' => 2024, 'form_location_id' => 5], + ['form_id' => 2028, 'form_location_id' => 5], + ['form_id' => 2029, 'form_location_id' => 1], + ['form_id' => 2030, 'form_location_id' => 1], + ['form_id' => 2049, 'form_location_id' => 4], + ['form_id' => 2049, 'form_location_id' => 5], + ['form_id' => 2050, 'form_location_id' => 4], + ['form_id' => 2050, 'form_location_id' => 5], + ['form_id' => 2057, 'form_location_id' => 5], + ['form_id' => 2066, 'form_location_id' => 4], + ['form_id' => 2067, 'form_location_id' => 4], + ['form_id' => 2068, 'form_location_id' => 4], + ['form_id' => 2069, 'form_location_id' => 4], + ['form_id' => 2028, 'form_location_id' => 5], + ['form_id' => 2029, 'form_location_id' => 1], + ['form_id' => 2030, 'form_location_id' => 1], + ['form_id' => 2049, 'form_location_id' => 4], + ['form_id' => 2049, 'form_location_id' => 5], + ['form_id' => 2050, 'form_location_id' => 4], + ['form_id' => 2050, 'form_location_id' => 5], + ['form_id' => 2057, 'form_location_id' => 5], + ['form_id' => 2066, 'form_location_id' => 4], + ['form_id' => 2067, 'form_location_id' => 4], + ['form_id' => 2068, 'form_location_id' => 4], + ['form_id' => 2069, 'form_location_id' => 4], )); - - } -} \ No newline at end of file +} diff --git a/database/seeders/FormFormTagsTableSeeder.php b/database/seeders/FormFormTagsTableSeeder.php index 6741036b..dc6f2172 100644 --- a/database/seeders/FormFormTagsTableSeeder.php +++ b/database/seeders/FormFormTagsTableSeeder.php @@ -3,6 +3,7 @@ namespace Database\Seeders; use Illuminate\Database\Seeder; +use Illuminate\Support\Facades\DB; class FormFormTagsTableSeeder extends Seeder { @@ -14,1245 +15,165 @@ class FormFormTagsTableSeeder extends Seeder */ public function run() { - - \DB::table('form_form_tags')->delete(); - - \DB::table('form_form_tags')->insert(array ( - 0 => - array ( - 'id' => 1, - 'form_id' => 7, - 'form_tag_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 1 => - array ( - 'id' => 2, - 'form_id' => 8, - 'form_tag_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 2 => - array ( - 'id' => 3, - 'form_id' => 9, - 'form_tag_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 3 => - array ( - 'id' => 4, - 'form_id' => 11, - 'form_tag_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 4 => - array ( - 'id' => 5, - 'form_id' => 19, - 'form_tag_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 5 => - array ( - 'id' => 6, - 'form_id' => 20, - 'form_tag_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 6 => - array ( - 'id' => 7, - 'form_id' => 21, - 'form_tag_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 7 => - array ( - 'id' => 8, - 'form_id' => 22, - 'form_tag_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 8 => - array ( - 'id' => 9, - 'form_id' => 35, - 'form_tag_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 9 => - array ( - 'id' => 10, - 'form_id' => 39, - 'form_tag_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 10 => - array ( - 'id' => 11, - 'form_id' => 41, - 'form_tag_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 11 => - array ( - 'id' => 12, - 'form_id' => 42, - 'form_tag_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 12 => - array ( - 'id' => 13, - 'form_id' => 42, - 'form_tag_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 13 => - array ( - 'id' => 14, - 'form_id' => 43, - 'form_tag_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 14 => - array ( - 'id' => 15, - 'form_id' => 43, - 'form_tag_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 15 => - array ( - 'id' => 16, - 'form_id' => 47, - 'form_tag_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 16 => - array ( - 'id' => 17, - 'form_id' => 48, - 'form_tag_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 17 => - array ( - 'id' => 18, - 'form_id' => 52, - 'form_tag_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 18 => - array ( - 'id' => 19, - 'form_id' => 52, - 'form_tag_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 19 => - array ( - 'id' => 20, - 'form_id' => 53, - 'form_tag_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 20 => - array ( - 'id' => 21, - 'form_id' => 54, - 'form_tag_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 21 => - array ( - 'id' => 22, - 'form_id' => 54, - 'form_tag_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 22 => - array ( - 'id' => 23, - 'form_id' => 55, - 'form_tag_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 23 => - array ( - 'id' => 24, - 'form_id' => 55, - 'form_tag_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 24 => - array ( - 'id' => 25, - 'form_id' => 56, - 'form_tag_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 25 => - array ( - 'id' => 26, - 'form_id' => 56, - 'form_tag_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 26 => - array ( - 'id' => 27, - 'form_id' => 57, - 'form_tag_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 27 => - array ( - 'id' => 28, - 'form_id' => 57, - 'form_tag_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 28 => - array ( - 'id' => 29, - 'form_id' => 58, - 'form_tag_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 29 => - array ( - 'id' => 30, - 'form_id' => 58, - 'form_tag_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 30 => - array ( - 'id' => 31, - 'form_id' => 59, - 'form_tag_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 31 => - array ( - 'id' => 32, - 'form_id' => 79, - 'form_tag_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 32 => - array ( - 'id' => 33, - 'form_id' => 80, - 'form_tag_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 33 => - array ( - 'id' => 34, - 'form_id' => 161, - 'form_tag_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 34 => - array ( - 'id' => 35, - 'form_id' => 173, - 'form_tag_id' => 8, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 35 => - array ( - 'id' => 36, - 'form_id' => 175, - 'form_tag_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 36 => - array ( - 'id' => 37, - 'form_id' => 178, - 'form_tag_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 37 => - array ( - 'id' => 38, - 'form_id' => 197, - 'form_tag_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 38 => - array ( - 'id' => 39, - 'form_id' => 231, - 'form_tag_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 39 => - array ( - 'id' => 40, - 'form_id' => 234, - 'form_tag_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 40 => - array ( - 'id' => 41, - 'form_id' => 236, - 'form_tag_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 41 => - array ( - 'id' => 42, - 'form_id' => 237, - 'form_tag_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 42 => - array ( - 'id' => 43, - 'form_id' => 238, - 'form_tag_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 43 => - array ( - 'id' => 44, - 'form_id' => 260, - 'form_tag_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 44 => - array ( - 'id' => 45, - 'form_id' => 260, - 'form_tag_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 45 => - array ( - 'id' => 46, - 'form_id' => 271, - 'form_tag_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 46 => - array ( - 'id' => 47, - 'form_id' => 407, - 'form_tag_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 47 => - array ( - 'id' => 48, - 'form_id' => 409, - 'form_tag_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 48 => - array ( - 'id' => 49, - 'form_id' => 427, - 'form_tag_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 49 => - array ( - 'id' => 50, - 'form_id' => 544, - 'form_tag_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 50 => - array ( - 'id' => 51, - 'form_id' => 548, - 'form_tag_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 51 => - array ( - 'id' => 52, - 'form_id' => 551, - 'form_tag_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 52 => - array ( - 'id' => 53, - 'form_id' => 553, - 'form_tag_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 53 => - array ( - 'id' => 54, - 'form_id' => 558, - 'form_tag_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 54 => - array ( - 'id' => 55, - 'form_id' => 560, - 'form_tag_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 55 => - array ( - 'id' => 56, - 'form_id' => 590, - 'form_tag_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 56 => - array ( - 'id' => 57, - 'form_id' => 591, - 'form_tag_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 57 => - array ( - 'id' => 58, - 'form_id' => 597, - 'form_tag_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 58 => - array ( - 'id' => 59, - 'form_id' => 654, - 'form_tag_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 59 => - array ( - 'id' => 60, - 'form_id' => 708, - 'form_tag_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 60 => - array ( - 'id' => 61, - 'form_id' => 712, - 'form_tag_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 61 => - array ( - 'id' => 62, - 'form_id' => 753, - 'form_tag_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 62 => - array ( - 'id' => 63, - 'form_id' => 754, - 'form_tag_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 63 => - array ( - 'id' => 64, - 'form_id' => 758, - 'form_tag_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 64 => - array ( - 'id' => 65, - 'form_id' => 760, - 'form_tag_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 65 => - array ( - 'id' => 66, - 'form_id' => 773, - 'form_tag_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 66 => - array ( - 'id' => 67, - 'form_id' => 800, - 'form_tag_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 67 => - array ( - 'id' => 68, - 'form_id' => 811, - 'form_tag_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 68 => - array ( - 'id' => 69, - 'form_id' => 816, - 'form_tag_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 69 => - array ( - 'id' => 70, - 'form_id' => 854, - 'form_tag_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 70 => - array ( - 'id' => 71, - 'form_id' => 855, - 'form_tag_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 71 => - array ( - 'id' => 72, - 'form_id' => 903, - 'form_tag_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 72 => - array ( - 'id' => 73, - 'form_id' => 903, - 'form_tag_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 73 => - array ( - 'id' => 74, - 'form_id' => 904, - 'form_tag_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 74 => - array ( - 'id' => 75, - 'form_id' => 904, - 'form_tag_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 75 => - array ( - 'id' => 76, - 'form_id' => 905, - 'form_tag_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 76 => - array ( - 'id' => 77, - 'form_id' => 906, - 'form_tag_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 77 => - array ( - 'id' => 78, - 'form_id' => 907, - 'form_tag_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 78 => - array ( - 'id' => 79, - 'form_id' => 908, - 'form_tag_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 79 => - array ( - 'id' => 80, - 'form_id' => 908, - 'form_tag_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 80 => - array ( - 'id' => 81, - 'form_id' => 909, - 'form_tag_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 81 => - array ( - 'id' => 82, - 'form_id' => 909, - 'form_tag_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 82 => - array ( - 'id' => 83, - 'form_id' => 912, - 'form_tag_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 83 => - array ( - 'id' => 84, - 'form_id' => 913, - 'form_tag_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 84 => - array ( - 'id' => 85, - 'form_id' => 983, - 'form_tag_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 85 => - array ( - 'id' => 86, - 'form_id' => 984, - 'form_tag_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 86 => - array ( - 'id' => 87, - 'form_id' => 985, - 'form_tag_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 87 => - array ( - 'id' => 88, - 'form_id' => 987, - 'form_tag_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 88 => - array ( - 'id' => 89, - 'form_id' => 987, - 'form_tag_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 89 => - array ( - 'id' => 90, - 'form_id' => 988, - 'form_tag_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 90 => - array ( - 'id' => 91, - 'form_id' => 988, - 'form_tag_id' => 4, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 91 => - array ( - 'id' => 92, - 'form_id' => 989, - 'form_tag_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 92 => - array ( - 'id' => 93, - 'form_id' => 990, - 'form_tag_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 93 => - array ( - 'id' => 94, - 'form_id' => 992, - 'form_tag_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 94 => - array ( - 'id' => 95, - 'form_id' => 1002, - 'form_tag_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 95 => - array ( - 'id' => 96, - 'form_id' => 1017, - 'form_tag_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 96 => - array ( - 'id' => 97, - 'form_id' => 1018, - 'form_tag_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 97 => - array ( - 'id' => 98, - 'form_id' => 1019, - 'form_tag_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 98 => - array ( - 'id' => 99, - 'form_id' => 1092, - 'form_tag_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 99 => - array ( - 'id' => 100, - 'form_id' => 1093, - 'form_tag_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 100 => - array ( - 'id' => 101, - 'form_id' => 1094, - 'form_tag_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 101 => - array ( - 'id' => 102, - 'form_id' => 1134, - 'form_tag_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 102 => - array ( - 'id' => 103, - 'form_id' => 1151, - 'form_tag_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 103 => - array ( - 'id' => 104, - 'form_id' => 1211, - 'form_tag_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 104 => - array ( - 'id' => 105, - 'form_id' => 1213, - 'form_tag_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 105 => - array ( - 'id' => 106, - 'form_id' => 1216, - 'form_tag_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 106 => - array ( - 'id' => 107, - 'form_id' => 1229, - 'form_tag_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 107 => - array ( - 'id' => 108, - 'form_id' => 1266, - 'form_tag_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 108 => - array ( - 'id' => 109, - 'form_id' => 1291, - 'form_tag_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 109 => - array ( - 'id' => 110, - 'form_id' => 1343, - 'form_tag_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 110 => - array ( - 'id' => 111, - 'form_id' => 1344, - 'form_tag_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 111 => - array ( - 'id' => 112, - 'form_id' => 1373, - 'form_tag_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 112 => - array ( - 'id' => 113, - 'form_id' => 1444, - 'form_tag_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 113 => - array ( - 'id' => 114, - 'form_id' => 1494, - 'form_tag_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 114 => - array ( - 'id' => 115, - 'form_id' => 1538, - 'form_tag_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 115 => - array ( - 'id' => 116, - 'form_id' => 1592, - 'form_tag_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 116 => - array ( - 'id' => 117, - 'form_id' => 1605, - 'form_tag_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 117 => - array ( - 'id' => 118, - 'form_id' => 1609, - 'form_tag_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 118 => - array ( - 'id' => 119, - 'form_id' => 1610, - 'form_tag_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 119 => - array ( - 'id' => 120, - 'form_id' => 1612, - 'form_tag_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 120 => - array ( - 'id' => 121, - 'form_id' => 1614, - 'form_tag_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 121 => - array ( - 'id' => 122, - 'form_id' => 1617, - 'form_tag_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 122 => - array ( - 'id' => 123, - 'form_id' => 1620, - 'form_tag_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 123 => - array ( - 'id' => 124, - 'form_id' => 1624, - 'form_tag_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 124 => - array ( - 'id' => 125, - 'form_id' => 1627, - 'form_tag_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 125 => - array ( - 'id' => 126, - 'form_id' => 1632, - 'form_tag_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 126 => - array ( - 'id' => 127, - 'form_id' => 1690, - 'form_tag_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 127 => - array ( - 'id' => 128, - 'form_id' => 1795, - 'form_tag_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 128 => - array ( - 'id' => 129, - 'form_id' => 1813, - 'form_tag_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 129 => - array ( - 'id' => 130, - 'form_id' => 1832, - 'form_tag_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 130 => - array ( - 'id' => 131, - 'form_id' => 1833, - 'form_tag_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 131 => - array ( - 'id' => 132, - 'form_id' => 1834, - 'form_tag_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 132 => - array ( - 'id' => 133, - 'form_id' => 1835, - 'form_tag_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 133 => - array ( - 'id' => 134, - 'form_id' => 1846, - 'form_tag_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 134 => - array ( - 'id' => 135, - 'form_id' => 1847, - 'form_tag_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 135 => - array ( - 'id' => 136, - 'form_id' => 1848, - 'form_tag_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 136 => - array ( - 'id' => 137, - 'form_id' => 1849, - 'form_tag_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 137 => - array ( - 'id' => 138, - 'form_id' => 1870, - 'form_tag_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 138 => - array ( - 'id' => 139, - 'form_id' => 1870, - 'form_tag_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 139 => - array ( - 'id' => 140, - 'form_id' => 1883, - 'form_tag_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 140 => - array ( - 'id' => 141, - 'form_id' => 1884, - 'form_tag_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 141 => - array ( - 'id' => 142, - 'form_id' => 1937, - 'form_tag_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 142 => - array ( - 'id' => 143, - 'form_id' => 1940, - 'form_tag_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 143 => - array ( - 'id' => 144, - 'form_id' => 1942, - 'form_tag_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 144 => - array ( - 'id' => 145, - 'form_id' => 1944, - 'form_tag_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 145 => - array ( - 'id' => 146, - 'form_id' => 1945, - 'form_tag_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 146 => - array ( - 'id' => 147, - 'form_id' => 1946, - 'form_tag_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 147 => - array ( - 'id' => 148, - 'form_id' => 1947, - 'form_tag_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 148 => - array ( - 'id' => 149, - 'form_id' => 1955, - 'form_tag_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 149 => - array ( - 'id' => 150, - 'form_id' => 1967, - 'form_tag_id' => 6, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 150 => - array ( - 'id' => 151, - 'form_id' => 2059, - 'form_tag_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 151 => - array ( - 'id' => 152, - 'form_id' => 2063, - 'form_tag_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 152 => - array ( - 'id' => 153, - 'form_id' => 2059, - 'form_tag_id' => 7, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 153 => - array ( - 'id' => 154, - 'form_id' => 2063, - 'form_tag_id' => 5, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - )); - - + + DB::table('form_form_tags')->truncate(); + + DB::table('form_form_tags')->insert([ + ['form_id' => 7, 'form_tag_id' => 4], + ['form_id' => 8, 'form_tag_id' => 4], + ['form_id' => 9, 'form_tag_id' => 4], + ['form_id' => 11, 'form_tag_id' => 4], + ['form_id' => 19, 'form_tag_id' => 4], + ['form_id' => 20, 'form_tag_id' => 4], + ['form_id' => 21, 'form_tag_id' => 4], + ['form_id' => 22, 'form_tag_id' => 4], + ['form_id' => 35, 'form_tag_id' => 4], + ['form_id' => 39, 'form_tag_id' => 4], + ['form_id' => 41, 'form_tag_id' => 4], + ['form_id' => 42, 'form_tag_id' => 5], + ['form_id' => 42, 'form_tag_id' => 4], + ['form_id' => 43, 'form_tag_id' => 3], + ['form_id' => 43, 'form_tag_id' => 4], + ['form_id' => 47, 'form_tag_id' => 4], + ['form_id' => 48, 'form_tag_id' => 4], + ['form_id' => 52, 'form_tag_id' => 3], + ['form_id' => 52, 'form_tag_id' => 4], + ['form_id' => 53, 'form_tag_id' => 3], + ['form_id' => 54, 'form_tag_id' => 3], + ['form_id' => 54, 'form_tag_id' => 4], + ['form_id' => 55, 'form_tag_id' => 3], + ['form_id' => 55, 'form_tag_id' => 4], + ['form_id' => 56, 'form_tag_id' => 3], + ['form_id' => 56, 'form_tag_id' => 4], + ['form_id' => 57, 'form_tag_id' => 3], + ['form_id' => 57, 'form_tag_id' => 4], + ['form_id' => 58, 'form_tag_id' => 3], + ['form_id' => 58, 'form_tag_id' => 4], + ['form_id' => 59, 'form_tag_id' => 3], + ['form_id' => 79, 'form_tag_id' => 1], + ['form_id' => 80, 'form_tag_id' => 1], + ['form_id' => 161, 'form_tag_id' => 5], + ['form_id' => 173, 'form_tag_id' => 8], + ['form_id' => 175, 'form_tag_id' => 7], + ['form_id' => 178, 'form_tag_id' => 5], + ['form_id' => 197, 'form_tag_id' => 5], + ['form_id' => 231, 'form_tag_id' => 2], + ['form_id' => 234, 'form_tag_id' => 2], + ['form_id' => 236, 'form_tag_id' => 2], + ['form_id' => 237, 'form_tag_id' => 2], + ['form_id' => 238, 'form_tag_id' => 2], + ['form_id' => 260, 'form_tag_id' => 1], + ['form_id' => 260, 'form_tag_id' => 2], + ['form_id' => 271, 'form_tag_id' => 2], + ['form_id' => 407, 'form_tag_id' => 5], + ['form_id' => 409, 'form_tag_id' => 5], + ['form_id' => 427, 'form_tag_id' => 5], + ['form_id' => 544, 'form_tag_id' => 5], + ['form_id' => 548, 'form_tag_id' => 5], + ['form_id' => 551, 'form_tag_id' => 4], + ['form_id' => 553, 'form_tag_id' => 4], + ['form_id' => 558, 'form_tag_id' => 5], + ['form_id' => 560, 'form_tag_id' => 4], + ['form_id' => 590, 'form_tag_id' => 4], + ['form_id' => 591, 'form_tag_id' => 4], + ['form_id' => 597, 'form_tag_id' => 5], + ['form_id' => 654, 'form_tag_id' => 5], + ['form_id' => 708, 'form_tag_id' => 4], + ['form_id' => 712, 'form_tag_id' => 5], + ['form_id' => 753, 'form_tag_id' => 5], + ['form_id' => 754, 'form_tag_id' => 5], + ['form_id' => 758, 'form_tag_id' => 5], + ['form_id' => 760, 'form_tag_id' => 5], + ['form_id' => 773, 'form_tag_id' => 4], + ['form_id' => 800, 'form_tag_id' => 5], + ['form_id' => 811, 'form_tag_id' => 5], + ['form_id' => 816, 'form_tag_id' => 4], + ['form_id' => 854, 'form_tag_id' => 4], + ['form_id' => 855, 'form_tag_id' => 5], + ['form_id' => 903, 'form_tag_id' => 3], + ['form_id' => 903, 'form_tag_id' => 4], + ['form_id' => 904, 'form_tag_id' => 3], + ['form_id' => 904, 'form_tag_id' => 4], + ['form_id' => 905, 'form_tag_id' => 3], + ['form_id' => 906, 'form_tag_id' => 3], + ['form_id' => 907, 'form_tag_id' => 3], + ['form_id' => 908, 'form_tag_id' => 3], + ['form_id' => 908, 'form_tag_id' => 4], + ['form_id' => 909, 'form_tag_id' => 3], + ['form_id' => 909, 'form_tag_id' => 4], + ['form_id' => 912, 'form_tag_id' => 4], + ['form_id' => 913, 'form_tag_id' => 4], + ['form_id' => 983, 'form_tag_id' => 3], + ['form_id' => 984, 'form_tag_id' => 3], + ['form_id' => 985, 'form_tag_id' => 3], + ['form_id' => 987, 'form_tag_id' => 3], + ['form_id' => 987, 'form_tag_id' => 4], + ['form_id' => 988, 'form_tag_id' => 3], + ['form_id' => 988, 'form_tag_id' => 4], + ['form_id' => 989, 'form_tag_id' => 3], + ['form_id' => 990, 'form_tag_id' => 3], + ['form_id' => 992, 'form_tag_id' => 3], + ['form_id' => 1002, 'form_tag_id' => 3], + ['form_id' => 1017, 'form_tag_id' => 1], + ['form_id' => 1018, 'form_tag_id' => 1], + ['form_id' => 1019, 'form_tag_id' => 1], + ['form_id' => 1092, 'form_tag_id' => 5], + ['form_id' => 1093, 'form_tag_id' => 5], + ['form_id' => 1094, 'form_tag_id' => 5], + ['form_id' => 1134, 'form_tag_id' => 5], + ['form_id' => 1151, 'form_tag_id' => 5], + ['form_id' => 1211, 'form_tag_id' => 7], + ['form_id' => 1213, 'form_tag_id' => 7], + ['form_id' => 1216, 'form_tag_id' => 7], + ['form_id' => 1229, 'form_tag_id' => 5], + ['form_id' => 1266, 'form_tag_id' => 1], + ['form_id' => 1291, 'form_tag_id' => 7], + ['form_id' => 1343, 'form_tag_id' => 2], + ['form_id' => 1344, 'form_tag_id' => 2], + ['form_id' => 1373, 'form_tag_id' => 2], + ['form_id' => 1444, 'form_tag_id' => 2], + ['form_id' => 1494, 'form_tag_id' => 7], + ['form_id' => 1538, 'form_tag_id' => 2], + ['form_id' => 1592, 'form_tag_id' => 1], + ['form_id' => 1605, 'form_tag_id' => 2], + ['form_id' => 1609, 'form_tag_id' => 2], + ['form_id' => 1610, 'form_tag_id' => 2], + ['form_id' => 1612, 'form_tag_id' => 2], + ['form_id' => 1614, 'form_tag_id' => 2], + ['form_id' => 1617, 'form_tag_id' => 2], + ['form_id' => 1620, 'form_tag_id' => 2], + ['form_id' => 1624, 'form_tag_id' => 2], + ['form_id' => 1627, 'form_tag_id' => 2], + ['form_id' => 1632, 'form_tag_id' => 2], + ['form_id' => 1690, 'form_tag_id' => 1], + ['form_id' => 1795, 'form_tag_id' => 1], + ['form_id' => 1813, 'form_tag_id' => 2], + ['form_id' => 1832, 'form_tag_id' => 2], + ['form_id' => 1833, 'form_tag_id' => 2], + ['form_id' => 1834, 'form_tag_id' => 2], + ['form_id' => 1835, 'form_tag_id' => 2], + ['form_id' => 1846, 'form_tag_id' => 2], + ['form_id' => 1847, 'form_tag_id' => 2], + ['form_id' => 1848, 'form_tag_id' => 2], + ['form_id' => 1849, 'form_tag_id' => 2], + ['form_id' => 1870, 'form_tag_id' => 1], + ['form_id' => 1870, 'form_tag_id' => 2], + ['form_id' => 1883, 'form_tag_id' => 2], + ['form_id' => 1884, 'form_tag_id' => 2], + ['form_id' => 1937, 'form_tag_id' => 6], + ['form_id' => 1940, 'form_tag_id' => 6], + ['form_id' => 1942, 'form_tag_id' => 6], + ['form_id' => 1944, 'form_tag_id' => 6], + ['form_id' => 1945, 'form_tag_id' => 6], + ['form_id' => 1946, 'form_tag_id' => 6], + ['form_id' => 1947, 'form_tag_id' => 6], + ['form_id' => 1955, 'form_tag_id' => 6], + ['form_id' => 1967, 'form_tag_id' => 6], + ['form_id' => 2059, 'form_tag_id' => 7], + ['form_id' => 2063, 'form_tag_id' => 5], + ['form_id' => 2059, 'form_tag_id' => 7], + ['form_id' => 2063, 'form_tag_id' => 5], + ]); } -} \ No newline at end of file +} diff --git a/database/seeders/FormSoftwareSourceFormTableSeeder.php b/database/seeders/FormSoftwareSourceFormTableSeeder.php index a2bcb66d..7ac0aa0b 100644 --- a/database/seeders/FormSoftwareSourceFormTableSeeder.php +++ b/database/seeders/FormSoftwareSourceFormTableSeeder.php @@ -3,424 +3,65 @@ namespace Database\Seeders; use Illuminate\Database\Seeder; +use Illuminate\Support\Facades\DB; class FormSoftwareSourceFormTableSeeder extends Seeder { - /** - * Auto generated seed file + * Run the database seeds. * * @return void */ public function run() { - + // Truncate resets the auto-increment / sequence + DB::table('form_software_source_form')->truncate(); - \DB::table('form_software_source_form')->delete(); - - \DB::table('form_software_source_form')->insert(array ( - 0 => - array ( - 'id' => 1, - 'form_id' => 45, - 'form_software_source_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 1 => - array ( - 'id' => 2, - 'form_id' => 61, - 'form_software_source_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 2 => - array ( - 'id' => 3, - 'form_id' => 387, - 'form_software_source_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 3 => - array ( - 'id' => 4, - 'form_id' => 637, - 'form_software_source_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 4 => - array ( - 'id' => 5, - 'form_id' => 664, - 'form_software_source_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 5 => - array ( - 'id' => 6, - 'form_id' => 759, - 'form_software_source_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 6 => - array ( - 'id' => 7, - 'form_id' => 855, - 'form_software_source_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 7 => - array ( - 'id' => 8, - 'form_id' => 900, - 'form_software_source_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 8 => - array ( - 'id' => 9, - 'form_id' => 901, - 'form_software_source_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 9 => - array ( - 'id' => 10, - 'form_id' => 902, - 'form_software_source_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 10 => - array ( - 'id' => 11, - 'form_id' => 921, - 'form_software_source_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 11 => - array ( - 'id' => 12, - 'form_id' => 922, - 'form_software_source_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 12 => - array ( - 'id' => 13, - 'form_id' => 923, - 'form_software_source_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 13 => - array ( - 'id' => 14, - 'form_id' => 924, - 'form_software_source_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 14 => - array ( - 'id' => 15, - 'form_id' => 925, - 'form_software_source_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 15 => - array ( - 'id' => 16, - 'form_id' => 926, - 'form_software_source_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 16 => - array ( - 'id' => 17, - 'form_id' => 960, - 'form_software_source_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 17 => - array ( - 'id' => 18, - 'form_id' => 961, - 'form_software_source_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 18 => - array ( - 'id' => 19, - 'form_id' => 962, - 'form_software_source_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 19 => - array ( - 'id' => 20, - 'form_id' => 963, - 'form_software_source_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 20 => - array ( - 'id' => 21, - 'form_id' => 964, - 'form_software_source_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 21 => - array ( - 'id' => 22, - 'form_id' => 965, - 'form_software_source_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 22 => - array ( - 'id' => 23, - 'form_id' => 966, - 'form_software_source_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 23 => - array ( - 'id' => 24, - 'form_id' => 967, - 'form_software_source_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 24 => - array ( - 'id' => 25, - 'form_id' => 968, - 'form_software_source_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 25 => - array ( - 'id' => 26, - 'form_id' => 969, - 'form_software_source_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 26 => - array ( - 'id' => 27, - 'form_id' => 970, - 'form_software_source_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 27 => - array ( - 'id' => 28, - 'form_id' => 971, - 'form_software_source_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 28 => - array ( - 'id' => 29, - 'form_id' => 972, - 'form_software_source_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 29 => - array ( - 'id' => 30, - 'form_id' => 973, - 'form_software_source_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 30 => - array ( - 'id' => 31, - 'form_id' => 974, - 'form_software_source_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 31 => - array ( - 'id' => 32, - 'form_id' => 975, - 'form_software_source_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 32 => - array ( - 'id' => 33, - 'form_id' => 976, - 'form_software_source_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 33 => - array ( - 'id' => 34, - 'form_id' => 977, - 'form_software_source_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 34 => - array ( - 'id' => 35, - 'form_id' => 986, - 'form_software_source_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 35 => - array ( - 'id' => 36, - 'form_id' => 991, - 'form_software_source_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 36 => - array ( - 'id' => 37, - 'form_id' => 2014, - 'form_software_source_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 37 => - array ( - 'id' => 38, - 'form_id' => 2025, - 'form_software_source_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 38 => - array ( - 'id' => 39, - 'form_id' => 2026, - 'form_software_source_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 39 => - array ( - 'id' => 40, - 'form_id' => 2027, - 'form_software_source_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 40 => - array ( - 'id' => 41, - 'form_id' => 2028, - 'form_software_source_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 41 => - array ( - 'id' => 42, - 'form_id' => 2029, - 'form_software_source_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 42 => - array ( - 'id' => 43, - 'form_id' => 2030, - 'form_software_source_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 43 => - array ( - 'id' => 44, - 'form_id' => 2052, - 'form_software_source_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 44 => - array ( - 'id' => 45, - 'form_id' => 2026, - 'form_software_source_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 45 => - array ( - 'id' => 46, - 'form_id' => 2027, - 'form_software_source_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 46 => - array ( - 'id' => 47, - 'form_id' => 2028, - 'form_software_source_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 47 => - array ( - 'id' => 48, - 'form_id' => 2029, - 'form_software_source_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 48 => - array ( - 'id' => 49, - 'form_id' => 2030, - 'form_software_source_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 49 => - array ( - 'id' => 50, - 'form_id' => 2052, - 'form_software_source_id' => 3, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - )); - - + DB::table('form_software_source_form')->insert([ + ['form_id' => 45, 'form_software_source_id' => 3], + ['form_id' => 61, 'form_software_source_id' => 3], + ['form_id' => 387, 'form_software_source_id' => 3], + ['form_id' => 637, 'form_software_source_id' => 3], + ['form_id' => 664, 'form_software_source_id' => 3], + ['form_id' => 759, 'form_software_source_id' => 3], + ['form_id' => 855, 'form_software_source_id' => 3], + ['form_id' => 900, 'form_software_source_id' => 3], + ['form_id' => 901, 'form_software_source_id' => 3], + ['form_id' => 902, 'form_software_source_id' => 3], + ['form_id' => 921, 'form_software_source_id' => 3], + ['form_id' => 922, 'form_software_source_id' => 3], + ['form_id' => 923, 'form_software_source_id' => 3], + ['form_id' => 924, 'form_software_source_id' => 3], + ['form_id' => 925, 'form_software_source_id' => 3], + ['form_id' => 926, 'form_software_source_id' => 3], + ['form_id' => 960, 'form_software_source_id' => 3], + ['form_id' => 961, 'form_software_source_id' => 3], + ['form_id' => 962, 'form_software_source_id' => 3], + ['form_id' => 963, 'form_software_source_id' => 3], + ['form_id' => 964, 'form_software_source_id' => 3], + ['form_id' => 965, 'form_software_source_id' => 3], + ['form_id' => 966, 'form_software_source_id' => 3], + ['form_id' => 967, 'form_software_source_id' => 3], + ['form_id' => 968, 'form_software_source_id' => 3], + ['form_id' => 969, 'form_software_source_id' => 3], + ['form_id' => 970, 'form_software_source_id' => 3], + ['form_id' => 971, 'form_software_source_id' => 3], + ['form_id' => 972, 'form_software_source_id' => 3], + ['form_id' => 973, 'form_software_source_id' => 3], + ['form_id' => 974, 'form_software_source_id' => 3], + ['form_id' => 975, 'form_software_source_id' => 3], + ['form_id' => 976, 'form_software_source_id' => 3], + ['form_id' => 977, 'form_software_source_id' => 3], + ['form_id' => 986, 'form_software_source_id' => 3], + ['form_id' => 991, 'form_software_source_id' => 3], + ['form_id' => 2014, 'form_software_source_id' => 3], + ['form_id' => 2025, 'form_software_source_id' => 3], + ['form_id' => 2026, 'form_software_source_id' => 3], + ['form_id' => 2027, 'form_software_source_id' => 3], + ['form_id' => 2028, 'form_software_source_id' => 3], + ['form_id' => 2029, 'form_software_source_id' => 3], + ['form_id' => 2030, 'form_software_source_id' => 3], + ['form_id' => 2052, 'form_software_source_id' => 3], + ]); } -} \ No newline at end of file +} diff --git a/database/seeders/FormUserTypeTableSeeder.php b/database/seeders/FormUserTypeTableSeeder.php index 3bfb2872..b27b9c6c 100644 --- a/database/seeders/FormUserTypeTableSeeder.php +++ b/database/seeders/FormUserTypeTableSeeder.php @@ -3,6 +3,7 @@ namespace Database\Seeders; use Illuminate\Database\Seeder; +use Illuminate\Support\Facades\DB; class FormUserTypeTableSeeder extends Seeder { @@ -14,485 +15,70 @@ class FormUserTypeTableSeeder extends Seeder */ public function run() { - - \DB::table('form_user_type')->delete(); - - \DB::table('form_user_type')->insert(array ( - 0 => - array ( - 'id' => 1, - 'form_id' => 7, - 'user_type_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 1 => - array ( - 'id' => 2, - 'form_id' => 16, - 'user_type_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 2 => - array ( - 'id' => 3, - 'form_id' => 26, - 'user_type_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 3 => - array ( - 'id' => 4, - 'form_id' => 39, - 'user_type_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 4 => - array ( - 'id' => 5, - 'form_id' => 59, - 'user_type_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 5 => - array ( - 'id' => 6, - 'form_id' => 61, - 'user_type_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 6 => - array ( - 'id' => 7, - 'form_id' => 155, - 'user_type_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 7 => - array ( - 'id' => 8, - 'form_id' => 157, - 'user_type_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 8 => - array ( - 'id' => 9, - 'form_id' => 158, - 'user_type_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 9 => - array ( - 'id' => 10, - 'form_id' => 159, - 'user_type_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 10 => - array ( - 'id' => 11, - 'form_id' => 160, - 'user_type_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 11 => - array ( - 'id' => 12, - 'form_id' => 163, - 'user_type_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 12 => - array ( - 'id' => 13, - 'form_id' => 206, - 'user_type_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 13 => - array ( - 'id' => 14, - 'form_id' => 215, - 'user_type_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 14 => - array ( - 'id' => 15, - 'form_id' => 221, - 'user_type_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 15 => - array ( - 'id' => 16, - 'form_id' => 231, - 'user_type_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 16 => - array ( - 'id' => 17, - 'form_id' => 327, - 'user_type_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 17 => - array ( - 'id' => 18, - 'form_id' => 381, - 'user_type_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 18 => - array ( - 'id' => 19, - 'form_id' => 403, - 'user_type_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 19 => - array ( - 'id' => 20, - 'form_id' => 422, - 'user_type_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 20 => - array ( - 'id' => 21, - 'form_id' => 572, - 'user_type_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 21 => - array ( - 'id' => 22, - 'form_id' => 577, - 'user_type_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 22 => - array ( - 'id' => 23, - 'form_id' => 636, - 'user_type_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 23 => - array ( - 'id' => 24, - 'form_id' => 678, - 'user_type_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 24 => - array ( - 'id' => 25, - 'form_id' => 679, - 'user_type_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 25 => - array ( - 'id' => 26, - 'form_id' => 734, - 'user_type_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 26 => - array ( - 'id' => 27, - 'form_id' => 757, - 'user_type_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 27 => - array ( - 'id' => 28, - 'form_id' => 778, - 'user_type_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 28 => - array ( - 'id' => 29, - 'form_id' => 876, - 'user_type_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 29 => - array ( - 'id' => 30, - 'form_id' => 891, - 'user_type_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 30 => - array ( - 'id' => 31, - 'form_id' => 901, - 'user_type_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 31 => - array ( - 'id' => 32, - 'form_id' => 902, - 'user_type_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 32 => - array ( - 'id' => 33, - 'form_id' => 908, - 'user_type_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 33 => - array ( - 'id' => 34, - 'form_id' => 909, - 'user_type_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 34 => - array ( - 'id' => 35, - 'form_id' => 960, - 'user_type_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 35 => - array ( - 'id' => 36, - 'form_id' => 967, - 'user_type_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 36 => - array ( - 'id' => 37, - 'form_id' => 982, - 'user_type_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 37 => - array ( - 'id' => 38, - 'form_id' => 988, - 'user_type_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 38 => - array ( - 'id' => 39, - 'form_id' => 989, - 'user_type_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 39 => - array ( - 'id' => 40, - 'form_id' => 990, - 'user_type_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 40 => - array ( - 'id' => 41, - 'form_id' => 1004, - 'user_type_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 41 => - array ( - 'id' => 42, - 'form_id' => 1005, - 'user_type_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 42 => - array ( - 'id' => 43, - 'form_id' => 1008, - 'user_type_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 43 => - array ( - 'id' => 44, - 'form_id' => 1009, - 'user_type_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 44 => - array ( - 'id' => 45, - 'form_id' => 1010, - 'user_type_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 45 => - array ( - 'id' => 46, - 'form_id' => 1011, - 'user_type_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 46 => - array ( - 'id' => 47, - 'form_id' => 1132, - 'user_type_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 47 => - array ( - 'id' => 48, - 'form_id' => 1163, - 'user_type_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 48 => - array ( - 'id' => 49, - 'form_id' => 1445, - 'user_type_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 49 => - array ( - 'id' => 50, - 'form_id' => 1459, - 'user_type_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 50 => - array ( - 'id' => 51, - 'form_id' => 1583, - 'user_type_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 51 => - array ( - 'id' => 52, - 'form_id' => 1605, - 'user_type_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 52 => - array ( - 'id' => 53, - 'form_id' => 1613, - 'user_type_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 53 => - array ( - 'id' => 54, - 'form_id' => 1631, - 'user_type_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 54 => - array ( - 'id' => 55, - 'form_id' => 1842, - 'user_type_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 55 => - array ( - 'id' => 56, - 'form_id' => 1873, - 'user_type_id' => 2, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 56 => - array ( - 'id' => 57, - 'form_id' => 1905, - 'user_type_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 57 => - array ( - 'id' => 58, - 'form_id' => 1906, - 'user_type_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 58 => - array ( - 'id' => 59, - 'form_id' => 2004, - 'user_type_id' => 1, - 'created_at' => NULL, - 'updated_at' => NULL, - ), - )); - - + + DB::table('form_user_type')->truncate(); + + DB::table('form_user_type')->insert([ + ['form_id' => 7, 'user_type_id' => 1], + ['form_id' => 16, 'user_type_id' => 1], + ['form_id' => 26, 'user_type_id' => 1], + ['form_id' => 39, 'user_type_id' => 1], + ['form_id' => 59, 'user_type_id' => 2], + ['form_id' => 61, 'user_type_id' => 1], + ['form_id' => 155, 'user_type_id' => 2], + ['form_id' => 157, 'user_type_id' => 2], + ['form_id' => 158, 'user_type_id' => 2], + ['form_id' => 159, 'user_type_id' => 2], + ['form_id' => 160, 'user_type_id' => 2], + ['form_id' => 163, 'user_type_id' => 2], + ['form_id' => 206, 'user_type_id' => 2], + ['form_id' => 215, 'user_type_id' => 2], + ['form_id' => 221, 'user_type_id' => 2], + ['form_id' => 231, 'user_type_id' => 2], + ['form_id' => 327, 'user_type_id' => 2], + ['form_id' => 381, 'user_type_id' => 2], + ['form_id' => 403, 'user_type_id' => 1], + ['form_id' => 422, 'user_type_id' => 1], + ['form_id' => 572, 'user_type_id' => 1], + ['form_id' => 577, 'user_type_id' => 1], + ['form_id' => 636, 'user_type_id' => 1], + ['form_id' => 678, 'user_type_id' => 2], + ['form_id' => 679, 'user_type_id' => 2], + ['form_id' => 734, 'user_type_id' => 1], + ['form_id' => 757, 'user_type_id' => 2], + ['form_id' => 778, 'user_type_id' => 1], + ['form_id' => 876, 'user_type_id' => 1], + ['form_id' => 891, 'user_type_id' => 1], + ['form_id' => 901, 'user_type_id' => 1], + ['form_id' => 902, 'user_type_id' => 1], + ['form_id' => 908, 'user_type_id' => 1], + ['form_id' => 909, 'user_type_id' => 2], + ['form_id' => 960, 'user_type_id' => 1], + ['form_id' => 967, 'user_type_id' => 2], + ['form_id' => 982, 'user_type_id' => 2], + ['form_id' => 988, 'user_type_id' => 1], + ['form_id' => 989, 'user_type_id' => 1], + ['form_id' => 990, 'user_type_id' => 1], + ['form_id' => 1004, 'user_type_id' => 1], + ['form_id' => 1005, 'user_type_id' => 1], + ['form_id' => 1008, 'user_type_id' => 1], + ['form_id' => 1009, 'user_type_id' => 1], + ['form_id' => 1010, 'user_type_id' => 1], + ['form_id' => 1011, 'user_type_id' => 1], + ['form_id' => 1132, 'user_type_id' => 1], + ['form_id' => 1163, 'user_type_id' => 2], + ['form_id' => 1445, 'user_type_id' => 2], + ['form_id' => 1459, 'user_type_id' => 1], + ['form_id' => 1583, 'user_type_id' => 2], + ['form_id' => 1605, 'user_type_id' => 2], + ['form_id' => 1613, 'user_type_id' => 1], + ['form_id' => 1631, 'user_type_id' => 1], + ['form_id' => 1842, 'user_type_id' => 2], + ['form_id' => 1873, 'user_type_id' => 2], + ['form_id' => 1905, 'user_type_id' => 1], + ['form_id' => 1906, 'user_type_id' => 1], + ['form_id' => 2004, 'user_type_id' => 1], + ]); } -} \ No newline at end of file +} diff --git a/database/seeders/FormWorkbenchPathsTableSeeder.php b/database/seeders/FormWorkbenchPathsTableSeeder.php index e4611776..bb446bb2 100644 --- a/database/seeders/FormWorkbenchPathsTableSeeder.php +++ b/database/seeders/FormWorkbenchPathsTableSeeder.php @@ -3,6 +3,7 @@ namespace Database\Seeders; use Illuminate\Database\Seeder; +use Illuminate\Support\Facades\DB; class FormWorkbenchPathsTableSeeder extends Seeder { @@ -14,3341 +15,1675 @@ class FormWorkbenchPathsTableSeeder extends Seeder */ public function run() { - - \DB::table('form_workbench_paths')->delete(); - - \DB::table('form_workbench_paths')->insert(array ( - 0 => - array ( - 'id' => 1, + + DB::table('form_workbench_paths')->truncate(); + + DB::table('form_workbench_paths')->insert([ + [ 'form_id' => 1, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Correspondences\\AC Reminder - BC Mail Data Form.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 1 => - array ( - 'id' => 2, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Correspondences\\AC Reminder - BC Mail Data Form.xdp' + ], + [ 'form_id' => 2, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\BusPass\\Bus Pass Barcode Cover Page.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 2 => - array ( - 'id' => 3, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\BusPass\\Bus Pass Barcode Cover Page.xdp' + ], + [ 'form_id' => 3, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\BusPass\\Bus Pass Online Form.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 3 => - array ( - 'id' => 4, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\BusPass\\Bus Pass Online Form.xdp' + ], + [ 'form_id' => 4, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\BusPass\\Bus Pass Online Service for Request.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 4 => - array ( - 'id' => 5, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\BusPass\\Bus Pass Online Service for Request.xdp' + ], + [ 'form_id' => 5, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\BusPass\\Bus Pass-BC Mail Data Form.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 5 => - array ( - 'id' => 6, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\BusPass\\Bus Pass-BC Mail Data Form.xdp' + ], + [ 'form_id' => 6, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\BusPass\\Bus Pass-BC Mail Residency Form.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 6 => - array ( - 'id' => 7, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\BusPass\\Bus Pass-BC Mail Residency Form.xdp' + ], + [ 'form_id' => 7, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF0322.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 7 => - array ( - 'id' => 8, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF0322.xdp' + ], + [ 'form_id' => 7, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF0322I.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 8 => - array ( - 'id' => 9, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF0322I.xdp' + ], + [ 'form_id' => 8, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\RecordOperations\\Forms\\CF0609.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 9 => - array ( - 'id' => 10, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\RecordOperations\\Forms\\CF0609.xdp' + ], + [ 'form_id' => 9, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\RecordOperations\\Forms\\CF0611.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 10 => - array ( - 'id' => 11, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\RecordOperations\\Forms\\CF0611.xdp' + ], + [ 'form_id' => 10, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF0630.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 11 => - array ( - 'id' => 12, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF0630.xdp' + ], + [ 'form_id' => 11, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF0631.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 12 => - array ( - 'id' => 13, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF0631.xdp' + ], + [ 'form_id' => 11, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF0631C.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 13 => - array ( - 'id' => 14, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF0631C.xdp' + ], + [ 'form_id' => 12, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF0632.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 14 => - array ( - 'id' => 15, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF0632.xdp' + ], + [ 'form_id' => 12, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF0632C.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 15 => - array ( - 'id' => 16, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF0632C.xdp' + ], + [ 'form_id' => 13, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF0633.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 16 => - array ( - 'id' => 17, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF0633.xdp' + ], + [ 'form_id' => 13, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF0633C.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 17 => - array ( - 'id' => 18, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF0633C.xdp' + ], + [ 'form_id' => 14, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF0640.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 18 => - array ( - 'id' => 19, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF0640.xdp' + ], + [ 'form_id' => 15, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildWelfare\\Forms\\CF0658.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 19 => - array ( - 'id' => 20, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildWelfare\\Forms\\CF0658.xdp' + ], + [ 'form_id' => 16, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildWelfare\\Forms\\CF0659.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 20 => - array ( - 'id' => 21, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildWelfare\\Forms\\CF0659.xdp' + ], + [ 'form_id' => 17, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CYSN\\Forms\\CF0671.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 21 => - array ( - 'id' => 22, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CYSN\\Forms\\CF0671.xdp' + ], + [ 'form_id' => 18, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CYSN\\Forms\\CF0672.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 22 => - array ( - 'id' => 23, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CYSN\\Forms\\CF0672.xdp' + ], + [ 'form_id' => 19, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\YouthServices\\Forms\\CF0700.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 23 => - array ( - 'id' => 24, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\YouthServices\\Forms\\CF0700.xdp' + ], + [ 'form_id' => 20, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\YouthServices\\Forms\\CF0700A.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 24 => - array ( - 'id' => 25, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\YouthServices\\Forms\\CF0700A.xdp' + ], + [ 'form_id' => 21, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\YouthServices\\Forms\\CF0701.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 25 => - array ( - 'id' => 26, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\YouthServices\\Forms\\CF0701.xdp' + ], + [ 'form_id' => 22, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\YouthServices\\Forms\\CF0702.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 26 => - array ( - 'id' => 27, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\YouthServices\\Forms\\CF0702.xdp' + ], + [ 'form_id' => 23, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\YouthServices\\Forms\\CF0711.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 27 => - array ( - 'id' => 28, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\YouthServices\\Forms\\CF0711.xdp' + ], + [ 'form_id' => 24, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\YouthServices\\Forms\\CF0711A.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 28 => - array ( - 'id' => 29, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\YouthServices\\Forms\\CF0711A.xdp' + ], + [ 'form_id' => 25, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\YouthServices\\Forms\\CF0711B.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 29 => - array ( - 'id' => 30, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\YouthServices\\Forms\\CF0711B.xdp' + ], + [ 'form_id' => 26, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\YouthServices\\Forms\\CF0712.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 30 => - array ( - 'id' => 31, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\YouthServices\\Forms\\CF0712.xdp' + ], + [ 'form_id' => 27, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Forms\\CF0925.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 31 => - array ( - 'id' => 32, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Forms\\CF0925.xdp' + ], + [ 'form_id' => 28, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Forms\\CF0925a.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 32 => - array ( - 'id' => 33, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Forms\\CF0925a.xdp' + ], + [ 'form_id' => 29, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Forms\\CF0926.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 33 => - array ( - 'id' => 34, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Forms\\CF0926.xdp' + ], + [ 'form_id' => 30, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Forms\\CF0928.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 34 => - array ( - 'id' => 35, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Forms\\CF0928.xdp' + ], + [ 'form_id' => 31, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CCS\\Forms\\CF0929.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 35 => - array ( - 'id' => 36, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CCS\\Forms\\CF0929.xdp' + ], + [ 'form_id' => 32, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF1070.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 36 => - array ( - 'id' => 37, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF1070.xdp' + ], + [ 'form_id' => 32, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF1070_1.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 37 => - array ( - 'id' => 38, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF1070_1.xdp' + ], + [ 'form_id' => 32, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF1070_2.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 38 => - array ( - 'id' => 39, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF1070_2.xdp' + ], + [ 'form_id' => 33, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF1071.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 39 => - array ( - 'id' => 40, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF1071.xdp' + ], + [ 'form_id' => 34, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF1072.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 40 => - array ( - 'id' => 41, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF1072.xdp' + ], + [ 'form_id' => 34, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Ministry\\Forms\\CF1072.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 41 => - array ( - 'id' => 42, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Ministry\\Forms\\CF1072.xdp' + ], + [ 'form_id' => 35, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF2044.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 42 => - array ( - 'id' => 43, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF2044.xdp' + ], + [ 'form_id' => 36, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CYSN\\Forms\\CF2166.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 43 => - array ( - 'id' => 44, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CYSN\\Forms\\CF2166.xdp' + ], + [ 'form_id' => 37, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CYSN\\Forms\\CF2186.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 44 => - array ( - 'id' => 45, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CYSN\\Forms\\CF2186.xdp' + ], + [ 'form_id' => 38, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildWelfare\\Forms\\CF2190.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 45 => - array ( - 'id' => 46, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildWelfare\\Forms\\CF2190.xdp' + ], + [ 'form_id' => 39, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildWelfare\\Forms\\CF2191.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 46 => - array ( - 'id' => 47, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildWelfare\\Forms\\CF2191.xdp' + ], + [ 'form_id' => 40, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildWelfare\\Forms\\CF2200.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 47 => - array ( - 'id' => 48, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildWelfare\\Forms\\CF2200.xdp' + ], + [ 'form_id' => 41, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildWelfare\\Forms\\CF2201.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 48 => - array ( - 'id' => 49, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildWelfare\\Forms\\CF2201.xdp' + ], + [ 'form_id' => 42, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Ministry\\Forms\\CF2593.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 49 => - array ( - 'id' => 50, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Ministry\\Forms\\CF2593.xdp' + ], + [ 'form_id' => 42, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF2593.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 50 => - array ( - 'id' => 51, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF2593.xdp' + ], + [ 'form_id' => 42, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildWelfare\\CF2593.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 51 => - array ( - 'id' => 52, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildWelfare\\CF2593.xdp' + ], + [ 'form_id' => 43, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildWelfare\\CF2595.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 52 => - array ( - 'id' => 53, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildWelfare\\CF2595.xdp' + ], + [ 'form_id' => 44, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildWelfare\\Forms\\CF2599.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 53 => - array ( - 'id' => 54, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildWelfare\\Forms\\CF2599.xdp' + ], + [ 'form_id' => 45, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildWelfare\\Forms\\CF2606.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 54 => - array ( - 'id' => 55, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildWelfare\\Forms\\CF2606.xdp' + ], + [ 'form_id' => 46, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildWelfare\\Forms\\CF2612.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 55 => - array ( - 'id' => 56, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildWelfare\\Forms\\CF2612.xdp' + ], + [ 'form_id' => 47, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CYSN\\Forms\\CF2615.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 56 => - array ( - 'id' => 57, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CYSN\\Forms\\CF2615.xdp' + ], + [ 'form_id' => 48, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF2631.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 57 => - array ( - 'id' => 58, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF2631.xdp' + ], + [ 'form_id' => 49, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CCS\\Forms\\CF2900.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 58 => - array ( - 'id' => 59, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CCS\\Forms\\CF2900.xdp' + ], + [ 'form_id' => 50, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\YouthServices\\Forms\\CF2901.XDP', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 59 => - array ( - 'id' => 60, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\YouthServices\\Forms\\CF2901.XDP' + ], + [ 'form_id' => 51, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF4050.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 60 => - array ( - 'id' => 61, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF4050.xdp' + ], + [ 'form_id' => 51, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\CF4050.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 61 => - array ( - 'id' => 62, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\CF4050.xdp' + ], + [ 'form_id' => 52, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF4051.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 62 => - array ( - 'id' => 63, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF4051.xdp' + ], + [ 'form_id' => 53, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF4056.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 63 => - array ( - 'id' => 64, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF4056.xdp' + ], + [ 'form_id' => 54, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF4058.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 64 => - array ( - 'id' => 65, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF4058.xdp' + ], + [ 'form_id' => 54, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\CF4058.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 65 => - array ( - 'id' => 66, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\CF4058.xdp' + ], + [ 'form_id' => 55, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF4060.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 66 => - array ( - 'id' => 67, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF4060.xdp' + ], + [ 'form_id' => 56, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF4061.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 67 => - array ( - 'id' => 68, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF4061.xdp' + ], + [ 'form_id' => 57, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF4062.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 68 => - array ( - 'id' => 69, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF4062.xdp' + ], + [ 'form_id' => 58, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF4063.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 69 => - array ( - 'id' => 70, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF4063.xdp' + ], + [ 'form_id' => 59, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF4064.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 70 => - array ( - 'id' => 71, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF4064.xdp' + ], + [ 'form_id' => 60, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF4066.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 71 => - array ( - 'id' => 72, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CF4066.xdp' + ], + [ 'form_id' => 61, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CYSN\\Forms\\CF4116.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 72 => - array ( - 'id' => 73, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CYSN\\Forms\\CF4116.xdp' + ], + [ 'form_id' => 62, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CFDRT001.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 73 => - array ( - 'id' => 74, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\CFDRT001.xdp' + ], + [ 'form_id' => 63, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Ministry\\Correspondences\\CFL000001.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 74 => - array ( - 'id' => 75, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Ministry\\Correspondences\\CFL000001.xdp' + ], + [ 'form_id' => 64, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Correspondences\\CFL00510.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 75 => - array ( - 'id' => 76, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Correspondences\\CFL00510.xdp' + ], + [ 'form_id' => 65, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Correspondences\\CFL00511.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 76 => - array ( - 'id' => 77, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Correspondences\\CFL00511.xdp' + ], + [ 'form_id' => 66, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Correspondences\\CFL00512.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 77 => - array ( - 'id' => 78, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Correspondences\\CFL00512.xdp' + ], + [ 'form_id' => 67, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Correspondences\\CFL00513.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 78 => - array ( - 'id' => 79, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Correspondences\\CFL00513.xdp' + ], + [ 'form_id' => 68, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Correspondences\\CFL00514.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 79 => - array ( - 'id' => 80, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Correspondences\\CFL00514.xdp' + ], + [ 'form_id' => 69, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Correspondences\\CFL00515.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 80 => - array ( - 'id' => 81, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Correspondences\\CFL00515.xdp' + ], + [ 'form_id' => 70, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Correspondences\\CFL00516.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 81 => - array ( - 'id' => 82, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Correspondences\\CFL00516.xdp' + ], + [ 'form_id' => 71, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Correspondences\\CFL00517.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 82 => - array ( - 'id' => 83, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Correspondences\\CFL00517.xdp' + ], + [ 'form_id' => 72, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Correspondences\\CFL00518.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 83 => - array ( - 'id' => 84, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Correspondences\\CFL00518.xdp' + ], + [ 'form_id' => 73, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Correspondences\\CFL00519.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 84 => - array ( - 'id' => 85, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Correspondences\\CFL00519.xdp' + ], + [ 'form_id' => 74, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Correspondences\\CFL00520.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 85 => - array ( - 'id' => 86, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Correspondences\\CFL00520.xdp' + ], + [ 'form_id' => 75, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Correspondences\\CFL00521.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 86 => - array ( - 'id' => 87, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Correspondences\\CFL00521.xdp' + ], + [ 'form_id' => 76, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Correspondences\\CFL00522.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 87 => - array ( - 'id' => 88, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Correspondences\\CFL00522.xdp' + ], + [ 'form_id' => 77, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Correspondences\\CFL00523.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 88 => - array ( - 'id' => 89, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Correspondences\\CFL00523.xdp' + ], + [ 'form_id' => 78, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Correspondences\\CFL00524.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 89 => - array ( - 'id' => 90, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Correspondences\\CFL00524.xdp' + ], + [ 'form_id' => 79, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Correspondences\\CFL00541.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 90 => - array ( - 'id' => 91, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Correspondences\\CFL00541.xdp' + ], + [ 'form_id' => 80, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Correspondences\\CFL00542 - BC Mail Data Form.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 91 => - array ( - 'id' => 92, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Correspondences\\CFL00542 - BC Mail Data Form.xdp' + ], + [ 'form_id' => 81, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Correspondences\\CFL00550.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 92 => - array ( - 'id' => 93, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Correspondences\\CFL00550.xdp' + ], + [ 'form_id' => 82, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Correspondences\\CFL00551.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 93 => - array ( - 'id' => 94, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Correspondences\\CFL00551.xdp' + ], + [ 'form_id' => 83, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Correspondences\\CFL00552.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 94 => - array ( - 'id' => 95, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Correspondences\\CFL00552.xdp' + ], + [ 'form_id' => 84, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Correspondences\\CFL00553.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 95 => - array ( - 'id' => 96, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Correspondences\\CFL00553.xdp' + ], + [ 'form_id' => 85, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Correspondences\\CFL00554.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 96 => - array ( - 'id' => 97, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\Autism\\Correspondences\\CFL00554.xdp' + ], + [ 'form_id' => 86, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CCS\\Correspondences\\CFL01010.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 97 => - array ( - 'id' => 98, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CCS\\Correspondences\\CFL01010.xdp' + ], + [ 'form_id' => 87, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CCS\\Correspondences\\CFL01013.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 98 => - array ( - 'id' => 99, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CCS\\Correspondences\\CFL01013.xdp' + ], + [ 'form_id' => 88, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CCS\\Correspondences\\CFL01014.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 99 => - array ( - 'id' => 100, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CCS\\Correspondences\\CFL01014.xdp' + ], + [ 'form_id' => 89, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CCS\\Correspondences\\CFL01015.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 100 => - array ( - 'id' => 101, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CCS\\Correspondences\\CFL01015.xdp' + ], + [ 'form_id' => 90, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CCS\\Correspondences\\CFL01016.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 101 => - array ( - 'id' => 102, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CCS\\Correspondences\\CFL01016.xdp' + ], + [ 'form_id' => 91, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Ministry\\Correspondences\\CFL01017.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 102 => - array ( - 'id' => 103, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Ministry\\Correspondences\\CFL01017.xdp' + ], + [ 'form_id' => 91, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CCS\\Correspondences\\CFL01017.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 103 => - array ( - 'id' => 104, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CCS\\Correspondences\\CFL01017.xdp' + ], + [ 'form_id' => 92, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CCS\\Correspondences\\CFL01018.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 104 => - array ( - 'id' => 105, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CCS\\Correspondences\\CFL01018.xdp' + ], + [ 'form_id' => 93, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CCS\\Correspondences\\CFL01019.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 105 => - array ( - 'id' => 106, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CCS\\Correspondences\\CFL01019.xdp' + ], + [ 'form_id' => 94, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CCS\\Correspondences\\CFL01020.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 106 => - array ( - 'id' => 107, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CCS\\Correspondences\\CFL01020.xdp' + ], + [ 'form_id' => 95, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CCS\\Correspondences\\CFL01021.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 107 => - array ( - 'id' => 108, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CCS\\Correspondences\\CFL01021.xdp' + ], + [ 'form_id' => 96, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CCS\\Correspondences\\CFL01022.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 108 => - array ( - 'id' => 109, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CCS\\Correspondences\\CFL01022.xdp' + ], + [ 'form_id' => 97, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CCS\\Correspondences\\CFL01022A.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 109 => - array ( - 'id' => 110, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CCS\\Correspondences\\CFL01022A.xdp' + ], + [ 'form_id' => 98, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CCS\\Correspondences\\CFL01040.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 110 => - array ( - 'id' => 111, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CCS\\Correspondences\\CFL01040.xdp' + ], + [ 'form_id' => 99, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CCS\\Correspondences\\CFL01041.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 111 => - array ( - 'id' => 112, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CCS\\Correspondences\\CFL01041.xdp' + ], + [ 'form_id' => 100, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CCS\\Correspondences\\CFL01042.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 112 => - array ( - 'id' => 113, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CCS\\Correspondences\\CFL01042.xdp' + ], + [ 'form_id' => 101, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CCS\\Correspondences\\CFL01043.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 113 => - array ( - 'id' => 114, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CCS\\Correspondences\\CFL01043.xdp' + ], + [ 'form_id' => 102, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CCS\\Correspondences\\CFL01044.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 114 => - array ( - 'id' => 115, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CCS\\Correspondences\\CFL01044.xdp' + ], + [ 'form_id' => 103, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CCS\\Correspondences\\CFL01045.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 115 => - array ( - 'id' => 116, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CCS\\Correspondences\\CFL01045.xdp' + ], + [ 'form_id' => 104, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CCS\\Correspondences\\CFL01048.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 116 => - array ( - 'id' => 117, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CCS\\Correspondences\\CFL01048.xdp' + ], + [ 'form_id' => 105, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CCS\\Correspondences\\CFL01071.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 117 => - array ( - 'id' => 118, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CCS\\Correspondences\\CFL01071.xdp' + ], + [ 'form_id' => 106, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CCS\\Correspondences\\CFL01072.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 118 => - array ( - 'id' => 119, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CCS\\Correspondences\\CFL01072.xdp' + ], + [ 'form_id' => 107, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Correspondence\\CFL02010.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 119 => - array ( - 'id' => 120, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Correspondence\\CFL02010.xdp' + ], + [ 'form_id' => 108, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Correspondence\\CFL02012.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 120 => - array ( - 'id' => 121, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Correspondence\\CFL02012.xdp' + ], + [ 'form_id' => 109, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Correspondence\\CFL02014.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 121 => - array ( - 'id' => 122, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Correspondence\\CFL02014.xdp' + ], + [ 'form_id' => 110, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Correspondence\\CFL02016.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 122 => - array ( - 'id' => 123, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Correspondence\\CFL02016.xdp' + ], + [ 'form_id' => 111, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Correspondence\\CFL02019.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 123 => - array ( - 'id' => 124, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Correspondence\\CFL02019.xdp' + ], + [ 'form_id' => 112, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CYSN\\Correspondences\\CFL02021.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 124 => - array ( - 'id' => 125, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CYSN\\Correspondences\\CFL02021.xdp' + ], + [ 'form_id' => 113, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CYSN\\Correspondences\\CFL04010.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 125 => - array ( - 'id' => 126, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CYSN\\Correspondences\\CFL04010.xdp' + ], + [ 'form_id' => 114, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04510.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 126 => - array ( - 'id' => 127, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04510.xdp' + ], + [ 'form_id' => 115, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04511.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 127 => - array ( - 'id' => 128, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04511.xdp' + ], + [ 'form_id' => 116, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04512.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 128 => - array ( - 'id' => 129, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04512.xdp' + ], + [ 'form_id' => 117, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04513.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 129 => - array ( - 'id' => 130, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04513.xdp' + ], + [ 'form_id' => 118, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04514.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 130 => - array ( - 'id' => 131, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04514.xdp' + ], + [ 'form_id' => 119, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04515.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 131 => - array ( - 'id' => 132, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04515.xdp' + ], + [ 'form_id' => 120, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04516.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 132 => - array ( - 'id' => 133, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04516.xdp' + ], + [ 'form_id' => 121, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04517.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 133 => - array ( - 'id' => 134, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04517.xdp' + ], + [ 'form_id' => 122, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CYSN\\Correspondences\\CFL04519.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 134 => - array ( - 'id' => 135, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CYSN\\Correspondences\\CFL04519.xdp' + ], + [ 'form_id' => 123, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CYSN\\Correspondences\\CFL04520.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 135 => - array ( - 'id' => 136, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CYSN\\Correspondences\\CFL04520.xdp' + ], + [ 'form_id' => 124, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CYSN\\Correspondences\\CFL04521.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 136 => - array ( - 'id' => 137, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CYSN\\Correspondences\\CFL04521.xdp' + ], + [ 'form_id' => 125, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CYSN\\Correspondences\\CFL04522.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 137 => - array ( - 'id' => 138, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\CYSN\\Correspondences\\CFL04522.xdp' + ], + [ 'form_id' => 126, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04523.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 138 => - array ( - 'id' => 139, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04523.xdp' + ], + [ 'form_id' => 127, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04524.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 139 => - array ( - 'id' => 140, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04524.xdp' + ], + [ 'form_id' => 128, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04525.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 140 => - array ( - 'id' => 141, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04525.xdp' + ], + [ 'form_id' => 129, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04526.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 141 => - array ( - 'id' => 142, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04526.xdp' + ], + [ 'form_id' => 130, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04527.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 142 => - array ( - 'id' => 143, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04527.xdp' + ], + [ 'form_id' => 131, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04528.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 143 => - array ( - 'id' => 144, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04528.xdp' + ], + [ 'form_id' => 132, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04529.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 144 => - array ( - 'id' => 145, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04529.xdp' + ], + [ 'form_id' => 133, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04530.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 145 => - array ( - 'id' => 146, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04530.xdp' + ], + [ 'form_id' => 134, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04531.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 146 => - array ( - 'id' => 147, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04531.xdp' + ], + [ 'form_id' => 135, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04532.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 147 => - array ( - 'id' => 148, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04532.xdp' + ], + [ 'form_id' => 136, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04533.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 148 => - array ( - 'id' => 149, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04533.xdp' + ], + [ 'form_id' => 137, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04534.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 149 => - array ( - 'id' => 150, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04534.xdp' + ], + [ 'form_id' => 138, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04535.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 150 => - array ( - 'id' => 151, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04535.xdp' + ], + [ 'form_id' => 139, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04536.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 151 => - array ( - 'id' => 152, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04536.xdp' + ], + [ 'form_id' => 140, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04541.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 152 => - array ( - 'id' => 153, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04541.xdp' + ], + [ 'form_id' => 141, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04542.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 153 => - array ( - 'id' => 154, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04542.xdp' + ], + [ 'form_id' => 142, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04543.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 154 => - array ( - 'id' => 155, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04543.xdp' + ], + [ 'form_id' => 143, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04550.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 155 => - array ( - 'id' => 156, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04550.xdp' + ], + [ 'form_id' => 144, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04551.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 156 => - array ( - 'id' => 157, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04551.xdp' + ], + [ 'form_id' => 145, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04552.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 157 => - array ( - 'id' => 158, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04552.xdp' + ], + [ 'form_id' => 146, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04553.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 158 => - array ( - 'id' => 159, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04553.xdp' + ], + [ 'form_id' => 147, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04554.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 159 => - array ( - 'id' => 160, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04554.xdp' + ], + [ 'form_id' => 148, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04555.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 160 => - array ( - 'id' => 161, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04555.xdp' + ], + [ 'form_id' => 149, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04556.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 161 => - array ( - 'id' => 162, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04556.xdp' + ], + [ 'form_id' => 150, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04557.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 162 => - array ( - 'id' => 163, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04557.xdp' + ], + [ 'form_id' => 151, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04558.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 163 => - array ( - 'id' => 164, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04558.xdp' + ], + [ 'form_id' => 152, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04559.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 164 => - array ( - 'id' => 165, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\MedicalBenefits\\Correspondences\\CFL04559.xdp' + ], + [ 'form_id' => 153, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\CTI Automated Telephone Inquiry.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 165 => - array ( - 'id' => 166, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\CTI Automated Telephone Inquiry.xdp' + ], + [ 'form_id' => 154, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\BusPass\\HR00010.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 166 => - array ( - 'id' => 167, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\BusPass\\HR00010.xdp' + ], + [ 'form_id' => 155, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR0024.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 167 => - array ( - 'id' => 168, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR0024.xdp' + ], + [ 'form_id' => 156, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR0077.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 168 => - array ( - 'id' => 169, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR0077.xdp' + ], + [ 'form_id' => 157, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR0080.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 169 => - array ( - 'id' => 170, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR0080.xdp' + ], + [ 'form_id' => 158, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR0080A.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 170 => - array ( - 'id' => 171, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR0080A.xdp' + ], + [ 'form_id' => 159, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR0080B.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 171 => - array ( - 'id' => 172, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR0080B.xdp' + ], + [ 'form_id' => 160, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR0080R.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 172 => - array ( - 'id' => 173, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR0080R.xdp' + ], + [ 'form_id' => 161, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR0081-telemonthly.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 173 => - array ( - 'id' => 174, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR0081-telemonthly.xdp' + ], + [ 'form_id' => 162, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR0081-telemonthly.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 174 => - array ( - 'id' => 175, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR0081-telemonthly.xdp' + ], + [ 'form_id' => 163, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR0095.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 175 => - array ( - 'id' => 176, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR0095.xdp' + ], + [ 'form_id' => 164, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR0100.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 176 => - array ( - 'id' => 177, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR0100.xdp' + ], + [ 'form_id' => 165, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR2049.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 177 => - array ( - 'id' => 178, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR2049.xdp' + ], + [ 'form_id' => 166, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR2138.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 178 => - array ( - 'id' => 179, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR2138.xdp' + ], + [ 'form_id' => 167, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR2150.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 179 => - array ( - 'id' => 180, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR2150.xdp' + ], + [ 'form_id' => 168, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR2150A.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 180 => - array ( - 'id' => 181, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR2150A.xdp' + ], + [ 'form_id' => 169, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR2186.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 181 => - array ( - 'id' => 182, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR2186.xdp' + ], + [ 'form_id' => 170, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR2188.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 182 => - array ( - 'id' => 183, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR2188.xdp' + ], + [ 'form_id' => 171, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Correspondences\\HR2194.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 183 => - array ( - 'id' => 184, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Correspondences\\HR2194.xdp' + ], + [ 'form_id' => 172, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR2230.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 184 => - array ( - 'id' => 185, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR2230.xdp' + ], + [ 'form_id' => 173, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR2528.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 185 => - array ( - 'id' => 186, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR2528.xdp' + ], + [ 'form_id' => 174, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR2648.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 186 => - array ( - 'id' => 187, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR2648.xdp' + ], + [ 'form_id' => 175, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR2663A.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 187 => - array ( - 'id' => 188, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR2663A.xdp' + ], + [ 'form_id' => 176, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR2724.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 188 => - array ( - 'id' => 189, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR2724.xdp' + ], + [ 'form_id' => 177, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR2737.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 189 => - array ( - 'id' => 190, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR2737.xdp' + ], + [ 'form_id' => 178, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR2748.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 190 => - array ( - 'id' => 191, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR2748.xdp' + ], + [ 'form_id' => 179, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR2751.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 191 => - array ( - 'id' => 192, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR2751.xdp' + ], + [ 'form_id' => 180, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR2752.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 192 => - array ( - 'id' => 193, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR2752.xdp' + ], + [ 'form_id' => 181, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR2768.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 193 => - array ( - 'id' => 194, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR2768.xdp' + ], + [ 'form_id' => 182, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR2769.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 194 => - array ( - 'id' => 195, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR2769.xdp' + ], + [ 'form_id' => 183, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR2770.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 195 => - array ( - 'id' => 196, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR2770.xdp' + ], + [ 'form_id' => 184, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR2771.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 196 => - array ( - 'id' => 197, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR2771.xdp' + ], + [ 'form_id' => 185, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR2772.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 197 => - array ( - 'id' => 198, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR2772.xdp' + ], + [ 'form_id' => 186, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR2777.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 198 => - array ( - 'id' => 199, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR2777.xdp' + ], + [ 'form_id' => 187, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR2786.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 199 => - array ( - 'id' => 200, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR2786.xdp' + ], + [ 'form_id' => 188, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR2790.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 200 => - array ( - 'id' => 201, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR2790.xdp' + ], + [ 'form_id' => 189, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR2797.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 201 => - array ( - 'id' => 202, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR2797.xdp' + ], + [ 'form_id' => 190, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR2818.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 202 => - array ( - 'id' => 203, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR2818.xdp' + ], + [ 'form_id' => 191, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\HAB\\Forms\\HR2835.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 203 => - array ( - 'id' => 204, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\HAB\\Forms\\HR2835.xdp' + ], + [ 'form_id' => 192, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\HAB\\Forms\\HR2836.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 204 => - array ( - 'id' => 205, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\HAB\\Forms\\HR2836.xdp' + ], + [ 'form_id' => 193, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR2847.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 205 => - array ( - 'id' => 206, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR2847.xdp' + ], + [ 'form_id' => 194, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR2856.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 206 => - array ( - 'id' => 207, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR2856.xdp' + ], + [ 'form_id' => 195, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR2863.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 207 => - array ( - 'id' => 208, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR2863.xdp' + ], + [ 'form_id' => 196, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR2865.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 208 => - array ( - 'id' => 209, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR2865.xdp' + ], + [ 'form_id' => 197, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR2883.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 209 => - array ( - 'id' => 210, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR2883.xdp' + ], + [ 'form_id' => 198, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR2892.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 210 => - array ( - 'id' => 211, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR2892.xdp' + ], + [ 'form_id' => 199, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR2892A.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 211 => - array ( - 'id' => 212, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR2892A.xdp' + ], + [ 'form_id' => 200, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\HAB\\Forms\\HR2894.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 212 => - array ( - 'id' => 213, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\HAB\\Forms\\HR2894.xdp' + ], + [ 'form_id' => 201, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR2916.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 213 => - array ( - 'id' => 214, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR2916.xdp' + ], + [ 'form_id' => 202, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR2940.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 214 => - array ( - 'id' => 215, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR2940.xdp' + ], + [ 'form_id' => 203, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR2954.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 215 => - array ( - 'id' => 216, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR2954.xdp' + ], + [ 'form_id' => 204, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR2956.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 216 => - array ( - 'id' => 217, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR2956.xdp' + ], + [ 'form_id' => 205, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR3033.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 217 => - array ( - 'id' => 218, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR3033.xdp' + ], + [ 'form_id' => 206, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR3034.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 218 => - array ( - 'id' => 219, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR3034.xdp' + ], + [ 'form_id' => 207, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR3037.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 219 => - array ( - 'id' => 220, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR3037.xdp' + ], + [ 'form_id' => 208, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Correspondences\\HR3042.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 220 => - array ( - 'id' => 221, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Correspondences\\HR3042.xdp' + ], + [ 'form_id' => 209, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3043.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 221 => - array ( - 'id' => 222, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3043.xdp' + ], + [ 'form_id' => 210, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR3049.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 222 => - array ( - 'id' => 223, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR3049.xdp' + ], + [ 'form_id' => 211, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR3069.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 223 => - array ( - 'id' => 224, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR3069.xdp' + ], + [ 'form_id' => 212, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\BusPass\\HR3081.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 224 => - array ( - 'id' => 225, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\BusPass\\HR3081.xdp' + ], + [ 'form_id' => 213, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\PLMS\\Forms\\HR3112.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 225 => - array ( - 'id' => 226, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\PLMS\\Forms\\HR3112.xdp' + ], + [ 'form_id' => 214, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR3115.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 226 => - array ( - 'id' => 227, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR3115.xdp' + ], + [ 'form_id' => 215, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR3116.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 227 => - array ( - 'id' => 228, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR3116.xdp' + ], + [ 'form_id' => 216, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR3125.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 228 => - array ( - 'id' => 229, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR3125.xdp' + ], + [ 'form_id' => 217, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3143.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 229 => - array ( - 'id' => 230, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3143.xdp' + ], + [ 'form_id' => 218, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\SeniorsSupplement\\HR3162.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 230 => - array ( - 'id' => 231, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\SeniorsSupplement\\HR3162.xdp' + ], + [ 'form_id' => 219, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3163.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 231 => - array ( - 'id' => 232, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3163.xdp' + ], + [ 'form_id' => 220, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3164.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 232 => - array ( - 'id' => 233, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3164.xdp' + ], + [ 'form_id' => 221, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR3183.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 233 => - array ( - 'id' => 234, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR3183.xdp' + ], + [ 'form_id' => 222, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR3189.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 234 => - array ( - 'id' => 235, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR3189.xdp' + ], + [ 'form_id' => 223, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3194A.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 235 => - array ( - 'id' => 236, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3194A.xdp' + ], + [ 'form_id' => 224, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3194B.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 236 => - array ( - 'id' => 237, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3194B.xdp' + ], + [ 'form_id' => 225, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3196.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 237 => - array ( - 'id' => 238, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3196.xdp' + ], + [ 'form_id' => 225, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\PLMS\\Correspondences\\HR3196.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 238 => - array ( - 'id' => 239, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\PLMS\\Correspondences\\HR3196.xdp' + ], + [ 'form_id' => 226, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3197.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 239 => - array ( - 'id' => 240, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3197.xdp' + ], + [ 'form_id' => 226, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\PLMS\\Correspondences\\HR3197.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 240 => - array ( - 'id' => 241, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\PLMS\\Correspondences\\HR3197.xdp' + ], + [ 'form_id' => 227, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\PLMS\\Correspondences\\HR3198.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 241 => - array ( - 'id' => 242, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\PLMS\\Correspondences\\HR3198.xdp' + ], + [ 'form_id' => 228, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3199.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 242 => - array ( - 'id' => 243, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3199.xdp' + ], + [ 'form_id' => 229, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3200.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 243 => - array ( - 'id' => 244, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3200.xdp' + ], + [ 'form_id' => 230, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3218.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 244 => - array ( - 'id' => 245, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3218.xdp' + ], + [ 'form_id' => 231, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3228A.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 245 => - array ( - 'id' => 246, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3228A.xdp' + ], + [ 'form_id' => 232, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3228B.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 246 => - array ( - 'id' => 247, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3228B.xdp' + ], + [ 'form_id' => 233, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3231.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 247 => - array ( - 'id' => 248, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3231.xdp' + ], + [ 'form_id' => 234, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3232.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 248 => - array ( - 'id' => 249, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3232.xdp' + ], + [ 'form_id' => 235, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3234.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 249 => - array ( - 'id' => 250, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3234.xdp' + ], + [ 'form_id' => 236, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3235.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 250 => - array ( - 'id' => 251, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3235.xdp' + ], + [ 'form_id' => 237, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3237.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 251 => - array ( - 'id' => 252, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3237.xdp' + ], + [ 'form_id' => 238, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3238.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 252 => - array ( - 'id' => 253, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3238.xdp' + ], + [ 'form_id' => 239, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3240.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 253 => - array ( - 'id' => 254, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3240.xdp' + ], + [ 'form_id' => 240, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3250.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 254 => - array ( - 'id' => 255, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3250.xdp' + ], + [ 'form_id' => 241, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR3265.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 255 => - array ( - 'id' => 256, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR3265.xdp' + ], + [ 'form_id' => 242, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR3266.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 256 => - array ( - 'id' => 257, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR3266.xdp' + ], + [ 'form_id' => 243, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR3267.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 257 => - array ( - 'id' => 258, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR3267.xdp' + ], + [ 'form_id' => 244, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR3271.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 258 => - array ( - 'id' => 259, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR3271.xdp' + ], + [ 'form_id' => 245, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Correspondences\\HR3274.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 259 => - array ( - 'id' => 260, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Correspondences\\HR3274.xdp' + ], + [ 'form_id' => 246, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Correspondences\\HR3276.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 260 => - array ( - 'id' => 327, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Correspondences\\HR3276.xdp' + ], + [ 'form_id' => 305, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Correspondences\\HR3391E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 261 => - array ( - 'id' => 261, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Correspondences\\HR3391E.xdp' + ], + [ 'form_id' => 247, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Correspondences\\HR3277.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 262 => - array ( - 'id' => 262, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Correspondences\\HR3277.xdp' + ], + [ 'form_id' => 248, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Correspondences\\HR3278.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 263 => - array ( - 'id' => 263, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Correspondences\\HR3278.xdp' + ], + [ 'form_id' => 249, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Correspondences\\HR3279.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 264 => - array ( - 'id' => 264, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Correspondences\\HR3279.xdp' + ], + [ 'form_id' => 250, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Correspondences\\HR3280.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 265 => - array ( - 'id' => 265, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Correspondences\\HR3280.xdp' + ], + [ 'form_id' => 251, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Correspondences\\HR3281.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 266 => - array ( - 'id' => 266, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Correspondences\\HR3281.xdp' + ], + [ 'form_id' => 251, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR3281.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 267 => - array ( - 'id' => 267, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR3281.xdp' + ], + [ 'form_id' => 252, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Correspondences\\HR3282.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 268 => - array ( - 'id' => 268, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Correspondences\\HR3282.xdp' + ], + [ 'form_id' => 253, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Correspondences\\HR3283.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 269 => - array ( - 'id' => 269, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Correspondences\\HR3283.xdp' + ], + [ 'form_id' => 254, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Correspondences\\HR3296.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 270 => - array ( - 'id' => 270, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Correspondences\\HR3296.xdp' + ], + [ 'form_id' => 255, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR3298.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 271 => - array ( - 'id' => 271, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR3298.xdp' + ], + [ 'form_id' => 256, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3301.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 272 => - array ( - 'id' => 272, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3301.xdp' + ], + [ 'form_id' => 257, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Correspondences\\HR3302.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 273 => - array ( - 'id' => 273, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Correspondences\\HR3302.xdp' + ], + [ 'form_id' => 258, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Correspondences\\HR3309.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 274 => - array ( - 'id' => 274, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Correspondences\\HR3309.xdp' + ], + [ 'form_id' => 259, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3315.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 275 => - array ( - 'id' => 275, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3315.xdp' + ], + [ 'form_id' => 260, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3317.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 276 => - array ( - 'id' => 276, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3317.xdp' + ], + [ 'form_id' => 261, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3317B.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 277 => - array ( - 'id' => 277, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3317B.xdp' + ], + [ 'form_id' => 261, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\MSO Eligibility Letter_HR3317B.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 278 => - array ( - 'id' => 278, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\MSO Eligibility Letter_HR3317B.xdp' + ], + [ 'form_id' => 262, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3318a.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 279 => - array ( - 'id' => 279, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3318a.xdp' + ], + [ 'form_id' => 263, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR3320.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 280 => - array ( - 'id' => 280, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR3320.xdp' + ], + [ 'form_id' => 264, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Correspondences\\HR3323.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 281 => - array ( - 'id' => 281, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Correspondences\\HR3323.xdp' + ], + [ 'form_id' => 265, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR3324.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 282 => - array ( - 'id' => 282, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR3324.xdp' + ], + [ 'form_id' => 266, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR3325.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 283 => - array ( - 'id' => 283, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR3325.xdp' + ], + [ 'form_id' => 267, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Correspondences\\HR3326.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 284 => - array ( - 'id' => 284, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Correspondences\\HR3326.xdp' + ], + [ 'form_id' => 268, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3341.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 285 => - array ( - 'id' => 285, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3341.xdp' + ], + [ 'form_id' => 269, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3342.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 286 => - array ( - 'id' => 286, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3342.xdp' + ], + [ 'form_id' => 270, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3343.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 287 => - array ( - 'id' => 287, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3343.xdp' + ], + [ 'form_id' => 271, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3344.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 288 => - array ( - 'id' => 288, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3344.xdp' + ], + [ 'form_id' => 272, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3351AE.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 289 => - array ( - 'id' => 289, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3351AE.xdp' + ], + [ 'form_id' => 272, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3351EA.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 290 => - array ( - 'id' => 290, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3351EA.xdp' + ], + [ 'form_id' => 273, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3351E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 291 => - array ( - 'id' => 291, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3351E.xdp' + ], + [ 'form_id' => 274, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3353E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 292 => - array ( - 'id' => 292, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3353E.xdp' + ], + [ 'form_id' => 275, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3354E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 293 => - array ( - 'id' => 293, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3354E.xdp' + ], + [ 'form_id' => 276, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3355E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 294 => - array ( - 'id' => 294, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3355E.xdp' + ], + [ 'form_id' => 277, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3356E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 295 => - array ( - 'id' => 295, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3356E.xdp' + ], + [ 'form_id' => 278, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3357E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 296 => - array ( - 'id' => 296, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3357E.xdp' + ], + [ 'form_id' => 279, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3358E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 297 => - array ( - 'id' => 297, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3358E.xdp' + ], + [ 'form_id' => 280, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Correspondences\\HR3359E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 298 => - array ( - 'id' => 298, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Correspondences\\HR3359E.xdp' + ], + [ 'form_id' => 280, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3359E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 299 => - array ( - 'id' => 299, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3359E.xdp' + ], + [ 'form_id' => 281, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3360E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 300 => - array ( - 'id' => 300, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3360E.xdp' + ], + [ 'form_id' => 282, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3361E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 301 => - array ( - 'id' => 301, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3361E.xdp' + ], + [ 'form_id' => 283, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3362E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 302 => - array ( - 'id' => 302, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3362E.xdp' + ], + [ 'form_id' => 283, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\HR3362.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 303 => - array ( - 'id' => 303, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\CFD\\Program\\ChildProtection\\Forms\\HR3362.xdp' + ], + [ 'form_id' => 284, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3363E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 304 => - array ( - 'id' => 304, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3363E.xdp' + ], + [ 'form_id' => 285, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3364E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 305 => - array ( - 'id' => 305, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3364E.xdp' + ], + [ 'form_id' => 285, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\SD3364E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 306 => - array ( - 'id' => 306, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\SD3364E.xdp' + ], + [ 'form_id' => 286, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3365E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 307 => - array ( - 'id' => 307, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3365E.xdp' + ], + [ 'form_id' => 287, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3366E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 308 => - array ( - 'id' => 308, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3366E.xdp' + ], + [ 'form_id' => 288, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3367AE.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 309 => - array ( - 'id' => 309, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3367AE.xdp' + ], + [ 'form_id' => 289, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3368E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 310 => - array ( - 'id' => 310, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3368E.xdp' + ], + [ 'form_id' => 290, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3369E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 311 => - array ( - 'id' => 311, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3369E.xdp' + ], + [ 'form_id' => 291, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3370E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 312 => - array ( - 'id' => 312, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3370E.xdp' + ], + [ 'form_id' => 292, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3372E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 313 => - array ( - 'id' => 313, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3372E.xdp' + ], + [ 'form_id' => 293, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3379E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 314 => - array ( - 'id' => 314, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3379E.xdp' + ], + [ 'form_id' => 293, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\SD3379.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 315 => - array ( - 'id' => 315, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\SD3379.xdp' + ], + [ 'form_id' => 294, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3380E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 316 => - array ( - 'id' => 316, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3380E.xdp' + ], + [ 'form_id' => 295, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Correspondences\\HR3381E .xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 317 => - array ( - 'id' => 317, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Correspondences\\HR3381E .xdp' + ], + [ 'form_id' => 296, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Correspondences\\HR3382E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 318 => - array ( - 'id' => 318, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Correspondences\\HR3382E.xdp' + ], + [ 'form_id' => 297, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Correspondences\\HR3383E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 319 => - array ( - 'id' => 319, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Correspondences\\HR3383E.xdp' + ], + [ 'form_id' => 298, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Correspondences\\HR3384E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 320 => - array ( - 'id' => 320, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Correspondences\\HR3384E.xdp' + ], + [ 'form_id' => 299, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3385E .xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 321 => - array ( - 'id' => 321, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3385E .xdp' + ], + [ 'form_id' => 299, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Correspondences\\HR3385E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 322 => - array ( - 'id' => 322, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Correspondences\\HR3385E.xdp' + ], + [ 'form_id' => 300, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Correspondences\\HR3386E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 323 => - array ( - 'id' => 323, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Correspondences\\HR3386E.xdp' + ], + [ 'form_id' => 301, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Correspondences\\HR3387E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 324 => - array ( - 'id' => 324, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Correspondences\\HR3387E.xdp' + ], + [ 'form_id' => 302, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Correspondences\\HR3388E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 325 => - array ( - 'id' => 325, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Correspondences\\HR3388E.xdp' + ], + [ 'form_id' => 303, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Correspondences\\HR3389E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 326 => - array ( - 'id' => 326, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Correspondences\\HR3389E.xdp' + ], + [ 'form_id' => 304, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Correspondences\\HR3390E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 327 => - array ( - 'id' => 328, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Correspondences\\HR3390E.xdp' + ], + [ 'form_id' => 306, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Correspondences\\HR3392E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 328 => - array ( - 'id' => 329, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Correspondences\\HR3392E.xdp' + ], + [ 'form_id' => 307, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Correspondences\\HR3393E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 329 => - array ( - 'id' => 330, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Correspondences\\HR3393E.xdp' + ], + [ 'form_id' => 307, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3393E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 330 => - array ( - 'id' => 331, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3393E.xdp' + ], + [ 'form_id' => 308, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Correspondences\\HR3394E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 331 => - array ( - 'id' => 332, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Correspondences\\HR3394E.xdp' + ], + [ 'form_id' => 308, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3394E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 332 => - array ( - 'id' => 333, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3394E.xdp' + ], + [ 'form_id' => 309, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Correspondences\\HR3395E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 333 => - array ( - 'id' => 334, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Correspondences\\HR3395E.xdp' + ], + [ 'form_id' => 310, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Correspondences\\HR3396E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 334 => - array ( - 'id' => 335, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Correspondences\\HR3396E.xdp' + ], + [ 'form_id' => 311, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Correspondences\\HR3397E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 335 => - array ( - 'id' => 336, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Correspondences\\HR3397E.xdp' + ], + [ 'form_id' => 312, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Correspondences\\HR3398E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 336 => - array ( - 'id' => 337, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Correspondences\\HR3398E.xdp' + ], + [ 'form_id' => 313, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Correspondences\\HR3399E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 337 => - array ( - 'id' => 338, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Correspondences\\HR3399E.xdp' + ], + [ 'form_id' => 314, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Correspondences\\HR3400E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 338 => - array ( - 'id' => 339, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Correspondences\\HR3400E.xdp' + ], + [ 'form_id' => 315, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3450E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 339 => - array ( - 'id' => 340, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3450E.xdp' + ], + [ 'form_id' => 316, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3452E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 340 => - array ( - 'id' => 341, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3452E.xdp' + ], + [ 'form_id' => 317, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3453E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 341 => - array ( - 'id' => 342, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3453E.xdp' + ], + [ 'form_id' => 318, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3454E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 342 => - array ( - 'id' => 343, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3454E.xdp' + ], + [ 'form_id' => 319, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3456E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 343 => - array ( - 'id' => 344, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3456E.xdp' + ], + [ 'form_id' => 320, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3457E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 344 => - array ( - 'id' => 345, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3457E.xdp' + ], + [ 'form_id' => 321, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3459E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 345 => - array ( - 'id' => 346, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3459E.xdp' + ], + [ 'form_id' => 322, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3460.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 346 => - array ( - 'id' => 347, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3460.xdp' + ], + [ 'form_id' => 322, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\SD3460.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 347 => - array ( - 'id' => 348, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\SD3460.xdp' + ], + [ 'form_id' => 323, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3461.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 348 => - array ( - 'id' => 349, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3461.xdp' + ], + [ 'form_id' => 324, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3462.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 349 => - array ( - 'id' => 350, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3462.xdp' + ], + [ 'form_id' => 325, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3463.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 350 => - array ( - 'id' => 351, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3463.xdp' + ], + [ 'form_id' => 326, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3464.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 351 => - array ( - 'id' => 352, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3464.xdp' + ], + [ 'form_id' => 327, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3465.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 352 => - array ( - 'id' => 353, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3465.xdp' + ], + [ 'form_id' => 328, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3466.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 353 => - array ( - 'id' => 354, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3466.xdp' + ], + [ 'form_id' => 329, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3468.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 354 => - array ( - 'id' => 355, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3468.xdp' + ], + [ 'form_id' => 330, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3470.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 355 => - array ( - 'id' => 356, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3470.xdp' + ], + [ 'form_id' => 331, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3472.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 356 => - array ( - 'id' => 357, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3472.xdp' + ], + [ 'form_id' => 332, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\BusPass\\HR3473.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 357 => - array ( - 'id' => 358, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\BusPass\\HR3473.xdp' + ], + [ 'form_id' => 333, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\BusPass\\HR3474.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 358 => - array ( - 'id' => 359, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\BusPass\\HR3474.xdp' + ], + [ 'form_id' => 334, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\BusPass\\HR3475.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 359 => - array ( - 'id' => 360, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\BusPass\\HR3475.xdp' + ], + [ 'form_id' => 335, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\BusPass\\HR3500.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 360 => - array ( - 'id' => 361, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\BusPass\\HR3500.xdp' + ], + [ 'form_id' => 336, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\BusPass\\HR3502.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 361 => - array ( - 'id' => 362, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\BusPass\\HR3502.xdp' + ], + [ 'form_id' => 337, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\SeniorsSupplement\\HR3503.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 362 => - array ( - 'id' => 363, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\SeniorsSupplement\\HR3503.xdp' + ], + [ 'form_id' => 338, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\SeniorsSupplement\\HR3504.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 363 => - array ( - 'id' => 364, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\SeniorsSupplement\\HR3504.xdp' + ], + [ 'form_id' => 339, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3526E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 364 => - array ( - 'id' => 365, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR3526E.xdp' + ], + [ 'form_id' => 340, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR3541.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 365 => - array ( - 'id' => 366, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR3541.xdp' + ], + [ 'form_id' => 341, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR3542.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 366 => - array ( - 'id' => 367, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR3542.xdp' + ], + [ 'form_id' => 342, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR3545.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 367 => - array ( - 'id' => 368, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR3545.xdp' + ], + [ 'form_id' => 343, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR3546.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 368 => - array ( - 'id' => 369, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR3546.xdp' + ], + [ 'form_id' => 344, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR3547.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 369 => - array ( - 'id' => 370, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR3547.xdp' + ], + [ 'form_id' => 345, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3548.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 370 => - array ( - 'id' => 371, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3548.xdp' + ], + [ 'form_id' => 346, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3549.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 371 => - array ( - 'id' => 372, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3549.xdp' + ], + [ 'form_id' => 347, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR3552.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 372 => - array ( - 'id' => 373, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR3552.xdp' + ], + [ 'form_id' => 348, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR3554.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 373 => - array ( - 'id' => 374, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR3554.xdp' + ], + [ 'form_id' => 349, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\PLMS\\Correspondences\\HR3557.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 374 => - array ( - 'id' => 375, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\PLMS\\Correspondences\\HR3557.xdp' + ], + [ 'form_id' => 350, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\PLMS\\Correspondences\\HR3558.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 375 => - array ( - 'id' => 376, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\PLMS\\Correspondences\\HR3558.xdp' + ], + [ 'form_id' => 351, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\PLMS\\Correspondences\\HR3559.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 376 => - array ( - 'id' => 377, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\PLMS\\Correspondences\\HR3559.xdp' + ], + [ 'form_id' => 352, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\PLMS\\Correspondences\\HR3560.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 377 => - array ( - 'id' => 378, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\PLMS\\Correspondences\\HR3560.xdp' + ], + [ 'form_id' => 353, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\PLMS\\Correspondences\\HR3561.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 378 => - array ( - 'id' => 379, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\PLMS\\Correspondences\\HR3561.xdp' + ], + [ 'form_id' => 354, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR3562.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 379 => - array ( - 'id' => 380, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR3562.xdp' + ], + [ 'form_id' => 355, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR3563.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 380 => - array ( - 'id' => 381, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\FamilyMaintenance\\Forms\\HR3563.xdp' + ], + [ 'form_id' => 356, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR3637.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 381 => - array ( - 'id' => 382, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR3637.xdp' + ], + [ 'form_id' => 357, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3644.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 382 => - array ( - 'id' => 383, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3644.xdp' + ], + [ 'form_id' => 357, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\MSO Eligibility Letter_HR3644.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 383 => - array ( - 'id' => 384, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\MSO Eligibility Letter_HR3644.xdp' + ], + [ 'form_id' => 358, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3687E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 384 => - array ( - 'id' => 385, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3687E.xdp' + ], + [ 'form_id' => 359, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3688E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 385 => - array ( - 'id' => 386, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3688E.xdp' + ], + [ 'form_id' => 360, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3688R.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 386 => - array ( - 'id' => 387, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3688R.xdp' + ], + [ 'form_id' => 361, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3689E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 387 => - array ( - 'id' => 388, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3689E.xdp' + ], + [ 'form_id' => 362, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3690E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 388 => - array ( - 'id' => 389, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3690E.xdp' + ], + [ 'form_id' => 363, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3691E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 389 => - array ( - 'id' => 390, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3691E.xdp' + ], + [ 'form_id' => 364, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3692E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 390 => - array ( - 'id' => 391, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3692E.xdp' + ], + [ 'form_id' => 365, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3693E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 391 => - array ( - 'id' => 392, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3693E.xdp' + ], + [ 'form_id' => 366, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3694E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 392 => - array ( - 'id' => 393, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3694E.xdp' + ], + [ 'form_id' => 367, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3695AE.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 393 => - array ( - 'id' => 394, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3695AE.xdp' + ], + [ 'form_id' => 368, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3695E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 394 => - array ( - 'id' => 395, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3695E.xdp' + ], + [ 'form_id' => 369, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3696E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 395 => - array ( - 'id' => 396, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3696E.xdp' + ], + [ 'form_id' => 370, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3697E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 396 => - array ( - 'id' => 397, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3697E.xdp' + ], + [ 'form_id' => 371, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3698E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 397 => - array ( - 'id' => 398, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3698E.xdp' + ], + [ 'form_id' => 372, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3699E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 398 => - array ( - 'id' => 399, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3699E.xdp' + ], + [ 'form_id' => 373, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3700E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 399 => - array ( - 'id' => 400, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3700E.xdp' + ], + [ 'form_id' => 374, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3701E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 400 => - array ( - 'id' => 401, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3701E.xdp' + ], + [ 'form_id' => 375, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3702E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 401 => - array ( - 'id' => 402, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3702E.xdp' + ], + [ 'form_id' => 376, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3703E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 402 => - array ( - 'id' => 403, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3703E.xdp' + ], + [ 'form_id' => 377, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3704E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 403 => - array ( - 'id' => 404, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3704E.xdp' + ], + [ 'form_id' => 377, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3704ECopy.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 404 => - array ( - 'id' => 405, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3704ECopy.xdp' + ], + [ 'form_id' => 378, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3709E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 405 => - array ( - 'id' => 406, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3709E.xdp' + ], + [ 'form_id' => 379, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3710E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 406 => - array ( - 'id' => 407, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3710E.xdp' + ], + [ 'form_id' => 380, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3721.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 407 => - array ( - 'id' => 408, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR3721.xdp' + ], + [ 'form_id' => 381, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR3727.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 408 => - array ( - 'id' => 409, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\HR3727.xdp' + ], + [ 'form_id' => 382, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3736E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 409 => - array ( - 'id' => 410, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3736E.xdp' + ], + [ 'form_id' => 383, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3737E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 410 => - array ( - 'id' => 411, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3737E.xdp' + ], + [ 'form_id' => 384, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3738E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 411 => - array ( - 'id' => 412, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3738E.xdp' + ], + [ 'form_id' => 385, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3739E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 412 => - array ( - 'id' => 413, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\ELMSD_REN\\Forms\\HR3739E.xdp' + ], + [ 'form_id' => 386, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR4034CaseSignalLetter.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 413 => - array ( - 'id' => 414, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HR4034CaseSignalLetter.xdp' + ], + [ 'form_id' => 388, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR5620E.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 414 => - array ( - 'id' => 415, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Program\\ELMSD\\Forms\\HR5620E.xdp' + ], + [ 'form_id' => 389, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HRWS01.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - 415 => - array ( - 'id' => 416, + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Correspondences\\HRWS01.xdp' + ], + [ 'form_id' => 390, - 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\PLMS Online Form.xdp', - 'created_at' => NULL, - 'updated_at' => NULL, - ), - )); - - + 'workbench_path' => '\\Ronara\\Templates_XDP_AEMSIT2\\1.0\\SD\\Ministry\\Forms\\PLMS Online Form.xdp' + ], + ]); } -} \ No newline at end of file +} diff --git a/database/seeders/FormsTableSeeder.php b/database/seeders/FormsTableSeeder.php index 89732f06..f5cf3b94 100644 --- a/database/seeders/FormsTableSeeder.php +++ b/database/seeders/FormsTableSeeder.php @@ -17,7 +17,7 @@ public function run() { - DB::table('forms')->delete(); + DB::table('forms')->truncate(); DB::table('forms')->insert([ 0 => [ @@ -11548,7 +11548,7 @@ public function run() 'deleted_at' => NULL, ], ]); - \DB::table('forms')->insert([ + DB::table('forms')->insert([ 0 => [ 'id' => 494, 'form_id' => 'CF0277', @@ -23066,7 +23066,7 @@ public function run() 'deleted_at' => NULL, ], ]); - \DB::table('forms')->insert([ + DB::table('forms')->insert([ 0 => [ 'id' => 997, 'form_id' => 'CF4153', @@ -34573,7 +34573,7 @@ public function run() 'deleted_at' => NULL, ], ]); - \DB::table('forms')->insert([ + DB::table('forms')->insert([ 0 => [ 'id' => 1494, 'form_id' => 'HR3092', @@ -46083,7 +46083,7 @@ public function run() 'deleted_at' => NULL, ], ]); - \DB::table('forms')->insert([ + DB::table('forms')->insert([ 0 => [ 'id' => 2001, 'form_id' => 'HR4012', @@ -48956,5 +48956,14 @@ public function run() 'deleted_at' => NULL, ], ]); + + // Reset the ID sequence to avoid conflicts with future inserts + DB::statement(" + SELECT setval( + pg_get_serial_sequence('forms', 'id'), + COALESCE((SELECT MAX(id) FROM forms), 0) + 1, + false + ) + "); } } \ No newline at end of file From a75c3c9ff82bc0c08a3d433394bcb054947ecbc9 Mon Sep 17 00:00:00 2001 From: Christopher Louie Date: Thu, 26 Mar 2026 15:55:39 -0700 Subject: [PATCH 38/43] Remove duplicate software sources selected for the same form from form_software_source_form --- ...p_form_software_source_form_duplicates.php | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 database/migrations/2026_03_26_005322_cleanup_form_software_source_form_duplicates.php diff --git a/database/migrations/2026_03_26_005322_cleanup_form_software_source_form_duplicates.php b/database/migrations/2026_03_26_005322_cleanup_form_software_source_form_duplicates.php new file mode 100644 index 00000000..7a704ae0 --- /dev/null +++ b/database/migrations/2026_03_26_005322_cleanup_form_software_source_form_duplicates.php @@ -0,0 +1,29 @@ + b.id + AND a.form_id = b.form_id + AND a.form_software_source_id = b.form_software_source_id + "); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + // no-op (duplicates cannot be reliably restored) + } +}; From 86f0c2bdcc002288c5c99e3c1bafdf213933adc6 Mon Sep 17 00:00:00 2001 From: Christopher Louie Date: Thu, 26 Mar 2026 15:56:45 -0700 Subject: [PATCH 39/43] Ensure software sources can only be selected once for each form --- ...que_index_to_form_software_source_form.php | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 database/migrations/2026_03_26_005627_add_unique_index_to_form_software_source_form.php diff --git a/database/migrations/2026_03_26_005627_add_unique_index_to_form_software_source_form.php b/database/migrations/2026_03_26_005627_add_unique_index_to_form_software_source_form.php new file mode 100644 index 00000000..9cf48a25 --- /dev/null +++ b/database/migrations/2026_03_26_005627_add_unique_index_to_form_software_source_form.php @@ -0,0 +1,32 @@ +unique( + ['form_id', 'form_software_source_id'], + 'form_software_source_form_unique' + ); + }); + } + + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('form_software_source_form', function (Blueprint $table) { + $table->dropUnique('form_software_source_form_unique'); + }); + } +}; From 1e237c83f9032cecfe0f0930c4b4233f363a982b Mon Sep 17 00:00:00 2001 From: Christopher Louie Date: Thu, 26 Mar 2026 15:59:59 -0700 Subject: [PATCH 40/43] Add the software source "Adobe Livecycle" to specified form numbers --- .../FormAttachSoftwareSourceSeeder.php | 851 ++++++++++++++++++ 1 file changed, 851 insertions(+) create mode 100644 database/seeders/FormAttachSoftwareSourceSeeder.php diff --git a/database/seeders/FormAttachSoftwareSourceSeeder.php b/database/seeders/FormAttachSoftwareSourceSeeder.php new file mode 100644 index 00000000..a838644c --- /dev/null +++ b/database/seeders/FormAttachSoftwareSourceSeeder.php @@ -0,0 +1,851 @@ +pluck('id') + ->filter() // defensive, ensures no nulls + ->all(); + + // Resolve the software source (this *should* exist) + $softwareSource = FormSoftwareSource::findOrFail(1); + + // Attach only existing form IDs (idempotent) + if (!empty($formIds)) { + $softwareSource->forms()->syncWithoutDetaching($formIds); + } + } +} From ffd5c8b192a8e550bd8d6939fcb32a4a895c0ed6 Mon Sep 17 00:00:00 2001 From: Christopher Louie Date: Mon, 30 Mar 2026 13:10:03 -0700 Subject: [PATCH 41/43] Run the form software source update seeder as part of the default seeders --- database/seeders/FormSeeder.php | 1 + 1 file changed, 1 insertion(+) diff --git a/database/seeders/FormSeeder.php b/database/seeders/FormSeeder.php index 01aadf0a..99b62e61 100644 --- a/database/seeders/FormSeeder.php +++ b/database/seeders/FormSeeder.php @@ -16,6 +16,7 @@ public function run(): void FormFormLocationTableSeeder::class, FormFormTagsTableSeeder::class, FormSoftwareSourceFormTableSeeder::class, + FormAttachSoftwareSourceSeeder::class, FormUserTypeTableSeeder::class, FormWorkbenchPathsTableSeeder::class, FormBusinessAreaTableSeeder::class, From 7389d13f0e13e3e2e31e74e2239501995d9062cc Mon Sep 17 00:00:00 2001 From: JohYoshidaBCGov Date: Mon, 30 Mar 2026 14:46:17 -0700 Subject: [PATCH 42/43] Merge branch 'main' into dev --- app/Livewire/FormElementTreeBuilder.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Livewire/FormElementTreeBuilder.php b/app/Livewire/FormElementTreeBuilder.php index 81a44e59..6a077e76 100644 --- a/app/Livewire/FormElementTreeBuilder.php +++ b/app/Livewire/FormElementTreeBuilder.php @@ -390,7 +390,7 @@ protected function mutateFormDataBeforeSave(array $data): array // But convert null values to empty strings for text fields that the user might want to clear $textFields = ['labelText', 'placeholder', 'helperText', 'mask', 'maskErrorMessage', 'content', 'legend', 'repeater_item_label']; $numericFields = ['min', 'max', 'step', 'defaultValue', 'maxCount', 'rows', 'cols', 'order', 'min_repeats', 'max_repeats']; - $nullableFields = ['level', 'defaultSelected']; + $nullableFields = ['level', 'defaultSelected', 'minDate', 'maxDate']; $filteredElementableData = []; foreach ($elementableData as $key => $value) { @@ -559,7 +559,7 @@ protected function mutateFormDataBeforeCreate(array $data): array // But convert null values to empty strings for text fields that the user might want to clear $textFields = ['labelText', 'placeholder', 'helperText', 'mask', 'maskErrorMessage', 'content', 'legend', 'repeater_item_label']; $numericFields = ['min', 'max', 'step', 'defaultValue', 'maxCount', 'rows', 'cols', 'order', 'min_repeats', 'max_repeats']; - $nullableFields = ['level', 'defaultSelected']; + $nullableFields = ['level', 'defaultSelected', 'minDate', 'maxDate']; $filteredElementableData = []; foreach ($elementableData as $key => $value) { From 092d7d85119339f0f34346f31fd85ccf7c7d2834 Mon Sep 17 00:00:00 2001 From: Bryson Best <103070659+brysonjbest@users.noreply.github.com> Date: Tue, 31 Mar 2026 08:23:17 -0700 Subject: [PATCH 43/43] Anonymization/testing efficiency updates (#460) * Add updated importer and exporter for anonymized columns. * Add notifications for export progress tracking. * Remove the custom visibility scripts element field from Klamm and the Klamm DB * Add custom validation message support for input masks in form builder * Add missing migrations for anonymization exports. * Update import and export pipeline. * Update anonymization staging table retention and change ticket details. * Fix siebel staging for production environment. * Add xlsx export support to anonymized columns. * Extraction script updated to capture relationships in new format for anonymization. * Add anon_rule assocation to anonymization model. * Anonymizer fixes to job creation process. * Testing deployment db writing speed improvements. * Update for relationship stability in anonymization. * Add default nullification of values not included in partial anonymization request. * Add job duplication for easy recreation. * Update to handle CLOB null skip in anonymization job. * Add anonymization seeders with full suite install shortcut. * Fix folder structure. * temp rename for case fix * Fix casing for Anonymization seeders * Fix missing rollout restart for reverb and anonymization workers. * Fix missing seed details for anonymization. * Add documentation for anonymization workflow and comment out parquet export not implemented. --- .env.example | 4 + .github/workflows/build-and-deploy.yml | 2 + Dockerfile | 7 +- Dockerfile.worker | 7 +- .../Commands/PurgeAnonymizationUploads.php | 127 +- .../Fodig/Anonymizer/SiebelMetadata.php | 25 + .../Exports/AnonymousSiebelColumnExporter.php | 211 + .../AnonymousSiebelColumnLegacyExporter.php | 171 + .../Resources/AnonymizationJobResource.php | 532 +- .../SyncsAnonymizationJobSelection.php | 6 +- .../Pages/CreateAnonymizationJob.php | 2 +- .../Pages/EditAnonymizationJob.php | 13 + .../Pages/ViewAnonymizationJob.php | 76 +- .../Pages/ViewAnonymizationJobSelection.php | 41 +- .../Resources/AnonymizationMethodResource.php | 75 +- .../ColumnsRelationManager.php | 170 +- .../RelationManagers/RulesRelationManager.php | 59 + .../Resources/AnonymizationRuleResource.php | 303 + .../Pages/CreateAnonymizationRule.php | 58 + .../Pages/EditAnonymizationRule.php | 61 + .../Pages/ListAnonymizationRules.php | 18 + .../Pages/ViewAnonymizationRule.php | 19 + .../ColumnsRelationManager.php | 163 + .../AnonymousSiebelColumnResource.php | 448 +- .../AnonymousSiebelDatabaseResource.php | 6 +- .../AnonymousSiebelSchemaResource.php | 6 +- .../AnonymousSiebelTableResource.php | 8 +- .../Resources/AnonymousUploadResource.php | 34 +- .../Pages/ImportSiebelMetadata.php | 180 +- .../Pages/ViewAnonymousUpload.php | 23 + .../InteractsWithAnonymousSiebelSync.php | 1109 +- .../AnonymousUploadCancelledException.php | 7 + app/Jobs/ExportCsvWithProgress.php | 17 + app/Jobs/GenerateAnonymizationJobSql.php | 46 +- app/Jobs/GenerateChangeTicketsFromUpload.php | 58 +- app/Jobs/PrepareCsvExportWithProgress.php | 25 + app/Jobs/SyncAnonymousSiebelColumnsJob.php | 162 +- app/Models/Anonymizer/AnonymizationJobs.php | 80 +- .../Anonymizer/AnonymizationMethods.php | 18 +- app/Models/Anonymizer/AnonymizationRule.php | 194 + .../Anonymizer/AnonymousSiebelColumn.php | 37 + .../Anonymizer/AnonymousSiebelStaging.php | 15 + app/Models/Anonymizer/AnonymousUpload.php | 2 + app/Observers/ExportObserver.php | 14 + app/Providers/AppServiceProvider.php | 6 +- app/Providers/Filament/FodigPanelProvider.php | 2 + .../AnonymizationJobReadinessService.php | 163 +- .../AnonymizationJobScriptService.php | 3014 ++++- .../Anonymizer/AnonymizerActivityLogger.php | 124 +- ...DoubleSeededDeterministicOracleScripts.php | 298 +- .../ExportProgressNotificationService.php | 210 + config/anonymizer.php | 16 + config/database.php | 3 + ..._anonymous_siebel_columns_and_stagings.php | 122 + ...ization_rules_to_anonymization_uploads.php | 26 + ...indexes_to_anonymization_method_column.php | 24 + ...imize_anonymous_siebel_staging_indexes.php | 59 + ...add_anonymization_upload_purge_indexes.php | 38 + ...51531_create_anonymization_rules_table.php | 60 + .../Anonymization/AnonymizationAllSeeder.php | 35 + .../AnonymizationAnonymousTestJobSeeder.php | 113 +- ...AnonymizationComprehensiveMethodSeeder.php | 1476 +++ .../AnonymizationFakerLookupMethodSeeder.php | 706 ++ .../AnonymizationFakerPackageSeeder.php | 324 + .../AnonymizationFakerSeeder.php | 26 + .../AnonymizationMethodSeeder.php | 9 +- .../AnonymizationPackageSeeder.php | 6 +- .../AnonymizationRuleMethodSeeder.php | 907 ++ .../AnonymizationSqlOnlyMethodSeeder.php | 5 +- .../packages/anon_accounts_body.sql | 10561 ++++++++++++++++ .../packages/anon_accounts_spec.sql | 36 + .../packages/anon_addresses_body.sql | 10561 ++++++++++++++++ .../packages/anon_addresses_spec.sql | 36 + .../Anonymization/packages/anon_ages_body.sql | 148 + .../Anonymization/packages/anon_ages_spec.sql | 36 + .../packages/anon_cities_body.sql | 5311 ++++++++ .../packages/anon_cities_spec.sql | 36 + .../packages/anon_comments_body.sql | 5311 ++++++++ .../packages/anon_comments_spec.sql | 36 + .../packages/anon_companies_body.sql | 5311 ++++++++ .../packages/anon_companies_spec.sql | 36 + .../packages/anon_credit_cards_body.sql | 10561 ++++++++++++++++ .../packages/anon_credit_cards_spec.sql | 36 + .../packages/anon_emails_body.sql | 10561 ++++++++++++++++ .../packages/anon_emails_spec.sql | 36 + .../packages/anon_first_names_body.sql | 445 + .../packages/anon_first_names_spec.sql | 36 + .../packages/anon_full_names_body.sql | 10561 ++++++++++++++++ .../packages/anon_full_names_spec.sql | 36 + .../packages/anon_job_titles_body.sql | 735 ++ .../packages/anon_job_titles_spec.sql | 36 + .../packages/anon_last_names_body.sql | 1111 ++ .../packages/anon_last_names_spec.sql | 36 + .../packages/anon_phones_body.sql | 10561 ++++++++++++++++ .../packages/anon_phones_spec.sql | 36 + .../packages/anon_postal_codes_body.sql | 10561 ++++++++++++++++ .../packages/anon_postal_codes_spec.sql | 36 + .../packages/anon_priorities_body.sql | 75 + .../packages/anon_priorities_spec.sql | 36 + .../Anonymization/packages/anon_sin_body.sql | 10561 ++++++++++++++++ .../Anonymization/packages/anon_sin_spec.sql | 36 + .../Anonymization/packages/anon_ssn_body.sql | 10561 ++++++++++++++++ .../Anonymization/packages/anon_ssn_spec.sql | 36 + .../packages/anon_states_body.sql | 149 + .../packages/anon_states_spec.sql | 36 + .../packages/anon_statuses_body.sql | 86 + .../packages/anon_statuses_spec.sql | 36 + .../packages/anon_types_body.sql | 79 + .../packages/anon_types_spec.sql | 36 + .../packages/anon_usernames_body.sql | 10561 ++++++++++++++++ .../packages/anon_usernames_spec.sql | 36 + docker-compose.yml | 2 + docker/php/opcache.ini | 11 + docs/ANONYMIZATION_README.md | 514 +- .../queue-anonymization-deployment.yaml | 8 +- .../pages/import-siebel-metadata.blade.php | 32 +- routes/console.php | 5 +- routes/web.php | 47 + .../anonymization-relationship-export.sql | 281 +- 119 files changed, 137144 insertions(+), 1294 deletions(-) create mode 100644 app/Filament/Exports/AnonymousSiebelColumnExporter.php create mode 100644 app/Filament/Exports/AnonymousSiebelColumnLegacyExporter.php create mode 100644 app/Filament/Fodig/Resources/AnonymizationMethodResource/RelationManagers/RulesRelationManager.php create mode 100644 app/Filament/Fodig/Resources/AnonymizationRuleResource.php create mode 100644 app/Filament/Fodig/Resources/AnonymizationRuleResource/Pages/CreateAnonymizationRule.php create mode 100644 app/Filament/Fodig/Resources/AnonymizationRuleResource/Pages/EditAnonymizationRule.php create mode 100644 app/Filament/Fodig/Resources/AnonymizationRuleResource/Pages/ListAnonymizationRules.php create mode 100644 app/Filament/Fodig/Resources/AnonymizationRuleResource/Pages/ViewAnonymizationRule.php create mode 100644 app/Filament/Fodig/Resources/AnonymizationRuleResource/RelationManagers/ColumnsRelationManager.php create mode 100644 app/Jobs/Exceptions/AnonymousUploadCancelledException.php create mode 100644 app/Jobs/ExportCsvWithProgress.php create mode 100644 app/Jobs/PrepareCsvExportWithProgress.php create mode 100644 app/Models/Anonymizer/AnonymizationRule.php create mode 100644 app/Observers/ExportObserver.php create mode 100644 app/Services/Anonymizer/ExportProgressNotificationService.php create mode 100644 database/migrations/2026_02_12_120000_add_temp_csv_fields_to_anonymous_siebel_columns_and_stagings.php create mode 100644 database/migrations/2026_02_12_120100_add_override_anonymization_rules_to_anonymization_uploads.php create mode 100644 database/migrations/2026_02_17_173500_add_column_indexes_to_anonymization_method_column.php create mode 100644 database/migrations/2026_02_19_120000_optimize_anonymous_siebel_staging_indexes.php create mode 100644 database/migrations/2026_02_19_123000_add_anonymization_upload_purge_indexes.php create mode 100644 database/migrations/2026_02_24_151531_create_anonymization_rules_table.php create mode 100644 database/seeders/Anonymization/AnonymizationAllSeeder.php rename database/seeders/{ => Anonymization}/AnonymizationAnonymousTestJobSeeder.php (77%) create mode 100644 database/seeders/Anonymization/AnonymizationComprehensiveMethodSeeder.php create mode 100644 database/seeders/Anonymization/AnonymizationFakerLookupMethodSeeder.php create mode 100644 database/seeders/Anonymization/AnonymizationFakerPackageSeeder.php create mode 100644 database/seeders/Anonymization/AnonymizationFakerSeeder.php rename database/seeders/{ => Anonymization}/AnonymizationMethodSeeder.php (83%) rename database/seeders/{ => Anonymization}/AnonymizationPackageSeeder.php (89%) create mode 100644 database/seeders/Anonymization/AnonymizationRuleMethodSeeder.php rename database/seeders/{ => Anonymization}/AnonymizationSqlOnlyMethodSeeder.php (95%) create mode 100644 database/seeders/Anonymization/packages/anon_accounts_body.sql create mode 100644 database/seeders/Anonymization/packages/anon_accounts_spec.sql create mode 100644 database/seeders/Anonymization/packages/anon_addresses_body.sql create mode 100644 database/seeders/Anonymization/packages/anon_addresses_spec.sql create mode 100644 database/seeders/Anonymization/packages/anon_ages_body.sql create mode 100644 database/seeders/Anonymization/packages/anon_ages_spec.sql create mode 100644 database/seeders/Anonymization/packages/anon_cities_body.sql create mode 100644 database/seeders/Anonymization/packages/anon_cities_spec.sql create mode 100644 database/seeders/Anonymization/packages/anon_comments_body.sql create mode 100644 database/seeders/Anonymization/packages/anon_comments_spec.sql create mode 100644 database/seeders/Anonymization/packages/anon_companies_body.sql create mode 100644 database/seeders/Anonymization/packages/anon_companies_spec.sql create mode 100644 database/seeders/Anonymization/packages/anon_credit_cards_body.sql create mode 100644 database/seeders/Anonymization/packages/anon_credit_cards_spec.sql create mode 100644 database/seeders/Anonymization/packages/anon_emails_body.sql create mode 100644 database/seeders/Anonymization/packages/anon_emails_spec.sql create mode 100644 database/seeders/Anonymization/packages/anon_first_names_body.sql create mode 100644 database/seeders/Anonymization/packages/anon_first_names_spec.sql create mode 100644 database/seeders/Anonymization/packages/anon_full_names_body.sql create mode 100644 database/seeders/Anonymization/packages/anon_full_names_spec.sql create mode 100644 database/seeders/Anonymization/packages/anon_job_titles_body.sql create mode 100644 database/seeders/Anonymization/packages/anon_job_titles_spec.sql create mode 100644 database/seeders/Anonymization/packages/anon_last_names_body.sql create mode 100644 database/seeders/Anonymization/packages/anon_last_names_spec.sql create mode 100644 database/seeders/Anonymization/packages/anon_phones_body.sql create mode 100644 database/seeders/Anonymization/packages/anon_phones_spec.sql create mode 100644 database/seeders/Anonymization/packages/anon_postal_codes_body.sql create mode 100644 database/seeders/Anonymization/packages/anon_postal_codes_spec.sql create mode 100644 database/seeders/Anonymization/packages/anon_priorities_body.sql create mode 100644 database/seeders/Anonymization/packages/anon_priorities_spec.sql create mode 100644 database/seeders/Anonymization/packages/anon_sin_body.sql create mode 100644 database/seeders/Anonymization/packages/anon_sin_spec.sql create mode 100644 database/seeders/Anonymization/packages/anon_ssn_body.sql create mode 100644 database/seeders/Anonymization/packages/anon_ssn_spec.sql create mode 100644 database/seeders/Anonymization/packages/anon_states_body.sql create mode 100644 database/seeders/Anonymization/packages/anon_states_spec.sql create mode 100644 database/seeders/Anonymization/packages/anon_statuses_body.sql create mode 100644 database/seeders/Anonymization/packages/anon_statuses_spec.sql create mode 100644 database/seeders/Anonymization/packages/anon_types_body.sql create mode 100644 database/seeders/Anonymization/packages/anon_types_spec.sql create mode 100644 database/seeders/Anonymization/packages/anon_usernames_body.sql create mode 100644 database/seeders/Anonymization/packages/anon_usernames_spec.sql create mode 100644 docker/php/opcache.ini diff --git a/.env.example b/.env.example index f34d9607..6ae937d5 100644 --- a/.env.example +++ b/.env.example @@ -79,3 +79,7 @@ VITE_REVERB_APP_KEY="${REVERB_APP_KEY}" VITE_REVERB_HOST=localhost VITE_REVERB_PORT="${REVERB_PORT}" VITE_REVERB_SCHEME="${REVERB_SCHEME}" + +ANONYMIZATION_UPLOAD_RETENTION_DAYS=30 +ANONYMIZATION_STAGING_RETENTION_DAYS=7 +ANONYMIZATION_PACKAGE_OWNER=ANON_DATA diff --git a/.github/workflows/build-and-deploy.yml b/.github/workflows/build-and-deploy.yml index 6e6c77d5..1fbea184 100644 --- a/.github/workflows/build-and-deploy.yml +++ b/.github/workflows/build-and-deploy.yml @@ -150,3 +150,5 @@ jobs: run: | oc rollout restart deployment/klamm-app oc rollout restart deployment/klamm-queue-worker + oc rollout restart deployment/klamm-queue-anonymization-worker + oc rollout restart deployment/klamm-reverb-worker diff --git a/Dockerfile b/Dockerfile index 4f80cf3d..61776faf 100644 --- a/Dockerfile +++ b/Dockerfile @@ -16,7 +16,9 @@ RUN apt-get update && apt-get install -y \ postgresql-client \ nodejs \ npm \ - && docker-php-ext-install pdo_mysql pdo_pgsql pgsql mbstring exif pcntl bcmath gd intl zip \ + && docker-php-ext-install pdo_mysql pdo_pgsql pgsql mbstring exif pcntl bcmath gd intl zip opcache \ + && pecl install redis \ + && docker-php-ext-enable redis opcache \ && apt-get clean && rm -rf /var/lib/apt/lists/* # Enable Apache mod_rewrite @@ -70,6 +72,9 @@ COPY 000-default.conf /etc/apache2/sites-available/000-default.conf # Copy PHP upload config COPY docker/php/uploads.ini /usr/local/etc/php/conf.d/uploads.ini +# Copy PHP OPcache config for production performance +COPY docker/php/opcache.ini /usr/local/etc/php/conf.d/opcache.ini + # Generate APP_KEY RUN echo "APP_KEY=" > .env RUN php artisan key:generate diff --git a/Dockerfile.worker b/Dockerfile.worker index 5b31e716..f66ddd27 100644 --- a/Dockerfile.worker +++ b/Dockerfile.worker @@ -16,9 +16,9 @@ RUN apt-get update && apt-get install -y \ postgresql-client \ nodejs \ npm \ - && docker-php-ext-install pdo_mysql pdo_pgsql pgsql mbstring exif pcntl bcmath gd intl zip \ + && docker-php-ext-install pdo_mysql pdo_pgsql pgsql mbstring exif pcntl bcmath gd intl zip opcache \ && pecl install redis \ - && docker-php-ext-enable redis \ + && docker-php-ext-enable redis opcache \ && apt-get clean && rm -rf /var/lib/apt/lists/* # Set working directory @@ -30,6 +30,9 @@ COPY --from=composer:latest /usr/bin/composer /usr/bin/composer # Copy existing application directory contents COPY . /var/www +# Copy PHP OPcache config for production performance +COPY docker/php/opcache.ini /usr/local/etc/php/conf.d/opcache.ini + # Install Node.js dependencies if package.json exists RUN if [ -f package.json ]; then npm install; fi diff --git a/app/Console/Commands/PurgeAnonymizationUploads.php b/app/Console/Commands/PurgeAnonymizationUploads.php index d0bae89a..550bd3e7 100644 --- a/app/Console/Commands/PurgeAnonymizationUploads.php +++ b/app/Console/Commands/PurgeAnonymizationUploads.php @@ -5,20 +5,26 @@ use App\Models\Anonymizer\AnonymousUpload; use Carbon\CarbonImmutable; use Illuminate\Console\Command; +use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Storage; use Throwable; class PurgeAnonymizationUploads extends Command { - protected $signature = 'anonymization:purge-uploads {--dry-run : Report what would be deleted without deleting files} {--limit=500 : Max records to process per run}'; + protected $signature = 'anonymization:purge-uploads {--dry-run : Report what would be deleted without deleting files} {--limit=500 : Max records to process per run} {--staging-limit=1000 : Max uploads to scan for staging pruning per run} {--staging-upload-chunk=200 : Upload IDs per staging delete pass} {--row-chunk=5000 : Staging row IDs deleted per statement}'; - protected $description = 'Deletes stored anonymization CSV uploads after their retention period has elapsed.'; + protected $description = 'Deletes retained anonymization upload files and prunes stale staging rows.'; public function handle(): int { $now = CarbonImmutable::now(); $dryRun = (bool) $this->option('dry-run'); $limit = (int) $this->option('limit'); + $stagingLimit = max(1, (int) $this->option('staging-limit')); + $stagingUploadChunk = max(1, (int) $this->option('staging-upload-chunk')); + $rowChunk = max(100, (int) $this->option('row-chunk')); + $stagingRetentionDays = max(1, (int) config('anonymizer.staging_retention_days', 7)); + $stagingCutoff = $now->subDays($stagingRetentionDays); $query = AnonymousUpload::query() ->whereNotNull('path') @@ -30,57 +36,106 @@ public function handle(): int $uploads = $query->get(); - if ($uploads->isEmpty()) { - $this->info('No expired uploads to purge.'); - return self::SUCCESS; - } - $purged = 0; $missing = 0; $failed = 0; - foreach ($uploads as $upload) { - $disk = $upload->file_disk ?: config('filesystems.default', 'local'); - $path = $upload->path; - - if (! $path) { - continue; - } - - $storage = Storage::disk($disk); - - try { - $exists = $storage->exists($path); + if ($uploads->isNotEmpty()) { + foreach ($uploads as $upload) { + $disk = $upload->file_disk ?: config('filesystems.default', 'local'); + $path = $upload->path; - if ($dryRun) { - $this->line(sprintf('[dry-run] %s:%s (%s)', $disk, $path, $exists ? 'exists' : 'missing')); + if (! $path) { continue; } - if ($exists) { - $storage->delete($path); - $purged++; - } else { - $missing++; + $storage = Storage::disk($disk); + + try { + $exists = $storage->exists($path); + + if ($dryRun) { + $this->line(sprintf('[dry-run] %s:%s (%s)', $disk, $path, $exists ? 'exists' : 'missing')); + continue; + } + + if ($exists) { + $storage->delete($path); + $purged++; + } else { + $missing++; + } + + $upload->forceFill([ + 'file_deleted_at' => $now, + 'file_deleted_reason' => 'retention', + ])->save(); + } catch (Throwable $exception) { + $failed++; + report($exception); + $this->error(sprintf('Failed to purge upload #%d (%s:%s): %s', $upload->id, $disk, $path, $exception->getMessage())); } + } + } - $upload->forceFill([ - 'file_deleted_at' => $now, - 'file_deleted_reason' => 'retention', - ])->save(); - } catch (Throwable $exception) { - $failed++; - report($exception); - $this->error(sprintf('Failed to purge upload #%d (%s:%s): %s', $upload->id, $disk, $path, $exception->getMessage())); + $stagingUploadIds = AnonymousUpload::query() + ->whereIn('status', ['completed', 'failed']) + ->where('updated_at', '<=', $stagingCutoff) + ->orderBy('id') + ->limit($stagingLimit) + ->pluck('id') + ->all(); + + $stagingRows = 0; + $stagingUploads = count($stagingUploadIds); + + if ($stagingUploadIds !== []) { + if ($dryRun) { + $stagingRows = (int) DB::table('anonymous_siebel_stagings') + ->whereIn('upload_id', $stagingUploadIds) + ->count(); + } else { + foreach (array_chunk($stagingUploadIds, $stagingUploadChunk) as $idChunk) { + do { + $rowIds = DB::table('anonymous_siebel_stagings') + ->whereIn('upload_id', $idChunk) + ->orderBy('id') + ->limit($rowChunk) + ->pluck('id') + ->all(); + + if ($rowIds === []) { + break; + } + + $stagingRows += (int) DB::table('anonymous_siebel_stagings') + ->whereIn('id', $rowIds) + ->delete(); + } while (count($rowIds) === $rowChunk); + } } } if ($dryRun) { - $this->info(sprintf('Dry run complete. Candidates: %d', $uploads->count())); + $this->info(sprintf( + 'Dry run complete. File candidates: %d. Staging candidates: %d uploads, %d rows (older than %d days).', + $uploads->count(), + $stagingUploads, + $stagingRows, + $stagingRetentionDays + )); return self::SUCCESS; } - $this->info(sprintf('Purged: %d, missing: %d, failed: %d', $purged, $missing, $failed)); + $this->info(sprintf( + 'Purged files: %d, missing files: %d, failed file purges: %d, pruned staging uploads: %d, pruned staging rows: %d (older than %d days)', + $purged, + $missing, + $failed, + $stagingUploads, + $stagingRows, + $stagingRetentionDays + )); return $failed > 0 ? self::FAILURE : self::SUCCESS; } diff --git a/app/Constants/Fodig/Anonymizer/SiebelMetadata.php b/app/Constants/Fodig/Anonymizer/SiebelMetadata.php index 05efeaba..1fb18d30 100644 --- a/app/Constants/Fodig/Anonymizer/SiebelMetadata.php +++ b/app/Constants/Fodig/Anonymizer/SiebelMetadata.php @@ -25,6 +25,31 @@ final class SiebelMetadata 'RELATED_COLUMNS', ]; + public const TEMP_HEADER_COLUMNS = [ + 'DB_INSTANCE', + 'OWNER', + 'QUALFIELD', + 'COLUMN_ID', + 'TABLE_NAME', + 'COLUMN_NAME', + 'ANON_RULE', + 'ANON_NOTE', + 'PR_KEY', + 'REF_TAB_NAME', + 'NUM_DISTINCT', + 'NUM_NOT_NULL', + 'NUM_NULLS', + 'NUM_ROWS', + 'DATA_TYPE', + 'DATA_LENGTH', + 'DATA_PRECISION', + 'DATA_SCALE', + 'COMMENTS', + 'SBL_USER_NAME', + 'SBL_DESC_TEXT', + 'NULLABLE', + ]; + public const IMPORT_DIRECTORY = 'anonymous-siebel/imports'; // Defaults applied when transforming Siebel-column CSVs without explicit scope diff --git a/app/Filament/Exports/AnonymousSiebelColumnExporter.php b/app/Filament/Exports/AnonymousSiebelColumnExporter.php new file mode 100644 index 00000000..9e37ea47 --- /dev/null +++ b/app/Filament/Exports/AnonymousSiebelColumnExporter.php @@ -0,0 +1,211 @@ +with([ + 'table.schema.database', + 'dataType', + 'anonymizationMethods', + 'anonymizationRule.methods', + 'tags', + 'parentColumns', + 'childColumns', + ]); + } + + public static function getColumns(): array + { + return [ + ExportColumn::make('table.schema.database.database_name') + ->label('DB_INSTANCE'), + ExportColumn::make('table.schema.schema_name') + ->label('OWNER'), + ExportColumn::make('qualfield') + ->label('QUALFIELD') + ->state(function (AnonymousSiebelColumn $record) { + if ($record->qualfield) { + return $record->qualfield; + } + + $table = $record->getRelationValue('table'); + + if (! $table || ! $record->column_name) { + return null; + } + + return $table->table_name . '.' . $record->column_name; + }), + ExportColumn::make('column_id') + ->label('COLUMN_ID'), + ExportColumn::make('table.table_name') + ->label('TABLE_NAME'), + ExportColumn::make('column_name') + ->label('COLUMN_NAME'), + ExportColumn::make('anonymization_required') + ->label('ANON_RULE') + ->state(fn(AnonymousSiebelColumn $record) => self::exportAnonRuleValue($record)), + ExportColumn::make('anonymizationRule') + ->label('ANON_METHODS') + ->state(fn(AnonymousSiebelColumn $record) => self::exportDefaultMethodName($record)), + ExportColumn::make('anonymizationMethods') + ->label('ANON_NOTE') + ->state(fn(AnonymousSiebelColumn $record) => $record->metadata_comment), + ExportColumn::make('pr_key') + ->label('PR_KEY'), + ExportColumn::make('ref_tab_name') + ->label('REF_TAB_NAME') + ->state(fn(AnonymousSiebelColumn $record) => $record->ref_tab_name ?: $record->related_columns_raw), + ExportColumn::make('num_distinct') + ->label('NUM_DISTINCT'), + ExportColumn::make('num_not_null') + ->label('NUM_NOT_NULL'), + ExportColumn::make('num_nulls') + ->label('NUM_NULLS'), + ExportColumn::make('num_rows') + ->label('NUM_ROWS'), + ExportColumn::make('dataType.data_type_name') + ->label('DATA_TYPE'), + ExportColumn::make('data_length') + ->label('DATA_LENGTH'), + ExportColumn::make('data_precision') + ->label('DATA_PRECISION'), + ExportColumn::make('data_scale') + ->label('DATA_SCALE'), + ExportColumn::make('column_comment') + ->label('COMMENTS'), + ExportColumn::make('sbl_user_name') + ->label('SBL_USER_NAME'), + ExportColumn::make('sbl_desc_text') + ->label('SBL_DESC_TEXT'), + ExportColumn::make('nullable') + ->label('NULLABLE') + ->formatStateUsing(fn($state) => self::formatNullableBooleanToYn($state)), + ]; + } + + public static function getCompletedNotificationBody(Export $export): string + { + $body = 'Your Siebel column export has completed and ' . number_format($export->successful_rows) . ' ' . str('row')->plural($export->successful_rows) . ' exported.'; + + if ($failedRowsCount = $export->getFailedRowsCount()) { + $body .= ' ' . number_format($failedRowsCount) . ' ' . str('row')->plural($failedRowsCount) . ' failed to export.'; + } + + return $body; + } + + protected static function joinList($value): ?string + { + if ($value === null) { + return null; + } + + if (is_string($value)) { + return $value; + } + + if (! is_array($value)) { + return (string) $value; + } + + $items = array_values(array_filter(array_map(function ($item) { + if (is_string($item)) { + return trim($item); + } + + if (is_object($item) && isset($item->name)) { + return trim((string) $item->name); + } + + if (is_array($item) && isset($item['name'])) { + return trim((string) $item['name']); + } + + return is_scalar($item) ? trim((string) $item) : null; + }, $value))); + + return $items === [] ? null : implode('; ', $items); + } + + protected static function formatNullableBooleanToYn($state): ?string + { + if ($state === null || $state === '') { + return null; + } + + return (bool) $state ? 'Y' : 'N'; + } + + protected static function exportAnonRuleValue(AnonymousSiebelColumn $record): ?string + { + $required = (bool) ($record->anonymization_required ?? false); + $reviewed = (bool) ($record->anonymization_requirement_reviewed ?? false); + + if ($required) { + return $record->anonymizationRule->first()?->name; + } + + if ($reviewed && ! $required) { + return 'no_change'; + } + + return null; + } + + /** + * Return the default method name from the column's assigned rule. + * Export-only — the ANON_METHODS column is informational and not used during import. + */ + protected static function exportDefaultMethodName(AnonymousSiebelColumn $record): ?string + { + $rule = $record->anonymizationRule->first(); + + if (! $rule) { + return null; + } + + return $rule->methods + ->firstWhere('pivot.is_default', true) + ?->name; + } + + protected static function formatRelatedColumns($raw, $fallbackRaw = null): ?string + { + if (is_array($raw)) { + return self::joinList($raw); + } + + if (is_string($raw)) { + $list = preg_split('/\s*,\s*/', $raw, -1, PREG_SPLIT_NO_EMPTY); + + return self::joinList($list); + } + + if (is_string($fallbackRaw) && trim($fallbackRaw) !== '') { + $list = preg_split('/[\s,]+/', $fallbackRaw, -1, PREG_SPLIT_NO_EMPTY); + + return self::joinList($list); + } + + return null; + } +} diff --git a/app/Filament/Exports/AnonymousSiebelColumnLegacyExporter.php b/app/Filament/Exports/AnonymousSiebelColumnLegacyExporter.php new file mode 100644 index 00000000..cc52ec92 --- /dev/null +++ b/app/Filament/Exports/AnonymousSiebelColumnLegacyExporter.php @@ -0,0 +1,171 @@ +label('Name'), + ExportColumn::make('changed') + ->label('Changed') + ->state(fn() => null), + ExportColumn::make('table.table_name') + ->label('Parent Table'), + ExportColumn::make('parent_database') + ->label('Parent Database') + ->state(fn(AnonymousSiebelColumn $record) => $record->table?->schema?->database?->database_name), + ExportColumn::make('parent_schema') + ->label('Parent Schema') + ->state(fn(AnonymousSiebelColumn $record) => $record->table?->schema?->schema_name), + ExportColumn::make('project') + ->label('Project') + ->state(fn() => null), + ExportColumn::make('repository_name') + ->label('Repository Name') + ->state(fn() => null), + ExportColumn::make('sbl_user_name') + ->label('User Name'), + ExportColumn::make('alias') + ->label('Alias') + ->state(fn() => null), + ExportColumn::make('type') + ->label('Type') + ->state(fn() => null), + ExportColumn::make('pr_key') + ->label('Primary Key'), + ExportColumn::make('user_key_sequence') + ->label('User Key Sequence') + ->state(fn() => null), + ExportColumn::make('nullable') + ->label('Nullable') + ->formatStateUsing(fn($state) => self::formatNullableBooleanToYn($state)), + ExportColumn::make('translate') + ->label('Translate') + ->state(fn() => null), + ExportColumn::make('translation_table_name') + ->label('Translation Table Name') + ->state(fn() => null), + ExportColumn::make('required') + ->label('Required') + ->state(fn() => null), + ExportColumn::make('ref_tab_name') + ->label('Foreign Key Table') + ->state(fn(AnonymousSiebelColumn $record) => $record->ref_tab_name ?: $record->related_columns_raw), + ExportColumn::make('use_function_key') + ->label('Use Function Key') + ->state(fn() => null), + ExportColumn::make('dataType.data_type_name') + ->label('Physical Type'), + ExportColumn::make('data_length') + ->label('Length'), + ExportColumn::make('data_precision') + ->label('Precision'), + ExportColumn::make('data_scale') + ->label('Scale'), + ExportColumn::make('default') + ->label('Default') + ->state(fn() => null), + ExportColumn::make('lov_type') + ->label('LOV Type') + ->state(fn() => null), + ExportColumn::make('lov_bounded') + ->label('LOV Bounded') + ->state(fn() => null), + ExportColumn::make('sequence_object') + ->label('Sequence Object') + ->state(fn() => null), + ExportColumn::make('force_case') + ->label('Force Case') + ->state(fn() => null), + ExportColumn::make('cascade_clear') + ->label('Cascade Clear') + ->state(fn() => null), + ExportColumn::make('primary_child_column') + ->label('Primary Child Column') + ->state(fn() => null), + ExportColumn::make('primary_inter_table') + ->label('Primary Inter Table') + ->state(fn() => null), + ExportColumn::make('transaction_log_code') + ->label('Transaction Log Code') + ->state(fn() => null), + ExportColumn::make('valid_condition') + ->label('Valid Condition') + ->state(fn() => null), + ExportColumn::make('denormalization_path') + ->label('Denormalization Path') + ->state(fn() => null), + ExportColumn::make('primary_child_table') + ->label('Primary Child Table') + ->state(fn() => null), + ExportColumn::make('primary_child_column_2') + ->label('Primary Child Column') + ->state(fn() => null), + ExportColumn::make('status') + ->label('Status') + ->state(fn() => null), + ExportColumn::make('primary_child_join_column') + ->label('Primary Child Join Column') + ->state(fn() => null), + ExportColumn::make('primary_join_column') + ->label('Primary Join Column') + ->state(fn() => null), + ExportColumn::make('eim_processing_column_flag') + ->label('EIM Processing Column Flag') + ->state(fn() => null), + ExportColumn::make('fk_column_1_m_rel_name') + ->label('FK Column 1:M Rel Name') + ->state(fn() => null), + ExportColumn::make('fk_column_m_1_rel_name') + ->label('FK Column M:1 Rel Name') + ->state(fn() => null), + ExportColumn::make('sequence') + ->label('Sequence') + ->state(fn() => null), + ExportColumn::make('ascii_only') + ->label('ASCII Only') + ->state(fn() => null), + ExportColumn::make('inactive') + ->label('Inactive') + ->state(fn() => null), + ExportColumn::make('column_comment') + ->label('Comments'), + ExportColumn::make('no_match_value') + ->label('No Match Value') + ->state(fn() => null), + ExportColumn::make('system_field_mapping') + ->label('System Field Mapping') + ->state(fn() => null), + ExportColumn::make('partition_sequence_number') + ->label('Partition Sequence Number') + ->state(fn() => null), + ExportColumn::make('default_insensitivity') + ->label('Default Insensitivity') + ->state(fn() => null), + ExportColumn::make('computation_expression') + ->label('Computation Expression') + ->state(fn() => null), + ExportColumn::make('encrypt_key_specifier') + ->label('Encrypt Key Specifier') + ->state(fn() => null), + ExportColumn::make('module') + ->label('Module') + ->state(fn() => null), + ExportColumn::make('anonymization_required') + ->label('ANON_RULE') + ->state(fn(AnonymousSiebelColumn $record) => self::exportAnonRuleValue($record)), + ExportColumn::make('anonymizationRule') + ->label('ANON_METHODS') + ->state(fn(AnonymousSiebelColumn $record) => self::exportDefaultMethodName($record)), + ExportColumn::make('anonymizationMethods') + ->label('ANON_NOTE') + ->state(fn(AnonymousSiebelColumn $record) => $record->metadata_comment), + ]; + } +} diff --git a/app/Filament/Fodig/Resources/AnonymizationJobResource.php b/app/Filament/Fodig/Resources/AnonymizationJobResource.php index d24ece6d..038d7361 100644 --- a/app/Filament/Fodig/Resources/AnonymizationJobResource.php +++ b/app/Filament/Fodig/Resources/AnonymizationJobResource.php @@ -10,7 +10,10 @@ use App\Models\Anonymizer\AnonymizationJobs; use App\Models\Anonymizer\AnonymizationMethods; use App\Models\Anonymizer\AnonymizationPackage; +use App\Models\Anonymizer\AnonymizationRule; use App\Models\Anonymizer\AnonymousSiebelColumn; +use App\Models\Anonymizer\AnonymousSiebelSchema; +use App\Models\Anonymizer\AnonymousSiebelTable; use App\Services\Anonymizer\AnonymizationJobScriptService; use Filament\Forms; use Filament\Forms\Components\Fieldset; @@ -59,13 +62,104 @@ class AnonymizationJobResource extends Resource protected static ?int $navigationSort = 70; + /** + * The sql_script column can exceed 50 MB for full-scope jobs. + * Loading it into PHP memory crashes any page that hydrates the + * model (list, view, edit). We exclude it from the default + * select and provide a boolean has_sql_script flag instead. + * Pages that need the actual content should query it directly. + */ + private const SQL_SCRIPT_LARGE_THRESHOLD = 500000; // ~500 KB + public static function getEloquentQuery(): Builder { return parent::getEloquentQuery() ->withoutGlobalScopes([ SoftDeletingScope::class, ]) - ->without(['methods']); + ->select([ + 'anonymization_jobs.id', + 'anonymization_jobs.name', + 'anonymization_jobs.job_type', + 'anonymization_jobs.status', + 'anonymization_jobs.output_format', + 'anonymization_jobs.strategy', + 'anonymization_jobs.target_relation_kind', + 'anonymization_jobs.target_schema', + 'anonymization_jobs.target_table_mode', + 'anonymization_jobs.seed_store_mode', + 'anonymization_jobs.seed_store_schema', + 'anonymization_jobs.seed_store_prefix', + 'anonymization_jobs.seed_map_hygiene_mode', + 'anonymization_jobs.job_seed', + 'anonymization_jobs.pre_mask_sql', + 'anonymization_jobs.post_mask_sql', + 'anonymization_jobs.last_run_at', + 'anonymization_jobs.duration_seconds', + 'anonymization_jobs.created_at', + 'anonymization_jobs.updated_at', + 'anonymization_jobs.deleted_at', + ]) + ->selectRaw('length(anonymization_jobs.sql_script) as sql_script_length'); + } + + /** + * Load a truncated SQL preview suitable for the Monaco editor/viewer. + * Returns the full text when it is small, or the first + last portions + * with a divider otherwise. Never loads more than ~1 MB into PHP. + */ + protected static function loadSqlPreview(int $jobId, int $headBytes = 400000, int $tailBytes = 100000): string + { + $meta = DB::table('anonymization_jobs') + ->where('id', $jobId) + ->selectRaw('length(sql_script) as len') + ->first(); + + if (! $meta || ! $meta->len) { + return ''; + } + + $totalLength = (int) $meta->len; + + // Small script — safe to load entirely. + if ($totalLength <= self::SQL_SCRIPT_LARGE_THRESHOLD) { + return (string) DB::table('anonymization_jobs') + ->where('id', $jobId) + ->value('sql_script'); + } + + // Large script — load head and tail portions only via substr(). + // Note: PostgreSQL's SUBSTRING(x FROM ? FOR ?) with bindings is + // misinterpreted as the regex/escape form; use substr(x, pos, len). + $head = (string) DB::table('anonymization_jobs') + ->where('id', $jobId) + ->selectRaw('substr(sql_script, 1, ?) as chunk', [$headBytes]) + ->value('chunk'); + + $tail = (string) DB::table('anonymization_jobs') + ->where('id', $jobId) + ->selectRaw('substr(sql_script, ?, ?) as chunk', [$totalLength - $tailBytes + 1, $tailBytes]) + ->value('chunk'); + + // Trim to line boundaries for clean display. + $lastNewline = strrpos($head, "\n"); + if ($lastNewline !== false) { + $head = substr($head, 0, $lastNewline); + } + + $firstNewline = strpos($tail, "\n"); + if ($firstNewline !== false) { + $tail = substr($tail, $firstNewline + 1); + } + + $omittedBytes = $totalLength - strlen($head) - strlen($tail); + + return $head + . "\n\n-- ══════════════════════════════════════════════════════════════\n" + . "-- ✂ ~{$omittedBytes} bytes omitted ({$totalLength} bytes total)\n" + . "-- Use the Download SQL button to get the full script.\n" + . "-- ══════════════════════════════════════════════════════════════\n\n" + . $tail; } public static function form(Form $form): Form @@ -91,6 +185,13 @@ public static function form(Form $form): Form ->required() ->options(self::statusOptions()) ->default(AnonymizationJobs::STATUS_DRAFT), + Select::make('strategy') + ->label('Method strategy') + ->options(fn() => self::strategyOptions()) + ->nullable() + ->searchable() + ->placeholder('Default (use each rule\'s default method)') + ->helperText('Choose a strategy to resolve non-default methods from anonymization rules. Leave blank to use each rule\'s default method.'), ]) ->columns(2), Forms\Components\Section::make('Execution Options') @@ -105,9 +206,10 @@ public static function form(Form $form): Form ->options([ 'prefixed' => 'Job-scoped working copies (safe) (e.g. _INITIAL_S_CONTACT)', 'anon' => 'Mirror ANON_* tables (e.g. INITIAL_S_CONTACT → ANON_S_CONTACT)', + 'exact' => 'Use exact source table names in target schema (e.g. S_CONTACT → S_CONTACT)', ]) ->default('prefixed') - ->helperText('Controls where the clone + masking updates are applied. Use ANON_* mode when you want the job to produce anonymized copies in your ANON_ tables.'), + ->helperText('Controls where the clone + masking updates are applied. Exact-name mode is allowed only when target objects do not resolve to the original source objects.'), Select::make('target_relation_kind') ->label('Target creation') ->options([ @@ -182,7 +284,10 @@ public static function form(Form $form): Form ->searchable() ->preload() ->live() - ->afterStateUpdated(fn($state, Set $set, Get $get) => self::handleScopeUpdated($set, $get)) + ->afterStateUpdated(function ($state, Set $set, Get $get): void { + self::pruneDependentScopeSelections($set, $get); + self::handleScopeUpdated($set, $get); + }) ->placeholder('Pick one or more databases as the outer boundary for this job.'), Select::make('schemas') ->relationship( @@ -194,9 +299,15 @@ public static function form(Form $form): Form ) ->multiple() ->searchable() + ->options(fn(Get $get) => self::scopedSchemaPickerOptions(self::scopeContextFromForm($get), limit: 100)) + ->getSearchResultsUsing(fn(string $search, Get $get) => self::scopedSchemaPickerOptions(self::scopeContextFromForm($get), search: $search, limit: 150)) + ->getOptionLabelsUsing(fn(array $values, Get $get) => self::scopedSchemaPickerOptions(self::scopeContextFromForm($get), ids: $values)) ->preload() ->live() - ->afterStateUpdated(fn($state, Set $set, Get $get) => self::handleScopeUpdated($set, $get)) + ->afterStateUpdated(function ($state, Set $set, Get $get): void { + self::pruneDependentScopeSelections($set, $get); + self::handleScopeUpdated($set, $get); + }) ->placeholder('Optionally narrow the scope to individual schemas.'), Select::make('tables') ->relationship( @@ -208,9 +319,21 @@ public static function form(Form $form): Form ) ->multiple() ->searchable() + ->options(fn(Get $get) => self::scopedTablePickerOptions(self::scopeContextFromForm($get), limit: 100)) + ->getSearchResultsUsing(fn(string $search, Get $get) => self::scopedTablePickerOptions(self::scopeContextFromForm($get), search: $search, limit: 150)) + ->getOptionLabelsUsing(fn(array $values, Get $get) => self::scopedTablePickerOptions(self::scopeContextFromForm($get), ids: $values)) ->preload() ->live() ->afterStateUpdated(fn($state, Set $set, Get $get) => self::handleScopeUpdated($set, $get)) + ->getOptionLabelFromRecordUsing(function (AnonymousSiebelTable $record): string { + $record->loadMissing('schema.database'); + + return implode('.', array_filter([ + $record->schema?->database?->database_name, + $record->schema?->schema_name, + $record->table_name, + ])); + }) ->placeholder('Optionally focus on specific tables that require anonymization tweaks.'), Fieldset::make('Column builder') ->schema([ @@ -279,7 +402,10 @@ public static function form(Form $form): Form }) ->getOptionLabelFromRecordUsing(fn(AnonymousSiebelColumn $record) => self::formatColumnLabel($record)) ->afterStateHydrated(function ($state, callable $set, Get $get, $livewire) { - $existingScript = optional($livewire->getRecord())->sql_script ?? ''; + $record = $livewire->getRecord(); + $existingScript = ($record && $record->getKey()) + ? self::loadSqlPreview((int) $record->getKey()) + : ''; self::updateSqlPreviewFromSelection($state, $set, $get, $existingScript); }) ->afterStateUpdated(function (?array $state, callable $set, Get $get) { @@ -319,14 +445,15 @@ public static function form(Form $form): Form : []) ->dehydrated(false), Forms\Components\Hidden::make('sql_script') - ->default(fn(?AnonymizationJobs $record) => $record?->sql_script), + ->default(fn(?AnonymizationJobs $record) => $record ? self::loadSqlPreview((int) $record->getKey()) : null) + ->dehydrated(false), self::sqlEditor( field: 'sql_script_preview', label: 'Generated SQL', height: '475px', - helperText: 'SQL is generated from anonymization methods linked to the selected columns.', + helperText: 'SQL is generated from anonymization methods linked to the selected columns. For large scripts, use the Download SQL button on the view page.', ) - ->default(fn(?AnonymizationJobs $record) => $record?->sql_script) + ->default(fn(?AnonymizationJobs $record) => $record ? self::loadSqlPreview((int) $record->getKey()) : null) ->disabled() ->live() ->reactive() @@ -378,12 +505,62 @@ protected static function readinessIssuesHtmlForRecord(AnonymizationJobs $record ); } + public static function duplicateJob(AnonymizationJobs $record): AnonymizationJobs + { + $source = AnonymizationJobs::query() + ->withTrashed() + ->select([ + 'id', + 'name', + 'job_type', + 'status', + 'output_format', + 'strategy', + 'target_relation_kind', + 'target_schema', + 'target_table_mode', + 'seed_store_mode', + 'seed_store_schema', + 'seed_store_prefix', + 'seed_map_hygiene_mode', + 'job_seed', + 'pre_mask_sql', + 'post_mask_sql', + 'last_run_at', + 'duration_seconds', + 'created_at', + 'updated_at', + 'deleted_at', + ]) + ->findOrFail($record->getKey()); + + $duplicate = $source->duplicateAsDraft(); + + GenerateAnonymizationJobSql::dispatch($duplicate->getKey()); + + return $duplicate; + } + public static function table(Table $table): Table { return $table ->modifyQueryUsing(function (Builder $query) { + // Explicitly select only the columns needed for the list view. + // The sql_script column can be many MB and must NOT be loaded here. return $query - ->addSelect('anonymization_jobs.*') + ->select([ + 'anonymization_jobs.id', + 'anonymization_jobs.name', + 'anonymization_jobs.job_type', + 'anonymization_jobs.output_format', + 'anonymization_jobs.status', + 'anonymization_jobs.strategy', + 'anonymization_jobs.last_run_at', + 'anonymization_jobs.duration_seconds', + 'anonymization_jobs.deleted_at', + 'anonymization_jobs.created_at', + 'anonymization_jobs.updated_at', + ]) ->selectSub( DB::table('anonymization_job_columns') ->selectRaw('COUNT(DISTINCT anonymization_method_id)') @@ -411,6 +588,13 @@ public static function table(Table $table): Table ->badge() ->formatStateUsing(fn(string $state) => Str::headline($state)) ->color(fn(string $state) => self::statusColor($state)), + TextColumn::make('strategy') + ->label('Strategy') + ->placeholder('Default') + ->formatStateUsing(fn(?string $state) => $state ? Str::headline($state) : 'Default') + ->badge() + ->color(fn(?string $state) => $state ? 'info' : 'gray') + ->toggleable(isToggledHiddenByDefault: true), TextColumn::make('last_run_at') ->label('Last run') ->dateTime() @@ -446,9 +630,12 @@ public static function table(Table $table): Table TextColumn::make('methods_summary') ->label('Method list') ->state(function (AnonymizationJobs $record): string { - $methods = $record->methods - ->unique('id') - ->pluck('name') + $methods = DB::table('anonymization_job_columns') + ->join('anonymization_methods', 'anonymization_methods.id', '=', 'anonymization_job_columns.anonymization_method_id') + ->where('anonymization_job_columns.job_id', $record->id) + ->whereNotNull('anonymization_job_columns.anonymization_method_id') + ->distinct() + ->pluck('anonymization_methods.name') ->filter() ->values(); @@ -495,6 +682,19 @@ public static function table(Table $table): Table ]) ->actions([ Tables\Actions\ViewAction::make(), + Tables\Actions\Action::make('duplicate') + ->label('Duplicate') + ->icon('heroicon-o-document-duplicate') + ->color('info') + ->requiresConfirmation() + ->modalHeading('Duplicate anonymization job?') + ->modalDescription('This creates a new draft job with the same settings, scope, and column selections. The SQL script is regenerated for the new copy.') + ->modalSubmitActionLabel('Duplicate job') + ->action(function (AnonymizationJobs $record) { + $duplicate = self::duplicateJob($record); + + return redirect(self::getUrl('edit', ['record' => $duplicate])); + }), Tables\Actions\EditAction::make(), ]) ->bulkActions([ @@ -541,6 +741,11 @@ public static function infolist(Infolist $infolist): Infolist ]), Grid::make(2) ->schema([ + TextEntry::make('strategy') + ->label('Method strategy') + ->formatStateUsing(fn(?string $state) => $state ? Str::headline($state) : 'Default') + ->badge() + ->color(fn(?string $state) => $state ? 'info' : 'gray'), TextEntry::make('last_run_at') ->label('Last run') ->dateTime() @@ -654,10 +859,11 @@ public static function infolist(Infolist $infolist): Infolist field: 'sql_script', label: 'Generated SQL', height: '475px', - helperText: 'SQL is generated from anonymization methods linked to the selected columns.', - ), + helperText: 'SQL is generated from anonymization methods linked to the selected columns. For large scripts, a truncated preview is shown — use the Download SQL button for the full script.', + ) + ->getStateUsing(fn(AnonymizationJobs $record) => self::loadSqlPreview((int) $record->getKey())), ]) - ->visible(fn(AnonymizationJobs $record) => filled($record->sql_script)), + ->visible(fn(AnonymizationJobs $record) => ((int) ($record->sql_script_length ?? 0)) > 0), ]); } @@ -684,7 +890,7 @@ public static function outputFormatOptions(): array { return [ AnonymizationJobs::OUTPUT_SQL => 'SQL', - AnonymizationJobs::OUTPUT_PARQUET => 'Parquet', + // AnonymizationJobs::OUTPUT_PARQUET => 'Parquet', ]; } @@ -864,12 +1070,29 @@ protected static function seedContractEnumBackingValue(?string $semantic): ?stri return null; } + /** + * Build the strategy picker options from all strategies defined across rules. + */ + protected static function strategyOptions(): array + { + $strategies = AnonymizationRule::availableStrategies(); + + if ($strategies === []) { + return []; + } + + return collect($strategies) + ->mapWithKeys(fn(string $s) => [$s => Str::headline($s)]) + ->all(); + } + protected static function columnBuilderModeOptions(): array { return [ self::COLUMN_MODE_MANUAL => 'Manual', self::COLUMN_MODE_FLAGGED => 'Flagged columns', self::COLUMN_MODE_WITH_METHODS => 'Has methods', + 'with_rules' => 'Has rules', self::COLUMN_MODE_MISSING => 'Missing method', self::COLUMN_MODE_ENTIRE_SCOPE => 'Entire scope', ]; @@ -912,6 +1135,60 @@ protected static function handleScopeUpdated(Set $set, Get $get): void $set('columns', self::autoColumnsForMode($mode, self::scopeContextFromForm($get))); } + protected static function pruneDependentScopeSelections(Set $set, Get $get): void + { + $context = self::scopeContextFromForm($get); + + $currentSchemas = $context['schemas']; + $validSchemas = self::validSchemaIdsForContext($context); + $filteredSchemas = array_values(array_intersect($currentSchemas, $validSchemas)); + + if ($filteredSchemas !== $currentSchemas) { + $set('schemas', $filteredSchemas); + $context['schemas'] = $filteredSchemas; + } + + $currentTables = $context['tables']; + $validTables = self::validTableIdsForContext($context); + $filteredTables = array_values(array_intersect($currentTables, $validTables)); + + if ($filteredTables !== $currentTables) { + $set('tables', $filteredTables); + } + } + + protected static function validSchemaIdsForContext(array $context): array + { + $query = AnonymousSiebelSchema::query()->select('id'); + + if (($context['databases'] ?? []) !== []) { + $query->whereIn('database_id', $context['databases']); + } + + return $query + ->pluck('id') + ->map(fn($id) => (int) $id) + ->all(); + } + + protected static function validTableIdsForContext(array $context): array + { + $query = AnonymousSiebelTable::query() + ->select('anonymous_siebel_tables.id') + ->join('anonymous_siebel_schemas as schemas', 'schemas.id', '=', 'anonymous_siebel_tables.schema_id'); + + if (($context['schemas'] ?? []) !== []) { + $query->whereIn('schemas.id', $context['schemas']); + } elseif (($context['databases'] ?? []) !== []) { + $query->whereIn('schemas.database_id', $context['databases']); + } + + return $query + ->pluck('anonymous_siebel_tables.id') + ->map(fn($id) => (int) $id) + ->all(); + } + // Auto-select columns based on a preset mode and current scope context. // Modes include flagged, missing, or has_methods. protected static function autoColumnsForMode(string $mode, array $context): array @@ -923,8 +1200,14 @@ protected static function autoColumnsForMode(string $mode, array $context): arra $query = match ($mode) { self::COLUMN_MODE_FLAGGED => $query->where('anonymous_siebel_columns.anonymization_required', true), - self::COLUMN_MODE_MISSING => $query->whereDoesntHave('anonymizationMethods'), - self::COLUMN_MODE_WITH_METHODS => $query->whereHas('anonymizationMethods'), + self::COLUMN_MODE_MISSING => $query + ->whereDoesntHave('anonymizationMethods') + ->whereDoesntHave('anonymizationRule.methods'), + self::COLUMN_MODE_WITH_METHODS => $query->where(function (Builder $q) { + $q->whereHas('anonymizationMethods') + ->orWhereHas('anonymizationRule.methods'); + }), + 'with_rules' => $query->whereHas('anonymizationRule'), default => $query, }; @@ -1017,6 +1300,103 @@ protected static function scopedColumnPickerOptions(array $context, ?string $sea ->all(); } + protected static function scopedSchemaPickerOptions(array $context, ?string $search = null, ?array $ids = null, int $limit = 50): array + { + $query = AnonymousSiebelSchema::query() + ->select([ + 'anonymous_siebel_schemas.id', + 'anonymous_siebel_schemas.schema_name', + 'databases.database_name', + ]) + ->join('anonymous_siebel_databases as databases', 'databases.id', '=', 'anonymous_siebel_schemas.database_id'); + + if (is_array($ids) && $ids !== []) { + $query->whereIn('anonymous_siebel_schemas.id', array_values(array_filter(array_map('intval', $ids)))); + } else { + if (($context['databases'] ?? []) !== []) { + $query->whereIn('anonymous_siebel_schemas.database_id', $context['databases']); + } + + if (is_string($search) && trim($search) !== '') { + $needle = '%' . Str::lower(trim($search)) . '%'; + + $query->where(function (Builder $q) use ($needle): void { + $q->whereRaw('LOWER(anonymous_siebel_schemas.schema_name) LIKE ?', [$needle]) + ->orWhereRaw('LOWER(databases.database_name) LIKE ?', [$needle]); + }); + } + + $query + ->orderBy('databases.database_name') + ->orderBy('anonymous_siebel_schemas.schema_name') + ->limit(max(1, $limit)); + } + + return $query + ->get() + ->mapWithKeys(function ($row): array { + return [ + (int) $row->id => implode('.', [ + (string) $row->database_name, + (string) $row->schema_name, + ]), + ]; + }) + ->all(); + } + + protected static function scopedTablePickerOptions(array $context, ?string $search = null, ?array $ids = null, int $limit = 50): array + { + $query = AnonymousSiebelTable::query() + ->select([ + 'anonymous_siebel_tables.id', + 'anonymous_siebel_tables.table_name', + 'schemas.schema_name', + 'databases.database_name', + ]) + ->join('anonymous_siebel_schemas as schemas', 'schemas.id', '=', 'anonymous_siebel_tables.schema_id') + ->join('anonymous_siebel_databases as databases', 'databases.id', '=', 'schemas.database_id'); + + if (is_array($ids) && $ids !== []) { + $query->whereIn('anonymous_siebel_tables.id', array_values(array_filter(array_map('intval', $ids)))); + } else { + if (($context['schemas'] ?? []) !== []) { + $query->whereIn('schemas.id', $context['schemas']); + } elseif (($context['databases'] ?? []) !== []) { + $query->whereIn('databases.id', $context['databases']); + } + + if (is_string($search) && trim($search) !== '') { + $needle = '%' . Str::lower(trim($search)) . '%'; + + $query->where(function (Builder $q) use ($needle): void { + $q->whereRaw('LOWER(anonymous_siebel_tables.table_name) LIKE ?', [$needle]) + ->orWhereRaw('LOWER(schemas.schema_name) LIKE ?', [$needle]) + ->orWhereRaw('LOWER(databases.database_name) LIKE ?', [$needle]); + }); + } + + $query + ->orderBy('databases.database_name') + ->orderBy('schemas.schema_name') + ->orderBy('anonymous_siebel_tables.table_name') + ->limit(max(1, $limit)); + } + + return $query + ->get() + ->mapWithKeys(function ($row): array { + return [ + (int) $row->id => implode('.', [ + (string) $row->database_name, + (string) $row->schema_name, + (string) $row->table_name, + ]), + ]; + }) + ->all(); + } + protected static function scopeContextFromForm(Get $get): array { return [ @@ -1048,6 +1428,7 @@ protected static function columnSelectionSummary($columnIds, ?string $mode = nul $columns = AnonymousSiebelColumn::query() ->select('id', 'anonymization_required') ->withCount('anonymizationMethods') + ->with('anonymizationRule.methods:id') ->whereIn('id', $ids) ->get(); @@ -1056,7 +1437,17 @@ protected static function columnSelectionSummary($columnIds, ?string $mode = nul } $total = $columns->count(); - $withMethod = $columns->where('anonymization_methods_count', '>', 0)->count(); + $withMethod = $columns->filter(function (AnonymousSiebelColumn $column): bool { + $directMethodCount = (int) ($column->anonymization_methods_count ?? 0); + $ruleMethodCount = (int) ($column->anonymizationRule ?? collect()) + ->flatMap(fn($rule) => $rule->methods ?? collect()) + ->pluck('id') + ->filter() + ->unique() + ->count(); + + return ($directMethodCount + $ruleMethodCount) > 0; + })->count(); $withoutMethod = $total - $withMethod; $flagged = $columns->where('anonymization_required', true)->count(); @@ -1222,14 +1613,14 @@ protected static function persistColumnsSelection($record, mixed $state, Get $ge return; } - if (! self::isEntireScopeMode($get('column_builder_mode'))) { - $record->columns()->sync(Arr::wrap($state)); - GenerateAnonymizationJobSql::dispatch($record->getKey()); + // In "entire scope" mode the heavy column sync is handled by + // afterCreate / afterSave via syncSelectionAndQueueSql. + // Doing it here as well would double the work and can OOM on large scopes. + if (self::isEntireScopeMode($get('column_builder_mode'))) { return; } - self::syncJobColumnsForScope($record, self::scopeContextFromForm($get)); - + $record->columns()->sync(Arr::wrap($state)); GenerateAnonymizationJobSql::dispatch($record->getKey()); } @@ -1246,33 +1637,30 @@ public static function syncEntireScopeSelectionForJob(AnonymizationJobs $job, ar protected static function syncJobColumnsForScope(AnonymizationJobs $job, array $context): void { - $job->columns()->detach(); + $jobId = (int) $job->getKey(); + + // Wipe previous pivot rows. + DB::table('anonymization_job_columns')->where('job_id', $jobId)->delete(); if (self::isScopeEmpty($context)) { return; } - self::scopedJobColumnSelectionQuery($context) - ->chunkById( - 5_000, - function (Collection $rows) use ($job) { - $payload = []; - - foreach ($rows as $row) { - $payload[(int) $row->id] = [ - 'anonymization_method_id' => $row->anonymization_method_id !== null - ? (int) $row->anonymization_method_id - : null, - ]; - } - - if ($payload !== []) { - $job->columns()->attach($payload); - } - }, - 'anonymous_siebel_columns.id', - 'id' - ); + // Use a bulk INSERT … SELECT so that zero Eloquent models are hydrated. + // This avoids the OOM caused by mergeCasts on thousands of model instances. + $selectQuery = self::scopedJobColumnSelectionQuery($context, $job->strategy); + + $selectSql = $selectQuery->toSql(); + $bindings = $selectQuery->getBindings(); + + $now = now()->toDateTimeString(); + + DB::statement( + "INSERT INTO anonymization_job_columns (job_id, column_id, anonymization_method_id, created_at, updated_at) " + . "SELECT {$jobId}, sub.id, sub.anonymization_method_id, '{$now}', '{$now}' " + . "FROM ({$selectSql}) AS sub", + $bindings + ); } protected static function isScopeEmpty(array $context): bool @@ -1282,19 +1670,47 @@ protected static function isScopeEmpty(array $context): bool && ($context['tables'] ?? []) === []; } - // Query for “entire scope” selection (actionable columns + MIN method id for pivot). - protected static function scopedJobColumnSelectionQuery(array $context): Builder + /** + * Raw query builder for "entire scope" column selection. + * + * Returns a DB\Query\Builder (NOT Eloquent) so that no model hydration + * occurs. This is critical for large scopes where thousands of columns + * would cause OOM via mergeCasts during Eloquent model construction. + */ + protected static function scopedJobColumnSelectionQuery(array $context, ?string $strategy = null): \Illuminate\Database\Query\Builder { - $query = AnonymousSiebelColumn::query() + // Sub-select: resolve method_id from rule to rule_methods for each column + $bestMethodSub = DB::table('anonymization_rule_column as arc') + ->join('anonymization_rule_methods as arm', 'arm.rule_id', '=', 'arc.rule_id'); + + if ($strategy !== null && $strategy !== '') { + $bestMethodSub = $bestMethodSub + ->select([ + 'arc.column_id', + DB::raw('MAX(CASE WHEN arm.strategy = ' . DB::getPdo()->quote($strategy) . ' THEN arm.method_id ELSE NULL END) as strategy_method_id'), + DB::raw('MAX(CASE WHEN arm.is_default = true THEN arm.method_id ELSE NULL END) as default_method_id'), + ]) + ->groupBy('arc.column_id'); + } else { + $bestMethodSub = $bestMethodSub + ->select([ + 'arc.column_id', + DB::raw('CAST(NULL AS bigint) as strategy_method_id'), + DB::raw('MAX(CASE WHEN arm.is_default = true THEN arm.method_id ELSE NULL END) as default_method_id'), + ]) + ->groupBy('arc.column_id'); + } + + $query = DB::table('anonymous_siebel_columns') ->select([ 'anonymous_siebel_columns.id as id', - DB::raw('MIN(amc.method_id) as anonymization_method_id'), - 'anonymous_siebel_columns.anonymization_required', + DB::raw('COALESCE(rule_resolve.strategy_method_id, rule_resolve.default_method_id, MIN(amc.method_id)) as anonymization_method_id'), ]) ->join('anonymous_siebel_tables as tables', 'tables.id', '=', 'anonymous_siebel_columns.table_id') ->join('anonymous_siebel_schemas as schemas', 'schemas.id', '=', 'tables.schema_id') ->join('anonymous_siebel_databases as databases', 'databases.id', '=', 'schemas.database_id') - ->leftJoin('anonymization_method_column as amc', 'amc.column_id', '=', 'anonymous_siebel_columns.id'); + ->leftJoin('anonymization_method_column as amc', 'amc.column_id', '=', 'anonymous_siebel_columns.id') + ->leftJoinSub($bestMethodSub, 'rule_resolve', 'rule_resolve.column_id', '=', 'anonymous_siebel_columns.id'); if ($context['tables'] !== []) { $query->whereIn('tables.id', $context['tables']); @@ -1303,12 +1719,18 @@ protected static function scopedJobColumnSelectionQuery(array $context): Builder } elseif ($context['databases'] !== []) { $query->whereIn('databases.id', $context['databases']); } + return $query - ->where(function (Builder $q) { + ->where(function ($q) { $q->where('anonymous_siebel_columns.anonymization_required', true) - ->orWhereNotNull('amc.method_id'); + ->orWhereNotNull('amc.method_id') + ->orWhereExists(function ($sub) { + $sub->select(DB::raw(1)) + ->from('anonymization_rule_column as arc2') + ->whereColumn('arc2.column_id', 'anonymous_siebel_columns.id'); + }); }) - ->groupBy('anonymous_siebel_columns.id', 'anonymous_siebel_columns.anonymization_required') + ->groupBy('anonymous_siebel_columns.id', 'rule_resolve.strategy_method_id', 'rule_resolve.default_method_id') ->orderBy('anonymous_siebel_columns.id'); } diff --git a/app/Filament/Fodig/Resources/AnonymizationJobResource/Pages/Concerns/SyncsAnonymizationJobSelection.php b/app/Filament/Fodig/Resources/AnonymizationJobResource/Pages/Concerns/SyncsAnonymizationJobSelection.php index a67a20c7..270d0d49 100644 --- a/app/Filament/Fodig/Resources/AnonymizationJobResource/Pages/Concerns/SyncsAnonymizationJobSelection.php +++ b/app/Filament/Fodig/Resources/AnonymizationJobResource/Pages/Concerns/SyncsAnonymizationJobSelection.php @@ -38,7 +38,9 @@ protected function syncSelectionAndQueueSql(Model $jobRecord, array $state): voi // Filament's relationship() component should sync these automatically. // Only manually sync if we have explicit data in state AND the relationships are empty. // This prevents us from accidentally wiping out what Filament already synced. - $jobRecord->refresh(); + // Clear cached relationships so the next pluck queries hit the DB. + // Avoid $jobRecord->refresh() which would reload the 50+ MB sql_script column. + $jobRecord->unsetRelations(); $existingDatabases = $jobRecord->databases()->pluck('anonymous_siebel_databases.id')->all(); $existingSchemas = $jobRecord->schemas()->pluck('anonymous_siebel_schemas.id')->all(); @@ -53,7 +55,7 @@ protected function syncSelectionAndQueueSql(Model $jobRecord, array $state): voi if ($needsManualSync) { $this->syncScopeRelationships($jobRecord, $scopeFromState); - $jobRecord->refresh(); + $jobRecord->unsetRelations(); } // Use the actual persisted scope for further processing diff --git a/app/Filament/Fodig/Resources/AnonymizationJobResource/Pages/CreateAnonymizationJob.php b/app/Filament/Fodig/Resources/AnonymizationJobResource/Pages/CreateAnonymizationJob.php index b133ecca..f3b0441c 100644 --- a/app/Filament/Fodig/Resources/AnonymizationJobResource/Pages/CreateAnonymizationJob.php +++ b/app/Filament/Fodig/Resources/AnonymizationJobResource/Pages/CreateAnonymizationJob.php @@ -27,7 +27,7 @@ protected function getHeaderActions(): array protected function getRedirectUrl(): string { - return $this->getResource()::getUrl('view', ['record' => $this->record]); + return $this->getResource()::getUrl('view', ['record' => $this->record->getKey()]); } protected function getCreatedNotificationTitle(): ?string diff --git a/app/Filament/Fodig/Resources/AnonymizationJobResource/Pages/EditAnonymizationJob.php b/app/Filament/Fodig/Resources/AnonymizationJobResource/Pages/EditAnonymizationJob.php index 4b0fa487..0c3d96d1 100644 --- a/app/Filament/Fodig/Resources/AnonymizationJobResource/Pages/EditAnonymizationJob.php +++ b/app/Filament/Fodig/Resources/AnonymizationJobResource/Pages/EditAnonymizationJob.php @@ -22,6 +22,19 @@ protected function getHeaderActions(): array ->color('secondary') ->outlined() ->action(fn() => $this->downloadReadinessReportFromForm($this->record)), + Actions\Action::make('duplicate') + ->label('Duplicate') + ->icon('heroicon-o-document-duplicate') + ->color('info') + ->requiresConfirmation() + ->modalHeading('Duplicate anonymization job?') + ->modalDescription('This creates a new draft job with the same settings, scope, and column selections. The SQL script is regenerated for the new copy.') + ->modalSubmitActionLabel('Duplicate job') + ->action(function () { + $duplicate = AnonymizationJobResource::duplicateJob($this->record); + + return $this->redirect(AnonymizationJobResource::getUrl('edit', ['record' => $duplicate])); + }), Actions\DeleteAction::make(), ]; } diff --git a/app/Filament/Fodig/Resources/AnonymizationJobResource/Pages/ViewAnonymizationJob.php b/app/Filament/Fodig/Resources/AnonymizationJobResource/Pages/ViewAnonymizationJob.php index 517ecfda..c46e9178 100644 --- a/app/Filament/Fodig/Resources/AnonymizationJobResource/Pages/ViewAnonymizationJob.php +++ b/app/Filament/Fodig/Resources/AnonymizationJobResource/Pages/ViewAnonymizationJob.php @@ -8,8 +8,7 @@ use Filament\Notifications\Notification; use Filament\Resources\Pages\ViewRecord; use Illuminate\Support\Facades\Cache; -use Illuminate\Support\Str; -use Symfony\Component\HttpFoundation\StreamedResponse; +use Illuminate\Support\Facades\DB; class ViewAnonymizationJob extends ViewRecord { @@ -34,9 +33,9 @@ protected function getHeaderActions(): array ->icon('heroicon-o-arrow-down-tray') ->color('primary') ->outlined() - ->visible(fn() => filled($this->record->sql_script)) + ->visible(fn() => ((int) ($this->record->sql_script_length ?? 0)) > 0) ->tooltip('Exports the generated anonymization script for manual execution.') - ->action(fn() => $this->downloadSqlScript()), + ->url(fn() => route('download.anonymization-job-sql', ['job' => $this->record->getKey()])), // Queue SQL regeneration for background worker. Actions\Action::make('regenerateSql') ->label('Regenerate SQL') @@ -48,7 +47,7 @@ protected function getHeaderActions(): array $cacheKey = GenerateAnonymizationJobSql::regenerationCacheKey((int) $this->record->getKey()); Cache::put($cacheKey, now()->toIso8601String(), now()->addHours(2)); $this->isSqlRegenerating = true; - $this->lastSqlScriptHash = md5((string) ($this->record->sql_script ?? '')); + $this->lastSqlScriptHash = $this->getSqlScriptHashFromDb(); GenerateAnonymizationJobSql::dispatch($this->record->getKey()); Notification::make() @@ -57,12 +56,25 @@ protected function getHeaderActions(): array ->body('The anonymization script will refresh automatically once complete.') ->send(); }), + Actions\Action::make('duplicate') + ->label('Duplicate') + ->icon('heroicon-o-document-duplicate') + ->color('info') + ->requiresConfirmation() + ->modalHeading('Duplicate anonymization job?') + ->modalDescription('This creates a new draft job with the same settings, scope, and column selections. The SQL script is regenerated for the new copy.') + ->modalSubmitActionLabel('Duplicate job') + ->action(function () { + $duplicate = AnonymizationJobResource::duplicateJob($this->record); + + return $this->redirect(AnonymizationJobResource::getUrl('edit', ['record' => $duplicate])); + }), Actions\Action::make('viewSelection') ->label('View Selection') ->icon('heroicon-o-list-bullet') ->color('secondary') ->outlined() - ->url(fn() => AnonymizationJobResource::getUrl('selection', ['record' => $this->record])), + ->url(fn() => AnonymizationJobResource::getUrl('selection', ['record' => $this->record->getKey()])), Actions\EditAction::make(), ]; } @@ -72,19 +84,19 @@ public function refreshSqlPreview(): void $cacheKey = GenerateAnonymizationJobSql::regenerationCacheKey((int) $this->record->getKey()); $wasRegenerating = $this->isSqlRegenerating; - $this->record->refresh(); + // Refresh the record WITHOUT loading sql_script (which can be 50+ MB). + $fresh = DB::table('anonymization_jobs') + ->where('id', $this->record->getKey()) + ->selectRaw('length(sql_script) as sql_script_length') + ->first(); - $this->isSqlRegenerating = Cache::has($cacheKey); - $currentHash = md5((string) ($this->record->sql_script ?? '')); - - if (! $this->hasInfolist()) { - $this->refreshFormData(['sql_script']); - $this->form->fill([ - ...$this->form->getState(), - 'sql_script_preview' => $this->record->sql_script, - ]); + if ($fresh) { + $this->record->sql_script_length = $fresh->sql_script_length; } + $this->isSqlRegenerating = Cache::has($cacheKey); + $currentHash = $this->getSqlScriptHashFromDb(); + if ($wasRegenerating && ! $this->isSqlRegenerating && $currentHash !== $this->lastSqlScriptHash) { Notification::make() ->success() @@ -100,30 +112,18 @@ protected function syncSqlRegenerationState(): void { $cacheKey = GenerateAnonymizationJobSql::regenerationCacheKey((int) $this->record->getKey()); $this->isSqlRegenerating = Cache::has($cacheKey); - $this->lastSqlScriptHash = md5((string) ($this->record->sql_script ?? '')); + $this->lastSqlScriptHash = $this->getSqlScriptHashFromDb(); } - protected function downloadSqlScript(): ?StreamedResponse + /** + * Get an MD5 hash of the sql_script directly from the database, + * without loading the potentially huge column into PHP memory. + */ + protected function getSqlScriptHashFromDb(): string { - if (! filled($this->record->sql_script)) { - Notification::make() - ->warning() - ->title('No script available') - ->body('Generate the SQL before attempting to download the job output.') - ->send(); - - return null; - } - - $timestamp = now()->format('Ymd_His'); - $name = Str::slug($this->record->name) ?: 'anonymization-job'; - $filename = $timestamp . '_' . $name . '.sql'; - $payload = $this->record->sql_script; - - return response()->streamDownload(function () use ($payload) { - echo $payload; - }, $filename, [ - 'Content-Type' => 'text/sql; charset=UTF-8', - ]); + return (string) DB::table('anonymization_jobs') + ->where('id', $this->record->getKey()) + ->selectRaw("COALESCE(md5(sql_script), '') as hash") + ->value('hash'); } } diff --git a/app/Filament/Fodig/Resources/AnonymizationJobResource/Pages/ViewAnonymizationJobSelection.php b/app/Filament/Fodig/Resources/AnonymizationJobResource/Pages/ViewAnonymizationJobSelection.php index 220ee697..0592a5c3 100644 --- a/app/Filament/Fodig/Resources/AnonymizationJobResource/Pages/ViewAnonymizationJobSelection.php +++ b/app/Filament/Fodig/Resources/AnonymizationJobResource/Pages/ViewAnonymizationJobSelection.php @@ -17,9 +17,42 @@ class ViewAnonymizationJobSelection extends Page public AnonymizationJobs $record; - public function mount(AnonymizationJobs $record): void + public function mount(mixed $record): void { - $this->record = $record->load([ + // The route may provide the numeric id, a model instance, an array, + // or (occasionally) a JSON-encoded string of the record. Normalize + // those inputs to a numeric id before resolving via the resource + // query which excludes the potentially large `sql_script` column. + $resolvedId = null; + + if ($record instanceof AnonymizationJobs) { + $this->record = $record; + } else { + if (is_numeric($record)) { + $resolvedId = (int) $record; + } elseif (is_string($record)) { + $decoded = json_decode($record, true); + if (is_array($decoded) && isset($decoded['id']) && is_numeric($decoded['id'])) { + $resolvedId = (int) $decoded['id']; + } + } elseif (is_array($record) && isset($record['id']) && is_numeric($record['id'])) { + $resolvedId = (int) $record['id']; + } elseif (is_object($record) && property_exists($record, 'id') && is_numeric($record->id)) { + $resolvedId = (int) $record->id; + } + + if (isset($resolvedId)) { + $this->record = AnonymizationJobResource::getEloquentQuery() + ->findOrFail($resolvedId); + } else { + // Fallback: attempt to resolve directly; let the framework + // throw a clear exception if it cannot. + $this->record = AnonymizationJobResource::getEloquentQuery() + ->findOrFail($record); + } + } + + $this->record->load([ 'databases.schemas', 'schemas' => fn($query) => $query->with(['database', 'tables']), 'tables' => fn($query) => $query @@ -42,7 +75,7 @@ protected function getHeaderActions(): array ->icon('heroicon-o-arrow-long-left') ->color('secondary') ->outlined() - ->url(fn() => AnonymizationJobResource::getUrl('view', ['record' => $this->record])), + ->url(fn() => AnonymizationJobResource::getUrl('view', ['record' => $this->record->getKey()])), ]; } @@ -50,7 +83,7 @@ public function getBreadcrumbs(): array { return [ AnonymizationJobResource::getUrl() => 'Jobs', - AnonymizationJobResource::getUrl('view', ['record' => $this->record]) => $this->record->name, + AnonymizationJobResource::getUrl('view', ['record' => $this->record->getKey()]) => $this->record->name, '#' => 'Selection', ]; } diff --git a/app/Filament/Fodig/Resources/AnonymizationMethodResource.php b/app/Filament/Fodig/Resources/AnonymizationMethodResource.php index b9948c44..32e33fcd 100644 --- a/app/Filament/Fodig/Resources/AnonymizationMethodResource.php +++ b/app/Filament/Fodig/Resources/AnonymizationMethodResource.php @@ -6,8 +6,10 @@ use App\Filament\Fodig\Resources\AnonymizationMethodResource\Pages; use App\Filament\Fodig\Resources\AnonymizationMethodResource\RelationManagers\ColumnsRelationManager; use App\Filament\Fodig\Resources\AnonymizationMethodResource\RelationManagers\JobsRelationManager; +use App\Filament\Fodig\Resources\AnonymizationMethodResource\RelationManagers\RulesRelationManager; use App\Models\Anonymizer\AnonymizationJobs; use App\Models\Anonymizer\AnonymizationMethods; +use App\Models\Anonymizer\AnonymousSiebelColumn; use Filament\Forms; use Filament\Forms\Form; use Filament\Infolists\Components\Grid; @@ -460,8 +462,15 @@ public static function infolist(Infolist $infolist): Infolist ->label('Seed notes') ->columnSpanFull() ->placeholder('—'), + TextEntry::make('rules_count') + ->label('Rules using this method') + ->getStateUsing(fn(AnonymizationMethods $record) => $record->rules()->count()), + TextEntry::make('columns_via_rules_count') + ->label('Columns (via rules)') + ->getStateUsing(fn(AnonymizationMethods $record) => self::columnsViaRulesCount($record)), TextEntry::make('usage_count') - ->label('Columns using this method'), + ->label('Columns (direct/legacy)') + ->helperText('Direct column associations (legacy). New associations go through rules.'), TextEntry::make('packages') ->label('Packages included') ->getStateUsing(fn(AnonymizationMethods $record) => $record->packages @@ -476,15 +485,15 @@ public static function infolist(Infolist $infolist): Infolist ->label('Updated'), ]) ->columns(3), - Section::make('Columns in Scope') + Section::make('Columns in Scope (via Rules)') ->schema([ TextEntry::make('columns_preview') ->label('Examples') ->getStateUsing(fn(AnonymizationMethods $record) => self::columnsPreview($record)) ->columnSpanFull() - ->placeholder('No columns reference this method yet.'), + ->placeholder('No columns reference this method through rules.'), ]) - ->visible(fn(AnonymizationMethods $record) => $record->usage_count > 0), + ->visible(fn(AnonymizationMethods $record) => self::columnsViaRulesCount($record) > 0), ]); } @@ -502,6 +511,7 @@ public static function getRelations(): array { return [ ColumnsRelationManager::class, + RulesRelationManager::class, JobsRelationManager::class, \App\Filament\Fodig\RelationManagers\ActivityLogRelationManager::class, ]; @@ -540,18 +550,40 @@ protected static function formatCategorySummary(mixed $state, ?AnonymizationMeth } + /** + * Count columns connected to this method through rules. + */ + protected static function columnsViaRulesCount(AnonymizationMethods $record): int + { + return (int) DB::table('anonymization_rule_column') + ->join('anonymization_rule_methods', 'anonymization_rule_column.rule_id', '=', 'anonymization_rule_methods.rule_id') + ->where('anonymization_rule_methods.method_id', $record->getKey()) + ->distinct() + ->count('anonymization_rule_column.column_id'); + } + + /** + * Preview columns connected through rules (not direct legacy associations). + */ protected static function columnsPreview(AnonymizationMethods $record): string { - $columns = $record->columns() - ->with(['table.schema:id,schema_name', 'table:id,table_name,schema_id']) - ->orderBy('column_name') + $columnIds = DB::table('anonymization_rule_column') + ->join('anonymization_rule_methods', 'anonymization_rule_column.rule_id', '=', 'anonymization_rule_methods.rule_id') + ->where('anonymization_rule_methods.method_id', $record->getKey()) + ->distinct() ->limit(8) - ->get(); + ->pluck('anonymization_rule_column.column_id'); - if ($columns->isEmpty()) { - return 'No columns reference this method yet.'; + if ($columnIds->isEmpty()) { + return 'No columns reference this method through rules.'; } + $columns = AnonymousSiebelColumn::query() + ->whereIn('id', $columnIds) + ->with(['table.schema:id,schema_name', 'table:id,table_name,schema_id']) + ->orderBy('column_name') + ->get(); + $labels = $columns->map(function ($column) { $schema = $column->table?->schema?->schema_name; $table = $column->table?->table_name; @@ -561,7 +593,8 @@ protected static function columnsPreview(AnonymizationMethods $record): string })->all(); $preview = implode(', ', $labels); - $remaining = max(0, (int) $record->usage_count - count($labels)); + $totalCount = self::columnsViaRulesCount($record); + $remaining = max(0, $totalCount - count($labels)); if ($remaining > 0) { $preview .= ' +' . $remaining . ' more'; @@ -572,13 +605,23 @@ protected static function columnsPreview(AnonymizationMethods $record): string protected static function methodUsageWarning(AnonymizationMethods $record): string { - $columnCount = (int) $record->usage_count; + $directColumnCount = (int) $record->usage_count; + $ruleColumnCount = self::columnsViaRulesCount($record); + $ruleCount = $record->rules()->count(); $jobCount = $record->distinctJobUsageCount(); $parts = []; - if ($columnCount > 0) { - $parts[] = "Referenced by {$columnCount} column" . ($columnCount === 1 ? '' : 's'); + if ($ruleCount > 0) { + $parts[] = "Used by {$ruleCount} rule" . ($ruleCount === 1 ? '' : 's'); + } + + if ($ruleColumnCount > 0) { + $parts[] = "{$ruleColumnCount} column" . ($ruleColumnCount === 1 ? '' : 's') . ' (via rules)'; + } + + if ($directColumnCount > 0) { + $parts[] = "{$directColumnCount} direct column" . ($directColumnCount === 1 ? '' : 's') . ' (legacy)'; } if ($jobCount > 0) { @@ -586,9 +629,9 @@ protected static function methodUsageWarning(AnonymizationMethods $record): stri } if ($parts === []) { - return 'This method is not currently associated with any jobs or columns.'; + return 'This method is not currently associated with any rules, jobs, or columns.'; } - return implode(' • ', $parts) . '. Changes here can impact generated anonymization SQL. Consider using “New version” to preserve existing behavior.'; + return implode(' • ', $parts) . '. Changes here can impact generated anonymization SQL. Consider using "New version" to preserve existing behavior.'; } } diff --git a/app/Filament/Fodig/Resources/AnonymizationMethodResource/RelationManagers/ColumnsRelationManager.php b/app/Filament/Fodig/Resources/AnonymizationMethodResource/RelationManagers/ColumnsRelationManager.php index a3033736..91d248b1 100644 --- a/app/Filament/Fodig/Resources/AnonymizationMethodResource/RelationManagers/ColumnsRelationManager.php +++ b/app/Filament/Fodig/Resources/AnonymizationMethodResource/RelationManagers/ColumnsRelationManager.php @@ -2,13 +2,16 @@ namespace App\Filament\Fodig\Resources\AnonymizationMethodResource\RelationManagers; +use App\Filament\Fodig\Resources\AnonymizationRuleResource; use App\Filament\Fodig\Resources\AnonymousSiebelColumnResource; +use App\Models\Anonymizer\AnonymizationMethods; +use App\Models\Anonymizer\AnonymizationRule; use App\Models\Anonymizer\AnonymousSiebelColumn; -use Filament\Forms\Components\Select; use Filament\Resources\RelationManagers\RelationManager; use Filament\Tables; use Filament\Tables\Table; use Illuminate\Database\Eloquent\Builder; +use Illuminate\Support\Facades\DB; class ColumnsRelationManager extends RelationManager { @@ -18,25 +21,50 @@ class ColumnsRelationManager extends RelationManager protected static ?string $title = 'Columns using this method'; + /** + * Columns are now connected to methods through rules. + * This relation manager shows columns that reach this method + * via anonymization_rule_column → anonymization_rule_methods. + */ public function table(Table $table): Table { return $table - ->heading('Columns using this method') - ->description('Catalog columns currently linked to this anonymization method.') - ->modifyQueryUsing(function (Builder $query) { - // Override Filament's automatic distinct behavior to avoid SQL errors. - $query->getQuery()->distinct = false; - - return $query - ->select([ - 'anonymous_siebel_columns.id', - 'anonymous_siebel_columns.column_name', - 'anonymous_siebel_columns.table_id', - 'anonymous_siebel_columns.anonymization_required', - 'anonymous_siebel_columns.seed_contract_mode', - 'anonymous_siebel_columns.seed_contract_expression', - 'anonymous_siebel_columns.seed_contract_notes', + ->heading('Columns using this method (via rules)') + ->description('Columns connected to this method through anonymization rules. To change column associations, edit the rule or the column\'s rule assignment.') + ->query(function (): Builder { + $methodId = $this->getOwnerRecord()->getKey(); + + return AnonymousSiebelColumn::query() + ->select('anonymous_siebel_columns.*') + ->addSelect([ + 'rule_name' => DB::table('anonymization_rules') + ->select('anonymization_rules.name') + ->join('anonymization_rule_column', 'anonymization_rules.id', '=', 'anonymization_rule_column.rule_id') + ->whereColumn('anonymization_rule_column.column_id', 'anonymous_siebel_columns.id') + ->join('anonymization_rule_methods', 'anonymization_rules.id', '=', 'anonymization_rule_methods.rule_id') + ->where('anonymization_rule_methods.method_id', $methodId) + ->limit(1), + 'rule_id' => DB::table('anonymization_rules') + ->select('anonymization_rules.id') + ->join('anonymization_rule_column', 'anonymization_rules.id', '=', 'anonymization_rule_column.rule_id') + ->whereColumn('anonymization_rule_column.column_id', 'anonymous_siebel_columns.id') + ->join('anonymization_rule_methods', 'anonymization_rules.id', '=', 'anonymization_rule_methods.rule_id') + ->where('anonymization_rule_methods.method_id', $methodId) + ->limit(1), + 'is_default_for_rule' => DB::table('anonymization_rule_methods') + ->select('anonymization_rule_methods.is_default') + ->join('anonymization_rule_column', 'anonymization_rule_methods.rule_id', '=', 'anonymization_rule_column.rule_id') + ->whereColumn('anonymization_rule_column.column_id', 'anonymous_siebel_columns.id') + ->where('anonymization_rule_methods.method_id', $methodId) + ->limit(1), ]) + ->whereExists(function ($query) use ($methodId) { + $query->select(DB::raw(1)) + ->from('anonymization_rule_column') + ->join('anonymization_rule_methods', 'anonymization_rule_column.rule_id', '=', 'anonymization_rule_methods.rule_id') + ->whereColumn('anonymization_rule_column.column_id', 'anonymous_siebel_columns.id') + ->where('anonymization_rule_methods.method_id', $methodId); + }) ->with(['table.schema.database']) ->orderBy('anonymous_siebel_columns.column_name'); }) @@ -59,6 +87,17 @@ public function table(Table $table): Table ->label('Database') ->sortable() ->toggleable(), + Tables\Columns\TextColumn::make('rule_name') + ->label('Rule') + ->url(fn(AnonymousSiebelColumn $record) => $record->rule_id + ? AnonymizationRuleResource::getUrl('view', ['record' => $record->rule_id]) + : null) + ->openUrlInNewTab() + ->placeholder('—'), + Tables\Columns\IconColumn::make('is_default_for_rule') + ->label('Default') + ->boolean() + ->tooltip('This method is the default for the column\'s rule'), Tables\Columns\IconColumn::make('anonymization_required') ->label('Required') ->boolean() @@ -68,101 +107,8 @@ public function table(Table $table): Table ->toggleable(isToggledHiddenByDefault: true), ]) ->filters([]) - ->headerActions([ - Tables\Actions\Action::make('attachColumns') - ->label('Attach columns') - ->modalHeading('Attach columns') - ->modalSubmitActionLabel('Attach selected') - ->form([ - Select::make('column_ids') - ->label('Columns') - ->multiple() - ->required() - ->searchable() - ->options(fn() => $this->columnSelectOptions(limit: 25)) - ->getSearchResultsUsing(fn(string $search) => $this->columnSelectOptions(search: $search)) - ->getOptionLabelsUsing(fn(array $values) => $this->columnSelectOptions(ids: $values)) - ->helperText('Search by database, schema, table, or column name.'), - ]) - ->action(function (array $data): void { - $columnIds = collect($data['column_ids'] ?? []) - ->filter() - ->all(); - - if ($columnIds === []) { - return; - } - - $this->getRelationship()->syncWithoutDetaching($columnIds); - }), - ]) - ->actions([ - Tables\Actions\DetachAction::make() - ->label('Remove'), - ]) - ->bulkActions([ - Tables\Actions\BulkActionGroup::make([ - Tables\Actions\DetachBulkAction::make(), - ]), - ]); - } - - private function columnSelectOptions(?string $search = null, ?array $ids = null, int $limit = 25): array - { - $query = AnonymousSiebelColumn::query() - ->with(['table.schema.database']); - - $methodId = $this->getOwnerRecord()?->getKey(); - - if ($ids) { - $query->whereIn('anonymous_siebel_columns.id', $ids); - } elseif ($methodId) { - $query->whereDoesntHave('anonymizationMethods', fn(Builder $relationshipQuery) => $relationshipQuery - ->where('anonymization_methods.id', $methodId)); - } - - if ($search !== null) { - $this->applyColumnSearch($query, $search); - } - - if (! $ids) { - $query - ->orderBy('anonymous_siebel_columns.column_name') - ->limit($limit); - } - - return $query - ->get() - ->mapWithKeys(fn(AnonymousSiebelColumn $column) => [ - $column->id => $this->columnPath($column), - ]) - ->all(); - } - - private function applyColumnSearch(Builder $query, string $search): void - { - $term = '%' . strtolower($search) . '%'; - - $query->where(function (Builder $builder) use ($term) { - $builder - ->whereRaw('LOWER(anonymous_siebel_columns.column_name) LIKE ?', [$term]) - ->orWhereHas('table', fn(Builder $tableQuery) => $tableQuery->whereRaw('LOWER(table_name) LIKE ?', [$term])) - ->orWhereHas('table.schema', fn(Builder $schemaQuery) => $schemaQuery->whereRaw('LOWER(schema_name) LIKE ?', [$term])) - ->orWhereHas('table.schema.database', fn(Builder $databaseQuery) => $databaseQuery->whereRaw('LOWER(database_name) LIKE ?', [$term])); - }); - } - - private function columnPath(AnonymousSiebelColumn $column): string - { - $table = $column->table; - $schema = $table?->schema; - $database = $schema?->database; - - return collect([ - $database?->database_name, - $schema?->schema_name, - $table?->table_name, - $column->column_name, - ])->filter()->implode('.'); + ->headerActions([]) + ->actions([]) + ->bulkActions([]); } } diff --git a/app/Filament/Fodig/Resources/AnonymizationMethodResource/RelationManagers/RulesRelationManager.php b/app/Filament/Fodig/Resources/AnonymizationMethodResource/RelationManagers/RulesRelationManager.php new file mode 100644 index 00000000..2847db97 --- /dev/null +++ b/app/Filament/Fodig/Resources/AnonymizationMethodResource/RelationManagers/RulesRelationManager.php @@ -0,0 +1,59 @@ +heading('Rules using this method') + ->description('Anonymization rules that reference this method, either as the default or under a strategy.') + ->modifyQueryUsing(function (Builder $query) { + $query->getQuery()->distinct = false; + + return $query + ->select([ + 'anonymization_rules.id', + 'anonymization_rules.name', + 'anonymization_rules.description', + ]) + ->orderBy('anonymization_rules.name'); + }) + ->columns([ + Tables\Columns\TextColumn::make('name') + ->label('Rule') + ->sortable() + ->searchable() + ->url(fn(AnonymizationRule $record) => AnonymizationRuleResource::getUrl('view', ['record' => $record->id])) + ->openUrlInNewTab(), + Tables\Columns\TextColumn::make('description') + ->label('Description') + ->limit(60) + ->toggleable(), + Tables\Columns\IconColumn::make('pivot.is_default') + ->label('Default') + ->boolean() + ->tooltip('This method is the default for this rule'), + Tables\Columns\TextColumn::make('pivot.strategy') + ->label('Strategy') + ->placeholder('—'), + ]) + ->filters([]) + ->actions([]) + ->bulkActions([]); + } +} diff --git a/app/Filament/Fodig/Resources/AnonymizationRuleResource.php b/app/Filament/Fodig/Resources/AnonymizationRuleResource.php new file mode 100644 index 00000000..adf0eaa7 --- /dev/null +++ b/app/Filament/Fodig/Resources/AnonymizationRuleResource.php @@ -0,0 +1,303 @@ +withoutGlobalScopes([ + SoftDeletingScope::class, + ]); + } + + public static function form(Form $form): Form + { + return $form + ->schema([ + Forms\Components\Section::make('Rule Details') + ->description('Define a reusable anonymization rule that groups methods under strategies. Assign this rule to columns to control which masking approach is used per job.') + ->schema([ + Forms\Components\TextInput::make('name') + ->required() + ->maxLength(255) + ->unique(ignoreRecord: true) + ->helperText('Short, descriptive name for this anonymization rule.'), + Forms\Components\Textarea::make('description') + ->rows(3) + ->columnSpanFull() + ->helperText('Describe when and why this rule should be applied.'), + ]) + ->columns(2), + Forms\Components\Section::make('Method Assignments') + ->description('Attach one or more methods to this rule. Mark exactly one as the default. Others should have a strategy label so jobs can select which variant to use.') + ->schema([ + Forms\Components\Repeater::make('method_assignments') + ->label('Methods') + ->schema([ + Forms\Components\Select::make('method_id') + ->label('Method') + ->options(fn() => AnonymizationMethods::query() + ->orderBy('name') + ->pluck('name', 'id') + ->all()) + ->searchable() + ->preload() + ->required() + ->columnSpan(2), + Forms\Components\Toggle::make('is_default') + ->label('Default') + ->helperText('Only one method should be the default.') + ->default(false) + ->columnSpan(1), + Forms\Components\TextInput::make('strategy') + ->label('Strategy') + ->maxLength(100) + ->placeholder('e.g. aggressive, development, light') + ->helperText('Leave blank for the default method. Non-default methods should have a strategy label.') + ->datalist(fn() => AnonymizationRule::availableStrategies()) + ->columnSpan(2), + ]) + ->columns(5) + ->defaultItems(1) + ->addActionLabel('Add method') + ->reorderable(false) + ->columnSpanFull() + ->afterStateHydrated(function (Forms\Components\Repeater $component, ?AnonymizationRule $record): void { + if (! $record) { + return; + } + + $items = $record->methods->map(fn(AnonymizationMethods $method) => [ + 'method_id' => $method->getKey(), + 'is_default' => (bool) $method->pivot->is_default, + 'strategy' => $method->pivot->strategy, + ])->values()->all(); + + $component->state($items); + }) + ->dehydrated(true), + ]) + ->columns(1), + Forms\Components\Section::make('Record Metadata') + ->schema([ + Forms\Components\Placeholder::make('created_at') + ->label('Created') + ->content(fn(?AnonymizationRule $record) => optional($record?->created_at)?->toDayDateTimeString() ?? '—'), + Forms\Components\Placeholder::make('updated_at') + ->label('Updated') + ->content(fn(?AnonymizationRule $record) => optional($record?->updated_at)?->toDayDateTimeString() ?? '—'), + ]) + ->columns(2) + ->hiddenOn('create'), + ]); + } + + public static function table(Table $table): Table + { + return $table + ->modifyQueryUsing(fn(Builder $query) => $query->withCount(['methods', 'columns'])) + ->columns([ + Tables\Columns\TextColumn::make('name') + ->sortable() + ->searchable() + ->wrap(), + Tables\Columns\TextColumn::make('description') + ->label('Description') + ->limit(80) + ->toggleable(), + Tables\Columns\TextColumn::make('default_method_name') + ->label('Default method') + ->getStateUsing(fn(AnonymizationRule $record) => $record->defaultMethod()?->name ?? '—') + ->toggleable(), + Tables\Columns\TextColumn::make('strategies_summary') + ->label('Strategies') + ->getStateUsing(function (AnonymizationRule $record) { + $strategies = $record->strategies(); + + return $strategies !== [] ? implode(', ', $strategies) : '—'; + }) + ->wrap() + ->toggleable(), + Tables\Columns\TextColumn::make('methods_count') + ->label('Methods') + ->sortable(), + Tables\Columns\TextColumn::make('columns_count') + ->label('Columns') + ->sortable(), + Tables\Columns\TextColumn::make('updated_at') + ->label('Updated') + ->dateTime() + ->sortable() + ->toggleable(), + ]) + ->filters([ + Tables\Filters\TrashedFilter::make(), + Tables\Filters\SelectFilter::make('methods') + ->label('Method') + ->multiple() + ->searchable() + ->preload() + ->options(fn() => AnonymizationMethods::query()->orderBy('name')->pluck('name', 'id')->all()) + ->query(function (Builder $query, array $data) { + $values = $data['values'] ?? null; + + if (! is_array($values) || $values === []) { + return $query; + } + + $ids = array_values(array_filter(array_map(fn($v) => is_numeric($v) ? (int) $v : null, $values))); + + if ($ids === []) { + return $query; + } + + return $query->whereHas('methods', fn(Builder $b) => $b->whereIn('anonymization_methods.id', $ids)); + }), + Tables\Filters\SelectFilter::make('strategy') + ->label('Strategy') + ->options(fn() => collect(AnonymizationRule::availableStrategies()) + ->mapWithKeys(fn(string $s) => [$s => Str::headline($s)]) + ->all()) + ->query(function (Builder $query, array $data) { + $value = $data['value'] ?? null; + + if (! is_string($value) || $value === '') { + return $query; + } + + return $query->whereHas('methods', fn(Builder $b) => $b->where('anonymization_rule_methods.strategy', $value)); + }), + ]) + ->actions([ + Tables\Actions\ViewAction::make(), + Tables\Actions\EditAction::make(), + Tables\Actions\DeleteAction::make(), + ]) + ->bulkActions([ + Tables\Actions\BulkActionGroup::make([ + Tables\Actions\DeleteBulkAction::make(), + ]), + ]) + ->defaultSort('name'); + } + + public static function infolist(Infolist $infolist): Infolist + { + return $infolist + ->schema([ + Section::make('Rule Summary') + ->schema([ + TextEntry::make('name') + ->label('Rule') + ->weight('bold') + ->size('lg'), + TextEntry::make('description') + ->placeholder('No description provided.') + ->columnSpanFull(), + ]), + Section::make('Method Assignments') + ->schema([ + RepeatableEntry::make('methods') + ->label('Methods') + ->schema([ + TextEntry::make('name') + ->label('Method') + ->weight('medium'), + TextEntry::make('pivot.is_default') + ->label('Default') + ->formatStateUsing(fn($state) => $state ? 'Yes' : '—') + ->badge() + ->color(fn($state) => $state ? 'success' : 'gray'), + TextEntry::make('pivot.strategy') + ->label('Strategy') + ->placeholder('—'), + ]) + ->columns(3), + ]), + Section::make('Usage') + ->schema([ + Grid::make(2) + ->schema([ + TextEntry::make('methods_count') + ->label('Methods assigned'), + TextEntry::make('columns_count') + ->label('Columns using this rule'), + ]), + Grid::make(2) + ->schema([ + TextEntry::make('created_at') + ->dateTime() + ->label('Created'), + TextEntry::make('updated_at') + ->dateTime() + ->label('Updated'), + ]), + ]), + ]); + } + + public static function getPages(): array + { + return [ + 'index' => Pages\ListAnonymizationRules::route('/'), + 'create' => Pages\CreateAnonymizationRule::route('/create'), + 'view' => Pages\ViewAnonymizationRule::route('/{record}'), + 'edit' => Pages\EditAnonymizationRule::route('/{record}/edit'), + ]; + } + + public static function getRelations(): array + { + return [ + RelationManagers\ColumnsRelationManager::class, + \App\Filament\Fodig\RelationManagers\ActivityLogRelationManager::class, + ]; + } + + /** + * Normalize pivot data: ensure strategy is null when is_default is true, + * and set a sensible default for unfilled strategy fields. + */ + protected static function normalizeMethodPivotData(array $data): array + { + if (! empty($data['is_default'])) { + $data['strategy'] = null; + } + + if (isset($data['strategy']) && trim((string) $data['strategy']) === '') { + $data['strategy'] = null; + } + + return $data; + } +} diff --git a/app/Filament/Fodig/Resources/AnonymizationRuleResource/Pages/CreateAnonymizationRule.php b/app/Filament/Fodig/Resources/AnonymizationRuleResource/Pages/CreateAnonymizationRule.php new file mode 100644 index 00000000..b375caa2 --- /dev/null +++ b/app/Filament/Fodig/Resources/AnonymizationRuleResource/Pages/CreateAnonymizationRule.php @@ -0,0 +1,58 @@ +getResource()::getUrl('view', ['record' => $this->record]); + } + + protected function mutateFormDataBeforeCreate(array $data): array + { + // Strip out the repeater data — it goes to the pivot, not the model. + unset($data['method_assignments']); + + return $data; + } + + protected function afterCreate(): void + { + $this->syncMethodAssignments(); + } + + private function syncMethodAssignments(): void + { + $items = $this->data['method_assignments'] ?? []; + $sync = []; + + foreach ($items as $item) { + $methodId = $item['method_id'] ?? null; + + if (! $methodId) { + continue; + } + + $isDefault = ! empty($item['is_default']); + $strategy = $isDefault ? null : (trim((string) ($item['strategy'] ?? '')) ?: null); + + $sync[$methodId] = [ + 'is_default' => $isDefault, + 'strategy' => $strategy, + ]; + } + + $this->record->methods()->sync($sync); + } +} diff --git a/app/Filament/Fodig/Resources/AnonymizationRuleResource/Pages/EditAnonymizationRule.php b/app/Filament/Fodig/Resources/AnonymizationRuleResource/Pages/EditAnonymizationRule.php new file mode 100644 index 00000000..0e55455b --- /dev/null +++ b/app/Filament/Fodig/Resources/AnonymizationRuleResource/Pages/EditAnonymizationRule.php @@ -0,0 +1,61 @@ +syncMethodAssignments(); + } + + private function syncMethodAssignments(): void + { + $items = $this->data['method_assignments'] ?? []; + $sync = []; + + foreach ($items as $item) { + $methodId = $item['method_id'] ?? null; + + if (! $methodId) { + continue; + } + + $isDefault = ! empty($item['is_default']); + $strategy = $isDefault ? null : (trim((string) ($item['strategy'] ?? '')) ?: null); + + $sync[$methodId] = [ + 'is_default' => $isDefault, + 'strategy' => $strategy, + ]; + } + + $this->record->methods()->sync($sync); + } +} diff --git a/app/Filament/Fodig/Resources/AnonymizationRuleResource/Pages/ListAnonymizationRules.php b/app/Filament/Fodig/Resources/AnonymizationRuleResource/Pages/ListAnonymizationRules.php new file mode 100644 index 00000000..07eb2c5a --- /dev/null +++ b/app/Filament/Fodig/Resources/AnonymizationRuleResource/Pages/ListAnonymizationRules.php @@ -0,0 +1,18 @@ +heading('Columns using this rule') + ->description('Catalog columns currently assigned to this anonymization rule.') + ->modifyQueryUsing(function (Builder $query) { + $query->getQuery()->distinct = false; + + return $query + ->select([ + 'anonymous_siebel_columns.id', + 'anonymous_siebel_columns.column_name', + 'anonymous_siebel_columns.table_id', + 'anonymous_siebel_columns.anonymization_required', + 'anonymous_siebel_columns.seed_contract_mode', + ]) + ->with(['table.schema.database']) + ->orderBy('anonymous_siebel_columns.column_name'); + }) + ->columns([ + Tables\Columns\TextColumn::make('column_name') + ->label('Column') + ->sortable() + ->searchable() + ->url(fn(AnonymousSiebelColumn $record) => AnonymousSiebelColumnResource::getUrl('view', ['record' => $record->id])) + ->openUrlInNewTab(), + Tables\Columns\TextColumn::make('table.table_name') + ->label('Table') + ->sortable() + ->searchable(), + Tables\Columns\TextColumn::make('table.schema.schema_name') + ->label('Schema') + ->sortable() + ->toggleable(), + Tables\Columns\TextColumn::make('table.schema.database.database_name') + ->label('Database') + ->sortable() + ->toggleable(), + Tables\Columns\IconColumn::make('anonymization_required') + ->label('Required') + ->boolean() + ->tooltip('Marked as requiring anonymization'), + Tables\Columns\TextColumn::make('seed_contract_summary') + ->label('Seed contract') + ->toggleable(isToggledHiddenByDefault: true), + ]) + ->filters([]) + ->headerActions([ + Tables\Actions\Action::make('attachColumns') + ->label('Attach columns') + ->modalHeading('Attach columns') + ->modalSubmitActionLabel('Attach selected') + ->form([ + Select::make('column_ids') + ->label('Columns') + ->multiple() + ->required() + ->searchable() + ->options(fn() => $this->columnSelectOptions(limit: 25)) + ->getSearchResultsUsing(fn(string $search) => $this->columnSelectOptions(search: $search)) + ->getOptionLabelsUsing(fn(array $values) => $this->columnSelectOptions(ids: $values)) + ->helperText('Search by database, schema, table, or column name. Columns already assigned to another rule will not appear.'), + ]) + ->action(function (array $data): void { + $columnIds = collect($data['column_ids'] ?? []) + ->filter() + ->all(); + + if ($columnIds === []) { + return; + } + + $this->getRelationship()->syncWithoutDetaching($columnIds); + }), + ]) + ->actions([ + Tables\Actions\DetachAction::make() + ->label('Remove'), + ]) + ->bulkActions([ + Tables\Actions\BulkActionGroup::make([ + Tables\Actions\DetachBulkAction::make(), + ]), + ]); + } + + private function columnSelectOptions(?string $search = null, ?array $ids = null, int $limit = 25): array + { + $query = AnonymousSiebelColumn::query() + ->with(['table.schema.database']); + + if ($ids) { + $query->whereIn('anonymous_siebel_columns.id', $ids); + } else { + // Exclude columns already assigned to any rule (since a column can only have one rule) + $query->whereDoesntHave('anonymizationRule'); + } + + if ($search !== null) { + $this->applyColumnSearch($query, $search); + } + + if (! $ids) { + $query + ->orderBy('anonymous_siebel_columns.column_name') + ->limit($limit); + } + + return $query + ->get() + ->mapWithKeys(fn(AnonymousSiebelColumn $column) => [ + $column->id => $this->columnPath($column), + ]) + ->all(); + } + + private function applyColumnSearch(Builder $query, string $search): void + { + $term = '%' . strtolower($search) . '%'; + + $query->where(function (Builder $builder) use ($term) { + $builder + ->whereRaw('LOWER(anonymous_siebel_columns.column_name) LIKE ?', [$term]) + ->orWhereHas('table', fn(Builder $q) => $q->whereRaw('LOWER(table_name) LIKE ?', [$term])) + ->orWhereHas('table.schema', fn(Builder $q) => $q->whereRaw('LOWER(schema_name) LIKE ?', [$term])) + ->orWhereHas('table.schema.database', fn(Builder $q) => $q->whereRaw('LOWER(database_name) LIKE ?', [$term])); + }); + } + + private function columnPath(AnonymousSiebelColumn $column): string + { + $table = $column->table; + $schema = $table?->schema; + $database = $schema?->database; + + return collect([ + $database?->database_name, + $schema?->schema_name, + $table?->table_name, + $column->column_name, + ])->filter()->implode('.'); + } +} diff --git a/app/Filament/Fodig/Resources/AnonymousSiebelColumnResource.php b/app/Filament/Fodig/Resources/AnonymousSiebelColumnResource.php index 378da6c3..a1920020 100644 --- a/app/Filament/Fodig/Resources/AnonymousSiebelColumnResource.php +++ b/app/Filament/Fodig/Resources/AnonymousSiebelColumnResource.php @@ -2,19 +2,28 @@ namespace App\Filament\Fodig\Resources; +use App\Filament\Exports\AnonymousSiebelColumnExporter; +use App\Filament\Exports\AnonymousSiebelColumnLegacyExporter; use App\Filament\Fodig\Resources\AnonymizationMethodResource; use App\Filament\Fodig\Resources\AnonymousSiebelColumnResource\Pages; use App\Filament\Fodig\Resources\AnonymousSiebelColumnResource\RelationManagers; use App\Filament\Fodig\RelationManagers\ActivityLogRelationManager; +use App\Jobs\PrepareCsvExportWithProgress; use App\Models\Anonymizer\AnonymousSiebelColumn; use App\Models\Anonymizer\AnonymousSiebelTable; use App\Models\Anonymizer\AnonymizationColumnTag; use App\Models\Anonymizer\AnonymizationMethods; +use App\Models\Anonymizer\AnonymizationRule; +use Filament\Actions\Exports\Enums\ExportFormat; +use Filament\Actions\Exports\Models\Export; use Filament\Forms; use Filament\Forms\Form; use Filament\Forms\Get; use Filament\Resources\Resource; use Filament\Tables; +use Filament\Tables\Actions\ActionGroup; +use Filament\Tables\Actions\ExportAction; +use Filament\Tables\Actions\ExportBulkAction; use Filament\Tables\Table; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\SoftDeletingScope; @@ -28,6 +37,11 @@ class AnonymousSiebelColumnResource extends Resource protected static ?string $navigationGroup = 'Anonymizer'; protected static ?string $navigationLabel = 'Siebel Columns'; + public static function canCreate(): bool + { + return false; + } + public static function getEloquentQuery(): Builder { return parent::getEloquentQuery() @@ -35,8 +49,11 @@ public static function getEloquentQuery(): Builder SoftDeletingScope::class, ]) ->with([ + 'table.schema.database', + 'dataType', 'tags', 'anonymizationMethods', + 'anonymizationRule.methods', ]); } @@ -46,6 +63,22 @@ public static function form(Form $form): Form ->schema([ Forms\Components\Section::make('Details') ->schema([ + Forms\Components\Placeholder::make('database_display') + ->label('Database') + ->content(function (Get $get, ?AnonymousSiebelColumn $record): string { + $table = $record?->getRelationValue('table'); + + if (! $table) { + $tableId = $get('table_id'); + $table = $tableId + ? AnonymousSiebelTable::query()->withTrashed()->with('schema.database')->find($tableId) + : null; + } else { + $table->loadMissing('schema.database'); + } + + return $table?->schema?->database?->database_name ?: '—'; + }), Forms\Components\Placeholder::make('schema_display') ->label('Schema') ->content(function (Get $get, ?AnonymousSiebelColumn $record): string { @@ -62,6 +95,20 @@ public static function form(Form $form): Form return $table?->schema?->schema_name ?: '—'; }), + Forms\Components\Placeholder::make('table_display') + ->label('Table') + ->content(function (Get $get, ?AnonymousSiebelColumn $record): string { + $table = $record?->getRelationValue('table'); + + if (! $table) { + $tableId = $get('table_id'); + $table = $tableId + ? AnonymousSiebelTable::query()->withTrashed()->find($tableId) + : null; + } + + return $table?->table_name ?: '—'; + }), Forms\Components\Select::make('table_id') ->label('Table') ->relationship('table', 'table_name') @@ -69,13 +116,18 @@ public static function form(Form $form): Form ->live() ->preload() ->required() + ->hiddenOn('view') ->disabled(fn(?AnonymousSiebelColumn $record) => (bool) $record?->exists), + Forms\Components\Placeholder::make('data_type_display') + ->label('Data type') + ->content(fn(?AnonymousSiebelColumn $record): string => $record?->dataType?->data_type_name ?: '—'), Forms\Components\Select::make('data_type_id') ->label('Data type') ->relationship('dataType', 'data_type_name') ->searchable() ->preload() ->required() + ->hiddenOn('view') ->disabled(fn(?AnonymousSiebelColumn $record) => (bool) $record?->exists), Forms\Components\TextInput::make('column_name') ->required() @@ -89,6 +141,43 @@ public static function form(Form $form): Form ->disabled(fn(?AnonymousSiebelColumn $record) => (bool) $record?->exists), ]) ->columns(2), + Forms\Components\Section::make('Imported source metadata') + ->schema([ + Forms\Components\TextInput::make('qualfield') + ->label('QUALFIELD') + ->disabled(fn(?AnonymousSiebelColumn $record) => (bool) $record?->exists), + Forms\Components\TextInput::make('pr_key') + ->label('PR_KEY') + ->disabled(fn(?AnonymousSiebelColumn $record) => (bool) $record?->exists), + Forms\Components\TextInput::make('ref_tab_name') + ->label('REF_TAB_NAME') + ->disabled(fn(?AnonymousSiebelColumn $record) => (bool) $record?->exists), + Forms\Components\TextInput::make('num_distinct') + ->label('NUM_DISTINCT') + ->numeric() + ->disabled(fn(?AnonymousSiebelColumn $record) => (bool) $record?->exists), + Forms\Components\TextInput::make('num_not_null') + ->label('NUM_NOT_NULL') + ->numeric() + ->disabled(fn(?AnonymousSiebelColumn $record) => (bool) $record?->exists), + Forms\Components\TextInput::make('num_nulls') + ->label('NUM_NULLS') + ->numeric() + ->disabled(fn(?AnonymousSiebelColumn $record) => (bool) $record?->exists), + Forms\Components\TextInput::make('num_rows') + ->label('NUM_ROWS') + ->numeric() + ->disabled(fn(?AnonymousSiebelColumn $record) => (bool) $record?->exists), + Forms\Components\TextInput::make('sbl_user_name') + ->label('SBL_USER_NAME') + ->disabled(fn(?AnonymousSiebelColumn $record) => (bool) $record?->exists), + Forms\Components\Textarea::make('sbl_desc_text') + ->label('SBL_DESC_TEXT') + ->rows(3) + ->columnSpanFull() + ->disabled(fn(?AnonymousSiebelColumn $record) => (bool) $record?->exists), + ]) + ->columns(3), Forms\Components\Section::make('Dimensions') ->schema([ Forms\Components\TextInput::make('data_length') @@ -262,49 +351,58 @@ public static function form(Form $form): Form ->dehydrateStateUsing(fn($state): bool => (bool) ($state ?? false)), Forms\Components\Toggle::make('anonymization_required') ->label('Anonymization required'), - Forms\Components\Select::make('anonymizationMethods') - ->label('Anonymization methods') - ->relationship('anonymizationMethods', 'name', fn(Builder $query) => $query - ->select([ - 'anonymization_methods.id', - 'anonymization_methods.name', - 'anonymization_methods.category', - ]) - ->orderBy('anonymization_methods.name')) - ->multiple() - ->searchable() - ->getOptionLabelFromRecordUsing(function (AnonymizationMethods $record): string { - $summary = $record->categorySummary(); + // Forms\Components\Select::make('anonymizationMethods') + // ->label('Anonymization methods') + // ->relationship('anonymizationMethods', 'name', fn(Builder $query) => $query + // ->select([ + // 'anonymization_methods.id', + // 'anonymization_methods.name', + // 'anonymization_methods.category', + // ]) + // ->orderBy('anonymization_methods.name')) + // ->multiple() + // ->searchable() + // ->getOptionLabelFromRecordUsing(function (AnonymizationMethods $record): string { + // $summary = $record->categorySummary(); - return $summary - ? ($record->name . ' — ' . $summary) - : $record->name; - }) - ->preload() - ->nullable() - ->columnSpanFull(), + // return $summary + // ? ($record->name . ' — ' . $summary) + // : $record->name; + // }) + // ->preload() + // ->nullable() + // ->columnSpanFull(), Forms\Components\Placeholder::make('anonymization_method_links') - ->label('Review methods') + ->label('Methods (via rule)') ->content(function (?AnonymousSiebelColumn $record): HtmlString { if (! $record) { return new HtmlString('—'); } - $methods = $record->getRelationValue('anonymizationMethods') - ?? $record->anonymizationMethods()->get(['anonymization_methods.id', 'anonymization_methods.name']); + $rule = $record->anonymizationRule()->with('methods')->first(); - if (! $methods || $methods->isEmpty()) { - return new HtmlString('—'); + if (! $rule) { + return new HtmlString('No rule assigned'); + } + + $methods = $rule->methods; + + if ($methods->isEmpty()) { + return new HtmlString('Rule has no methods'); } $links = $methods - ->sortBy('name') + ->sortByDesc('pivot.is_default') ->map(function (AnonymizationMethods $method): string { $url = AnonymizationMethodResource::getUrl('view', ['record' => $method->getKey()]); $name = e((string) $method->name); + $suffix = $method->pivot->is_default ? ' (default)' : ''; + $strategyBadge = $method->pivot->strategy + ? ' [' . e($method->pivot->strategy) . ']' + : ''; - return "{$name}"; + return "{$name}{$suffix}{$strategyBadge}"; }) ->values() ->all(); @@ -314,6 +412,49 @@ public static function form(Form $form): Form ->columnSpanFull() ->visibleOn(['view', 'edit']), + Forms\Components\Select::make('anonymization_rule_id') + ->label('Anonymization rule') + ->options(fn() => AnonymizationRule::orderBy('name')->pluck('name', 'id')) + ->searchable() + ->preload() + ->nullable() + ->columnSpanFull() + ->helperText('Assign a rule to this column. Rules group anonymization methods and strategies for job composition.') + ->afterStateHydrated(function (Forms\Components\Select $component, ?AnonymousSiebelColumn $record): void { + if ($record) { + $rule = $record->anonymizationRule()->first(); + $component->state($rule?->id); + } + }) + ->dehydrated(false) + ->afterStateUpdated(function ($state, ?AnonymousSiebelColumn $record): void { + // State saved via saveRelationshipsUsing below + }) + ->saveRelationshipsUsing(function (AnonymousSiebelColumn $record, $state): void { + if ($state) { + $record->anonymizationRule()->sync([$state]); + } else { + $record->anonymizationRule()->detach(); + } + }), + + Forms\Components\Placeholder::make('anonymization_rule_link') + ->label('View rule') + ->content(function (?AnonymousSiebelColumn $record): HtmlString { + if (! $record) { + return new HtmlString('—'); + } + $rules = $record->anonymizationRule; + if ($rules->isEmpty()) { + return new HtmlString('—'); + } + $rule = $rules->first(); + $url = AnonymizationRuleResource::getUrl('view', ['record' => $rule->getKey()]); + return new HtmlString('' . e($rule->name) . ''); + }) + ->columnSpanFull() + ->visibleOn(['view', 'edit']), + Forms\Components\Select::make('tags') ->label('Column tags') ->relationship('tags', 'name', fn(Builder $query) => $query->orderBy('category')->orderBy('name')) @@ -357,6 +498,11 @@ public static function table(Table $table): Table { return $table ->columns([ + Tables\Columns\TextColumn::make('table.schema.database.database_name') + ->label('Database') + ->sortable() + ->searchable() + ->toggleable(), Tables\Columns\TextColumn::make('column_name') ->label('Column') ->sortable() @@ -373,18 +519,75 @@ public static function table(Table $table): Table ->label('Data type') ->sortable() ->toggleable(), + Tables\Columns\TextColumn::make('qualfield') + ->label('QUALFIELD') + ->toggleable(isToggledHiddenByDefault: true), + Tables\Columns\TextColumn::make('column_id') + ->label('COLUMN_ID') + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), + Tables\Columns\TextColumn::make('pr_key') + ->label('PR_KEY') + ->toggleable(isToggledHiddenByDefault: true), + Tables\Columns\TextColumn::make('ref_tab_name') + ->label('REF_TAB_NAME') + ->toggleable(isToggledHiddenByDefault: true), + Tables\Columns\TextColumn::make('num_distinct') + ->label('NUM_DISTINCT') + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), + Tables\Columns\TextColumn::make('num_not_null') + ->label('NUM_NOT_NULL') + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), + Tables\Columns\TextColumn::make('num_nulls') + ->label('NUM_NULLS') + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), + Tables\Columns\TextColumn::make('num_rows') + ->label('NUM_ROWS') + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), Tables\Columns\TextColumn::make('anonymizationMethods.name') ->label('Anonymization methods') ->html() ->getStateUsing(function (AnonymousSiebelColumn $record): string { - $methods = $record->getRelationValue('anonymizationMethods') + // Derive methods from the assigned rule + $rules = $record->getRelationValue('anonymizationRule'); + $rule = $rules instanceof \Illuminate\Database\Eloquent\Collection ? $rules->first() : $rules; + + if ($rule) { + $methods = $rule->getRelationValue('methods') ?? $rule->methods()->get(); + + if ($methods->isNotEmpty()) { + return $methods + ->sortByDesc('pivot.is_default') + ->map(function (AnonymizationMethods $method): string { + $url = AnonymizationMethodResource::getUrl('view', ['record' => $method->getKey()]); + $name = e((string) $method->name); + $badges = ''; + if ($method->pivot->is_default) { + $badges .= ' (default)'; + } + if ($method->pivot->strategy) { + $badges .= ' [' . e($method->pivot->strategy) . ']'; + } + + return "{$name}{$badges}"; + }) + ->implode(', '); + } + } + + // Legacy fallback: direct method associations + $directMethods = $record->getRelationValue('anonymizationMethods') ?? $record->anonymizationMethods()->get(['anonymization_methods.id', 'anonymization_methods.name']); - if (! $methods || $methods->isEmpty()) { + if (! $directMethods || $directMethods->isEmpty()) { return '—'; } - return $methods + return $directMethods ->sortBy('name') ->map(function (AnonymizationMethods $method): string { $url = AnonymizationMethodResource::getUrl('view', ['record' => $method->getKey()]); @@ -392,7 +595,21 @@ public static function table(Table $table): Table return "{$name}"; }) - ->implode(', '); + ->implode(', ') . ' (legacy)'; + }) + ->toggleable(), + Tables\Columns\TextColumn::make('anonymizationRule.name') + ->label('Rule') + ->html() + ->getStateUsing(function (AnonymousSiebelColumn $record): string { + $rules = $record->getRelationValue('anonymizationRule'); + if (! $rules || $rules->isEmpty()) { + return '—'; + } + $rule = $rules->first(); + $url = AnonymizationRuleResource::getUrl('view', ['record' => $rule->getKey()]); + $name = e((string) $rule->name); + return "{$name}"; }) ->toggleable(), Tables\Columns\TextColumn::make('tags') @@ -527,6 +744,30 @@ public static function table(Table $table): Table Tables\Columns\TextColumn::make('data_length') ->sortable() ->toggleable(isToggledHiddenByDefault: true), + Tables\Columns\TextColumn::make('data_precision') + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), + Tables\Columns\TextColumn::make('data_scale') + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), + Tables\Columns\TextColumn::make('char_length') + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), + Tables\Columns\TextColumn::make('sbl_user_name') + ->label('SBL_USER_NAME') + ->toggleable(isToggledHiddenByDefault: true), + Tables\Columns\TextColumn::make('sbl_desc_text') + ->label('SBL_DESC_TEXT') + ->limit(80) + ->toggleable(isToggledHiddenByDefault: true), + Tables\Columns\TextColumn::make('column_comment') + ->label('COMMENTS') + ->limit(80) + ->toggleable(isToggledHiddenByDefault: true), + Tables\Columns\TextColumn::make('table_comment') + ->label('TABLE_COMMENT') + ->limit(80) + ->toggleable(isToggledHiddenByDefault: true), Tables\Columns\TextColumn::make('last_synced_at') ->dateTime() ->sortable(), @@ -558,7 +799,8 @@ public static function table(Table $table): Table ->searchable() ->preload() ->options(fn(): array => [ - '__any__' => 'Any method (not null)', + '__any__' => 'Any method (via rule)', + '__any_legacy__' => 'Any method (legacy/direct)', ] + AnonymizationMethods::query() ->select(['anonymization_methods.id', 'anonymization_methods.name']) ->orderBy('anonymization_methods.name') @@ -577,19 +819,30 @@ public static function table(Table $table): Table } $hasAny = in_array('__any__', $values, true); - $methodIds = array_values(array_filter($values, fn($v) => $v !== '__any__')); + $hasAnyLegacy = in_array('__any_legacy__', $values, true); + $methodIds = array_values(array_filter($values, fn($v) => $v !== '__any__' && $v !== '__any_legacy__')); - if ($hasAny && $methodIds === []) { - return $query->whereHas('anonymizationMethods'); - } + return $query->where(function (Builder $q) use ($hasAny, $hasAnyLegacy, $methodIds) { + // Filter through rules (primary path) + if ($hasAny) { + $q->orWhereHas('anonymizationRule', function (Builder $rq) { + $rq->whereHas('methods'); + }); + } - if ($methodIds !== []) { - return $query->whereHas('anonymizationMethods', function (Builder $methodQuery) use ($methodIds) { - $methodQuery->whereIn('anonymization_methods.id', $methodIds); - }); - } + if ($methodIds !== []) { + $q->orWhereHas('anonymizationRule', function (Builder $rq) use ($methodIds) { + $rq->whereHas('methods', function (Builder $mq) use ($methodIds) { + $mq->whereIn('anonymization_methods.id', $methodIds); + }); + }); + } - return $query; + // Legacy direct method associations + if ($hasAnyLegacy) { + $q->orWhereHas('anonymizationMethods'); + } + }); }), Tables\Filters\SelectFilter::make('anonymization_method_categories') ->label('Method category') @@ -605,23 +858,78 @@ public static function table(Table $table): Table return $query; } - return $query->whereHas('anonymizationMethods', function (Builder $methodQuery) use ($values) { - $methodQuery->where(function (Builder $builder) use ($values) { - foreach ($values as $category) { - if (! is_string($category) || trim($category) === '') { - continue; - } + return $query->where(function (Builder $q) use ($values) { + // Primary path: through rules + $q->whereHas('anonymizationRule', function (Builder $rq) use ($values) { + $rq->whereHas('methods', function (Builder $mq) use ($values) { + $mq->where(function (Builder $builder) use ($values) { + foreach ($values as $category) { + if (! is_string($category) || trim($category) === '') { + continue; + } - $category = trim($category); + $category = trim($category); - $builder - ->orWhereJsonContains('anonymization_methods.categories', $category) - ->orWhere('anonymization_methods.category', $category); - } + $builder + ->orWhereJsonContains('anonymization_methods.categories', $category) + ->orWhere('anonymization_methods.category', $category); + } + }); + }); + }); + + // Legacy fallback: direct method associations + $q->orWhereHas('anonymizationMethods', function (Builder $methodQuery) use ($values) { + $methodQuery->where(function (Builder $builder) use ($values) { + foreach ($values as $category) { + if (! is_string($category) || trim($category) === '') { + continue; + } + + $category = trim($category); + + $builder + ->orWhereJsonContains('anonymization_methods.categories', $category) + ->orWhere('anonymization_methods.category', $category); + } + }); }); }); }), + Tables\Filters\SelectFilter::make('anonymization_rule') + ->label('Anonymization rule') + ->multiple() + ->searchable() + ->preload() + ->options(fn(): array => AnonymizationRule::query() + ->orderBy('name') + ->pluck('name', 'id') + ->all()) + ->query(function (Builder $query, array $data) { + $values = $data['values'] ?? null; + + if (! is_array($values) || $values === []) { + return $query; + } + + $values = array_values(array_filter($values, fn($v) => $v !== null && trim((string) $v) !== '')); + if ($values === []) { + return $query; + } + + return $query->whereHas('anonymizationRule', function (Builder $rq) use ($values) { + $rq->whereIn('anonymization_rules.id', $values); + }); + }), + Tables\Filters\TernaryFilter::make('has_rule') + ->label('Has anonymization rule') + ->nullable() + ->queries( + true: fn(Builder $query) => $query->whereHas('anonymizationRule'), + false: fn(Builder $query) => $query->whereDoesntHave('anonymizationRule'), + ), + Tables\Filters\SelectFilter::make('tags') ->label('Tags') ->relationship('tags', 'name', fn(Builder $query) => $query->orderBy('category')->orderBy('name')) @@ -668,13 +976,46 @@ public static function table(Table $table): Table ), Tables\Filters\TrashedFilter::make(), ]) + ->paginated([10, 25, 50]) ->persistFiltersInSession() ->actions([ Tables\Actions\ViewAction::make(), Tables\Actions\EditAction::make(), ]) + ->headerActions([ + ActionGroup::make([ + ExportAction::make('export_temp_format') + ->label('Export currently filtered set') + ->exporter(AnonymousSiebelColumnExporter::class) + ->job(PrepareCsvExportWithProgress::class) + ->formats([ExportFormat::Csv, ExportFormat::Xlsx]) + ->fileName(fn(Export $export): string => "Siebel-Columns-{$export->getKey()}"), + ExportAction::make('export_legacy_format') + ->label('Export Legacy Format') + ->hidden(true) // hide from actions, but keep functionality during development + ->exporter(AnonymousSiebelColumnLegacyExporter::class) + ->job(PrepareCsvExportWithProgress::class) + ->formats([ExportFormat::Csv, ExportFormat::Xlsx]) + ->fileName(fn(Export $export): string => "Siebel-Columns-Legacy-{$export->getKey()}"), + ]) + ->button() + ->label('Export') + ->icon('heroicon-m-arrow-down-tray') + ->color('primary'), + ]) ->bulkActions([ Tables\Actions\BulkActionGroup::make([ + ExportBulkAction::make('export_selected_temp_format') + ->label('Export selected') + ->formats([ExportFormat::Csv, ExportFormat::Xlsx]) + ->job(PrepareCsvExportWithProgress::class) + ->exporter(AnonymousSiebelColumnExporter::class), + ExportBulkAction::make('export_selected_legacy_format') + ->label('Export selected (Legacy)') + ->formats([ExportFormat::Csv, ExportFormat::Xlsx]) + ->hidden(true) + ->job(PrepareCsvExportWithProgress::class) + ->exporter(AnonymousSiebelColumnLegacyExporter::class), Tables\Actions\DeleteBulkAction::make(), ]), ]) @@ -694,7 +1035,6 @@ public static function getPages(): array { return [ 'index' => Pages\ListAnonymousSiebelColumns::route('/'), - 'create' => Pages\CreateAnonymousSiebelColumn::route('/create'), 'view' => Pages\ViewAnonymousSiebelColumn::route('/{record}'), 'edit' => Pages\EditAnonymousSiebelColumn::route('/{record}/edit'), ]; diff --git a/app/Filament/Fodig/Resources/AnonymousSiebelDatabaseResource.php b/app/Filament/Fodig/Resources/AnonymousSiebelDatabaseResource.php index 4e5dea39..3305f3ac 100644 --- a/app/Filament/Fodig/Resources/AnonymousSiebelDatabaseResource.php +++ b/app/Filament/Fodig/Resources/AnonymousSiebelDatabaseResource.php @@ -21,6 +21,11 @@ class AnonymousSiebelDatabaseResource extends Resource protected static ?string $navigationGroup = 'Anonymizer'; protected static ?string $navigationLabel = 'Siebel Databases'; + public static function canCreate(): bool + { + return false; + } + public static function getEloquentQuery(): Builder { return parent::getEloquentQuery() @@ -109,7 +114,6 @@ public static function getPages(): array { return [ 'index' => Pages\ListAnonymousSiebelDatabases::route('/'), - 'create' => Pages\CreateAnonymousSiebelDatabase::route('/create'), 'edit' => Pages\EditAnonymousSiebelDatabase::route('/{record}/edit'), ]; } diff --git a/app/Filament/Fodig/Resources/AnonymousSiebelSchemaResource.php b/app/Filament/Fodig/Resources/AnonymousSiebelSchemaResource.php index 19b4f056..2232e1c5 100644 --- a/app/Filament/Fodig/Resources/AnonymousSiebelSchemaResource.php +++ b/app/Filament/Fodig/Resources/AnonymousSiebelSchemaResource.php @@ -20,6 +20,11 @@ class AnonymousSiebelSchemaResource extends Resource protected static ?string $navigationGroup = 'Anonymizer'; protected static ?string $navigationLabel = 'Siebel Schemas'; + public static function canCreate(): bool + { + return false; + } + public static function getEloquentQuery(): Builder { return parent::getEloquentQuery() @@ -125,7 +130,6 @@ public static function getPages(): array { return [ 'index' => Pages\ListAnonymousSiebelSchemas::route('/'), - 'create' => Pages\CreateAnonymousSiebelSchema::route('/create'), 'view' => Pages\ViewAnonymousSiebelSchema::route('/{record}'), 'edit' => Pages\EditAnonymousSiebelSchema::route('/{record}/edit'), ]; diff --git a/app/Filament/Fodig/Resources/AnonymousSiebelTableResource.php b/app/Filament/Fodig/Resources/AnonymousSiebelTableResource.php index 1ae2e7d7..a73640e4 100644 --- a/app/Filament/Fodig/Resources/AnonymousSiebelTableResource.php +++ b/app/Filament/Fodig/Resources/AnonymousSiebelTableResource.php @@ -20,6 +20,11 @@ class AnonymousSiebelTableResource extends Resource protected static ?string $navigationGroup = 'Anonymizer'; protected static ?string $navigationLabel = 'Siebel Tables'; + public static function canCreate(): bool + { + return false; + } + public static function getEloquentQuery(): Builder { return parent::getEloquentQuery() @@ -116,6 +121,7 @@ public static function table(Table $table): Table ->relationship('schema', 'schema_name'), Tables\Filters\TrashedFilter::make(), ]) + ->actions([ Tables\Actions\ViewAction::make(), Tables\Actions\EditAction::make(), @@ -125,6 +131,7 @@ public static function table(Table $table): Table Tables\Actions\DeleteBulkAction::make(), ]), ]) + ->paginated([10, 25, 50]) ->defaultSort('table_name'); } @@ -139,7 +146,6 @@ public static function getPages(): array { return [ 'index' => Pages\ListAnonymousSiebelTables::route('/'), - 'create' => Pages\CreateAnonymousSiebelTable::route('/create'), 'view' => Pages\ViewAnonymousSiebelTable::route('/{record}'), 'edit' => Pages\EditAnonymousSiebelTable::route('/{record}/edit'), ]; diff --git a/app/Filament/Fodig/Resources/AnonymousUploadResource.php b/app/Filament/Fodig/Resources/AnonymousUploadResource.php index 95566b7f..e8e610ef 100644 --- a/app/Filament/Fodig/Resources/AnonymousUploadResource.php +++ b/app/Filament/Fodig/Resources/AnonymousUploadResource.php @@ -79,8 +79,12 @@ public static function form(Form $form): Form 'processing' => 'Processing', 'completed' => 'Completed', 'failed' => 'Failed', + 'cancelled' => 'Cancelled', ]) ->disabled(), + Forms\Components\Toggle::make('override_anonymization_rules') + ->label('Override anonymization rules') + ->disabled(), Forms\Components\Textarea::make('status_detail') ->label('Status Detail') ->disabled() @@ -173,12 +177,13 @@ public static function table(Table $table): Table }), TextColumn::make('status') ->badge() - ->formatStateUsing(fn(string $state): string => Str::title($state)) - ->color(fn(string $state): string => match ($state) { + ->formatStateUsing(fn(string $state, AnonymousUpload $record): string => $state === 'failed' && ($record->run_phase ?? null) === 'cancelled' ? 'Cancelled' : Str::title($state)) + ->color(fn(string $state, AnonymousUpload $record): string => ($state === 'failed' && ($record->run_phase ?? null) === 'cancelled') ? 'gray' : match ($state) { 'completed' => 'success', 'processing' => 'info', 'failed' => 'danger', 'queued' => 'warning', + 'cancelled' => 'gray', default => 'gray', }), TextColumn::make('progress_percent') @@ -227,6 +232,7 @@ public static function table(Table $table): Table 'processing' => 'Processing', 'completed' => 'Completed', 'failed' => 'Failed', + 'cancelled' => 'Cancelled', ]), Tables\Filters\SelectFilter::make('import_type') ->options([ @@ -235,6 +241,20 @@ public static function table(Table $table): Table ]), ]) ->actions([ + Tables\Actions\Action::make('cancel_import') + ->label('Cancel') + ->icon('heroicon-o-stop') + ->color('danger') + ->requiresConfirmation() + ->visible(fn(AnonymousUpload $record): bool => in_array($record->status, ['queued', 'processing'], true)) + ->action(function (AnonymousUpload $record): void { + $record->update([ + 'status' => 'failed', + 'status_detail' => 'Cancellation requested by user', + 'run_phase' => 'cancelled', + 'progress_updated_at' => now(), + ]); + }), Tables\Actions\Action::make('resume_import') ->label('Resume') ->icon('heroicon-o-play') @@ -312,12 +332,13 @@ public static function infolist(Infolist $infolist): Infolist }), TextEntry::make('status') ->badge() - ->formatStateUsing(fn(string $state): string => Str::title($state)) - ->color(fn(string $state): string => match ($state) { + ->formatStateUsing(fn(string $state, AnonymousUpload $record): string => $state === 'failed' && ($record->run_phase ?? null) === 'cancelled' ? 'Cancelled' : Str::title($state)) + ->color(fn(string $state, AnonymousUpload $record): string => ($state === 'failed' && ($record->run_phase ?? null) === 'cancelled') ? 'gray' : match ($state) { 'completed' => 'success', 'processing' => 'info', 'failed' => 'danger', 'queued' => 'warning', + 'cancelled' => 'gray', default => 'gray', }), TextEntry::make('create_change_tickets') @@ -325,6 +346,11 @@ public static function infolist(Infolist $infolist): Infolist ->badge() ->formatStateUsing(fn($state): string => ($state === false) ? 'No' : 'Yes') ->color(fn($state): string => ($state === false) ? 'gray' : 'success'), + TextEntry::make('override_anonymization_rules') + ->label('Override Anonymization Rules') + ->badge() + ->formatStateUsing(fn($state): string => ($state === true) ? 'Yes' : 'No') + ->color(fn($state): string => ($state === true) ? 'warning' : 'gray'), TextEntry::make('status_detail') ->label('Status Detail') ->columnSpanFull(), diff --git a/app/Filament/Fodig/Resources/AnonymousUploadResource/Pages/ImportSiebelMetadata.php b/app/Filament/Fodig/Resources/AnonymousUploadResource/Pages/ImportSiebelMetadata.php index 1a6ace39..477cd759 100644 --- a/app/Filament/Fodig/Resources/AnonymousUploadResource/Pages/ImportSiebelMetadata.php +++ b/app/Filament/Fodig/Resources/AnonymousUploadResource/Pages/ImportSiebelMetadata.php @@ -17,11 +17,14 @@ use Filament\Resources\Pages\Page; use Illuminate\Http\UploadedFile; use Illuminate\Support\Facades\DB; +use Illuminate\Support\Facades\Log; +use Illuminate\Support\Facades\Schema; use Illuminate\Support\Facades\Storage; use Illuminate\Support\Js; use Illuminate\Support\Str; use App\Constants\Fodig\Anonymizer\SiebelColumns; use App\Constants\Fodig\Anonymizer\SiebelMetadata; +use App\Http\Middleware\CheckRole; use Livewire\Features\SupportFileUploads\TemporaryUploadedFile; use RuntimeException; use Symfony\Component\HttpFoundation\StreamedResponse; @@ -82,53 +85,23 @@ protected function getHeaderActions(): array ->inline(false), Toggle::make('create_change_tickets') ->label('Create change tickets after import') - ->helperText('When enabled, Klamm will create change tickets based on catalog differences detected by this upload.') + ->helperText('When enabled, Klamm will create change tickets based on catalog differences detected by this upload. Validation warning tickets are always created when row-level CSV issues are found.') ->default(true), + Toggle::make('override_anonymization_rules') + ->label('Override anonymization rules from CSV') + ->helperText('Admin only. When enabled, blank ANON_RULE / ANON_NOTE values clear existing anonymization required/method mappings for matched columns.') + ->default(false) + ->visible(fn(): bool => CheckRole::hasRole(request(), 'admin')), ]), - Wizard\Step::make('Partial Scope') - ->disabled(fn(Get $get) => ($get('import_type') ?? 'partial') === 'full') - ->columns(2) - ->schema([ - Radio::make('partial_scope') - ->label('Apply updates to') - ->options([ - 'database' => 'Database', - 'schema' => 'Schema', - 'table' => 'Table', - ]) - ->default('schema') - ->inline(false), - Radio::make('scope_select_mode') - ->label('Scope selection') - ->options([ - 'select' => 'Select existing', - 'manual' => 'Enter manually', - ]) - ->default('select') - ->inline(false), - \Filament\Forms\Components\Select::make('scope_existing') - ->label('Existing name') - ->options(function (Get $get) { - $scope = $get('partial_scope') ?? 'schema'; - return $this->getExistingScopeOptions($scope); - }) - ->visible(fn(Get $get) => ($get('scope_select_mode') ?? 'select') === 'select') - ->searchable() - ->preload(), - \Filament\Forms\Components\TextInput::make('scope_manual') - ->label('Manual name') - ->visible(fn(Get $get) => ($get('scope_select_mode') ?? 'select') === 'manual') - ->maxLength(255), - \Filament\Forms\Components\Toggle::make('is_siebel_columns_format') - ->label('CSV uses Siebel "Parent Table/Name" column format') - ->helperText('Enable if your CSV looks like the Siebel Column export (all columns optional).') - ->default(false), - ]), - Wizard\Step::make('Upload CSV') + Wizard\Step::make('Upload File') ->schema([ FileUpload::make('csv_file') - ->label('Siebel Metadata CSV') - ->acceptedFileTypes(['text/csv', 'text/plain', 'application/csv']) + ->label('Siebel Metadata File') + ->acceptedFileTypes([ + 'text/csv', + 'text/plain', + 'application/csv', + ]) ->maxSize(500 * 1024) ->storeFiles(false) ->required() @@ -214,6 +187,7 @@ public function refreshUploads(): void 'id' => $upload->id, 'original_name' => $upload->original_name ?: $upload->file_name, 'status' => $upload->status, + 'run_phase' => $upload->run_phase, 'status_detail' => $upload->status_detail, 'inserted' => $upload->inserted ?? 0, 'updated' => $upload->updated ?? 0, @@ -240,13 +214,21 @@ public function refreshUploads(): void $status = $upload['status']; $previousStatus = $this->notifiedStatuses[$id] ?? null; - if (in_array($status, ['completed', 'failed'], true) && $previousStatus !== $status) { + $isCancelled = $status === 'cancelled' || ($status === 'failed' && ($upload['run_phase'] ?? null) === 'cancelled'); + + if (in_array($status, ['completed', 'failed', 'cancelled'], true) && $previousStatus !== $status) { $notification = Notification::make() - ->title($status === 'completed' ? 'Import Completed' : 'Import Failed') + ->title($isCancelled ? 'Import Cancelled' : match ($status) { + 'completed' => 'Import Completed', + 'failed' => 'Import Failed', + default => 'Import Update', + }) ->body($this->buildCompletionMessage($upload)); if ($status === 'completed') { $notification->success(); + } elseif ($isCancelled) { + $notification->warning(); } else { $notification->danger(); } @@ -258,6 +240,44 @@ public function refreshUploads(): void } } + public function cancelUpload(int $uploadId): void + { + $upload = AnonymousUpload::query()->find($uploadId); + + if (! $upload) { + Notification::make() + ->danger() + ->title('Upload Not Found') + ->body('Could not find the selected upload.') + ->send(); + return; + } + + if (! in_array($upload->status, ['queued', 'processing'], true)) { + Notification::make() + ->warning() + ->title('Cannot Cancel Upload') + ->body('Only queued or processing uploads can be cancelled.') + ->send(); + return; + } + + $upload->update([ + 'status' => 'failed', + 'status_detail' => 'Cancellation requested by user', + 'run_phase' => 'cancelled', + 'progress_updated_at' => now(), + ]); + + $this->refreshUploads(); + + Notification::make() + ->success() + ->title('Cancellation Requested') + ->body('The upload will stop shortly.') + ->send(); + } + // Validate, store, and queue a background job to import the CSV. // If the CSV uses an alternate Siebel-column format, transform into expected CSV before storing. private function queueImport(array $data): void @@ -266,11 +286,10 @@ private function queueImport(array $data): void $file = $this->resolveUploadedFile($data['csv_file'] ?? null); $importType = $data['import_type'] ?? 'partial'; $createChangeTickets = (bool) ($data['create_change_tickets'] ?? true); - $isSiebelColumns = (bool) ($data['is_siebel_columns_format'] ?? false); - $scopeType = $data['partial_scope'] ?? null; - $scopeName = ($data['scope_select_mode'] ?? 'select') === 'select' - ? ($data['scope_existing'] ?? null) - : ($data['scope_manual'] ?? null); + $overrideAnonymizationRules = (bool) ($data['override_anonymization_rules'] ?? false); + $isSiebelColumns = false; + $scopeType = null; + $scopeName = null; $disk = config('filesystems.default', 'local'); $directory = SiebelMetadata::IMPORT_DIRECTORY; @@ -281,21 +300,17 @@ private function queueImport(array $data): void $header = $this->tryReadHeader($file); $looksSiebelColumns = $header !== null && $this->isSiebelColumnsHeader($this->normalizeHeader($header)); if ($isSiebelColumns || $looksSiebelColumns) { - $transformScopeType = null; - $transformScopeName = null; - if ($importType === 'partial') { - if (! $scopeName || ! in_array($scopeType, ['schema', 'database', 'table'], true)) { - throw new RuntimeException('For Siebel-column CSVs, select a scope (Database/Schema/Table) and provide a name.'); - } - $transformScopeType = $scopeType; - $transformScopeName = $scopeName; - } - - $csvTransformed = $this->transformSiebelColumnsCsv($file, $transformScopeType, $transformScopeName); + $csvTransformed = $this->transformSiebelColumnsCsv($file, null, null); $storedPath = $directory . '/' . $filename; - Storage::disk($disk)->put($storedPath, $csvTransformed); + $stored = Storage::disk($disk)->put($storedPath, $csvTransformed); + if ($stored === false) { + throw new RuntimeException('Unable to store transformed import file.'); + } } else { $storedPath = $file->storeAs($directory, $filename, $disk); + if (! is_string($storedPath) || $storedPath === '') { + throw new RuntimeException('Unable to store uploaded import file.'); + } } if (method_exists($file, 'delete')) { @@ -309,7 +324,7 @@ private function queueImport(array $data): void $fileSize = null; } - $upload = AnonymousUpload::create([ + $uploadAttributes = [ 'file_disk' => $disk, 'file_name' => $filename, 'path' => $storedPath, @@ -330,7 +345,18 @@ private function queueImport(array $data): void 'processed_rows' => 0, 'progress_updated_at' => now(), 'error' => null, - ]); + ]; + + if (Schema::hasColumn('anonymization_uploads', 'override_anonymization_rules')) { + $uploadAttributes['override_anonymization_rules'] = $overrideAnonymizationRules; + } else { + Log::warning('Missing anonymization_uploads.override_anonymization_rules column; continuing upload without override flag.', [ + 'original_name' => $file->getClientOriginalName(), + 'path' => $storedPath, + ]); + } + + $upload = AnonymousUpload::create($uploadAttributes); SyncAnonymousSiebelColumnsJob::dispatch($upload->id); @@ -339,9 +365,11 @@ private function queueImport(array $data): void Notification::make() ->success() ->title('Import Queued') - ->body('The CSV has been queued for processing. Use refresh to monitor progress.') + ->body('The file has been queued for processing. Use refresh to monitor progress.') ->send(); } catch (Throwable $exception) { + report($exception); + Notification::make() ->danger() ->title('Import Failed') @@ -553,11 +581,31 @@ private function resolveUploadedFile(mixed $state): UploadedFile return $state; } + if ($state instanceof UploadedFile) { + return $state; + } + if (is_string($state) && Str::isJson($state)) { $state = json_decode($state, true); } if (is_array($state)) { + if (isset($state[0]) && $state[0] instanceof TemporaryUploadedFile) { + return $state[0]; + } + + if (isset($state[0]) && $state[0] instanceof UploadedFile) { + return $state[0]; + } + + if (isset($state[0]) && is_string($state[0]) && $state[0] !== '') { + try { + return TemporaryUploadedFile::createFromLivewire($state[0]); + } catch (Throwable $exception) { + throw new RuntimeException('Unable to hydrate uploaded file from Livewire array payload.', 0, $exception); + } + } + if (isset($state[0]) && is_array($state[0])) { $state = $state[0]; } @@ -596,7 +644,7 @@ private function resolveUploadedFile(mixed $state): UploadedFile } } - throw new RuntimeException('No CSV file was provided.'); + throw new RuntimeException('No import file was provided.'); } // Destructive. Intended for local/dev use only. Deletes all anonymized Siebel metadata, plus any stored upload files. diff --git a/app/Filament/Fodig/Resources/AnonymousUploadResource/Pages/ViewAnonymousUpload.php b/app/Filament/Fodig/Resources/AnonymousUploadResource/Pages/ViewAnonymousUpload.php index 401fb962..77985181 100644 --- a/app/Filament/Fodig/Resources/AnonymousUploadResource/Pages/ViewAnonymousUpload.php +++ b/app/Filament/Fodig/Resources/AnonymousUploadResource/Pages/ViewAnonymousUpload.php @@ -4,6 +4,7 @@ use App\Filament\Fodig\Resources\AnonymousUploadResource; use Filament\Actions; +use Filament\Notifications\Notification; use Filament\Resources\Pages\ViewRecord; use Illuminate\Support\Facades\Storage; use Symfony\Component\HttpFoundation\StreamedResponse; @@ -15,6 +16,28 @@ class ViewAnonymousUpload extends ViewRecord protected function getHeaderActions(): array { return [ + Actions\Action::make('cancel_import') + ->label('Cancel Upload') + ->icon('heroicon-o-stop') + ->color('danger') + ->requiresConfirmation() + ->visible(fn() => in_array($this->record->status, ['queued', 'processing'], true)) + ->action(function (): void { + $this->record->update([ + 'status' => 'failed', + 'status_detail' => 'Cancellation requested by user', + 'run_phase' => 'cancelled', + 'progress_updated_at' => now(), + ]); + + $this->record->refresh(); + + Notification::make() + ->success() + ->title('Cancellation Requested') + ->body('The upload will stop shortly.') + ->send(); + }), Actions\Action::make('download') ->label('Download CSV') ->icon('heroicon-o-arrow-down-tray') diff --git a/app/Jobs/Concerns/InteractsWithAnonymousSiebelSync.php b/app/Jobs/Concerns/InteractsWithAnonymousSiebelSync.php index 7a43055c..f56df63a 100644 --- a/app/Jobs/Concerns/InteractsWithAnonymousSiebelSync.php +++ b/app/Jobs/Concerns/InteractsWithAnonymousSiebelSync.php @@ -3,6 +3,9 @@ namespace App\Jobs\Concerns; use App\Models\Anonymizer\AnonymousUpload; +use App\Models\Anonymizer\ChangeTicket; +use App\Models\Anonymizer\AnonymizationMethods; +use App\Models\Anonymizer\AnonymizationRule; use App\Jobs\Exceptions\AnonymousSiebelCsvValidationException; use App\Services\Anonymizer\AnonymizerActivityLogger; use Carbon\CarbonImmutable; @@ -11,6 +14,7 @@ use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Validator; +use Illuminate\Database\QueryException; use RuntimeException; use App\Constants\Fodig\Anonymizer\SiebelMetadata; @@ -32,6 +36,16 @@ trait InteractsWithAnonymousSiebelSync protected const CANONICAL_OPTIONAL_HEADER_COLUMNS = SiebelMetadata::OPTIONAL_HEADER_COLUMNS; + protected const TEMP_HEADER_COLUMNS = SiebelMetadata::TEMP_HEADER_COLUMNS; + + protected const TEMP_REQUIRED_HEADER_COLUMNS = [ + 'DB_INSTANCE', + 'OWNER', + 'TABLE_NAME', + 'COLUMN_NAME', + 'DATA_TYPE', + ]; + // Clears previous staging records and streams CSV rows into staging storage. protected function ingestToStaging(AnonymousUpload $upload, ?callable $progressReporter = null): int @@ -64,6 +78,10 @@ protected function ingestToStaging(AnonymousUpload $upload, ?callable $progressR && in_array('SCHEMA_NAME', $header, true) && in_array('TABLE_NAME', $header, true) && in_array('COLUMN_NAME', $header, true); + $isTempHeader = in_array('DB_INSTANCE', $header, true) + && in_array('OWNER', $header, true) + && in_array('TABLE_NAME', $header, true) + && in_array('COLUMN_NAME', $header, true); $isSiebelColumnsHeader = in_array('NAME', $header, true) && in_array('PARENT TABLE', $header, true); @@ -71,13 +89,21 @@ protected function ingestToStaging(AnonymousUpload $upload, ?callable $progressR self::CANONICAL_REQUIRED_HEADER_COLUMNS, self::CANONICAL_OPTIONAL_HEADER_COLUMNS, ))); + $allowedTempHeaders = array_values(array_unique(self::TEMP_HEADER_COLUMNS)); $missingHeaderColumns = []; $unknownHeaderColumns = []; + $detectedFormat = 'unknown'; if ($isCanonicalHeader) { + $detectedFormat = 'canonical'; $missingHeaderColumns = array_values(array_diff(self::CANONICAL_REQUIRED_HEADER_COLUMNS, $header)); $unknownHeaderColumns = array_values(array_diff($header, $allowedCanonicalHeaders)); + } elseif ($isTempHeader) { + $detectedFormat = 'temp'; + $missingHeaderColumns = array_values(array_diff(self::TEMP_REQUIRED_HEADER_COLUMNS, $header)); + $unknownHeaderColumns = array_values(array_diff($header, $allowedTempHeaders)); } elseif ($isSiebelColumnsHeader) { + $detectedFormat = 'siebel_columns'; $missingHeaderColumns = []; $unknownHeaderColumns = []; } else { @@ -94,7 +120,7 @@ protected function ingestToStaging(AnonymousUpload $upload, ?callable $progressR [ 'row' => 1, 'field' => 'HEADER', - 'message' => 'Unrecognized CSV header. Expected canonical Siebel metadata headers (e.g. DATABASE_NAME, SCHEMA_NAME, TABLE_NAME, COLUMN_NAME) or Siebel column export headers (e.g. NAME, PARENT TABLE).', + 'message' => 'Unrecognized CSV header. Expected canonical Siebel metadata headers (e.g. DATABASE_NAME, SCHEMA_NAME, TABLE_NAME, COLUMN_NAME), temp metadata headers (e.g. DB_INSTANCE, OWNER, TABLE_NAME, COLUMN_NAME), or Siebel column export headers (e.g. NAME, PARENT TABLE).', 'value' => null, ], ], @@ -118,7 +144,7 @@ protected function ingestToStaging(AnonymousUpload $upload, ?callable $progressR $report = [ 'upload_id' => $upload->id, - 'format' => $isCanonicalHeader ? 'canonical' : 'siebel_columns', + 'format' => $detectedFormat, 'header' => $header, 'missing_header_columns' => $missingHeaderColumns, 'unknown_header_columns' => $unknownHeaderColumns, @@ -144,6 +170,13 @@ protected function ingestToStaging(AnonymousUpload $upload, ?callable $progressR } } + $tempIndexMap = []; + if ($isTempHeader) { + foreach ($header as $i => $h) { + $tempIndexMap[$h] = $i; + } + } + // Pre-resolve scope context from existing catalog when possible so staging rows have both schema and database. $scopeType = $upload->scope_type ?? null; $scopeName = $upload->scope_name ?? null; @@ -205,9 +238,11 @@ protected function ingestToStaging(AnonymousUpload $upload, ?callable $progressR $dataStart = null; } $validationErrors = []; + $skippedRowsByNumber = []; $validationErrorCount = 0; $hasValidationErrors = false; - $format = $isCanonicalHeader ? 'canonical' : 'siebel_columns'; + $hasValidRows = false; + $format = $detectedFormat; $rules = [ 'DATABASE_NAME' => ['required', 'string', 'max:255'], @@ -215,15 +250,26 @@ protected function ingestToStaging(AnonymousUpload $upload, ?callable $progressR 'OBJECT_TYPE' => ['required', 'string', 'max:50'], 'TABLE_NAME' => ['required', 'string', 'max:255'], 'COLUMN_NAME' => ['required', 'string', 'max:255'], + 'QUALFIELD' => ['nullable', 'string', 'max:512'], 'COLUMN_ID' => ['nullable', 'integer', 'min:0'], + 'PR_KEY' => ['nullable', 'string', 'max:32'], + 'REF_TAB_NAME' => ['nullable', 'string', 'max:255'], + 'NUM_DISTINCT' => ['nullable', 'integer', 'min:0'], + 'NUM_NOT_NULL' => ['nullable', 'integer', 'min:0'], + 'NUM_NULLS' => ['nullable', 'integer', 'min:0'], + 'NUM_ROWS' => ['nullable', 'integer', 'min:0'], 'DATA_TYPE' => ['required', 'string', 'max:255'], 'DATA_LENGTH' => ['nullable', 'integer', 'min:0'], 'DATA_PRECISION' => ['nullable', 'integer', 'min:0'], 'DATA_SCALE' => ['nullable', 'integer', 'min:0'], 'CHAR_LENGTH' => ['nullable', 'integer', 'min:0'], 'NULLABLE' => ['nullable', 'string', 'in:Y,N,YES,NO,true,false,TRUE,FALSE,0,1'], + 'ANON_RULE' => ['nullable', 'string', 'max:255'], + 'ANON_NOTE' => ['nullable', 'string'], 'TABLE_COMMENT' => ['nullable', 'string'], 'COLUMN_COMMENT' => ['nullable', 'string'], + 'SBL_USER_NAME' => ['nullable', 'string', 'max:255'], + 'SBL_DESC_TEXT' => ['nullable', 'string'], 'RELATED_COLUMNS' => ['nullable', 'string'], ]; @@ -233,15 +279,26 @@ protected function ingestToStaging(AnonymousUpload $upload, ?callable $progressR 'OBJECT_TYPE' => 'OBJECT_TYPE', 'TABLE_NAME' => 'TABLE_NAME', 'COLUMN_NAME' => 'COLUMN_NAME', + 'QUALFIELD' => 'QUALFIELD', 'COLUMN_ID' => 'COLUMN_ID', + 'PR_KEY' => 'PR_KEY', + 'REF_TAB_NAME' => 'REF_TAB_NAME', + 'NUM_DISTINCT' => 'NUM_DISTINCT', + 'NUM_NOT_NULL' => 'NUM_NOT_NULL', + 'NUM_NULLS' => 'NUM_NULLS', + 'NUM_ROWS' => 'NUM_ROWS', 'DATA_TYPE' => 'DATA_TYPE', 'DATA_LENGTH' => 'DATA_LENGTH', 'DATA_PRECISION' => 'DATA_PRECISION', 'DATA_SCALE' => 'DATA_SCALE', 'CHAR_LENGTH' => 'CHAR_LENGTH', 'NULLABLE' => 'NULLABLE', + 'ANON_RULE' => 'ANON_RULE', + 'ANON_NOTE' => 'ANON_NOTE', 'TABLE_COMMENT' => 'TABLE_COMMENT', 'COLUMN_COMMENT' => 'COLUMN_COMMENT', + 'SBL_USER_NAME' => 'SBL_USER_NAME', + 'SBL_DESC_TEXT' => 'SBL_DESC_TEXT', 'RELATED_COLUMNS' => 'RELATED_COLUMNS', ]; @@ -251,11 +308,29 @@ protected function ingestToStaging(AnonymousUpload $upload, ?callable $progressR continue; } + $row = array_map(function ($value) { + return is_string($value) ? $this->normalizeUtf8String($value, false) : $value; + }, $row); + $assoc = []; if ($isCanonicalHeader) { foreach ($header as $i => $key) { $assoc[$key] = $row[$i] ?? null; } + } elseif ($isTempHeader) { + $assoc = $this->mapTempRowToCanonicalAssoc($row, $tempIndexMap); + if (($assoc['TABLE_NAME'] ?? '') === '' || ($assoc['COLUMN_NAME'] ?? '') === '') { + continue; + } + + // Apply upload-provided scope (database/schema/table) with resolved context to ensure catalog matches. + $assoc['DATABASE_NAME'] = $resolvedScope['database_name'] ?: ($assoc['DATABASE_NAME'] ?: SiebelMetadata::DEFAULT_DATABASE); + $assoc['SCHEMA_NAME'] = $resolvedScope['schema_name'] ?: ($assoc['SCHEMA_NAME'] ?: SiebelMetadata::DEFAULT_SCHEMA); + if ($resolvedScope['table_name']) { + if ($this->norm((string) $assoc['TABLE_NAME']) !== $this->norm($resolvedScope['table_name'])) { + continue; + } + } } elseif ($isSiebelColumnsHeader) { $assoc = $this->mapSiebelColumnsRowToCanonicalAssoc($row, $siebelIndexMap); if (($assoc['TABLE_NAME'] ?? '') === '' || ($assoc['COLUMN_NAME'] ?? '') === '') { @@ -281,9 +356,11 @@ protected function ingestToStaging(AnonymousUpload $upload, ?callable $progressR $normalized[$k] = null; continue; } - $val = is_string($v) ? trim($v) : $v; + $val = is_string($v) + ? trim($this->normalizeUtf8String($v, false)) + : $v; - if (is_string($val) && in_array($k, ['COLUMN_ID', 'DATA_LENGTH', 'DATA_PRECISION', 'DATA_SCALE', 'CHAR_LENGTH'], true)) { + if (is_string($val) && in_array($k, ['COLUMN_ID', 'NUM_DISTINCT', 'NUM_NOT_NULL', 'NUM_NULLS', 'NUM_ROWS', 'DATA_LENGTH', 'DATA_PRECISION', 'DATA_SCALE', 'CHAR_LENGTH'], true)) { // Accept common thousands separators from exports (e.g. "2,000"). $candidate = str_replace([',', ' '], '', $val); if ($candidate !== '' && preg_match('/^\d+$/', $candidate)) { @@ -299,6 +376,33 @@ protected function ingestToStaging(AnonymousUpload $upload, ?callable $progressR $hasValidationErrors = true; $errorArrays = $validator->errors()->toArray(); + if (! isset($skippedRowsByNumber[$rowNumber])) { + $databaseName = (string) ($normalized['DATABASE_NAME'] ?? ''); + $schemaName = (string) ($normalized['SCHEMA_NAME'] ?? ''); + $tableName = (string) ($normalized['TABLE_NAME'] ?? ''); + $columnName = (string) ($normalized['COLUMN_NAME'] ?? ''); + + $entry = trim(implode('.', array_filter([ + $databaseName, + $schemaName, + $tableName, + ], static fn($part) => is_string($part) && trim($part) !== ''))); + + if ($columnName !== '') { + $entry = $entry !== '' ? ($entry . '.' . $columnName) : $columnName; + } + + $skippedRowsByNumber[$rowNumber] = [ + 'row' => $rowNumber, + 'entry' => $entry !== '' ? $entry : null, + 'database_name' => $databaseName !== '' ? $databaseName : null, + 'schema_name' => $schemaName !== '' ? $schemaName : null, + 'table_name' => $tableName !== '' ? $tableName : null, + 'column_name' => $columnName !== '' ? $columnName : null, + 'errors' => [], + ]; + } + foreach ($errorArrays as $field => $messages) { foreach ($messages as $message) { if ($validationErrorCount >= self::CSV_VALIDATION_ERROR_CAP) { @@ -316,6 +420,13 @@ protected function ingestToStaging(AnonymousUpload $upload, ?callable $progressR 'message' => $message, 'value' => $value, ]; + + $skippedRowsByNumber[$rowNumber]['errors'][] = [ + 'field' => $field, + 'message' => $message, + 'value' => $value, + ]; + $validationErrorCount++; } } @@ -323,10 +434,6 @@ protected function ingestToStaging(AnonymousUpload $upload, ?callable $progressR continue; } - if ($hasValidationErrors) { - continue; - } - // Build core payload for hash calculation (excludes relationship fields) $payload = [ 'database_name' => trim((string) ($normalized['DATABASE_NAME'] ?? '')), @@ -334,7 +441,16 @@ protected function ingestToStaging(AnonymousUpload $upload, ?callable $progressR 'object_type' => strtolower(trim((string) ($normalized['OBJECT_TYPE'] ?? 'table'))), 'table_name' => trim((string) ($normalized['TABLE_NAME'] ?? '')), 'column_name' => trim((string) ($normalized['COLUMN_NAME'] ?? '')), + 'qualfield' => $this->toNullOrString($normalized['QUALFIELD'] ?? null), + 'anon_rule' => $this->toNullOrString($normalized['ANON_RULE'] ?? null), + 'anon_note' => $this->toNullOrString($normalized['ANON_NOTE'] ?? null), 'column_id' => $this->toInt($normalized['COLUMN_ID'] ?? null), + 'pr_key' => $this->toNullOrString($normalized['PR_KEY'] ?? null), + 'ref_tab_name' => $this->toNullOrString($normalized['REF_TAB_NAME'] ?? null), + 'num_distinct' => $this->toInt($normalized['NUM_DISTINCT'] ?? null), + 'num_not_null' => $this->toInt($normalized['NUM_NOT_NULL'] ?? null), + 'num_nulls' => $this->toInt($normalized['NUM_NULLS'] ?? null), + 'num_rows' => $this->toInt($normalized['NUM_ROWS'] ?? null), 'data_type' => $this->toNullOrString($normalized['DATA_TYPE'] ?? null), 'data_length' => $this->toInt($normalized['DATA_LENGTH'] ?? null), 'data_precision' => $this->toInt($normalized['DATA_PRECISION'] ?? null), @@ -342,6 +458,8 @@ protected function ingestToStaging(AnonymousUpload $upload, ?callable $progressR 'nullable' => $this->toNullOrString($normalized['NULLABLE'] ?? null), 'char_length' => $this->toInt($normalized['CHAR_LENGTH'] ?? null), 'column_comment' => $this->toNullOrString($normalized['COLUMN_COMMENT'] ?? null), + 'sbl_user_name' => $this->toNullOrString($normalized['SBL_USER_NAME'] ?? null), + 'sbl_desc_text' => $this->toNullOrString($normalized['SBL_DESC_TEXT'] ?? null), 'table_comment' => $this->toNullOrString($normalized['TABLE_COMMENT'] ?? null), ]; @@ -349,9 +467,14 @@ protected function ingestToStaging(AnonymousUpload $upload, ?callable $progressR $payload['content_hash'] = hash('sha256', json_encode($payload, JSON_UNESCAPED_UNICODE)); // Add relationship fields after hash calculation - $rawRelationships = $normalized['RELATED_COLUMNS'] ?? null; + $rawRelationships = $normalized['RELATED_COLUMNS'] ?? ($normalized['REF_TAB_NAME'] ?? null); if ($rawRelationships !== null && $rawRelationships !== '') { - $rawRelationships = html_entity_decode((string) $rawRelationships); + $rawRelationships = html_entity_decode( + (string) $rawRelationships, + ENT_QUOTES | ENT_HTML5, + 'UTF-8' + ); + $rawRelationships = $this->normalizeUtf8String($rawRelationships); $parsedRelationships = $this->parseRelated($rawRelationships); $payload['related_columns'] = $parsedRelationships ? json_encode($parsedRelationships, JSON_UNESCAPED_UNICODE) : null; } else { @@ -375,6 +498,7 @@ protected function ingestToStaging(AnonymousUpload $upload, ?callable $progressR ]); $batch[$uniqueKey] = $payload; + $hasValidRows = true; if (count($batch) >= 1000) { $count += $this->upsertStagingBatch(array_values($batch)); @@ -419,6 +543,7 @@ protected function ingestToStaging(AnonymousUpload $upload, ?callable $progressR fclose($stream); if ($hasValidationErrors) { + $errorReportPath = $this->csvErrorReportPath($upload); $report = [ 'upload_id' => $upload->id, 'format' => $format, @@ -433,10 +558,52 @@ protected function ingestToStaging(AnonymousUpload $upload, ?callable $progressR ]; $this->writeCsvErrorReport($upload, $report); - throw new AnonymousSiebelCsvValidationException( - 'CSV validation failed: ' . $validationErrorCount . ' row error(s). Download the error report for details.', - $report - ); + $warnings = array_values(array_filter((array) ($upload->warnings ?? []), static fn($warning) => is_array($warning))); + $warnings[] = [ + 'phase' => 'staging', + 'message' => 'CSV row validation reported ' . $validationErrorCount . ' error(s). Invalid rows were skipped.', + 'error_count' => $validationErrorCount, + 'error_report_path' => $errorReportPath, + 'at' => CarbonImmutable::now()->toIso8601String(), + ]; + + $upload->forceFill([ + 'warnings_count' => count($warnings), + 'warnings' => $warnings, + 'status_detail' => 'CSV contained validation errors; invalid rows skipped', + ])->save(); + + $ticketTitle = 'Upload validation warnings: ' . ($upload->original_name ?: ('Upload #' . $upload->id)); + $existingTicket = ChangeTicket::query() + ->where('upload_id', $upload->id) + ->where('scope_type', 'upload') + ->where('title', $ticketTitle) + ->whereIn('status', ['open', 'in_progress']) + ->exists(); + + if (! $existingTicket) { + $skippedRows = array_values($skippedRowsByNumber); + usort($skippedRows, static fn(array $a, array $b): int => (int) ($a['row'] ?? 0) <=> (int) ($b['row'] ?? 0)); + + ChangeTicket::create([ + 'title' => $ticketTitle, + 'status' => 'open', + 'priority' => 'high', + 'severity' => 'high', + 'scope_type' => 'upload', + 'scope_name' => (string) ($upload->original_name ?: $upload->id), + 'impact_summary' => 'CSV validation detected ' . $validationErrorCount . ' issue(s) across ' . count($skippedRows) . ' skipped row(s). Import continued and invalid rows were skipped.', + 'diff_payload' => json_encode([ + 'error_count' => $validationErrorCount, + 'error_report_path' => $errorReportPath, + 'format' => $format, + 'capped' => $validationErrorCount >= self::CSV_VALIDATION_ERROR_CAP, + 'skipped_row_count' => count($skippedRows), + 'skipped_rows' => $skippedRows, + ]), + 'upload_id' => $upload->id, + ]); + } } if ($batch !== []) { @@ -485,7 +652,12 @@ protected function mapSiebelColumnsRowToCanonicalAssoc(array $row, array $idx): return null; } $val = $row[$idx[$key]] ?? null; - return $val === null ? null : trim((string) $val); + + if ($val === null) { + return null; + } + + return trim($this->normalizeUtf8String((string) $val, false)); }; $parentTable = $get('PARENT TABLE') ?? ''; @@ -517,6 +689,59 @@ protected function mapSiebelColumnsRowToCanonicalAssoc(array $row, array $idx): ]; } + protected function mapTempRowToCanonicalAssoc(array $row, array $idx): array + { + $get = function (string $key) use ($row, $idx) { + if (! isset($idx[$key])) { + return null; + } + + $val = $row[$idx[$key]] ?? null; + + if ($val === null) { + return null; + } + + return trim($this->normalizeUtf8String((string) $val, false)); + }; + + $databaseName = $get('DB_INSTANCE'); + $schemaName = $get('OWNER'); + $tableName = $get('TABLE_NAME'); + $columnName = $get('COLUMN_NAME'); + $nullable = strtoupper((string) ($get('NULLABLE') ?? '')); + $related = $get('REF_TAB_NAME'); + + return [ + 'DATABASE_NAME' => $databaseName, + 'SCHEMA_NAME' => $schemaName, + 'OBJECT_TYPE' => 'TABLE', + 'TABLE_NAME' => $tableName, + 'COLUMN_NAME' => $columnName, + 'QUALFIELD' => $get('QUALFIELD'), + 'COLUMN_ID' => $get('COLUMN_ID'), + 'ANON_RULE' => $get('ANON_RULE'), + 'ANON_NOTE' => $get('ANON_NOTE'), + 'PR_KEY' => $get('PR_KEY'), + 'REF_TAB_NAME' => $related, + 'NUM_DISTINCT' => $get('NUM_DISTINCT'), + 'NUM_NOT_NULL' => $get('NUM_NOT_NULL'), + 'NUM_NULLS' => $get('NUM_NULLS'), + 'NUM_ROWS' => $get('NUM_ROWS'), + 'DATA_TYPE' => $get('DATA_TYPE'), + 'DATA_LENGTH' => $get('DATA_LENGTH'), + 'DATA_PRECISION' => $get('DATA_PRECISION'), + 'DATA_SCALE' => $get('DATA_SCALE'), + 'NULLABLE' => $nullable ?: null, + 'CHAR_LENGTH' => null, + 'TABLE_COMMENT' => null, + 'COLUMN_COMMENT' => $get('COMMENTS'), + 'SBL_USER_NAME' => $get('SBL_USER_NAME'), + 'SBL_DESC_TEXT' => $get('SBL_DESC_TEXT'), + 'RELATED_COLUMNS' => $related, + ]; + } + protected function upsertStagingBatch(array $batch): int { if ($batch === []) { @@ -526,35 +751,95 @@ protected function upsertStagingBatch(array $batch): int $now = now(); foreach ($batch as &$row) { + foreach ($row as $key => $value) { + if (is_string($value)) { + $row[$key] = $this->sanitizeUtf8ForDatabase($value); + } + } + $row['updated_at'] = $now; } unset($row); - DB::table(self::STAGING_TABLE)->upsert( - $batch, - ['upload_id', 'database_name', 'schema_name', 'table_name', 'column_name'], - [ - 'object_type', - 'column_id', - 'data_type', - 'data_length', - 'data_precision', - 'data_scale', - 'nullable', - 'char_length', - 'column_comment', - 'table_comment', - 'related_columns_raw', - 'related_columns', - 'content_hash', - 'updated_at', - ] - ); + $uniqueBy = ['upload_id', 'database_name', 'schema_name', 'table_name', 'column_name']; + $updateColumns = [ + 'object_type', + 'qualfield', + 'anon_rule', + 'anon_note', + 'column_id', + 'pr_key', + 'ref_tab_name', + 'num_distinct', + 'num_not_null', + 'num_nulls', + 'num_rows', + 'data_type', + 'data_length', + 'data_precision', + 'data_scale', + 'nullable', + 'char_length', + 'column_comment', + 'sbl_user_name', + 'sbl_desc_text', + 'table_comment', + 'related_columns_raw', + 'related_columns', + 'content_hash', + 'updated_at', + ]; + + try { + DB::table(self::STAGING_TABLE)->upsert($batch, $uniqueBy, $updateColumns); + } catch (QueryException $exception) { + if (! $this->isUtf8EncodingError($exception)) { + throw $exception; + } + + foreach ($batch as $row) { + $retryRow = $this->sanitizeStagingRowForRetry($row); + + try { + DB::table(self::STAGING_TABLE)->upsert([$retryRow], $uniqueBy, $updateColumns); + } catch (QueryException $rowException) { + if (! $this->isUtf8EncodingError($rowException)) { + throw $rowException; + } + + $label = ($retryRow['database_name'] ?? '?') + . '.' . ($retryRow['schema_name'] ?? '?') + . '.' . ($retryRow['table_name'] ?? '?') + . '.' . ($retryRow['column_name'] ?? '?'); + + throw new RuntimeException('UTF-8 sanitization failed for staging row: ' . $label, 0, $rowException); + } + } + } return count($batch); } + protected function sanitizeStagingRowForRetry(array $row): array + { + foreach ($row as $key => $value) { + if (is_string($value)) { + $row[$key] = $this->sanitizeUtf8ForDatabase($value); + } + } + + return $row; + } + + protected function isUtf8EncodingError(QueryException $exception): bool + { + $message = (string) $exception->getMessage(); + + return str_contains($message, 'SQLSTATE[22021]') + || str_contains($message, 'invalid byte sequence for encoding "UTF8"'); + } + protected function chunkedUpsert(string $table, array $rows, array $uniqueBy, array $updateColumns, int $chunkSize = self::METADATA_UPSERT_CHUNK_SIZE): void { if ($rows === []) { @@ -1090,23 +1375,25 @@ protected function loadExistingColumnsForChunk(array $tableColumns): array return []; } - $tableIds = array_keys($tableColumns); - $columnNames = []; - foreach ($tableColumns as $columns) { - foreach ($columns as $columnName) { - $columnNames[] = $columnName; - } - } - - $columnNames = array_values(array_unique($columnNames)); - - if ($columnNames === []) { - return []; - } - $records = DB::table(self::COLUMNS_TABLE) - ->whereIn('table_id', $tableIds) - ->whereIn('column_name', $columnNames) + ->where(function ($query) use ($tableColumns) { + foreach ($tableColumns as $tableId => $columns) { + $normalizedColumns = array_values(array_unique(array_filter(array_map( + fn($name) => is_string($name) ? trim($name) : null, + $columns + )))); + + if ($normalizedColumns === []) { + continue; + } + + $query->orWhere(function ($nested) use ($tableId, $normalizedColumns) { + $nested + ->where('table_id', (int) $tableId) + ->whereIn('column_name', $normalizedColumns); + }); + } + }) ->get(); $map = []; @@ -1275,7 +1562,14 @@ protected function syncColumnsFromStaging( $payload = [ 'table_id' => $tableEntry['id'], 'column_name' => $columnName, + 'qualfield' => $row->qualfield, 'column_id' => $row->column_id, + 'pr_key' => $row->pr_key, + 'ref_tab_name' => $row->ref_tab_name, + 'num_distinct' => $row->num_distinct, + 'num_not_null' => $row->num_not_null, + 'num_nulls' => $row->num_nulls, + 'num_rows' => $row->num_rows, 'data_type_id' => $dataTypeId, 'data_length' => $row->data_length, 'data_precision' => $row->data_precision, @@ -1283,6 +1577,8 @@ protected function syncColumnsFromStaging( 'nullable' => $nullableFlag, 'char_length' => $row->char_length, 'column_comment' => $row->column_comment, + 'sbl_user_name' => $row->sbl_user_name, + 'sbl_desc_text' => $row->sbl_desc_text, 'table_comment' => $row->table_comment, 'related_columns_raw' => $row->related_columns_raw, 'related_columns' => $row->related_columns, @@ -1290,6 +1586,10 @@ protected function syncColumnsFromStaging( 'last_synced_at' => $runAt, ]; + if ($existing) { + $payload = $this->preserveExistingValuesForMissingImportData($existing, $payload); + } + $rowForUpsert = array_merge($payload, [ 'deleted_at' => null, 'updated_at' => $runAt, @@ -1371,39 +1671,75 @@ protected function syncColumnsFromStaging( } if ($rowsForUpsert !== []) { - DB::table(self::COLUMNS_TABLE)->upsert( - $rowsForUpsert, - ['table_id', 'column_name'], - [ - 'column_id', - 'data_type_id', - 'data_length', - 'data_precision', - 'data_scale', - 'nullable', - 'char_length', - 'column_comment', - 'table_comment', - 'related_columns_raw', - 'related_columns', - 'content_hash', - 'last_synced_at', - 'changed_at', - 'changed_fields', - 'anonymization_requirement_reviewed', - 'deleted_at', - 'updated_at', - ] - ); + // Wrap upsert + post-upsert ID retrieval in a single transaction + // to reduce per-statement fsync overhead in PostgreSQL. + DB::beginTransaction(); + try { + DB::table(self::COLUMNS_TABLE)->upsert( + $rowsForUpsert, + ['table_id', 'column_name'], + [ + 'qualfield', + 'column_id', + 'pr_key', + 'ref_tab_name', + 'num_distinct', + 'num_not_null', + 'num_nulls', + 'num_rows', + 'data_type_id', + 'data_length', + 'data_precision', + 'data_scale', + 'nullable', + 'char_length', + 'column_comment', + 'sbl_user_name', + 'sbl_desc_text', + 'table_comment', + 'related_columns_raw', + 'related_columns', + 'content_hash', + 'last_synced_at', + 'changed_at', + 'changed_fields', + 'anonymization_requirement_reviewed', + 'deleted_at', + 'updated_at', + ] + ); + + DB::commit(); + } catch (\Throwable $e) { + DB::rollBack(); + throw $e; + } } if ($logCreated !== []) { - $tableIds = array_unique(array_column($logCreated, 'table_id')); - $columnNames = array_unique(array_column($logCreated, 'column_name')); - $insertedRecords = DB::table(self::COLUMNS_TABLE) - ->whereIn('table_id', $tableIds) - ->whereIn('column_name', $columnNames) + ->where(function ($query) use ($logCreated) { + $byTable = []; + + foreach ($logCreated as $entry) { + $tableId = (int) ($entry['table_id'] ?? 0); + $columnName = isset($entry['column_name']) ? trim((string) $entry['column_name']) : ''; + + if ($tableId <= 0 || $columnName === '') { + continue; + } + + $byTable[$tableId][$columnName] = true; + } + + foreach ($byTable as $tableId => $columns) { + $query->orWhere(function ($nested) use ($tableId, $columns) { + $nested + ->where('table_id', $tableId) + ->whereIn('column_name', array_keys($columns)); + }); + } + }) ->get(); $insertedMap = []; @@ -1457,6 +1793,9 @@ protected function syncColumnsFromStaging( ); } + // Flush any buffered activity log events after each chunk + AnonymizerActivityLogger::flush(); + $processedRows += count($rows); // Proactive garbage collection every 10 chunks to prevent memory accumulation @@ -1500,6 +1839,9 @@ protected function syncColumnsFromStaging( $this->flushColumnIdentities($tempColumnIdentitiesTable, $columnIdentitiesBatch); } + // Flush any remaining buffered activity log events + AnonymizerActivityLogger::flush(); + // Return temp table names instead of loading all data into memory // The consuming methods will query these tables in chunks return [ @@ -1512,6 +1854,32 @@ protected function syncColumnsFromStaging( ]; } + protected function preserveExistingValuesForMissingImportData(object $existing, array $payload): array + { + $preservedAnyField = false; + + foreach ($payload as $field => $value) { + if ($value !== null) { + continue; + } + + if (in_array($field, ['table_id', 'column_name', 'last_synced_at'], true)) { + continue; + } + + if (property_exists($existing, $field)) { + $payload[$field] = $existing->{$field}; + $preservedAnyField = true; + } + } + + if ($preservedAnyField && property_exists($existing, 'content_hash')) { + $payload['content_hash'] = $existing->content_hash; + } + + return $payload; + } + /** * Flush a batch of touched column IDs to the temporary table. * This prevents memory exhaustion by keeping IDs in the database instead of in memory. @@ -1538,6 +1906,387 @@ protected function flushColumnIdentities(string $tempTableName, array &$batch): DB::table($tempTableName)->insertOrIgnore(array_values($batch)); } + + protected function synchronizeAnonymizationRulesFromStaging(AnonymousUpload $upload, CarbonImmutable $runAt, ?callable $progressReporter = null): array + { + if (! (bool) ($upload->override_anonymization_rules ?? false)) { + return [ + 'changed_columns' => 0, + ]; + } + + $ruleIdsByName = AnonymizationRule::query() + ->select('id', 'name') + ->get() + ->mapWithKeys(fn(AnonymizationRule $rule) => [$this->norm((string) $rule->name) => (int) $rule->id]) + ->all(); + + $baseQuery = DB::table(self::STAGING_TABLE . ' as s') + ->join(self::DATABASES_TABLE . ' as d', DB::raw('UPPER(TRIM(d.database_name))'), '=', DB::raw('UPPER(TRIM(s.database_name))')) + ->join(self::SCHEMAS_TABLE . ' as sc', function ($join) { + $join->on('sc.database_id', '=', 'd.id') + ->whereRaw('UPPER(TRIM(sc.schema_name)) = UPPER(TRIM(s.schema_name))'); + }) + ->join(self::TABLES_TABLE . ' as t', function ($join) { + $join->on('t.schema_id', '=', 'sc.id') + ->whereRaw('UPPER(TRIM(t.table_name)) = UPPER(TRIM(s.table_name))'); + }) + ->join(self::COLUMNS_TABLE . ' as c', function ($join) { + $join->on('c.table_id', '=', 't.id') + ->whereRaw('UPPER(TRIM(c.column_name)) = UPPER(TRIM(s.column_name))'); + }) + ->where('s.upload_id', $upload->id); + + $totalRuleRows = (int) (clone $baseQuery)->count(); + $processedRuleRows = 0; + $metrics = [ + 'rows_with_rule_input' => 0, + 'required_updates' => 0, + 'rule_mapping_updates' => 0, + 'rule_links_inserted' => 0, + 'rule_links_deleted' => 0, + 'unknown_rule_names' => 0, + 'rows_noop' => 0, + 'rows_invalid_column' => 0, + ]; + $changedColumns = []; + $unknownRules = []; + + if ($progressReporter) { + $initialStatus = $totalRuleRows > 0 + ? sprintf('Applying anonymization rules (0/%d)', $totalRuleRows) + : 'Applying anonymization rules (no matching rows)'; + + $progressReporter([ + 'status_detail' => $initialStatus, + 'run_phase' => 'applying_anonymization_rules', + 'processed_rows' => 0, + 'checkpoint' => [ + 'anonymization_rules_total_rows' => $totalRuleRows, + 'anonymization_rules_processed_rows' => 0, + 'anonymization_rules_changed_columns' => 0, + 'anonymization_rules_rows_with_rule_input' => 0, + 'anonymization_rules_required_updates' => 0, + 'anonymization_rules_rule_mapping_updates' => 0, + 'anonymization_rules_rule_links_inserted' => 0, + 'anonymization_rules_rule_links_deleted' => 0, + 'anonymization_rules_unknown_rule_names' => 0, + 'anonymization_rules_rows_noop' => 0, + 'anonymization_rules_rows_invalid_column' => 0, + ], + 'progress_updated_at' => CarbonImmutable::now(), + ]); + } + + $query = $baseQuery + ->select('s.id as staging_id', 'c.id as column_id', 's.database_name', 's.schema_name', 's.table_name', 's.column_name', 's.anon_rule', 's.anon_note') + ->orderBy('s.id'); + + $query->chunkById(1000, function ($rows) use ($runAt, $ruleIdsByName, &$processedRuleRows, $totalRuleRows, $progressReporter, &$metrics, &$changedColumns, &$unknownRules): void { + $effectiveRowsByColumn = []; + foreach ($rows as $row) { + $columnId = (int) $row->column_id; + if ($columnId <= 0) { + $metrics['rows_invalid_column']++; + continue; + } + + // Last row wins for duplicate staged entries of the same column within this chunk. + $effectiveRowsByColumn[$columnId] = $row; + } + + $columnIds = array_keys($effectiveRowsByColumn); + $effectiveRows = array_values($effectiveRowsByColumn); + + $processedRuleRows += $rows->count(); + + if ($progressReporter) { + $changedColumnCount = count($changedColumns); + $status = $totalRuleRows > 0 + ? sprintf( + 'Applying anonymization rules (%d/%d) · cols:%d req:%d map:%d links:+%d/-%d unknown:%d noop:%d', + min($processedRuleRows, $totalRuleRows), + $totalRuleRows, + $changedColumnCount, + $metrics['required_updates'], + $metrics['rule_mapping_updates'], + $metrics['rule_links_inserted'], + $metrics['rule_links_deleted'], + $metrics['unknown_rule_names'], + $metrics['rows_noop'] + ) + : sprintf( + 'Applying anonymization rules (%d) · cols:%d req:%d map:%d links:+%d/-%d unknown:%d noop:%d', + $processedRuleRows, + $changedColumnCount, + $metrics['required_updates'], + $metrics['rule_mapping_updates'], + $metrics['rule_links_inserted'], + $metrics['rule_links_deleted'], + $metrics['unknown_rule_names'], + $metrics['rows_noop'] + ); + + $progressReporter([ + 'status_detail' => $status, + 'run_phase' => 'applying_anonymization_rules', + 'processed_rows' => $processedRuleRows, + 'checkpoint' => [ + 'anonymization_rules_total_rows' => $totalRuleRows, + 'anonymization_rules_processed_rows' => $processedRuleRows, + 'anonymization_rules_changed_columns' => $changedColumnCount, + 'anonymization_rules_rows_with_rule_input' => $metrics['rows_with_rule_input'], + 'anonymization_rules_required_updates' => $metrics['required_updates'], + 'anonymization_rules_rule_mapping_updates' => $metrics['rule_mapping_updates'], + 'anonymization_rules_rule_links_inserted' => $metrics['rule_links_inserted'], + 'anonymization_rules_rule_links_deleted' => $metrics['rule_links_deleted'], + 'anonymization_rules_unknown_rule_names' => $metrics['unknown_rule_names'], + 'anonymization_rules_rows_noop' => $metrics['rows_noop'], + 'anonymization_rules_rows_invalid_column' => $metrics['rows_invalid_column'], + ], + 'progress_updated_at' => CarbonImmutable::now(), + ]); + } + + if ($columnIds === []) { + return; + } + + $existingColumns = DB::table(self::COLUMNS_TABLE) + ->whereIn('id', $columnIds) + ->select('id', 'anonymization_required', 'anonymization_requirement_reviewed', 'metadata_comment', 'changed_fields') + ->get(); + + $existingRequiredByColumn = []; + $existingReviewedByColumn = []; + $existingMetadataCommentByColumn = []; + $existingChangedFieldsByColumn = []; + foreach ($existingColumns as $existingColumn) { + $existingRequiredByColumn[(int) $existingColumn->id] = $existingColumn->anonymization_required; + $existingReviewedByColumn[(int) $existingColumn->id] = $existingColumn->anonymization_requirement_reviewed; + $existingMetadataCommentByColumn[(int) $existingColumn->id] = $this->toNullOrString($existingColumn->metadata_comment); + $existingChangedFieldsByColumn[(int) $existingColumn->id] = $this->normalizeChangedFieldsPayload($existingColumn->changed_fields); + } + + $existingRuleRows = DB::table('anonymization_rule_column') + ->whereIn('column_id', $columnIds) + ->select('column_id', 'rule_id') + ->get(); + + $existingRuleIdByColumn = []; + foreach ($existingRuleRows as $ruleRow) { + $existingRuleIdByColumn[(int) $ruleRow->column_id] = (int) $ruleRow->rule_id; + } + + foreach ($effectiveRows as $row) { + $columnId = (int) $row->column_id; + $rowChanged = false; + + $anonRule = $this->toNullOrString($row->anon_rule); + $anonNote = $this->toNullOrString($row->anon_note); + $normalizedRule = $anonRule !== null ? $this->norm($anonRule) : null; + + if ($anonRule !== null || $anonNote !== null) { + $metrics['rows_with_rule_input']++; + } + + $desiredRequired = false; + $desiredReviewed = false; + $requestedRuleId = null; + + if ($anonRule !== null) { + if ($normalizedRule === 'NO_CHANGE') { + $desiredRequired = false; + $desiredReviewed = true; + } else { + $desiredRequired = true; + $desiredReviewed = true; + + $requestedRuleId = $ruleIdsByName[$this->norm($anonRule)] ?? null; + + if ($requestedRuleId === null) { + $metrics['unknown_rule_names']++; + + $ruleKey = $this->norm($anonRule); + $columnRef = implode('.', array_filter([ + trim((string) ($row->database_name ?? '')), + trim((string) ($row->schema_name ?? '')), + trim((string) ($row->table_name ?? '')), + trim((string) ($row->column_name ?? '')), + ], fn($part) => $part !== '')); + + if (! isset($unknownRules[$ruleKey])) { + $unknownRules[$ruleKey] = [ + 'rule_name' => $anonRule, + 'count' => 0, + 'examples' => [], + ]; + } + + $unknownRules[$ruleKey]['count']++; + if ($columnRef !== '' && count($unknownRules[$ruleKey]['examples']) < 5) { + $unknownRules[$ruleKey]['examples'][$columnRef] = true; + } + } + } + } + + $currentRequired = $existingRequiredByColumn[$columnId] ?? null; + $currentReviewed = $existingReviewedByColumn[$columnId] ?? null; + $currentMetadataComment = $existingMetadataCommentByColumn[$columnId] ?? null; + $currentRuleId = $existingRuleIdByColumn[$columnId] ?? null; + + $changedFields = $existingChangedFieldsByColumn[$columnId] ?? []; + $columnUpdates = [ + 'updated_at' => $runAt, + ]; + + if ($this->valuesDiffer($currentRequired, $desiredRequired)) { + $changedFields['anonymization_required'] = [ + 'old' => $currentRequired, + 'new' => $desiredRequired, + ]; + + $columnUpdates['anonymization_required'] = $desiredRequired; + $existingRequiredByColumn[$columnId] = $desiredRequired; + $metrics['required_updates']++; + $rowChanged = true; + } + + if ($this->valuesDiffer($currentReviewed, $desiredReviewed)) { + $changedFields['anonymization_requirement_reviewed'] = [ + 'old' => $currentReviewed, + 'new' => $desiredReviewed, + ]; + + $columnUpdates['anonymization_requirement_reviewed'] = $desiredReviewed; + $existingReviewedByColumn[$columnId] = $desiredReviewed; + $rowChanged = true; + } + + if ($this->valuesDiffer($currentMetadataComment, $anonNote)) { + $changedFields['metadata_comment'] = [ + 'old' => $currentMetadataComment, + 'new' => $anonNote, + ]; + + $columnUpdates['metadata_comment'] = $anonNote; + $existingMetadataCommentByColumn[$columnId] = $anonNote; + $rowChanged = true; + } + + // Sync rule assignment (one-to-one: column → rule via pivot) + if ($requestedRuleId !== $currentRuleId) { + $changedFields['anonymization_rule'] = [ + 'old' => $currentRuleId, + 'new' => $requestedRuleId, + ]; + + if ($currentRuleId !== null) { + DB::table('anonymization_rule_column') + ->where('column_id', $columnId) + ->where('rule_id', $currentRuleId) + ->delete(); + + $metrics['rule_links_deleted']++; + } + + if ($requestedRuleId !== null) { + DB::table('anonymization_rule_column')->insert([ + 'column_id' => $columnId, + 'rule_id' => $requestedRuleId, + 'created_at' => $runAt, + 'updated_at' => $runAt, + ]); + + $metrics['rule_links_inserted']++; + } + + $existingRuleIdByColumn[$columnId] = $requestedRuleId; + $metrics['rule_mapping_updates']++; + $rowChanged = true; + } + + if ($rowChanged) { + $columnUpdates['changed_at'] = $runAt; + $columnUpdates['changed_fields'] = json_encode($changedFields, JSON_UNESCAPED_UNICODE); + + DB::table(self::COLUMNS_TABLE) + ->where('id', $columnId) + ->update($columnUpdates); + + $existingChangedFieldsByColumn[$columnId] = $changedFields; + $changedColumns[$columnId] = true; + } else { + $metrics['rows_noop']++; + } + } + }, 's.id', 'staging_id'); + + foreach ($unknownRules as $entry) { + $ruleName = (string) ($entry['rule_name'] ?? ''); + if ($ruleName === '') { + continue; + } + + $title = 'Missing anonymization rule from ANON_RULE: ' . $ruleName; + $exists = ChangeTicket::query() + ->where('upload_id', $upload->id) + ->where('scope_type', 'upload') + ->where('title', $title) + ->whereIn('status', ['open', 'in_progress']) + ->exists(); + + if ($exists) { + continue; + } + + $examples = array_keys((array) ($entry['examples'] ?? [])); + $comment = 'ANON_RULE requested anonymization rule "' . $ruleName . '" but no matching rule exists in the rule library. Create this rule and assign methods to it, then re-run/import to apply it.'; + + if ($examples !== []) { + $comment .= ' Example columns: ' . implode(', ', array_slice($examples, 0, 5)) . '.'; + } + + ChangeTicket::create([ + 'title' => $title, + 'status' => 'open', + 'priority' => 'high', + 'severity' => 'medium', + 'scope_type' => 'upload', + 'scope_name' => (string) ($upload->original_name ?: $upload->id), + 'impact_summary' => $comment, + 'diff_payload' => json_encode([ + 'requested_rule' => $ruleName, + 'requested_count' => (int) ($entry['count'] ?? 0), + 'example_columns' => $examples, + ]), + 'upload_id' => $upload->id, + ]); + } + + return [ + 'changed_columns' => count($changedColumns), + 'required_updates' => (int) $metrics['required_updates'], + 'rule_mapping_updates' => (int) $metrics['rule_mapping_updates'], + ]; + } + + protected function normalizeChangedFieldsPayload(mixed $payload): array + { + if (is_array($payload)) { + return $payload; + } + + if (! is_string($payload) || trim($payload) === '') { + return []; + } + + $decoded = json_decode($payload, true); + + return is_array($decoded) ? $decoded : []; + } + protected function cleanupStaging(int $uploadId): void { DB::statement('DELETE FROM ' . self::STAGING_TABLE . ' WHERE upload_id = ?', [$uploadId]); @@ -1800,7 +2549,14 @@ protected function upsertColumn(int $tableId, ?int $dataTypeId, object $row, $no $payload = [ 'table_id' => $tableId, 'column_name' => $columnName, + 'qualfield' => $row->qualfield, 'column_id' => $row->column_id, + 'pr_key' => $row->pr_key, + 'ref_tab_name' => $row->ref_tab_name, + 'num_distinct' => $row->num_distinct, + 'num_not_null' => $row->num_not_null, + 'num_nulls' => $row->num_nulls, + 'num_rows' => $row->num_rows, 'data_type_id' => $dataTypeId, 'data_length' => $row->data_length, 'data_precision' => $row->data_precision, @@ -1808,6 +2564,8 @@ protected function upsertColumn(int $tableId, ?int $dataTypeId, object $row, $no 'nullable' => $this->toNullableFlag($row->nullable), 'char_length' => $row->char_length, 'column_comment' => $row->column_comment, + 'sbl_user_name' => $row->sbl_user_name, + 'sbl_desc_text' => $row->sbl_desc_text, 'table_comment' => $row->table_comment, 'related_columns_raw' => $row->related_columns_raw, 'related_columns' => $relationshipsJson, @@ -2090,23 +2848,24 @@ protected function softDeleteMissingColumns(array $touchedTableIdentities, strin break; } - foreach ($columnsToProcess as $column) { - $diff = [ - 'deleted_at' => [ - 'old' => null, - 'new' => $now, - ], - ]; + $columnIds = $columnsToProcess->pluck('id')->map(fn($id) => (int) $id)->all(); + $diff = [ + 'deleted_at' => [ + 'old' => null, + 'new' => $now, + ], + ]; - DB::table(self::COLUMNS_TABLE) - ->where('id', $column->id) - ->update([ - 'deleted_at' => $now, - 'changed_at' => $now, - 'changed_fields' => json_encode($diff, JSON_UNESCAPED_UNICODE), - 'updated_at' => $now, - ]); + DB::table(self::COLUMNS_TABLE) + ->whereIn('id', $columnIds) + ->update([ + 'deleted_at' => $now, + 'changed_at' => $now, + 'changed_fields' => json_encode($diff, JSON_UNESCAPED_UNICODE), + 'updated_at' => $now, + ]); + foreach ($columnsToProcess as $column) { AnonymizerActivityLogger::logColumnEvent( (int) $column->id, 'deleted', @@ -2119,6 +2878,9 @@ protected function softDeleteMissingColumns(array $touchedTableIdentities, strin $lastDeletedId = $column->id; ++$deleted; } + + // Flush buffered activity log events after each deletion batch + AnonymizerActivityLogger::flush(); } while (true); DB::statement("DROP TABLE IF EXISTS {$tempColumnsToDeleteTable}"); @@ -2378,7 +3140,9 @@ protected function readHeader($stream): ?array $header[0] = preg_replace('/^\xEF\xBB\xBF/', '', $header[0]) ?? $header[0]; } - return array_map(static fn($value) => strtoupper(trim((string) $value)), $header); + return array_map(function ($value) { + return strtoupper(trim($this->normalizeUtf8String((string) $value, false))); + }, $header); } /** @@ -2386,7 +3150,7 @@ protected function readHeader($stream): ?array */ protected function parseRelated(string $raw): array { - $raw = trim(html_entity_decode($raw)); + $raw = trim($this->normalizeUtf8String(html_entity_decode($raw), false)); if ($raw === '') { return []; } @@ -2493,11 +3257,115 @@ protected function toNullOrString($value): ?string return null; } - $value = trim((string) $value); + $value = trim($this->normalizeUtf8String((string) $value, false)); return $value === '' ? null : $value; } + protected function sanitizeUtf8ForDatabase(string $value): string + { + if ($value === '') { + return $value; + } + + $result = $this->normalizeUtf8String($value); + + // Common broken UTF-8 triplet seen in legacy exports (0xE2 0x80 0x20). + $result = str_replace("\xE2\x80\x20", ' ', $result); + + if (preg_match('//u', $result) !== 1 && function_exists('iconv')) { + $converted = iconv('UTF-8', 'UTF-8//IGNORE', $result); + if ($converted !== false) { + $result = $converted; + } + } + + if (preg_match('//u', $result) !== 1 && function_exists('mb_convert_encoding')) { + $converted = mb_convert_encoding($result, 'UTF-8', 'UTF-8, Windows-1252, ISO-8859-1'); + if (is_string($converted)) { + $result = $converted; + } + } + + if (preg_match('//u', $result) !== 1) { + $ascii = ''; + foreach (unpack('C*', $result) ?: [] as $byte) { + if (($byte >= 9 && $byte <= 13) || ($byte >= 32 && $byte <= 126)) { + $ascii .= chr($byte); + } + } + $result = $ascii; + } + + $result = str_replace("\u{FFFD}", '', $result); + $result = preg_replace('/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]/', '', $result) ?? ''; + + return preg_match('//u', $result) === 1 ? $result : ''; + } + + protected function normalizeUtf8String(string $value, bool $normalizeWhitespace = true): string + { + if ($value === '') { + return $value; + } + + $result = str_replace("\xA0", ' ', $value); + + if (preg_match('//u', $result) !== 1) { + if (function_exists('iconv')) { + $converted = iconv('Windows-1252', 'UTF-8//IGNORE', $result); + if ($converted !== false && preg_match('//u', $converted) === 1) { + $result = $converted; + } + } + + if (preg_match('//u', $result) !== 1 && function_exists('mb_convert_encoding')) { + $converted = mb_convert_encoding($result, 'UTF-8', 'Windows-1252, ISO-8859-1, UTF-8'); + if (is_string($converted) && preg_match('//u', $converted) === 1) { + $result = $converted; + } + } + + if (preg_match('//u', $result) !== 1) { + $result = preg_replace('/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\xFF]/', '', $result) ?? ''; + } + } + + if (function_exists('iconv')) { + $converted = iconv('UTF-8', 'UTF-8//IGNORE', $result); + if ($converted !== false) { + $result = $converted; + } + } + + if (preg_match('//u', $result) !== 1 && function_exists('mb_convert_encoding')) { + $converted = mb_convert_encoding($result, 'UTF-8', 'UTF-8'); + if (is_string($converted)) { + $result = $converted; + } + } + + if (preg_match('//u', $result) !== 1) { + $result = preg_replace('/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\xFF]/', '', $result) ?? ''; + } + + if (preg_match('//u', $result) !== 1) { + $ascii = ''; + foreach (unpack('C*', $result) ?: [] as $byte) { + if (($byte >= 9 && $byte <= 13) || ($byte >= 32 && $byte <= 126)) { + $ascii .= chr($byte); + } + } + $result = $ascii; + } + + if ($normalizeWhitespace) { + $result = str_replace(["\xA0", "\xC2\xA0", "\u{00A0}"], ' ', $result); + } + + return $result; + } + protected function toNullableFlag($value): ?bool { if ($value === null || $value === '') { @@ -2558,20 +3426,59 @@ protected function resolveFullImportDeletionScope(AnonymousUpload $upload, array $scope = strtolower((string) ($upload->scope_type ?? '')); $resolved = match ($scope) { - '' => $this->fetchAllTableIdentities(), + '' => $this->fetchTableIdentitiesForStagedScopes((int) $upload->id), 'database' => $this->fetchTableIdentitiesForDatabase($upload->scope_name), 'schema' => $this->fetchTableIdentitiesForSchema($upload->scope_name), 'table' => $this->fetchTableIdentitiesForTable($upload->scope_name), default => $touchedTableIdentities, }; - if ($scope === '' && $resolved === []) { + if ($resolved === []) { return $touchedTableIdentities; } return $resolved ?: $touchedTableIdentities; } + protected function fetchTableIdentitiesForStagedScopes(int $uploadId): array + { + $stagedScopes = DB::table(self::STAGING_TABLE) + ->where('upload_id', $uploadId) + ->select('database_name', 'schema_name') + ->distinct() + ->get() + ->map(function ($row) { + return [ + 'database_name' => $this->norm((string) ($row->database_name ?? '')), + 'schema_name' => $this->norm((string) ($row->schema_name ?? '')), + ]; + }) + ->filter(fn(array $row) => $row['database_name'] !== '' && $row['schema_name'] !== '') + ->values() + ->all(); + + if ($stagedScopes === []) { + return []; + } + + $query = DB::table(self::TABLES_TABLE . ' as t') + ->join(self::SCHEMAS_TABLE . ' as s', 't.schema_id', '=', 's.id') + ->join(self::DATABASES_TABLE . ' as d', 's.database_id', '=', 'd.id') + ->select('s.database_id', 's.schema_name', 't.table_name') + ->whereNull('t.deleted_at') + ->where(function ($where) use ($stagedScopes) { + foreach ($stagedScopes as $scope) { + $where->orWhere(function ($nested) use ($scope) { + $nested + ->whereRaw('UPPER(TRIM(d.database_name)) = ?', [$scope['database_name']]) + ->whereRaw('UPPER(TRIM(s.schema_name)) = ?', [$scope['schema_name']]); + }); + } + }); + + return $this->mapTableIdentityRows($query->get()); + } + protected function fetchAllTableIdentities(): array { $rows = DB::table(self::TABLES_TABLE . ' as t') diff --git a/app/Jobs/Exceptions/AnonymousUploadCancelledException.php b/app/Jobs/Exceptions/AnonymousUploadCancelledException.php new file mode 100644 index 00000000..c45931d7 --- /dev/null +++ b/app/Jobs/Exceptions/AnonymousUploadCancelledException.php @@ -0,0 +1,7 @@ +syncForExportId((int) $this->export->getKey(), ExportProgressNotificationService::STAGE_EXPORTING); + } +} diff --git a/app/Jobs/GenerateAnonymizationJobSql.php b/app/Jobs/GenerateAnonymizationJobSql.php index a83e1943..65a022bd 100644 --- a/app/Jobs/GenerateAnonymizationJobSql.php +++ b/app/Jobs/GenerateAnonymizationJobSql.php @@ -59,6 +59,10 @@ public static function regenerationCacheKey(int $jobId): string public function handle(AnonymizationJobScriptService $scriptService): void { + // Large schema jobs hydrate thousands of Eloquent models with eager-loaded + // relationships; 1 GB is not enough for full-scope jobs (5 000+ columns). + ini_set('memory_limit', '2G'); + // @var AnonymizationJobs|null $job $job = AnonymizationJobs::query()->find($this->jobId); @@ -87,7 +91,18 @@ public function handle(AnonymizationJobScriptService $scriptService): void ->all() : DB::query() ->fromSub($this->scopedCatalogColumnsQuery($this->jobId), 'sc') - ->join('anonymization_method_column as amc', 'amc.column_id', '=', 'sc.id') + ->where(function ($q) { + $q->whereExists(function ($sub) { + $sub->select(DB::raw(1)) + ->from('anonymization_method_column as amc') + ->whereColumn('amc.column_id', 'sc.id'); + }) + ->orWhereExists(function ($sub) { + $sub->select(DB::raw(1)) + ->from('anonymization_rule_column as arc') + ->whereColumn('arc.column_id', 'sc.id'); + }); + }) ->distinct() ->orderBy('sc.id') ->pluck('sc.id') @@ -358,6 +373,7 @@ protected function ensureSeedContractModesForColumns(array $columnIds): void $idsByEnumValue = []; foreach (array_chunk($columnIds, self::WHERE_IN_CHUNK_SIZE) as $chunk) { + // Check methods from direct column associations $rows = DB::table('anonymization_method_column as amc') ->join('anonymization_methods as m', 'm.id', '=', 'amc.method_id') ->whereIn('amc.column_id', $chunk) @@ -369,7 +385,33 @@ protected function ensureSeedContractModesForColumns(array $columnIds): void ]) ->get(); - foreach ($rows as $row) { + // Also check methods from rule associations + $ruleRows = DB::table('anonymization_rule_column as arc') + ->join('anonymization_rule_methods as arm', 'arm.rule_id', '=', 'arc.rule_id') + ->join('anonymization_methods as m', 'm.id', '=', 'arm.method_id') + ->whereIn('arc.column_id', $chunk) + ->groupBy('arc.column_id') + ->select([ + 'arc.column_id', + DB::raw('MAX(CASE WHEN m.emits_seed = true THEN 1 ELSE 0 END) as emits_seed'), + DB::raw('MAX(CASE WHEN m.requires_seed = true THEN 1 ELSE 0 END) as requires_seed'), + ]) + ->get(); + + // Merge both result sets, keyed by column_id + $combined = collect($rows)->keyBy('column_id'); + foreach ($ruleRows as $rr) { + $colId = $rr->column_id; + if ($combined->has($colId)) { + $existing = $combined->get($colId); + $existing->emits_seed = max((int) $existing->emits_seed, (int) $rr->emits_seed); + $existing->requires_seed = max((int) $existing->requires_seed, (int) $rr->requires_seed); + } else { + $combined->put($colId, $rr); + } + } + + foreach ($combined as $row) { $emits = (int) ($row->emits_seed ?? 0) === 1; $requires = (int) ($row->requires_seed ?? 0) === 1; diff --git a/app/Jobs/GenerateChangeTicketsFromUpload.php b/app/Jobs/GenerateChangeTicketsFromUpload.php index 69daab5e..2f723eee 100644 --- a/app/Jobs/GenerateChangeTicketsFromUpload.php +++ b/app/Jobs/GenerateChangeTicketsFromUpload.php @@ -93,6 +93,12 @@ public function handle() ->where('column_id', $col->id) ->exists(); + $hasRuleDependency = DB::table('anonymization_rule_column') + ->where('column_id', $col->id) + ->exists(); + + $hasDependency = $hasJobDependency || $hasRuleDependency; + $scopeName = "{$col->schema_name}.{$col->table_name}.{$col->column_name}"; $title = "Column changed: {$scopeName}"; @@ -116,8 +122,15 @@ public function handle() continue; } - $severity = $this->severityForChangedColumn($col->changed_fields, $hasJobDependency); - $priority = $hasJobDependency ? 'high' : 'normal'; + $severity = $this->severityForChangedColumn($col->changed_fields, $hasDependency); + $priority = $hasDependency ? 'high' : 'normal'; + + $impactSummary = match (true) { + $hasJobDependency && $hasRuleDependency => 'Column definition changed and is referenced by anonymization jobs via a rule. Review the assigned rule, its methods, and associated jobs for breakage.', + $hasJobDependency => 'Column definition changed and is referenced by anonymization jobs. Review jobs and associated methods for breakage.', + $hasRuleDependency => 'Column definition changed and has an anonymization rule assigned. Review the rule and its methods to confirm they still apply.', + default => 'Column definition changed in latest upload. Consider assigning an anonymization rule if applicable.', + }; ChangeTicket::create([ 'title' => $title, @@ -126,17 +139,15 @@ public function handle() 'severity' => $severity, 'scope_type' => 'column', 'scope_name' => $scopeName, - 'impact_summary' => $hasJobDependency - ? 'Column definition changed and is referenced by anonymization jobs. Review jobs/methods for breakage.' - : 'Column definition changed in latest upload. Review anonymization method association.', + 'impact_summary' => $impactSummary, 'diff_payload' => $this->diffPayloadAsJsonString($col->changed_fields), 'upload_id' => $upload->id, ]); Log::info('GenerateChangeTicketsFromUpload: created ticket (changed column)', ['scope' => $scopeName]); $changedCount++; - // Emit a separate URGENT alert ticket only when the change looks breaking and a job explicitly references the column. - if ($hasJobDependency && $this->diffIndicatesBreakingChange($col->changed_fields)) { + // Emit a separate URGENT alert ticket only when the change looks breaking and a job or rule explicitly references the column. + if ($hasDependency && $this->diffIndicatesBreakingChange($col->changed_fields)) { $urgentTitle = "URGENT: Job dependency risk - Column changed: {$scopeName}"; $existsUrgent = ChangeTicket::query() ->where('scope_type', 'column') @@ -153,7 +164,7 @@ public function handle() 'severity' => 'high', 'scope_type' => 'column', 'scope_name' => $scopeName, - 'impact_summary' => 'Breaking-ish schema/shape change detected on a column referenced by anonymization jobs. Regenerate and review job SQL before execution.', + 'impact_summary' => 'Breaking schema/shape change detected on a column referenced by anonymization rules or jobs. Review the assigned rule and its methods, then regenerate and review job SQL before execution.', 'diff_payload' => $this->diffPayloadAsJsonString($col->changed_fields), 'upload_id' => $upload->id, ]); @@ -201,7 +212,7 @@ public function handle() 'severity' => 'low', 'scope_type' => 'column', 'scope_name' => $scopeName, - 'impact_summary' => 'Column was added in this upload. Review anonymization method association.', + 'impact_summary' => 'New column added in this upload. Review and assign an anonymization rule if this column contains sensitive data.', 'diff_payload' => json_encode([ 'catalog' => Arr::only($col->toArray(), [ 'id', @@ -236,6 +247,12 @@ public function handle() ->where('column_id', $col->id) ->exists(); + $hasRuleDependency = DB::table('anonymization_rule_column') + ->where('column_id', $col->id) + ->exists(); + + $hasDependency = $hasJobDependency || $hasRuleDependency; + $scopeName = "{$col->schema_name}.{$col->table_name}.{$col->column_name}"; $title = "Deleted column: {$scopeName}"; $exists = ChangeTicket::query() @@ -261,13 +278,16 @@ public function handle() ChangeTicket::create([ 'title' => $title, 'status' => 'open', - 'priority' => $hasJobDependency ? 'high' : 'normal', - 'severity' => $hasJobDependency ? 'high' : 'medium', + 'priority' => $hasDependency ? 'high' : 'normal', + 'severity' => $hasDependency ? 'high' : 'medium', 'scope_type' => 'column', 'scope_name' => $scopeName, - 'impact_summary' => $hasJobDependency - ? 'Column missing from upload and referenced by anonymization jobs. Review and adjust jobs/methods.' - : 'Column missing from upload compared to catalog; verify removal is expected.', + 'impact_summary' => match (true) { + $hasJobDependency && $hasRuleDependency => 'Column removed from catalog and is referenced by anonymization rules and jobs. Review the rule assignment and adjust jobs.', + $hasJobDependency => 'Column missing from upload and referenced by anonymization jobs. Review and adjust jobs/methods.', + $hasRuleDependency => 'Column removed from catalog and has an anonymization rule assigned. The rule association may need cleanup.', + default => 'Column missing from upload compared to catalog; verify removal is expected.', + }, 'diff_payload' => json_encode([ 'catalog' => Arr::only($col->toArray(), [ 'id', @@ -282,10 +302,10 @@ public function handle() ]), 'upload_id' => $upload->id, ]); - Log::info('GenerateChangeTicketsFromUpload: created ticket (deleted column)', ['scope' => $scopeName, 'priority' => $hasJobDependency ? 'high' : 'normal']); + Log::info('GenerateChangeTicketsFromUpload: created ticket (deleted column)', ['scope' => $scopeName, 'priority' => $hasDependency ? 'high' : 'normal']); $deletedCount++; - if ($hasJobDependency) { + if ($hasDependency) { $urgentTitle = "URGENT: Job dependency broken - Column deleted: {$scopeName}"; $existsUrgent = ChangeTicket::query() ->where('scope_type', 'column') @@ -302,7 +322,7 @@ public function handle() 'severity' => 'high', 'scope_type' => 'column', 'scope_name' => $scopeName, - 'impact_summary' => 'A column referenced by anonymization jobs was removed from the catalog on a full import. Jobs that include this column will likely generate incomplete SQL until updated.', + 'impact_summary' => 'A column referenced by anonymization rules or jobs was removed from the catalog on a full import. Review the rule assignment and regenerate job SQL.', 'diff_payload' => json_encode([ 'catalog' => Arr::only($col->toArray(), [ 'id', @@ -467,9 +487,9 @@ private function diffIndicatesBreakingChange(array|string|null $diffPayload): bo return false; } - private function severityForChangedColumn(array|string|null $diffPayload, bool $hasJobDependency): string + private function severityForChangedColumn(array|string|null $diffPayload, bool $hasDependency): string { - if ($hasJobDependency) { + if ($hasDependency) { return 'high'; } diff --git a/app/Jobs/PrepareCsvExportWithProgress.php b/app/Jobs/PrepareCsvExportWithProgress.php new file mode 100644 index 00000000..48c8a91e --- /dev/null +++ b/app/Jobs/PrepareCsvExportWithProgress.php @@ -0,0 +1,25 @@ +syncForExportId((int) $this->export->getKey(), ExportProgressNotificationService::STAGE_PREPARING); + + parent::handle(); + + app(ExportProgressNotificationService::class) + ->syncForExportId((int) $this->export->getKey(), ExportProgressNotificationService::STAGE_EXPORTING); + } + + public function getExportCsvJob(): string + { + return ExportCsvWithProgress::class; + } +} diff --git a/app/Jobs/SyncAnonymousSiebelColumnsJob.php b/app/Jobs/SyncAnonymousSiebelColumnsJob.php index 9e3216c2..37e7c76b 100644 --- a/app/Jobs/SyncAnonymousSiebelColumnsJob.php +++ b/app/Jobs/SyncAnonymousSiebelColumnsJob.php @@ -3,6 +3,7 @@ namespace App\Jobs; use App\Jobs\Concerns\InteractsWithAnonymousSiebelSync; +use App\Jobs\Exceptions\AnonymousUploadCancelledException; use App\Models\Anonymizer\AnonymousUpload; use Carbon\CarbonImmutable; use Illuminate\Contracts\Queue\ShouldQueue; @@ -34,9 +35,15 @@ public function handle(): void { $upload = AnonymousUpload::findOrFail($this->uploadId); + if ($this->isCancellationRequested($upload)) { + return; + } + $currentPhase = (string) ($upload->run_phase ?? ''); $persist = function (array $attributes) use ($upload, &$currentPhase): void { + $this->throwIfCancellationRequested($upload->id, $currentPhase); + if (array_key_exists('run_phase', $attributes)) { $currentPhase = (string) ($attributes['run_phase'] ?? ''); } @@ -75,6 +82,20 @@ public function handle(): void $currentPhase = 'preparing'; try { + $persist([ + 'status_detail' => 'Pruning temporary staging', + 'run_phase' => 'pruning_staging', + ]); + + $prunedStagingRows = $this->purgeTemporaryStagingBeforeRun($upload->id); + + $persist([ + 'status_detail' => $prunedStagingRows > 0 + ? ('Pruned ' . number_format($prunedStagingRows) . ' stale staging row(s)') + : 'No stale staging rows to prune', + 'run_phase' => 'preparing', + ]); + if ($this->forceRestart) { $persist([ 'status_detail' => 'Restarting import (clearing staging)', @@ -160,6 +181,23 @@ function (array $progress) use ($upload) { } ); + if ((bool) ($upload->override_anonymization_rules ?? false)) { + $persist([ + 'status_detail' => 'Applying anonymization rules', + 'run_phase' => 'applying_anonymization_rules', + ]); + + $ruleSync = $this->synchronizeAnonymizationRulesFromStaging( + $upload, + $runAt, + function (array $progress) use ($upload) { + $this->persistProgress($upload->id, $progress); + } + ); + + $result['totals']['updated'] = (int) ($result['totals']['updated'] ?? 0) + (int) ($ruleSync['changed_columns'] ?? 0); + } + $persist([ 'processed_rows' => $result['processedRows'], 'processed_bytes' => $result['processedBytes'], @@ -252,15 +290,32 @@ function (array $progress) use ($upload) { // Only clean up staging after a successful run so failed uploads can be resumed. $this->cleanupStaging($upload->id); + } catch (AnonymousUploadCancelledException $exception) { + $upload->refresh(); + + $upload->update([ + 'status' => 'failed', + 'status_detail' => 'Cancelled by user', + 'run_phase' => 'cancelled', + 'failed_phase' => $currentPhase, + 'error' => null, + 'error_context' => null, + 'progress_updated_at' => CarbonImmutable::now(), + 'retention_until' => CarbonImmutable::now()->addDays(max(1, (int) config('anonymizer.upload_retention_days', 30))), + ]); + + return; } catch (Throwable $exception) { + $exceptionMessage = $this->sanitizeUtf8Value($exception->getMessage()); + $upload->update([ 'status' => 'failed', 'status_detail' => 'Failed', 'failed_phase' => $currentPhase, - 'error' => $exception->getMessage(), + 'error' => is_string($exceptionMessage) ? $exceptionMessage : 'Import failed', 'error_context' => [ 'phase' => $currentPhase, - 'message' => $exception->getMessage(), + 'message' => $exceptionMessage, 'class' => get_class($exception), 'at' => CarbonImmutable::now()->toIso8601String(), ], @@ -274,11 +329,74 @@ function (array $progress) use ($upload) { protected function persistProgress(int $uploadId, array $attributes): void { + $this->throwIfCancellationRequested($uploadId, (string) ($attributes['run_phase'] ?? 'processing')); + + $attributes = $this->sanitizeUtf8Value($attributes); $attributes['progress_updated_at'] = $attributes['progress_updated_at'] ?? CarbonImmutable::now(); AnonymousUpload::whereKey($uploadId)->update($attributes); } + protected function throwIfCancellationRequested(int $uploadId, string $phase = ''): void + { + $upload = AnonymousUpload::query()->whereKey($uploadId)->first(['status', 'run_phase']); + + if ($upload && $this->isCancellationRequested($upload)) { + $message = 'Upload cancelled by user'; + if ($phase !== '') { + $message .= " during {$phase}"; + } + + throw new AnonymousUploadCancelledException($message); + } + } + + protected function isCancellationRequested(AnonymousUpload $upload): bool + { + return (string) ($upload->run_phase ?? '') === 'cancelled' + || (string) ($upload->status ?? '') === 'cancelled'; + } + + /** + * Ensure values persisted to JSON-cast columns are UTF-8 safe. + */ + protected function sanitizeUtf8Value(mixed $value): mixed + { + if (is_array($value)) { + foreach ($value as $key => $item) { + $value[$key] = $this->sanitizeUtf8Value($item); + } + + return $value; + } + + if (! is_string($value)) { + return $value; + } + + if (preg_match('//u', $value) === 1) { + return $value; + } + + if (function_exists('iconv')) { + $converted = iconv('UTF-8', 'UTF-8//IGNORE', $value); + + if ($converted !== false && preg_match('//u', $converted) === 1) { + return $converted; + } + } + + if (function_exists('mb_convert_encoding')) { + $converted = mb_convert_encoding($value, 'UTF-8', 'UTF-8, ISO-8859-1, Windows-1252'); + + if (is_string($converted) && preg_match('//u', $converted) === 1) { + return $converted; + } + } + + return preg_replace('/[^\x09\x0A\x0D\x20-\x7E]/', '', $value) ?? 'Invalid text encoding'; + } + protected function determineUploadSize(AnonymousUpload $upload): ?int { try { @@ -287,4 +405,44 @@ protected function determineUploadSize(AnonymousUpload $upload): ?int return null; } } + + protected function purgeTemporaryStagingBeforeRun(int $currentUploadId): int + { + $activeUploadIds = AnonymousUpload::query() + ->whereIn('status', ['queued', 'processing']) + ->pluck('id') + ->all(); + + $baseQuery = DB::table(self::STAGING_TABLE) + ->where('upload_id', '!=', $currentUploadId); + + if ($activeUploadIds !== []) { + $baseQuery->whereNotIn('upload_id', $activeUploadIds); + } + + $deleted = 0; + $lastId = 0; + $rowChunk = 5000; + + do { + $ids = (clone $baseQuery) + ->where('id', '>', $lastId) + ->orderBy('id') + ->limit($rowChunk) + ->pluck('id') + ->all(); + + if ($ids === []) { + break; + } + + $deleted += (int) DB::table(self::STAGING_TABLE) + ->whereIn('id', $ids) + ->delete(); + + $lastId = (int) end($ids); + } while (count($ids) === $rowChunk); + + return $deleted; + } } diff --git a/app/Models/Anonymizer/AnonymizationJobs.php b/app/Models/Anonymizer/AnonymizationJobs.php index 03248bdd..1118ce21 100644 --- a/app/Models/Anonymizer/AnonymizationJobs.php +++ b/app/Models/Anonymizer/AnonymizationJobs.php @@ -12,6 +12,8 @@ use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsToMany; use Illuminate\Database\Eloquent\SoftDeletes; +use Illuminate\Support\Arr; +use Illuminate\Support\Facades\DB; class AnonymizationJobs extends Model { @@ -57,6 +59,7 @@ protected function describeActivityEvent(string $eventName, array $context = []) 'job_type', 'status', 'output_format', + 'strategy', 'target_relation_kind', 'target_schema', 'target_table_mode', @@ -79,7 +82,7 @@ protected function describeActivityEvent(string $eventName, array $context = []) ]; protected $attributes = ['status' => self::STATUS_DRAFT]; - protected $with = ['methods']; + protected $appends = ['duration_human']; public function databases(): BelongsToMany @@ -160,4 +163,79 @@ public function getDurationHumanAttribute(): ?string return implode(' ', $parts); } + + public function duplicateAsDraft(?string $name = null): self + { + return DB::transaction(function () use ($name): self { + $duplicate = new self(); + $duplicate->fill(Arr::only($this->getAttributes(), $this->getFillable())); + + $duplicate->name = $name ?: $this->nextDuplicateName(); + $duplicate->status = self::STATUS_DRAFT; + $duplicate->last_run_at = null; + $duplicate->duration_seconds = null; + $duplicate->sql_script = null; + $duplicate->save(); + + $this->copySimplePivotRows('anonymization_job_databases', 'database_id', (int) $duplicate->getKey()); + $this->copySimplePivotRows('anonymization_job_schemas', 'schema_id', (int) $duplicate->getKey()); + $this->copySimplePivotRows('anonymization_job_tables', 'table_id', (int) $duplicate->getKey()); + $this->copyColumnPivotRows((int) $duplicate->getKey()); + + return $duplicate; + }); + } + + protected function nextDuplicateName(): string + { + $baseName = trim((string) $this->name); + $baseName = $baseName !== '' ? $baseName : ('Job ' . $this->getKey()); + + $candidate = $baseName . ' (Copy)'; + + if (! static::withTrashed()->where('name', $candidate)->exists()) { + return $candidate; + } + + $suffix = 2; + + do { + $candidate = sprintf('%s (Copy %d)', $baseName, $suffix); + $suffix++; + } while (static::withTrashed()->where('name', $candidate)->exists()); + + return $candidate; + } + + protected function copySimplePivotRows(string $table, string $foreignKeyColumn, int $newJobId): void + { + $timestamp = now()->toDateTimeString(); + + DB::table($table)->insertUsing( + ['job_id', $foreignKeyColumn, 'created_at', 'updated_at'], + DB::table($table) + ->where('job_id', $this->getKey()) + ->selectRaw('? as job_id, ' . $foreignKeyColumn . ', ? as created_at, ? as updated_at', [ + $newJobId, + $timestamp, + $timestamp, + ]) + ); + } + + protected function copyColumnPivotRows(int $newJobId): void + { + $timestamp = now()->toDateTimeString(); + + DB::table('anonymization_job_columns')->insertUsing( + ['job_id', 'column_id', 'anonymization_method_id', 'created_at', 'updated_at'], + DB::table('anonymization_job_columns') + ->where('job_id', $this->getKey()) + ->selectRaw('? as job_id, column_id, anonymization_method_id, ? as created_at, ? as updated_at', [ + $newJobId, + $timestamp, + $timestamp, + ]) + ); + } } diff --git a/app/Models/Anonymizer/AnonymizationMethods.php b/app/Models/Anonymizer/AnonymizationMethods.php index 9e6ffcc5..30cc6745 100644 --- a/app/Models/Anonymizer/AnonymizationMethods.php +++ b/app/Models/Anonymizer/AnonymizationMethods.php @@ -5,6 +5,7 @@ use App\Models\Anonymizer\AnonymousSiebelColumn; use App\Models\Anonymizer\AnonymizationJobs; use App\Models\Anonymizer\AnonymizationPackage; +use App\Models\Anonymizer\AnonymizationRule; use App\Traits\LogsAnonymizerActivity; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; @@ -186,6 +187,21 @@ public function packages(): BelongsToMany )->withTimestamps(); } + /** + * Rules that reference this method. + */ + public function rules(): BelongsToMany + { + return $this->belongsToMany( + AnonymizationRule::class, + 'anonymization_rule_methods', + 'method_id', + 'rule_id' + ) + ->withPivot(['is_default', 'strategy']) + ->withTimestamps(); + } + public function getUsageCountAttribute(): int { $count = $this->getAttribute('columns_count'); @@ -224,7 +240,7 @@ public function getSeedCapabilitySummaryAttribute(): string public function isInUse(): bool { - return $this->columns()->exists() || $this->jobs()->exists(); + return $this->rules()->exists() || $this->columns()->exists() || $this->jobs()->exists(); } public function distinctJobUsageCount(): int diff --git a/app/Models/Anonymizer/AnonymizationRule.php b/app/Models/Anonymizer/AnonymizationRule.php new file mode 100644 index 00000000..12203185 --- /dev/null +++ b/app/Models/Anonymizer/AnonymizationRule.php @@ -0,0 +1,194 @@ +name ?: ('#' . $this->getKey()); + } + + protected function describeActivityEvent(string $eventName, array $context = []): string + { + $rule = $this->name ?: ('#' . $this->getKey()); + + return match ($eventName) { + 'created' => "Anonymization rule {$rule} created", + 'deleted' => "Anonymization rule {$rule} deleted", + 'restored' => "Anonymization rule {$rule} restored", + 'updated' => "Anonymization rule {$rule} updated", + default => $this->defaultActivityDescription($eventName, $context), + }; + } + + // ─── Relationships ────────────────────────────────────────────── + + /** + * Methods attached to this rule, with strategy and default flag on the pivot. + */ + public function methods(): BelongsToMany + { + return $this->belongsToMany( + AnonymizationMethods::class, + 'anonymization_rule_methods', + 'rule_id', + 'method_id' + ) + ->withPivot(['is_default', 'strategy']) + ->withTimestamps() + ->orderByPivot('is_default', 'desc') + ->orderBy('anonymization_methods.name'); + } + + /** + * Columns that reference this rule. + */ + public function columns(): BelongsToMany + { + return $this->belongsToMany( + AnonymousSiebelColumn::class, + 'anonymization_rule_column', + 'rule_id', + 'column_id' + )->withTimestamps(); + } + + // ─── Accessors ────────────────────────────────────────────────── + + public function getMethodsCountAttribute(): int + { + if ($this->relationLoaded('methods')) { + return $this->methods->count(); + } + + return $this->methods()->count(); + } + + public function getColumnsCountAttribute(): int + { + if ($this->relationLoaded('columns')) { + return $this->columns->count(); + } + + return $this->columns()->count(); + } + + // ─── Method resolution ────────────────────────────────────────── + + /** + * Get the default method for this rule. + */ + public function defaultMethod(): ?AnonymizationMethods + { + return $this->methods() + ->wherePivot('is_default', true) + ->first(); + } + + /** + * Resolve which method to use for a given strategy. + * Falls back to the default method if no match is found. + */ + public function resolveMethod(?string $strategy = null): ?AnonymizationMethods + { + if ($strategy !== null && $strategy !== '') { + $match = $this->methods() + ->wherePivot('strategy', $strategy) + ->first(); + + if ($match) { + return $match; + } + } + + return $this->defaultMethod(); + } + + // ─── Strategy catalog ─────────────────────────────────────────── + + /** + * Get all distinct strategy labels defined across all rules. + * Used to populate the strategy picker on jobs. + */ + public static function availableStrategies(): array + { + return DB::table('anonymization_rule_methods') + ->whereNotNull('strategy') + ->where('strategy', '!=', '') + ->distinct() + ->orderBy('strategy') + ->pluck('strategy') + ->all(); + } + + /** + * Get strategy labels defined on this specific rule. + */ + public function strategies(): array + { + return $this->methods() + ->wherePivotNotNull('strategy') + ->get() + ->pluck('pivot.strategy') + ->unique() + ->sort() + ->values() + ->all(); + } + + /** + * Summary of this rule's method assignments for display. + */ + public function methodSummary(): string + { + $methods = $this->methods; + + if ($methods->isEmpty()) { + return 'No methods assigned'; + } + + $default = $methods->firstWhere('pivot.is_default', true); + $strategies = $methods->where('pivot.is_default', false) + ->pluck('pivot.strategy') + ->filter() + ->unique() + ->sort() + ->values(); + + $parts = []; + + if ($default) { + $parts[] = 'Default: ' . $default->name; + } + + if ($strategies->isNotEmpty()) { + $parts[] = $strategies->count() . ' ' . str('strategy')->plural($strategies->count()); + } + + return implode(' · ', $parts); + } +} diff --git a/app/Models/Anonymizer/AnonymousSiebelColumn.php b/app/Models/Anonymizer/AnonymousSiebelColumn.php index 170f2aa3..7b97d719 100644 --- a/app/Models/Anonymizer/AnonymousSiebelColumn.php +++ b/app/Models/Anonymizer/AnonymousSiebelColumn.php @@ -6,9 +6,11 @@ use App\Models\Anonymizer\AnonymizationJobs; use App\Models\Anonymizer\AnonymizationColumnTag; use App\Models\Anonymizer\AnonymizationMethods; +use App\Models\Anonymizer\AnonymizationRule; use App\Traits\LogsAnonymizerActivity; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; +use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\BelongsToMany; use Illuminate\Database\Eloquent\SoftDeletes; @@ -22,13 +24,22 @@ class AnonymousSiebelColumn extends Model protected $fillable = [ 'column_name', + 'qualfield', 'column_id', + 'pr_key', + 'ref_tab_name', + 'num_distinct', + 'num_not_null', + 'num_nulls', + 'num_rows', 'data_length', 'data_precision', 'data_scale', 'nullable', 'char_length', 'column_comment', + 'sbl_user_name', + 'sbl_desc_text', 'table_comment', 'related_columns_raw', 'related_columns', @@ -48,6 +59,10 @@ class AnonymousSiebelColumn extends Model protected $casts = [ 'column_id' => 'integer', + 'num_distinct' => 'integer', + 'num_not_null' => 'integer', + 'num_nulls' => 'integer', + 'num_rows' => 'integer', 'data_length' => 'integer', 'data_precision' => 'integer', 'data_scale' => 'integer', @@ -100,13 +115,22 @@ protected static function activityLogAttributesOverride(): ?array 'table_id', 'data_type_id', 'column_name', + 'qualfield', 'column_id', + 'pr_key', + 'ref_tab_name', + 'num_distinct', + 'num_not_null', + 'num_nulls', + 'num_rows', 'data_length', 'data_precision', 'data_scale', 'nullable', 'char_length', 'column_comment', + 'sbl_user_name', + 'sbl_desc_text', 'table_comment', 'related_columns_raw', 'related_columns', @@ -211,6 +235,19 @@ public function tags(): BelongsToMany )->withTimestamps(); } + /** + * The anonymization rule assigned to this column (via pivot, but enforced as one-to-one). + */ + public function anonymizationRule(): BelongsToMany + { + return $this->belongsToMany( + AnonymizationRule::class, + 'anonymization_rule_column', + 'column_id', + 'rule_id' + )->withTimestamps(); + } + private function resolveQualifiedTableName(): ?string { $table = $this->getRelationValue('table'); diff --git a/app/Models/Anonymizer/AnonymousSiebelStaging.php b/app/Models/Anonymizer/AnonymousSiebelStaging.php index 6dc12a6f..12998c8a 100644 --- a/app/Models/Anonymizer/AnonymousSiebelStaging.php +++ b/app/Models/Anonymizer/AnonymousSiebelStaging.php @@ -50,6 +50,15 @@ protected function describeActivityEvent(string $eventName, array $context = []) 'object_type', 'table_name', 'column_name', + 'qualfield', + 'anon_rule', + 'anon_note', + 'pr_key', + 'ref_tab_name', + 'num_distinct', + 'num_not_null', + 'num_nulls', + 'num_rows', 'column_id', 'data_type', 'data_length', @@ -58,6 +67,8 @@ protected function describeActivityEvent(string $eventName, array $context = []) 'nullable', 'char_length', 'column_comment', + 'sbl_user_name', + 'sbl_desc_text', 'table_comment', 'related_columns_raw', 'related_columns', @@ -69,6 +80,10 @@ protected function describeActivityEvent(string $eventName, array $context = []) 'data_length' => 'integer', 'data_precision' => 'integer', 'data_scale' => 'integer', + 'num_distinct' => 'integer', + 'num_not_null' => 'integer', + 'num_nulls' => 'integer', + 'num_rows' => 'integer', 'char_length' => 'integer', 'related_columns' => 'array', ]; diff --git a/app/Models/Anonymizer/AnonymousUpload.php b/app/Models/Anonymizer/AnonymousUpload.php index 350a7c69..3d44d184 100644 --- a/app/Models/Anonymizer/AnonymousUpload.php +++ b/app/Models/Anonymizer/AnonymousUpload.php @@ -55,6 +55,7 @@ protected function describeActivityEvent(string $eventName, array $context = []) 'failed_phase', 'import_type', 'create_change_tickets', + 'override_anonymization_rules', 'inserted', 'updated', 'deleted', @@ -75,6 +76,7 @@ protected function describeActivityEvent(string $eventName, array $context = []) 'scope_type' => 'string', 'scope_name' => 'string', 'create_change_tickets' => 'boolean', + 'override_anonymization_rules' => 'boolean', 'inserted' => 'integer', 'updated' => 'integer', 'deleted' => 'integer', diff --git a/app/Observers/ExportObserver.php b/app/Observers/ExportObserver.php new file mode 100644 index 00000000..7b32f309 --- /dev/null +++ b/app/Observers/ExportObserver.php @@ -0,0 +1,14 @@ +syncForExport($export, ExportProgressNotificationService::STAGE_QUEUED); + } +} diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 19b610d5..ae348f28 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -7,8 +7,8 @@ use Illuminate\Support\Facades\Gate; use Illuminate\Database\Eloquent\Model; use App\Models\User; -use App\Models\FormBuilding\FormVersion; -use App\Observers\FormVersionObserver; +use App\Observers\ExportObserver; +use Filament\Actions\Exports\Models\Export; class AppServiceProvider extends ServiceProvider { @@ -55,5 +55,7 @@ public function boot(): void Gate::define('form-developer', function (User $user) { return $user->hasRole('form-developer'); }); + + Export::observe(ExportObserver::class); } } diff --git a/app/Providers/Filament/FodigPanelProvider.php b/app/Providers/Filament/FodigPanelProvider.php index d3b7a225..64f31bd9 100644 --- a/app/Providers/Filament/FodigPanelProvider.php +++ b/app/Providers/Filament/FodigPanelProvider.php @@ -36,6 +36,8 @@ public function panel(Panel $panel): Panel ->sidebarWidth('15rem') ->login() ->passwordReset() + ->databaseNotifications() + ->databaseNotificationsPolling('10s') ->colors([ 'primary' => Color::Blue, ]) diff --git a/app/Services/Anonymizer/AnonymizationJobReadinessService.php b/app/Services/Anonymizer/AnonymizationJobReadinessService.php index 5693b6e0..49a71051 100644 --- a/app/Services/Anonymizer/AnonymizationJobReadinessService.php +++ b/app/Services/Anonymizer/AnonymizationJobReadinessService.php @@ -37,10 +37,17 @@ public function reportForJob(int $jobId, int $sampleIssues = 25): array $missingMethodRequired = (int) (clone $base) ->where('c.anonymization_required', true) - ->whereNotExists(function ($sub) { - $sub->selectRaw('1') - ->from('anonymization_method_column as amc') - ->whereColumn('amc.column_id', 'c.id'); + ->where(function ($q) { + $q->whereNotExists(function ($sub) { + $sub->selectRaw('1') + ->from('anonymization_method_column as amc') + ->whereColumn('amc.column_id', 'c.id'); + })->whereNotExists(function ($sub) { + $sub->selectRaw('1') + ->from('anonymization_rule_column as arc') + ->join('anonymization_rule_methods as arm', 'arm.rule_id', '=', 'arc.rule_id') + ->whereColumn('arc.column_id', 'c.id'); + }); }) ->distinct('c.id') ->count('c.id'); @@ -108,10 +115,17 @@ public function reportForColumnIds(array $columnIds, ?int $jobId = null, int $li $missingMethodRequired = (int) (clone $base) ->where('c.anonymization_required', true) - ->whereNotExists(function ($sub) { - $sub->selectRaw('1') - ->from('anonymization_method_column as amc') - ->whereColumn('amc.column_id', 'c.id'); + ->where(function ($q) { + $q->whereNotExists(function ($sub) { + $sub->selectRaw('1') + ->from('anonymization_method_column as amc') + ->whereColumn('amc.column_id', 'c.id'); + })->whereNotExists(function ($sub) { + $sub->selectRaw('1') + ->from('anonymization_rule_column as arc') + ->join('anonymization_rule_methods as arm', 'arm.rule_id', '=', 'arc.rule_id') + ->whereColumn('arc.column_id', 'c.id'); + }); }) ->distinct('c.id') ->count('c.id'); @@ -162,6 +176,7 @@ public function reportForColumnIds(array $columnIds, ?int $jobId = null, int $li ->whereIn('id', $columnIds) ->where('anonymization_required', true) ->whereDoesntHave('anonymizationMethods') + ->whereDoesntHave('anonymizationRule.methods') ->count(); $needsReview = AnonymousSiebelColumn::query() @@ -194,6 +209,7 @@ public function reportForColumnIds(array $columnIds, ?int $jobId = null, int $li 'table.schema.database', 'parentColumns.table.schema.database', 'anonymizationMethods.packages', + 'anonymizationRule.methods', ]) ->withCount('anonymizationMethods') ->whereIn('id', $columnIds) @@ -207,7 +223,11 @@ public function reportForColumnIds(array $columnIds, ?int $jobId = null, int $li ? $this->pivotMethodMap($jobId, $columns->pluck('id')->all()) : collect(); - return $this->buildReportFromColumns($columns, $pivotMethods, $limitIssues); + $jobScope = $jobId !== null + ? $this->jobScopeContext($jobId) + : null; + + return $this->buildReportFromColumns($columns, $pivotMethods, $limitIssues, $jobScope); } public function reportForScope(array $scope, ?int $jobId = null, int $sampleIssues = 25): array @@ -232,16 +252,29 @@ public function reportForScope(array $scope, ?int $jobId = null, int $sampleIssu $sub->selectRaw('1') ->from('anonymization_method_column as amc') ->whereColumn('amc.column_id', 'anonymous_siebel_columns.id'); + }) + ->orWhereExists(function ($sub) { + $sub->selectRaw('1') + ->from('anonymization_rule_column as arc') + ->join('anonymization_rule_methods as arm', 'arm.rule_id', '=', 'arc.rule_id') + ->whereColumn('arc.column_id', 'anonymous_siebel_columns.id'); }); }) ->count('anonymous_siebel_columns.id'); $missingMethodRequired = (clone $base) ->where('anonymous_siebel_columns.anonymization_required', true) - ->whereNotExists(function ($sub) { - $sub->selectRaw('1') - ->from('anonymization_method_column as amc') - ->whereColumn('amc.column_id', 'anonymous_siebel_columns.id'); + ->where(function ($q) { + $q->whereNotExists(function ($sub) { + $sub->selectRaw('1') + ->from('anonymization_method_column as amc') + ->whereColumn('amc.column_id', 'anonymous_siebel_columns.id'); + })->whereNotExists(function ($sub) { + $sub->selectRaw('1') + ->from('anonymization_rule_column as arc') + ->join('anonymization_rule_methods as arm', 'arm.rule_id', '=', 'arc.rule_id') + ->whereColumn('arc.column_id', 'anonymous_siebel_columns.id'); + }); }) ->count('anonymous_siebel_columns.id'); @@ -267,6 +300,12 @@ public function reportForScope(array $scope, ?int $jobId = null, int $sampleIssu $sub->selectRaw('1') ->from('anonymization_method_column as amc') ->whereColumn('amc.column_id', 'anonymous_siebel_columns.id'); + }) + ->orWhereExists(function ($sub) { + $sub->selectRaw('1') + ->from('anonymization_rule_column as arc') + ->join('anonymization_rule_methods as arm', 'arm.rule_id', '=', 'arc.rule_id') + ->whereColumn('arc.column_id', 'anonymous_siebel_columns.id'); }); }) ->orderByDesc('anonymous_siebel_columns.anonymization_required') @@ -297,7 +336,7 @@ public function reportForScope(array $scope, ?int $jobId = null, int $sampleIssu return $report; } - private function buildReportFromColumns(Collection $columns, Collection $pivotMethods, int $limitIssues): array + private function buildReportFromColumns(Collection $columns, Collection $pivotMethods, int $limitIssues, ?array $jobScope = null): array { $issues = []; @@ -305,7 +344,14 @@ private function buildReportFromColumns(Collection $columns, Collection $pivotMe $qualified = $this->qualifiedColumnName($column); $url = AnonymousSiebelColumnResource::getUrl('edit', ['record' => $column]); - $methodCount = (int) ($column->anonymization_methods_count ?? 0); + $directMethodCount = (int) ($column->anonymization_methods_count ?? 0); + $ruleMethodCount = (int) ($column->anonymizationRule ?? collect()) + ->flatMap(fn($rule) => $rule->methods ?? collect()) + ->pluck('id') + ->filter() + ->unique() + ->count(); + $methodCount = $directMethodCount + $ruleMethodCount; $isRequired = (bool) ($column->anonymization_required ?? false); $reviewed = (bool) ($column->anonymization_requirement_reviewed ?? false); @@ -328,13 +374,13 @@ private function buildReportFromColumns(Collection $columns, Collection $pivotMe scopeType: 'column', scopeName: $qualified, title: 'Required column has no anonymization method', - details: 'Job SQL will not include a masking statement for this required column until at least one method is attached.', + details: 'Job SQL will not include a masking statement for this required column until at least one method is attached directly or via the column\'s anonymization rule.', url: $url, ); } $pivotMethodId = $pivotMethods->get($column->id); - if ($pivotMethodId === null && $methodCount > 1) { + if ($pivotMethodId === null && $directMethodCount > 1) { $methodNames = $column->anonymizationMethods->pluck('name')->filter()->take(5)->values()->all(); $issues[] = $this->issue( severity: 'warning', @@ -354,7 +400,15 @@ private function buildReportFromColumns(Collection $columns, Collection $pivotMe if ($parents->isNotEmpty()) { $selectedLookup = $columns->keyBy('id'); $missingParents = $parents - ->filter(fn(AnonymousSiebelColumn $p) => ! $selectedLookup->has($p->id)) + ->filter(function (AnonymousSiebelColumn $p) use ($selectedLookup, $jobScope): bool { + if ($selectedLookup->has($p->id)) { + return false; + } + + // If the parent column's table is already in the job scope, + // do not flag this as "missing dependency". + return ! $this->columnInJobScope($p, $jobScope); + }) ->take(5) ->map(fn(AnonymousSiebelColumn $p) => $this->qualifiedColumnName($p)) ->values() @@ -560,6 +614,79 @@ private function scopedColumnsQuery(array $scope): Builder return $query->distinct(); } + private function jobScopeContext(int $jobId): array + { + if ($jobId <= 0) { + return [ + 'databases' => [], + 'schemas' => [], + 'tables' => [], + ]; + } + + $databaseIds = DB::table('anonymization_job_databases') + ->where('job_id', $jobId) + ->pluck('database_id') + ->map(fn($id) => (int) $id) + ->filter(fn(int $id) => $id > 0) + ->values() + ->all(); + + $schemaIds = DB::table('anonymization_job_schemas') + ->where('job_id', $jobId) + ->pluck('schema_id') + ->map(fn($id) => (int) $id) + ->filter(fn(int $id) => $id > 0) + ->values() + ->all(); + + $tableIds = DB::table('anonymization_job_tables') + ->where('job_id', $jobId) + ->pluck('table_id') + ->map(fn($id) => (int) $id) + ->filter(fn(int $id) => $id > 0) + ->values() + ->all(); + + return [ + 'databases' => $databaseIds, + 'schemas' => $schemaIds, + 'tables' => $tableIds, + ]; + } + + private function columnInJobScope(AnonymousSiebelColumn $column, ?array $jobScope): bool + { + if (! is_array($jobScope)) { + return false; + } + + $table = $column->getRelationValue('table'); + $schema = $table?->getRelationValue('schema'); + + $tableId = (int) ($table?->id ?? 0); + $schemaId = (int) ($schema?->id ?? 0); + $databaseId = (int) ($schema?->database_id ?? 0); + + $tableIds = $jobScope['tables'] ?? []; + $schemaIds = $jobScope['schemas'] ?? []; + $databaseIds = $jobScope['databases'] ?? []; + + if ($tableId > 0 && in_array($tableId, $tableIds, true)) { + return true; + } + + if ($schemaId > 0 && in_array($schemaId, $schemaIds, true)) { + return true; + } + + if ($databaseId > 0 && in_array($databaseId, $databaseIds, true)) { + return true; + } + + return false; + } + private function qualifiedColumnName(AnonymousSiebelColumn $column): string { $table = $column->getRelationValue('table'); diff --git a/app/Services/Anonymizer/AnonymizationJobScriptService.php b/app/Services/Anonymizer/AnonymizationJobScriptService.php index a00ae598..aaf32493 100644 --- a/app/Services/Anonymizer/AnonymizationJobScriptService.php +++ b/app/Services/Anonymizer/AnonymizationJobScriptService.php @@ -8,6 +8,7 @@ use App\Models\Anonymizer\AnonymousSiebelColumn; use App\Models\Anonymizer\AnonymousSiebelTable; use App\Models\Anonymizer\AnonymizationMethods; +use App\Models\Anonymizer\AnonymizationPackage; use Illuminate\Support\Collection; use Illuminate\Support\Str; use Illuminate\Support\Facades\DB; @@ -19,6 +20,13 @@ class AnonymizationJobScriptService private const WHERE_IN_CHUNK_SIZE = 10000; + /** + * Number of table IDs to include per WHERE IN chunk when loading columns + * for inline select-list building, PK/FK generation, etc. Keeps peak memory + * bounded for schema-wide (FULL) jobs that can span thousands of tables. + */ + protected const TABLE_COLUMN_CHUNK_SIZE = 100; + protected const SEED_PLACEHOLDERS = [ '{{SEED_MAP_LOOKUP}}', '{{SEED_EXPR}}', @@ -30,6 +38,14 @@ class AnonymizationJobScriptService // @var array protected array $methodCache = []; + // Cache table column-name lookups for seed fallback inference. + // Key: table_id, Value: uppercase column-name map. + protected array $tableColumnNameCache = []; + + // The strategy selected on the current job, used by resolveMethodForColumn + // to pick the correct method from a rule's method assignments. + protected ?string $currentJobStrategy = null; + protected function oracleStringLiteral(?string $value): string { if ($value === null) { @@ -95,6 +111,30 @@ protected function normalizeRelationKind(?string $value): string return $value === 'view' ? 'view' : 'table'; } + protected function shouldNullUnselectedColumns(?AnonymizationJobs $job): bool + { + return $job?->job_type === AnonymizationJobs::TYPE_PARTIAL; + } + + protected function loadColumnsForIds(array $columnIds): \Illuminate\Database\Eloquent\Collection + { + $columnIds = array_values(array_unique(array_filter(array_map('intval', $columnIds)))); + if ($columnIds === []) { + return new \Illuminate\Database\Eloquent\Collection(); + } + + return AnonymousSiebelColumn::query() + ->with([ + 'anonymizationMethods.packages', + 'anonymizationRule.methods.packages', + 'table.schema.database', + 'dataType', + 'parentColumns.table.schema.database', + ]) + ->whereIn('id', $columnIds) + ->get(); + } + protected function methodUsesSeedPlaceholders(?AnonymizationMethods $method): bool { $sqlBlock = trim((string) ($method?->sql_block ?? '')); @@ -114,7 +154,13 @@ protected function methodUsesSeedPlaceholders(?AnonymizationMethods $method): bo protected function oracleColumnMaxLength(AnonymousSiebelColumn $column): int { - $typeName = strtolower(trim((string) ($column->data_type ?? ''))); + // Prefer the loaded dataType relation (same source used by oracleColumnTypeForColumn) + // so that max-length expressions stay consistent with DDL column type declarations. + // Fall back to the raw `data_type` field when the relation is not loaded. + $typeName = strtolower(trim((string) ($column->getRelationValue('dataType')?->data_type_name ?? ''))); + if ($typeName === '') { + $typeName = strtolower(trim((string) ($column->data_type ?? ''))); + } if (str_contains($typeName, 'clob')) { return 4000; @@ -137,10 +183,31 @@ protected function oracleColumnMaxLength(AnonymousSiebelColumn $column): int return 4000; } + protected function isClobColumn(AnonymousSiebelColumn $column): bool + { + $typeName = strtolower(trim((string) ($column->getRelationValue('dataType')?->data_type_name ?? ''))); + + if ($typeName === '') { + $typeName = strtolower(trim((string) ($column->data_type ?? ''))); + } + + return $typeName !== '' && str_contains($typeName, 'clob'); + } + + protected function oracleNullExpressionForColumn(AnonymousSiebelColumn $column): string + { + if ($this->isClobColumn($column)) { + return 'EMPTY_CLOB()'; + } + + return 'CAST(NULL AS ' . $this->oracleColumnTypeForColumn($column) . ')'; + } + public function buildForJob(AnonymizationJobs $job): string { $job->loadMissing([ 'columns.anonymizationMethods.packages', + 'columns.anonymizationRule.methods.packages', 'columns.table.schema.database', 'columns.parentColumns.table.schema.database', ]); @@ -204,12 +271,15 @@ public function buildCloneOnlyForJob(AnonymizationJobs $job): string } $lines = $this->buildHeaderLines($this->jobHeaderMetadata($job), $rewriteContext); + $lines = array_merge($lines, $this->buildDeterministicRandomSeedSection($rewriteContext)); $lines[] = $this->commentDivider('='); $targetMode = $this->normalizeJobOption((string) ($rewriteContext['target_table_mode'] ?? '')) ?: 'prefixed'; $modeLabel = $targetMode === 'anon' ? 'mode INITIAL_* → ANON_*' - : ('prefix ' . ($rewriteContext['table_prefix'] ?? 'none')); + : ($targetMode === 'exact' + ? 'exact source table names' + : ('prefix ' . ($rewriteContext['table_prefix'] ?? 'none'))); $lines[] = '-- Target Tables' . ' (schema ' . ($rewriteContext['target_schema'] ?? 'unknown') . ')' . ' (' . $modeLabel . ')'; @@ -270,6 +340,7 @@ public function reviewSeedContractsForJob(AnonymizationJobs $job): array if (method_exists($columns, 'loadMissing')) { $columns->loadMissing([ 'anonymizationMethods.packages', + 'anonymizationRule.methods.packages', 'table.schema.database', 'parentColumns.table.schema.database', ]); @@ -296,30 +367,46 @@ public function buildForColumnIds(array $columnIds, ?AnonymizationJobs $job = nu // Use smaller chunks for large datasets to reduce peak memory $chunkSize = count($columnIds) > 5000 ? 500 : self::WHERE_IN_CHUNK_SIZE; + // Select only fields used by downstream SQL generation. + $columnSelect = [ + 'id', + 'column_name', + 'table_id', + 'data_type_id', + 'data_length', + 'data_precision', + 'data_scale', + 'char_length', + 'seed_contract_mode', + 'seed_contract_expression', + 'anonymization_required', + ]; + foreach (array_chunk($columnIds, $chunkSize) as $chunk) { $batch = AnonymousSiebelColumn::query() + ->select($columnSelect) ->with([ - 'anonymizationMethods', // Load methods without deep packages initially + 'anonymizationMethods', + 'anonymizationRule.methods', 'table.schema.database', 'dataType', ]) ->whereIn('id', $chunk) ->get(); - // Use push with spread to preserve items without losing Eloquent collection type foreach ($batch as $item) { $columns->push($item); } - // Free up memory between chunks unset($batch); + gc_collect_cycles(); } - // Load parentColumns relationships separately with just the IDs needed - // to avoid N+1 but without the deep eager loading overhead - // Convert to Eloquent Collection to enable lazy loading + // Load parentColumns separately with only the fields needed $columns = AnonymousSiebelColumn::hydrate($columns->all()); - $columns->load(['parentColumns']); + $columns->load(['parentColumns' => function ($q) { + $q->select(['anonymous_siebel_columns.id', 'column_name', 'table_id', 'seed_contract_mode']); + }]); // Load packages only for methods that are actually used $methodsWithPackages = $columns @@ -351,6 +438,7 @@ public function buildForColumnIdsChunk(array $columnIds, AnonymizationJobs $job, $columns = AnonymousSiebelColumn::with([ 'anonymizationMethods', + 'anonymizationRule.methods', 'table.schema.database' ]) ->whereIn('id', $columnIds) @@ -426,6 +514,7 @@ public function buildForColumnIdsOptimized(array $columnIds, ?AnonymizationJobs // Step 1: Pre-cache all column->method mappings using a single query $this->methodCache = []; + $this->currentJobStrategy = $job?->strategy; $methodMappings = DB::table('anonymization_method_column') ->whereIn('column_id', $columnIds) ->select('column_id', 'method_id') @@ -467,12 +556,31 @@ public function buildForColumnIdsOptimized(array $columnIds, ?AnonymizationJobs $batchSize = 500; $processed = 0; + // Select only fields used by downstream SQL generation. + $columnSelect = [ + 'id', + 'column_name', + 'table_id', + 'data_type_id', + 'data_length', + 'data_precision', + 'data_scale', + 'char_length', + 'seed_contract_mode', + 'seed_contract_expression', + 'anonymization_required', + ]; + foreach (array_chunk($columnIds, $batchSize) as $chunkIndex => $chunk) { $batch = AnonymousSiebelColumn::query() + ->select($columnSelect) ->with([ 'table.schema.database', 'dataType', - 'parentColumns', + 'parentColumns' => function ($q) { + $q->select(['anonymous_siebel_columns.id', 'column_name', 'table_id', 'seed_contract_mode']); + }, + 'anonymizationRule.methods', ]) ->whereIn('id', $chunk) ->get(); @@ -531,172 +639,558 @@ public function buildForColumnIdsOptimized(array $columnIds, ?AnonymizationJobs return $result; } + /** + * Prepare shared context for chunked SQL generation. + * + * Uses an entirely raw-query approach so that zero Eloquent column models + * are accumulated in memory. Only the ~30 method models (with packages) + * and a handful of seed-provider column models are hydrated. + */ public function prepareChunkedContextForColumnIds(array $columnIds, ?AnonymizationJobs $job = null): array { + $this->currentJobStrategy = $job?->strategy; $columnIds = array_values(array_unique(array_filter(array_map('intval', $columnIds)))); - Log::info('AnonymizationJobScriptService: preparing chunked context', [ + Log::info('AnonymizationJobScriptService: preparing chunked context (lightweight)', [ 'job_id' => $job?->id, 'column_count' => count($columnIds), 'memory_mb' => round(memory_get_usage(true) / 1024 / 1024, 2), ]); + $emptyResult = [ + 'ordered_table_ids' => [], + 'selected_column_ids' => [], + 'prefix_sql' => '', + 'suffix_sql' => '', + 'seed_provider_map' => [], + 'rewrite_context' => [], + 'seed_map_context' => [], + 'halted' => false, + ]; + if ($columnIds === []) { - return [ - 'ordered_table_ids' => [], - 'selected_column_ids' => [], - 'prefix_sql' => '', - 'suffix_sql' => '', - 'seed_provider_map' => [], - 'rewrite_context' => [], - 'seed_map_context' => [], - 'halted' => false, - ]; + return $emptyResult; } - $columns = collect(); - $batchSize = 500; - $processed = 0; + // ── 1. Table ordering via raw queries (zero Eloquent) ────────── + $tableIdsByColumn = []; // column_id → table_id + $tableEdges = []; // parentTableId → [childTableId => true, ...] + $allTableIds = []; // table_id => true - foreach (array_chunk($columnIds, $batchSize) as $chunk) { - $batch = AnonymousSiebelColumn::query() - ->with([ - 'anonymizationMethods', - 'table.schema.database', - 'dataType', - 'parentColumns', - ]) + foreach (array_chunk($columnIds, self::WHERE_IN_CHUNK_SIZE) as $chunk) { + $rows = DB::table('anonymous_siebel_columns') ->whereIn('id', $chunk) + ->select(['id', 'table_id']) ->get(); - - foreach ($batch as $item) { - $columns->push($item); + foreach ($rows as $r) { + $tableIdsByColumn[(int) $r->id] = (int) $r->table_id; + $allTableIds[(int) $r->table_id] = true; } - - unset($batch); - - $processed += count($chunk); - Log::info('AnonymizationJobScriptService: chunked context load progress', [ - 'job_id' => $job?->id, - 'processed' => $processed, - 'total' => count($columnIds), - 'percent' => count($columnIds) > 0 ? round(($processed / count($columnIds)) * 100, 1) : 100, - 'memory_mb' => round(memory_get_usage(true) / 1024 / 1024, 2), - ]); } - if (! $columns instanceof \Illuminate\Database\Eloquent\Collection) { - $columns = new \Illuminate\Database\Eloquent\Collection($columns->all()); + // Cross-table dependency edges (parent → child). + foreach (array_chunk($columnIds, self::WHERE_IN_CHUNK_SIZE) as $chunk) { + $deps = DB::table('anonymous_siebel_column_dependencies as dep') + ->join('anonymous_siebel_columns as child', 'child.id', '=', 'dep.child_field_id') + ->join('anonymous_siebel_columns as parent', 'parent.id', '=', 'dep.parent_field_id') + ->whereIn('dep.child_field_id', $chunk) + ->select([ + 'child.table_id as child_table_id', + 'parent.table_id as parent_table_id', + ]) + ->get(); + foreach ($deps as $d) { + $ct = (int) $d->child_table_id; + $pt = (int) $d->parent_table_id; + $allTableIds[$ct] = true; + $allTableIds[$pt] = true; + if ($ct !== $pt && $pt > 0 && $ct > 0) { + $tableEdges[$pt][$ct] = true; + } + } } - $methodItems = $columns->pluck('anonymizationMethods')->flatten()->filter()->unique('id'); - if ($methodItems->isNotEmpty()) { - $methods = AnonymizationMethods::hydrate($methodItems->values()->all()); - $methods->loadMissing('packages'); + // Kahn's topological sort on table IDs. + $sortedTableIds = array_keys($allTableIds); + sort($sortedTableIds); + $inDeg = array_fill_keys($sortedTableIds, 0); + foreach ($tableEdges as $from => $targets) { + foreach (array_keys($targets) as $to) { + if (! isset($inDeg[$to])) { + $inDeg[$to] = 0; + } + $inDeg[$to]++; + } + } + $queue = []; + foreach ($inDeg as $id => $c) { + if ($c === 0) { + $queue[] = $id; + } + } + $orderedTableIds = []; + while ($queue !== []) { + $cur = array_shift($queue); + $orderedTableIds[] = $cur; + foreach (array_keys($tableEdges[$cur] ?? []) as $to) { + $inDeg[$to]--; + if ($inDeg[$to] === 0) { + $queue[] = $to; + } + } + } + // Append any cycles / unreachable nodes. + if (count($orderedTableIds) < count($sortedTableIds)) { + $remaining = array_diff($sortedTableIds, $orderedTableIds); + sort($remaining); + $orderedTableIds = array_merge($orderedTableIds, $remaining); } - Log::info('AnonymizationJobScriptService: chunked context methods loaded', [ - 'job_id' => $job?->id, - 'method_count' => $methodItems->count(), - 'memory_mb' => round(memory_get_usage(true) / 1024 / 1024, 2), - ]); - - $ordered = $this->topologicallySortColumns($columns); - if ($ordered->isEmpty()) { - return [ - 'ordered_table_ids' => [], - 'selected_column_ids' => [], - 'prefix_sql' => '', - 'suffix_sql' => '', - 'seed_provider_map' => [], - 'rewrite_context' => [], - 'seed_map_context' => [], - 'halted' => false, - ]; + if ($orderedTableIds === []) { + return $emptyResult; } - Log::info('AnonymizationJobScriptService: chunked context ordered columns', [ - 'job_id' => $job?->id, - 'ordered_count' => $ordered->count(), - 'memory_mb' => round(memory_get_usage(true) / 1024 / 1024, 2), - ]); + unset($tableEdges, $inDeg, $sortedTableIds); + gc_collect_cycles(); - $seedProviders = $this->resolveSeedProviders($ordered); - Log::info('AnonymizationJobScriptService: chunked context seed providers resolved', [ + Log::info('AnonymizationJobScriptService: lightweight context tables ordered', [ 'job_id' => $job?->id, - 'provider_count' => count($seedProviders), + 'table_count' => count($orderedTableIds), 'memory_mb' => round(memory_get_usage(true) / 1024 / 1024, 2), ]); - $rewriteContext = $this->buildJobTableRewriteContext($ordered, $job, true); + + // ── 2. Rewrite context (table → schema → database mapping) ──── + // Load table models (with schema.database) for the rewrite context + // builder. There are far fewer tables than columns (~3-5 K vs 258 K). + $tableModels = AnonymousSiebelTable::withTrashed() + ->with(['schema.database']) + ->whereIn('id', array_keys($allTableIds)) + ->get() + ->keyBy(fn($t) => (int) $t->getKey()); + + // Build a minimal stub collection that satisfies + // buildJobTableRewriteContext's signature (Collection of columns with + // a ->table relation). One stub per unique table is sufficient. + $stubColumns = collect(); + foreach ($tableModels as $tid => $tableModel) { + $stub = new AnonymousSiebelColumn(); + $stub->id = 0; + $stub->table_id = $tid; + $stub->setRelation('table', $tableModel); + $stub->setRelation('parentColumns', collect()); + $stubColumns->push($stub); + } + + $rewriteContext = $this->buildJobTableRewriteContext($stubColumns, $job, true); $rewriteContext['masking_mode'] = 'inline'; $rewriteContext['source_alias'] = 'src'; - $seedMapContext = $this->jobUsesSeedMapPlaceholders($ordered) - ? $this->buildSeedMapContext($ordered, $seedProviders, $rewriteContext, $job) - : []; + unset($stubColumns, $tableModels); + gc_collect_cycles(); - Log::info('AnonymizationJobScriptService: chunked context rewrite/seed map ready', [ + Log::info('AnonymizationJobScriptService: lightweight context rewrite ready', [ 'job_id' => $job?->id, - 'seed_map_count' => is_array($seedMapContext['providers'] ?? null) ? count($seedMapContext['providers']) : 0, + 'tables_in_rewrite' => count($rewriteContext['tables_by_id'] ?? []), 'memory_mb' => round(memory_get_usage(true) / 1024 / 1024, 2), ]); - $prefixLines = $this->buildHeaderLines($this->jobHeaderMetadata($job), $rewriteContext); + // ── 3. Method resolution & seed provider map ────────────────── + // Pre-resolve column → method_id from the job pivot (raw query). + $columnMethodMap = []; // column_id => method_id + if ($job) { + foreach (array_chunk($columnIds, self::WHERE_IN_CHUNK_SIZE) as $chunk) { + $rows = DB::table('anonymization_job_columns') + ->where('job_id', $job->id) + ->whereIn('column_id', $chunk) + ->whereNotNull('anonymization_method_id') + ->select(['column_id', 'anonymization_method_id']) + ->get(); + foreach ($rows as $r) { + $columnMethodMap[(int) $r->column_id] = (int) $r->anonymization_method_id; + } + } + } - $contractReview = $this->validateSeedContracts($ordered, $seedProviders, $seedMapContext); + // Load all method models (small — typically < 50). + $allMethodIds = array_values(array_unique(array_values($columnMethodMap))); + $allMethods = $allMethodIds !== [] + ? AnonymizationMethods::withTrashed()->with('packages')->whereIn('id', $allMethodIds)->get()->keyBy('id') + : collect(); - if ($contractReview['errors']->isNotEmpty() || $contractReview['warnings']->isNotEmpty()) { - $prefixLines = array_merge($prefixLines, $this->renderContractReview($contractReview)); + // Identify seed providers / consumers. + $emitsSeedMethodIds = $allMethods->filter(fn($m) => $m->emits_seed)->pluck('id')->flip()->all(); + $requiresSeedMethodIds = $allMethods->filter(fn($m) => $m->requires_seed)->pluck('id')->flip()->all(); - if ($contractReview['errors']->isNotEmpty()) { - $prefixLines[] = '-- SQL generation halted due to blocking seed contract violations.'; + $providerColumnIds = []; + $consumerColumnIds = []; + foreach ($columnMethodMap as $cid => $mid) { + if (isset($emitsSeedMethodIds[$mid])) { + $providerColumnIds[] = $cid; + } + if (isset($requiresSeedMethodIds[$mid])) { + $consumerColumnIds[] = $cid; + } + } - return [ - 'ordered_table_ids' => [], - 'selected_column_ids' => [], - 'prefix_sql' => trim(implode(PHP_EOL, $prefixLines)), - 'suffix_sql' => '', - 'seed_provider_map' => [], - 'rewrite_context' => $rewriteContext, - 'seed_map_context' => $seedMapContext, - 'halted' => true, - ]; + $providersByTable = []; + foreach ($providerColumnIds as $pid) { + $tid = $tableIdsByColumn[$pid] ?? 0; + if ($tid > 0) { + $providersByTable[$tid][] = $pid; } } - $packages = $this->collectPackagesFromColumns($ordered); - if ($packages->isNotEmpty()) { - $prefixLines[] = $this->commentDivider('='); - $prefixLines[] = '-- Package Dependencies'; - $prefixLines[] = '-- Ordered for deterministic exports'; - $prefixLines[] = $this->commentDivider('='); - $prefixLines[] = ''; + // Hydrate only the seed-provider columns (tiny subset). + $providerModels = collect(); + if ($providerColumnIds !== []) { + $providerModels = AnonymousSiebelColumn::query() + ->select([ + 'id', + 'column_name', + 'table_id', + 'data_type_id', + 'data_length', + 'data_precision', + 'data_scale', + 'char_length', + 'seed_contract_mode', + 'seed_contract_expression' + ]) + ->with(['dataType']) + ->whereIn('id', $providerColumnIds) + ->get() + ->keyBy('id'); + } - foreach ($packages as $package) { - $prefixLines[] = $this->commentDivider('-'); - $prefixLines[] = '-- Package: ' . $package->display_label; + $seedProviderMap = []; + foreach ($providerColumnIds as $pid) { + $provider = $providerModels->get($pid); + $seedProviderMap[$pid] = [ + 'provider_id' => $pid, + 'expression' => $provider ? $this->seedExpressionForProvider($provider) : 'tgt.UNKNOWN', + ]; + } - if ($package->summary) { - $prefixLines[] = '-- ' . trim($package->summary); + $consumerFallbackExpr = []; + $parentProviderByChild = []; + if ($consumerColumnIds !== []) { + $selectedColumnIdSet = array_fill_keys($columnIds, true); + foreach (array_chunk($consumerColumnIds, self::WHERE_IN_CHUNK_SIZE) as $chunk) { + $rows = DB::table('anonymous_siebel_column_dependencies as dep') + ->join('anonymous_siebel_columns as child', 'child.id', '=', 'dep.child_field_id') + ->join('anonymous_siebel_columns as parent', 'parent.id', '=', 'dep.parent_field_id') + ->whereIn('dep.child_field_id', $chunk) + ->select([ + 'child.id as child_id', + 'child.column_name as child_column_name', + 'parent.id as parent_id', + 'parent.column_name as parent_column_name', + ]) + ->get(); + + foreach ($rows as $row) { + $childId = (int) ($row->child_id ?? 0); + $childColumnName = trim((string) ($row->child_column_name ?? '')); + if ($childId <= 0 || $childColumnName === '') { + continue; + } + + $parentColumnName = strtoupper(trim((string) ($row->parent_column_name ?? ''))); + $parentId = (int) ($row->parent_id ?? 0); + $isRowIdParent = $parentColumnName === 'ROW_ID'; + + if ($isRowIdParent) { + $consumerFallbackExpr[$childId] = 'tgt.' . $childColumnName; + } + + if ($parentId <= 0 || ! isset($selectedColumnIdSet[$parentId])) { + continue; + } + + $existing = $parentProviderByChild[$childId] ?? null; + if (! $existing || ($isRowIdParent && ! ($existing['is_row_id'] ?? false))) { + $parentProviderByChild[$childId] = [ + 'provider_id' => $parentId, + 'is_row_id' => $isRowIdParent, + ]; + } } + } - foreach ($package->compiledSqlBlocks() as $block) { - $prefixLines[] = trim($this->rewritePackageSqlBlock((string) $block, $rewriteContext)); - $prefixLines[] = ''; + // FK metadata fallback: for any consumer column that still has no explicit parent + // dependency, infer the parent ROW_ID provider from related_columns / related_columns_raw. + // This mirrors inferProviderFromRelatedColumnMeta used in the non-chunked path. + $unresolvedConsumers = array_values(array_diff($consumerColumnIds, array_keys($parentProviderByChild))); + if ($unresolvedConsumers !== [] && $providersByTable !== []) { + // Build UPPER(SCHEMA|TABLE) → table_id from the rewrite context. + $tablesBySchemaTableUpper = []; + foreach (($rewriteContext['tables_by_id'] ?? []) as $mapTid => $mapEntry) { + $mapS = strtoupper(trim((string) ($mapEntry['source_schema'] ?? ''))); + $mapT = strtoupper(trim((string) ($mapEntry['source_table'] ?? ''))); + if ($mapS !== '' && $mapT !== '') { + $tablesBySchemaTableUpper[$mapS . '|' . $mapT] = (int) $mapTid; + } + } + + foreach (array_chunk($unresolvedConsumers, self::WHERE_IN_CHUNK_SIZE) as $fkChunk) { + $fkRows = DB::table('anonymous_siebel_columns as c') + ->join('anonymous_siebel_tables as t', 't.id', '=', 'c.table_id') + ->join('anonymous_siebel_schemas as s', 's.id', '=', 't.schema_id') + ->whereIn('c.id', $fkChunk) + ->select(['c.id', 'c.related_columns_raw', 'c.related_columns', 's.schema_name']) + ->get(); + + foreach ($fkRows as $fkRow) { + $cid = (int) ($fkRow->id ?? 0); + $schemaName = strtoupper(trim((string) ($fkRow->schema_name ?? ''))); + if ($cid <= 0) { + continue; + } + + // Parse FK relationships: prefer JSON, fall back to raw string. + $related = []; + if ($fkRow->related_columns && trim($fkRow->related_columns) !== '') { + $decoded = json_decode($fkRow->related_columns, true); + if (is_array($decoded)) { + $related = $decoded; + } + } + if ($related === [] && $fkRow->related_columns_raw && trim($fkRow->related_columns_raw) !== '') { + foreach (preg_split('/\s*;\s*/', trim($fkRow->related_columns_raw)) ?: [] as $rawPart) { + $rawPart = trim((string) $rawPart); + if ($rawPart === '') { + continue; + } + if (preg_match('/^([^.\s]+)\.([^.\s]+)\.([^\s]+)(?:\s+via\s+\S+)?$/i', $rawPart, $rm)) { + $related[] = ['direction' => 'OUTBOUND', 'schema' => $rm[1], 'table' => $rm[2], 'column' => trim($rm[3], ',')]; + } else { + $related[] = ['direction' => 'OUTBOUND', 'schema' => $schemaName, 'table' => $rawPart, 'column' => 'ROW_ID']; + } + } + } + + foreach ($related as $rel) { + if (strtoupper((string) ($rel['direction'] ?? 'OUTBOUND')) !== 'OUTBOUND') { + continue; + } + $pSchema = strtoupper(trim((string) ($rel['schema'] ?? ''))); + $pTable = strtoupper(trim((string) ($rel['table'] ?? ''))); + $pCol = strtoupper(trim((string) ($rel['column'] ?? 'ROW_ID'))); + if ($pSchema === '' || $pTable === '' || $pCol !== 'ROW_ID') { + continue; + } + $parentTableId = $tablesBySchemaTableUpper[$pSchema . '|' . $pTable] ?? null; + $tableProviderList = $parentTableId ? ($providersByTable[$parentTableId] ?? []) : []; + if ($tableProviderList === []) { + continue; + } + $parentProviderId = $tableProviderList[0]; + if (! isset($selectedColumnIdSet[$parentProviderId])) { + continue; + } + $parentProviderByChild[$cid] = [ + 'provider_id' => $parentProviderId, + 'is_row_id' => true, + ]; + break; // take the first matching FK relationship + } + } } } - $prefixLines[] = $this->commentDivider('='); - $prefixLines[] = ''; + $additionalProviderIds = []; + foreach ($parentProviderByChild as $candidate) { + $candidateProviderId = (int) ($candidate['provider_id'] ?? 0); + if ($candidateProviderId > 0 && ! $providerModels->has($candidateProviderId)) { + $additionalProviderIds[] = $candidateProviderId; + } + } + + $additionalProviderIds = array_values(array_unique(array_filter(array_map('intval', $additionalProviderIds)))); + if ($additionalProviderIds !== []) { + $additionalProviders = AnonymousSiebelColumn::query() + ->select([ + 'id', + 'column_name', + 'table_id', + 'data_type_id', + 'data_length', + 'data_precision', + 'data_scale', + 'char_length', + 'seed_contract_mode', + 'seed_contract_expression' + ]) + ->with(['dataType']) + ->whereIn('id', $additionalProviderIds) + ->get(); + + foreach ($additionalProviders as $additionalProvider) { + $providerModels->put((int) $additionalProvider->id, $additionalProvider); + } + } } - $seedProviderMap = []; - foreach ($seedProviders as $columnId => $provider) { - $seedProviderMap[(int) $columnId] = [ - 'provider_id' => isset($provider['provider']) ? (int) ($provider['provider']?->id ?? 0) : 0, - 'expression' => $provider['expression'] ?? null, + foreach ($consumerColumnIds as $cid) { + if (isset($seedProviderMap[$cid])) { + continue; // already a provider itself + } + $tid = $tableIdsByColumn[$cid] ?? 0; + $tableProviders = $providersByTable[$tid] ?? []; + $preferredProviderId = (int) (($parentProviderByChild[$cid]['provider_id'] ?? 0)); + $providerId = $preferredProviderId > 0 + ? $preferredProviderId + : ($tableProviders !== [] ? $tableProviders[0] : 0); + $provider = $providerModels->get($providerId); + $seedProviderMap[$cid] = [ + 'provider_id' => $providerId, + 'expression' => $provider + ? $this->seedExpressionForProvider($provider) + : ($consumerFallbackExpr[$cid] ?? 'tgt.ROW_ID'), ]; } + Log::info('AnonymizationJobScriptService: lightweight context seeds resolved', [ + 'job_id' => $job?->id, + 'method_count' => $allMethods->count(), + 'provider_count' => count($providerColumnIds), + 'consumer_count' => count($consumerColumnIds), + 'memory_mb' => round(memory_get_usage(true) / 1024 / 1024, 2), + ]); + + // ── 4. Seed map context ─────────────────────────────────────── + $needsSeedMap = false; + foreach ($allMethods as $method) { + if ($method->sql_block && (str_contains($method->sql_block, '{{SEED_MAP_LOOKUP}}') || str_contains($method->sql_block, '{{SEED_MAP_TABLE}}'))) { + $needsSeedMap = true; + break; + } + } + + $seedMapContext = []; + if ($needsSeedMap && $providerModels->isNotEmpty()) { + $targetSchema = $rewriteContext['target_schema'] ?? null; + $prefix = $rewriteContext['table_prefix'] ?? null; + $tableMap = $rewriteContext['tables_by_id'] ?? []; + $seedStoreMode = strtolower(trim((string) ($job?->seed_store_mode ?? ($rewriteContext['seed_store_mode'] ?? 'temporary')))); + $seedStoreSchema = trim((string) ($job?->seed_store_schema ?? ($rewriteContext['seed_store_schema'] ?? ''))); + $seedStorePrefix = trim((string) ($job?->seed_store_prefix ?? ($rewriteContext['seed_store_prefix'] ?? ''))); + $isPersistent = $seedStoreMode === 'persistent'; + if ($seedStoreSchema === '') { + $seedStoreSchema = (string) $targetSchema; + } + if ($seedStorePrefix === '') { + $seedStorePrefix = (string) $prefix; + } + + $seedMapProviders = []; + $seedMapProviderIds = []; + foreach ($seedProviderMap as $providerEntry) { + $entryProviderId = (int) ($providerEntry['provider_id'] ?? 0); + if ($entryProviderId > 0) { + $seedMapProviderIds[$entryProviderId] = true; + } + } + + foreach (array_keys($seedMapProviderIds) as $seedMapProviderId) { + $provider = $providerModels->get($seedMapProviderId); + if (! $provider) { + continue; + } + + $tableId = (int) ($provider->table_id ?? 0); + $mapped = $tableId > 0 ? ($tableMap[$tableId] ?? null) : null; + if (! is_array($mapped) || ! isset($mapped['target_qualified'], $mapped['source_table'])) { + continue; + } + $seedMapName = $this->oracleIdentifier( + ($isPersistent ? $seedStorePrefix : $prefix) + . '_SEEDMAP_' . ($mapped['source_table'] ?? 'T') . '_' . ($provider->column_name ?? 'C') + ); + $columnType = $this->oracleColumnTypeForColumn($provider); + + // Compute the actual anonymized expression from the provider's method. + // This ensures the seed map stores old_value → anonymized_value, + // not an identity mapping (old_value → old_value) which breaks FK lookups. + $providerMethodId = $columnMethodMap[(int) $provider->id] ?? 0; + $providerMethod = $providerMethodId > 0 ? $allMethods->get($providerMethodId) : null; + $anonymizedExpr = $this->anonymizedExpressionForSeedMap( + $provider, + $providerMethod, + $rewriteContext, + 'src' + ); + + if ($anonymizedExpr !== null) { + $seedExpr = $anonymizedExpr; + } else { + // Fallback to raw column reference when expression can't be extracted. + $seedExpr = $this->seedExpressionForProvider($provider); + $seedExpr = $this->renderSeedExpressionPlaceholders($seedExpr, $rewriteContext); + $seedExpr = str_replace('tgt.', 'src.', $seedExpr); + } + + $seedMapProviders[(int) $provider->id] = [ + 'provider_id' => (int) $provider->id, + 'provider_column' => $provider->column_name, + 'provider_table' => $mapped['source_qualified'] ?? $mapped['target_qualified'], + 'seed_expression' => $seedExpr, + 'seed_map_table' => ($isPersistent ? $seedStoreSchema : $targetSchema) . '.' . $seedMapName, + 'seed_map_persistence' => $isPersistent ? 'persistent' : 'temporary', + 'old_value_type' => $columnType, + 'new_value_type' => $columnType, + 'source_alias' => 'src', + ]; + } + + if ($seedMapProviders !== []) { + $seedMapContext = ['providers' => $seedMapProviders]; + } + } + + unset($providerModels, $tableIdsByColumn, $allTableIds, $columnMethodMap); + gc_collect_cycles(); + + // ── 5. Prefix SQL ───────────────────────────────────────────── + $prefixLines = $this->buildHeaderLines($this->jobHeaderMetadata($job), $rewriteContext); + $prefixLines = array_merge($prefixLines, $this->buildSourceAccessPreflightForClones($rewriteContext)); + $prefixLines = array_merge($prefixLines, $this->buildDeterministicRandomSeedSection($rewriteContext)); + + // Contract validation is deferred to chunk workers for very large jobs + // to avoid materializing all 258 K+ columns in the parent process. + $prefixLines[] = $this->commentDivider('-'); + $prefixLines[] = '-- Note: Seed contract validation deferred to per-table chunk processing.'; + $prefixLines[] = $this->commentDivider('-'); + $prefixLines[] = ''; + + $requiredPackageRefs = []; + foreach ($allMethods as $methodModel) { + $requiredPackageRefs = $this->collectPackageRefsFromSqlBlock( + (string) ($methodModel->sql_block ?? ''), + $requiredPackageRefs + ); + } + + if ($requiredPackageRefs !== []) { + $rewriteContext['required_package_refs'] = $requiredPackageRefs; + $prefixLines = array_merge($prefixLines, $this->buildConditionalPackageBootstrap($rewriteContext)); + $prefixLines = array_merge($prefixLines, $this->buildRequiredPackagePreflight($rewriteContext)); + } + + // Seed maps must exist before chunk CTAS statements run, because + // inline SELECT expressions can reference them during table creation. + $seedMapStatements = $this->renderSeedMapTables($seedMapContext); + if ($seedMapStatements !== []) { + $prefixLines[] = $this->commentDivider('='); + $prefixLines[] = '-- Seed Maps (relationship preservation)'; + $prefixLines[] = '-- Lookup tables keep dependent keys aligned with seed providers.'; + $prefixLines[] = $this->commentDivider('='); + $prefixLines[] = ''; + $prefixLines = array_merge($prefixLines, $seedMapStatements); + $prefixLines[] = $this->commentDivider('='); + $prefixLines[] = ''; + } + + // ── 6. Suffix SQL ───────────────────────────────────────────── $suffixLines = []; $preMaskSql = trim((string) ($job?->pre_mask_sql ?? '')); if ($preMaskSql !== '') { @@ -711,18 +1205,6 @@ public function prepareChunkedContextForColumnIds(array $columnIds, ?Anonymizati $suffixLines[] = ''; } - $seedMapStatements = $this->renderSeedMapTables($seedMapContext); - if ($seedMapStatements !== []) { - $suffixLines[] = $this->commentDivider('='); - $suffixLines[] = '-- Seed Maps (relationship preservation)'; - $suffixLines[] = '-- Lookup tables keep dependent keys aligned with seed providers.'; - $suffixLines[] = $this->commentDivider('='); - $suffixLines[] = ''; - $suffixLines = array_merge($suffixLines, $seedMapStatements); - $suffixLines[] = $this->commentDivider('='); - $suffixLines[] = ''; - } - $skipConstraints = count($columnIds) > 2000; $postMaskSql = trim((string) ($job?->post_mask_sql ?? '')); if ($postMaskSql !== '') { $suffixLines[] = $this->commentDivider('='); @@ -736,38 +1218,12 @@ public function prepareChunkedContextForColumnIds(array $columnIds, ?Anonymizati $suffixLines[] = ''; } - if ($skipConstraints) { - $suffixLines[] = $this->commentDivider('='); - $suffixLines[] = '-- Constraints Skipped'; - $suffixLines[] = '-- PK/FK generation is skipped for large batch jobs to avoid memory spikes.'; - $suffixLines[] = '-- Re-run with a smaller scope if constraints are required.'; - $suffixLines[] = $this->commentDivider('='); - $suffixLines[] = ''; - } else { - $pkStatements = $this->buildPrimaryKeyStatements($rewriteContext); - if ($pkStatements !== []) { - $suffixLines[] = $this->commentDivider('='); - $suffixLines[] = '-- Primary Keys'; - $suffixLines[] = '-- Add ROW_ID primary keys so foreign keys can be recreated.'; - $suffixLines[] = $this->commentDivider('='); - $suffixLines[] = ''; - $suffixLines = array_merge($suffixLines, $pkStatements); - $suffixLines[] = $this->commentDivider('='); - $suffixLines[] = ''; - } - - $fkStatements = $this->buildForeignKeyStatements($rewriteContext); - if ($fkStatements !== []) { - $suffixLines[] = $this->commentDivider('='); - $suffixLines[] = '-- Foreign Keys'; - $suffixLines[] = '-- Recreate parent/child relationships within the target schema.'; - $suffixLines[] = $this->commentDivider('='); - $suffixLines[] = ''; - $suffixLines = array_merge($suffixLines, $fkStatements); - $suffixLines[] = $this->commentDivider('='); - $suffixLines[] = ''; - } - } + $suffixLines[] = $this->commentDivider('='); + $suffixLines[] = '-- Constraints Skipped'; + $suffixLines[] = '-- PK/FK generation is skipped for large batch jobs to avoid memory spikes.'; + $suffixLines[] = '-- Re-run with a smaller scope if constraints are required.'; + $suffixLines[] = $this->commentDivider('='); + $suffixLines[] = ''; $hygiene = $this->renderSeedMapHygieneSection($seedMapContext, $job); if ($hygiene !== []) { @@ -780,12 +1236,10 @@ public function prepareChunkedContextForColumnIds(array $columnIds, ?Anonymizati $suffixLines[] = $this->commentDivider('='); $suffixLines[] = ''; - $orderedTableIds = $this->orderTableIdsByDependencies($ordered); - $selectedColumnIds = $ordered->pluck('id')->map(fn($id) => (int) $id)->all(); - - Log::info('AnonymizationJobScriptService: chunked context prepared', [ + Log::info('AnonymizationJobScriptService: lightweight chunked context prepared', [ 'job_id' => $job?->id, - 'ordered_count' => $ordered->count(), + 'table_count' => count($orderedTableIds), + 'column_count' => count($columnIds), 'prefix_length' => strlen(trim(implode(PHP_EOL, $prefixLines))), 'suffix_length' => strlen(trim(implode(PHP_EOL, $suffixLines))), 'memory_mb' => round(memory_get_usage(true) / 1024 / 1024, 2), @@ -793,7 +1247,7 @@ public function prepareChunkedContextForColumnIds(array $columnIds, ?Anonymizati return [ 'ordered_table_ids' => $orderedTableIds, - 'selected_column_ids' => $selectedColumnIds, + 'selected_column_ids' => $columnIds, 'prefix_sql' => trim(implode(PHP_EOL, $prefixLines)), 'suffix_sql' => trim(implode(PHP_EOL, $suffixLines)), 'seed_provider_map' => $seedProviderMap, @@ -811,6 +1265,7 @@ public function buildMaskingChunk( array $allOrderedIds, ?AnonymizationJobs $job = null ): string { + $this->currentJobStrategy = $job?->strategy; $orderedIds = array_values(array_unique(array_filter(array_map('intval', $orderedIds)))); if ($orderedIds === []) { return ''; @@ -819,6 +1274,7 @@ public function buildMaskingChunk( $columns = AnonymousSiebelColumn::query() ->with([ 'anonymizationMethods', + 'anonymizationRule.methods', 'table.schema.database', 'dataType', 'parentColumns', @@ -927,10 +1383,12 @@ public function buildInlineTableChunk( array $selectedColumnIds, ?AnonymizationJobs $job = null ): string { + $this->currentJobStrategy = $job?->strategy; $tableIds = array_values(array_unique(array_filter(array_map('intval', $tableIds)))); if ($tableIds === []) { return ''; } + $rewriteContext['skip_common_preflight'] = true; $sourceAlias = (string) ($rewriteContext['source_alias'] ?? 'src'); $warnings = $this->applyInlineMaskedSelectListsForTables( $tableIds, @@ -1191,6 +1649,7 @@ public function buildFromColumns(Collection $columns, ?AnonymizationJobs $job = { // Clear method cache at start of each build to ensure fresh state $this->methodCache = []; + $this->currentJobStrategy = $job?->strategy; if ($columns->isEmpty()) { return ''; @@ -1204,6 +1663,7 @@ public function buildFromColumns(Collection $columns, ?AnonymizationJobs $job = // Load essential relations if not already loaded $columns->loadMissing([ 'anonymizationMethods', + 'anonymizationRule.methods', 'table.schema.database', 'dataType', 'parentColumns', @@ -1302,16 +1762,28 @@ public function buildFromColumns(Collection $columns, ?AnonymizationJobs $job = $lines[] = ''; } - $tableCloneStatements = $this->renderJobTableClones($rewriteContext); - if ($tableCloneStatements !== []) { - $lines = array_merge($lines, $tableCloneStatements); + // Seed maps must be created before the table clone CTAS statements run, + // because the inline SELECT expressions in those CTAS queries reference the + // seed map tables via {{SEED_MAP_LOOKUP}} (or via LEFT JOINs added by + // applyInlineMaskedSelectListsForTables). Building them here from the source + // tables is safe — they have no dependency on the target clones. + $seedMapStatements = $this->renderSeedMapTables($seedMapContext); + if ($seedMapStatements !== []) { + $lines[] = $this->commentDivider('='); + $lines[] = '-- Seed Maps (relationship preservation)'; + $lines[] = '-- Created before table clones so inline FK lookup expressions can reference them.'; + $lines[] = $this->commentDivider('='); + $lines[] = ''; + $lines = array_merge($lines, $seedMapStatements); + $lines[] = $this->commentDivider('='); + $lines[] = ''; } $preMaskSql = trim((string) ($job?->pre_mask_sql ?? '')); if ($preMaskSql !== '') { $lines[] = $this->commentDivider('='); $lines[] = '-- Pre-mask SQL'; - $lines[] = '-- Runs after target tables/views are created, before seed maps are created.'; + $lines[] = '-- Runs after seed maps are created, before table clones.'; $lines[] = $this->commentDivider('='); $lines[] = ''; $lines = array_merge($lines, preg_split('/\R/', $preMaskSql) ?: []); @@ -1320,23 +1792,16 @@ public function buildFromColumns(Collection $columns, ?AnonymizationJobs $job = $lines[] = ''; } - $seedMapStatements = $this->renderSeedMapTables($seedMapContext); - if ($seedMapStatements !== []) { - $lines[] = $this->commentDivider('='); - $lines[] = '-- Seed Maps (relationship preservation)'; - $lines[] = '-- Lookup tables keep dependent keys aligned with seed providers.'; - $lines[] = $this->commentDivider('='); - $lines[] = ''; - $lines = array_merge($lines, $seedMapStatements); - $lines[] = $this->commentDivider('='); - $lines[] = ''; + $tableCloneStatements = $this->renderJobTableClones($rewriteContext); + if ($tableCloneStatements !== []) { + $lines = array_merge($lines, $tableCloneStatements); } $postMaskSql = trim((string) ($job?->post_mask_sql ?? '')); if ($postMaskSql !== '') { $lines[] = $this->commentDivider('='); $lines[] = '-- Post-mask SQL'; - $lines[] = '-- Runs after seed maps are created.'; + $lines[] = '-- Runs after table clones are created.'; $lines[] = $this->commentDivider('='); $lines[] = ''; $lines = array_merge($lines, preg_split('/\R/', $postMaskSql) ?: []); @@ -1493,9 +1958,11 @@ protected function validateSeedContracts(Collection $columns, array $seedProvide continue; } - $detail = $columnLabel . ': Seed consumer columns must declare at least one parent dependency.'; + $fallback = $this->defaultConsumerSeedFallback($column); + $detail = $columnLabel . ': No explicit parent dependency set; defaulting seed expression to ' + . ($fallback['expression'] ?? 'tgt.ROW_ID') . ' (' . ($fallback['reason'] ?? 'table ROW_ID fallback') . ').'; $warnings->push($detail); - $pushIssue('warning', $detail, 'missing_parent'); + $pushIssue('warning', $detail, 'seed_fallback_row_id'); continue; } @@ -1629,14 +2096,41 @@ protected function resolveSeedProviders(Collection $columns): array $emittersByTable = $seedEmitters ->groupBy(fn(AnonymousSiebelColumn $c) => (int) ($c->table_id ?? 0)); + // Build UPPER(SCHEMA|TABLE) → [UPPER(COLUMN_NAME) => column model] index. + // seedProviderForColumn uses this to resolve FK parents from related_columns + // metadata when no explicit anonymous_siebel_column_dependencies row exists. + $selectedBySchemaTable = []; + foreach ($columns as $col) { + $tbl = $col->getRelationValue('table'); + $sch = $tbl?->getRelationValue('schema'); + if (! $tbl || ! $sch) { + continue; + } + $key = strtoupper((string) ($sch->schema_name ?? '')) . '|' . strtoupper((string) ($tbl->table_name ?? '')); + $colName = strtoupper((string) ($col->column_name ?? '')); + if ($key !== '|' && $colName !== '') { + $selectedBySchemaTable[$key][$colName] = $col; + } + } + // @var AnonymousSiebelColumn $column foreach ($columns as $column) { $method = $this->resolveMethodForColumn($column); - $provider = $this->seedProviderForColumn($column, $method, $columns, $emittersByTable, $seedEmitters); + $provider = $this->seedProviderForColumn($column, $method, $columns, $emittersByTable, $seedEmitters, $selectedBySchemaTable); + + $expression = $provider ? $this->seedExpressionForProvider($provider) : null; + + if ($expression === null && $this->columnRequiresSeed($column, $method)) { + $expression = $this->defaultConsumerSeedExpression($column); + } + + if ($expression === null) { + $expression = $this->seedExpressionForProvider($column); + } $providers[$column->id] = [ 'provider' => $provider, - 'expression' => $this->seedExpressionForProvider($provider ?? $column), + 'expression' => $expression, ]; } @@ -1648,13 +2142,14 @@ protected function seedProviderForColumn( ?AnonymizationMethods $method, Collection $selectedColumns, Collection $emittersByTable, - Collection $seedEmitters + Collection $seedEmitters, + array $selectedBySchemaTable = [] ): ?AnonymousSiebelColumn { if (! $this->columnRequiresSeed($column, $method)) { return $this->columnProvidesSeed($column, $method) ? $column : null; } - // Prefer an explicitly selected parent column as the seed provider. + // 1. Prefer an explicitly configured parent via anonymous_siebel_column_dependencies. $parents = $column->getRelationValue('parentColumns') ?? collect(); $selectedById = $selectedColumns->keyBy('id'); @@ -1669,7 +2164,24 @@ protected function seedProviderForColumn( return $selectedParent; } - // Fall back to another seed emitter in the same table when no explicit parent is selected. + if ($parents->isNotEmpty()) { + // Explicit dependencies exist but none were found in the selection. + return null; + } + + // 2. Infer the parent from FK relationship metadata (related_columns / related_columns_raw). + // This covers the common case where no manual dependency exists but the imported Siebel + // schema metadata already declares an outbound FK pointing to a parent ROW_ID column. + // Without this, seed maps are never resolved for FK columns, causing {{SEED_MAP_LOOKUP}} + // to substitute as an empty string and the NVL to silently return the original value. + if ($selectedBySchemaTable !== []) { + $fkProvider = $this->inferProviderFromRelatedColumnMeta($column, $selectedBySchemaTable); + if ($fkProvider !== null) { + return $fkProvider; + } + } + + // 3. Fall back to another seed emitter in the same table when no FK metadata resolves. $tableId = (int) ($column->table_id ?? 0); $sameTable = ($emittersByTable->get($tableId) ?? collect()) ->filter(fn(AnonymousSiebelColumn $c) => $c->id !== $column->id) @@ -1684,7 +2196,7 @@ protected function seedProviderForColumn( return $sameTable->sortBy('column_name')->first(); } - // If still unresolved, fall back to the single remaining seed emitter in the job. + // 4. If only a single global seed emitter exists (small jobs), use it. $global = $seedEmitters ->filter(fn(AnonymousSiebelColumn $c) => $c->id !== $column->id) ->values(); @@ -1693,10 +2205,134 @@ protected function seedProviderForColumn( return $global->first(); } - // If no safe provider can be chosen, return null and let validation enforce explicit parents. + // No safe provider found; let validation surface the issue. + return null; + } + + /** + * Infer the seed-providing ROW_ID column for an FK consumer using the + * imported related_columns / related_columns_raw metadata (populated during CSV sync). + * + * Used as a fallback when no explicit anonymous_siebel_column_dependencies row exists. + * Without this, FK columns whose parent is in a different table have no provider, causing + * {{SEED_MAP_LOOKUP}} to resolve to an empty string — Oracle treats '' as NULL, the NVL + * falls back to the original FK value, and all cross-table relationships break. + * + * @param AnonymousSiebelColumn $column The FK consumer column + * @param array $selectedBySchemaTable Index: UPPER('SCHEMA|TABLE') => [UPPER(col_name) => AnonymousSiebelColumn] + * @return AnonymousSiebelColumn|null The parent ROW_ID column, or null if not in the selection + */ + protected function inferProviderFromRelatedColumnMeta( + AnonymousSiebelColumn $column, + array $selectedBySchemaTable + ): ?AnonymousSiebelColumn { + if ($selectedBySchemaTable === []) { + return null; + } + + $relationships = $this->resolveForeignKeyRelationships($column); + foreach ($relationships as $rel) { + $direction = strtoupper((string) ($rel['direction'] ?? 'OUTBOUND')); + if ($direction !== 'OUTBOUND') { + continue; + } + + $schema = strtoupper(trim((string) ($rel['schema'] ?? ''))); + $table = strtoupper(trim((string) ($rel['table'] ?? ''))); + $pCol = strtoupper(trim((string) ($rel['column'] ?? 'ROW_ID'))); + + // Siebel FK columns always point to ROW_ID; skip anything else. + if ($schema === '' || $table === '' || $pCol !== 'ROW_ID') { + continue; + } + + $parentModel = $selectedBySchemaTable[$schema . '|' . $table]['ROW_ID'] ?? null; + if ($parentModel instanceof AnonymousSiebelColumn) { + return $parentModel; + } + } + return null; } + protected function defaultConsumerSeedExpression(AnonymousSiebelColumn $column): string + { + $fallback = $this->defaultConsumerSeedFallback($column); + + return (string) ($fallback['expression'] ?? 'tgt.ROW_ID'); + } + + protected function defaultConsumerSeedFallback(AnonymousSiebelColumn $column): array + { + $columnName = trim((string) ($column->column_name ?? '')); + $parents = $column->getRelationValue('parentColumns') ?? collect(); + + $hasRowIdParent = $parents->contains(function ($parent): bool { + return strtoupper(trim((string) ($parent->column_name ?? ''))) === 'ROW_ID'; + }); + + if ($hasRowIdParent && $columnName !== '') { + return [ + 'expression' => 'tgt.' . $columnName, + 'reason' => 'explicit ROW_ID parent dependency', + ]; + } + + $tableId = (int) ($column->table_id ?? 0); + if ($tableId > 0) { + $columnNames = $this->tableColumnNamesForSeedFallback($tableId); + + if (isset($columnNames['ROW_ID'])) { + return [ + 'expression' => 'tgt.ROW_ID', + 'reason' => 'table ROW_ID fallback', + ]; + } + } + + if ($tableId > 0) { + if (isset($columnNames['PAR_ROW_ID'])) { + return [ + 'expression' => 'COALESCE(tgt.PAR_ROW_ID, tgt.ROW_ID)', + 'reason' => 'secondary fallback via PAR_ROW_ID (ROW_ID preferred)', + ]; + } + + foreach (['PARENT_ROW_ID', 'PARENT_ID', 'PAR_ID'] as $candidate) { + if (isset($columnNames[$candidate])) { + return [ + 'expression' => 'COALESCE(tgt.' . $candidate . ', tgt.ROW_ID)', + 'reason' => 'secondary fallback via ' . $candidate . ' (ROW_ID preferred)', + ]; + } + } + } + + return [ + 'expression' => 'tgt.ROW_ID', + 'reason' => 'table ROW_ID fallback', + ]; + } + + protected function tableColumnNamesForSeedFallback(int $tableId): array + { + if (isset($this->tableColumnNameCache[$tableId])) { + return $this->tableColumnNameCache[$tableId]; + } + + $names = AnonymousSiebelColumn::query() + ->where('table_id', $tableId) + ->pluck('column_name') + ->map(fn($name) => strtoupper(trim((string) $name))) + ->filter(fn($name) => $name !== '') + ->flip() + ->all(); + + $this->tableColumnNameCache[$tableId] = is_array($names) ? $names : []; + + return $this->tableColumnNameCache[$tableId]; + } + // Resolve {{SEED_EXPR}} for a seed provider (explicit expression, else default to tgt.). protected function seedExpressionForProvider(AnonymousSiebelColumn $provider): string { @@ -1709,6 +2345,61 @@ protected function seedExpressionForProvider(AnonymousSiebelColumn $provider): s return 'tgt.' . ($provider->column_name ?? 'seed'); } + /** + * Compute the anonymized (transformed) expression for a seed-providing column. + * + * This builds the expression that transforms the column's original value into + * its anonymized form. Used as the `new_value` in seed map tables so that + * child FK columns can look up the new (anonymized) value by the old (original) + * value. Without this, seed maps store identity mappings (old=new) and FK + * lookups return the original un-anonymized value. + * + * @param AnonymousSiebelColumn $provider The seed-providing column + * @param AnonymizationMethods|null $method The method assigned to this column + * @param array $rewriteContext The rewrite context + * @param string $alias The source alias (usually 'src') + * @return string|null The anonymized expression, or null if not extractable + */ + protected function anonymizedExpressionForSeedMap( + AnonymousSiebelColumn $provider, + ?AnonymizationMethods $method, + array $rewriteContext, + string $alias = 'src' + ): ?string { + if (! $method) { + return null; + } + + $sqlBlock = trim((string) ($method->sql_block ?? '')); + if ($sqlBlock === '') { + return null; + } + + // Skip exclude, no-op, and deferred methods — they don't have inline expressions. + if ($this->isExcludeMethod($sqlBlock) || $this->isNoOpMethod($sqlBlock) || $this->isDeferredMethod($sqlBlock)) { + return null; + } + + $expressionTemplate = $this->extractUpdateExpressionFromTemplate($sqlBlock); + if (! $expressionTemplate) { + return null; + } + + // Apply placeholder replacements targeting the provider column. + // Pass empty seed map context — a provider doesn't reference its own seed map. + $rendered = $this->applyPlaceholders( + $expressionTemplate, + $provider, + ['provider' => $provider, 'expression' => $alias . '.' . ($provider->column_name ?? 'seed')], + $rewriteContext, + [], // empty seed map context + $alias, + true // useSourceTable: reference source schema/table in the seed map query + ); + + return trim($rendered) !== '' ? $rendered : null; + } + protected function inferSeedProviderFromSelection(AnonymousSiebelColumn $column, Collection $selectedColumns): ?AnonymousSiebelColumn { $method = $this->resolveMethodForColumn($column); @@ -1852,9 +2543,10 @@ protected function applyPlaceholders( $seedMap = $this->seedMapForColumn($seedProvider['provider'] ?? null, $seedMapContext); $seedMapTable = $seedMap['seed_map_table'] ?? ''; + $seedLookupColumnRef = $alias . '.' . ($column->column_name ?? ''); $seedMapLookup = $seedMapTable !== '' - ? '(SELECT sm.new_value FROM ' . $seedMapTable . ' sm WHERE sm.old_value = ' . $alias . '.' . ($column->column_name ?? '') . ' AND ROWNUM = 1)' - : ''; + ? '(SELECT sm.new_value FROM ' . $seedMapTable . ' sm WHERE sm.old_value = ' . $seedLookupColumnRef . ' AND ROWNUM = 1)' + : $seedLookupColumnRef; $jobSeed = $rewriteContext['job_seed'] ?? ''; $jobSeedLiteral = $rewriteContext['job_seed_literal'] ?? "''"; @@ -1895,9 +2587,61 @@ protected function applyPlaceholders( $rendered = str_replace(array_keys($rawReplace), array_values($rawReplace), $rendered); } + $rendered = $this->enforceDeterministicRandomUsage($rendered, $column, $rewriteContext); + $rendered = $this->rewriteAnonymizationPackageOwner($rendered); + return $rendered; } + protected function deterministicShuffleRowKeyExpression(AnonymousSiebelColumn $column): string + { + $tableId = (int) ($column->table_id ?? 0); + $columnNames = $tableId > 0 ? $this->tableColumnNamesForSeedFallback($tableId) : []; + + foreach (['ROW_ID', 'PAR_ROW_ID', 'PARENT_ROW_ID', 'PARENT_ID', 'PAR_ID', 'ID'] as $candidate) { + if (isset($columnNames[$candidate])) { + return 'TO_CHAR(' . $candidate . ')'; + } + } + + return 'TO_CHAR(ROWID)'; + } + + protected function deterministicShuffleOrderExpression(AnonymousSiebelColumn $column, array $rewriteContext): string + { + $jobSeedLiteral = $rewriteContext['job_seed_literal'] ?? "''"; + if (! is_string($jobSeedLiteral) || $jobSeedLiteral === '') { + $jobSeedLiteral = "''"; + } + + $columnName = strtoupper(trim((string) ($column->column_name ?? 'COLUMN'))); + if ($columnName === '') { + $columnName = 'COLUMN'; + } + + $rowKeyExpression = $this->deterministicShuffleRowKeyExpression($column); + + return "STANDARD_HASH({$jobSeedLiteral} || '|SHUFFLE|{$columnName}|' || {$rowKeyExpression}, 'SHA256')"; + } + + protected function enforceDeterministicRandomUsage(string $sql, AnonymousSiebelColumn $column, array $rewriteContext): string + { + if (! str_contains(strtoupper($sql), 'DBMS_RANDOM.VALUE')) { + return $sql; + } + + $orderExpression = $this->deterministicShuffleOrderExpression($column, $rewriteContext); + + $rewritten = preg_replace('/DBMS_RANDOM\.VALUE\s*\(\s*\)/i', $orderExpression, $sql); + if ($rewritten === null) { + return $sql; + } + + $rewritten = preg_replace('/DBMS_RANDOM\.VALUE\b/i', $orderExpression, $rewritten); + + return $rewritten ?? $sql; + } + protected function extractUpdateExpression(string $renderedSql, string $columnName): ?string { $columnName = trim($columnName); @@ -1918,6 +2662,24 @@ protected function extractUpdateExpression(string $renderedSql, string $columnNa return $expression === '' ? null : $expression; } + /** + * Sentinel returned by inlineMaskedExpressionForColumn when the method + * signals that the column should be omitted from the CTAS SELECT list. + */ + protected const INLINE_EXCLUDE = '__EXCLUDE__'; + + /** + * Sentinel returned when the method is a documented no-op + * (e.g. Seed Provider, Preserve NULL Semantics). + */ + protected const INLINE_NOOP = '__NOOP__'; + + /** + * Sentinel prefix for methods that require post-CTAS execution + * (e.g. MERGE-based shuffles). The full sql_block is appended. + */ + protected const INLINE_DEFERRED_PREFIX = '__DEFERRED__'; + protected function inlineMaskedExpressionForColumn( AnonymousSiebelColumn $column, ?AnonymizationMethods $method, @@ -1935,6 +2697,21 @@ protected function inlineMaskedExpressionForColumn( return null; } + // Exclude: column should not appear in CTAS at all. + if ($this->isExcludeMethod($sqlBlock)) { + return self::INLINE_EXCLUDE; + } + + // No-op: pass through, no warning. + if ($this->isNoOpMethod($sqlBlock)) { + return self::INLINE_NOOP; + } + + // MERGE / non-UPDATE: defer to post-CTAS execution. + if ($this->isDeferredMethod($sqlBlock)) { + return self::INLINE_DEFERRED_PREFIX . $sqlBlock; + } + $expressionTemplate = $this->extractUpdateExpressionFromTemplate($sqlBlock); if (! $expressionTemplate) { return null; @@ -1951,17 +2728,68 @@ protected function inlineMaskedExpressionForColumn( ); } + /** + * Detect methods that signal column exclusion from the anonymized copy. + * These sql_blocks contain only SQL comments and no executable statements. + */ + protected function isExcludeMethod(string $sqlBlock): bool + { + // Strip comment lines and blank lines; if nothing remains, it's a comment-only (exclude/doc) method. + $stripped = preg_replace('/^\s*--.*$/m', '', $sqlBlock); + $stripped = trim((string) $stripped); + + return $stripped === ''; + } + + /** + * Detect no-op methods (seed providers, documentation-only methods). + * These have only comments or trivial SELECT from DUAL. + */ + protected function isNoOpMethod(string $sqlBlock): bool + { + $stripped = preg_replace('/^\s*--.*$/m', '', $sqlBlock); + $stripped = trim((string) $stripped); + + if ($stripped === '') { + return true; // Comment-only — could also be exclude, but handled above. + } + + // SELECT ... FROM DUAL is purely informational. + return (bool) preg_match('/^\s*SELECT\b.+?\bFROM\s+DUAL\s*;?\s*$/is', $stripped); + } + + /** + * Detect methods that use MERGE or other non-UPDATE DML that cannot + * be inlined into a CTAS SELECT expression. + */ + protected function isDeferredMethod(string $sqlBlock): bool + { + $stripped = preg_replace('/^\s*--.*$/m', '', $sqlBlock); + $stripped = trim((string) $stripped); + + return (bool) preg_match('/^\s*MERGE\s+INTO\b/is', $stripped); + } + protected function extractUpdateExpressionFromTemplate(string $template): ?string { + // Primary pattern: UPDATE ... SET {{COLUMN}} = WHERE {{COLUMN}} IS NOT NULL $pattern = '/\bset\s+\{\{COLUMN\}\}\s*=\s*(.+?)\s*where\s+\{\{COLUMN\}\}\s+is\s+not\s+null\b\s*;?/is'; - if (! preg_match($pattern, $template, $matches)) { - return null; + if (preg_match($pattern, $template, $matches)) { + $expression = trim((string) ($matches[1] ?? '')); + return $expression === '' ? null : $expression; } - $expression = trim((string) ($matches[1] ?? '')); + // Fallback: UPDATE ... SET {{COLUMN}} = followed by WHERE on other + // conditions, or terminated by semicolon / end-of-string (e.g. nullable-safe). + $fallback = '/\bset\s+\{\{COLUMN\}\}\s*=\s*(.+?)\s*(?:where\b|;|$)/is'; - return $expression === '' ? null : $expression; + if (preg_match($fallback, $template, $matches)) { + $expression = trim((string) ($matches[1] ?? '')); + return $expression === '' ? null : $expression; + } + + return null; } protected function applyInlineMaskedSelectListsForTables( @@ -1979,47 +2807,16 @@ protected function applyInlineMaskedSelectListsForTables( } $selectedLookup = array_flip(array_values(array_unique(array_filter(array_map('intval', $selectedColumnIds))))); + $nullUnselectedColumns = $this->shouldNullUnselectedColumns($job); - $columns = AnonymousSiebelColumn::query() - ->with([ - 'anonymizationMethods', - 'table.schema.database', - 'dataType', - 'parentColumns', - ]) - ->whereIn('table_id', $tableIds) - ->orderBy('column_name') - ->get(); - - if ($columns->isEmpty()) { - return []; - } - - if ($job?->id) { - $jobPivotRows = DB::table('anonymization_job_columns') - ->where('job_id', $job->id) - ->whereIn('column_id', $columns->pluck('id')) - ->select(['column_id', 'anonymization_method_id']) - ->get(); - - foreach ($jobPivotRows as $row) { - $colId = (int) ($row->column_id ?? 0); - $column = $columns->firstWhere('id', $colId); - if (! $column) { - continue; - } - $column->setRelation('pivot', (object) [ - 'anonymization_method_id' => (int) ($row->anonymization_method_id ?? 0), - ]); - } - } - + // Pre-load seed provider models once (small set — only providers for selected columns). $providerIds = []; - foreach ($columns as $column) { - if (! isset($selectedLookup[(int) $column->id])) { + foreach ($seedProviderMap as $columnId => $provider) { + $columnId = (int) $columnId; + if (! isset($selectedLookup[$columnId])) { continue; } - $providerId = (int) ($seedProviderMap[$column->id]['provider_id'] ?? 0); + $providerId = (int) ($provider['provider_id'] ?? 0); if ($providerId > 0) { $providerIds[$providerId] = true; } @@ -2047,75 +2844,404 @@ protected function applyInlineMaskedSelectListsForTables( ]; } - $warnings = []; - $columnsByTable = $columns->groupBy(fn(AnonymousSiebelColumn $column) => (int) ($column->table_id ?? 0)); + // Pre-load job pivot rows once (small set — only columns attached to the job). + $jobPivotLookup = []; + if ($job?->id) { + $jobPivotRows = DB::table('anonymization_job_columns') + ->where('job_id', $job->id) + ->select(['column_id', 'anonymization_method_id']) + ->get(); - foreach ($tableIds as $tableId) { - $tableColumns = $columnsByTable->get((int) $tableId, collect()); - if ($tableColumns->isEmpty()) { - continue; + foreach ($jobPivotRows as $row) { + $jobPivotLookup[(int) ($row->column_id ?? 0)] = (int) ($row->anonymization_method_id ?? 0); } + } - $selectParts = []; - foreach ($tableColumns as $column) { - if ($this->isLongColumn($column)) { - continue; - } + // Process tables in chunks to keep peak memory bounded. + // Each chunk loads columns with relations, builds select lists, then releases memory. + $warnings = []; + $requiredPackageRefs = $rewriteContext['required_package_refs'] ?? []; - $isSelected = isset($selectedLookup[(int) $column->id]); - $method = $isSelected ? $this->resolveMethodForColumn($column) : null; + foreach (array_chunk($tableIds, self::TABLE_COLUMN_CHUNK_SIZE) as $tableChunk) { + $columns = AnonymousSiebelColumn::query() + ->with([ + 'anonymizationMethods', + 'anonymizationRule.methods', + 'table.schema.database', + 'dataType', + 'parentColumns', + ]) + ->whereIn('table_id', $tableChunk) + ->orderBy('column_name') + ->get(); - $expression = $this->inlineMaskedExpressionForColumn( - $column, - $method, - $seedProviders, - $rewriteContext, - $seedMapContext, - $sourceAlias - ); + if ($columns->isEmpty()) { + continue; + } - if (! $expression) { - if ($method) { - $warnings[] = $this->describeColumn($column) - . ': method SQL could not be inlined; column will pass through unchanged.'; + // Apply job pivot data to loaded columns. + if ($jobPivotLookup !== []) { + foreach ($columns as $column) { + $colId = (int) $column->id; + if (isset($jobPivotLookup[$colId])) { + $column->setRelation('pivot', (object) [ + 'anonymization_method_id' => $jobPivotLookup[$colId], + ]); } - $expression = $sourceAlias . '.' . ($column->column_name ?? ''); } + } + + $columnsByTable = $columns->groupBy(fn(AnonymousSiebelColumn $column) => (int) ($column->table_id ?? 0)); - $columnName = $column->column_name ?? ''; - if ($columnName === '') { + foreach ($tableChunk as $tableId) { + $tableColumns = $columnsByTable->get((int) $tableId, collect()); + if ($tableColumns->isEmpty()) { continue; } - $selectParts[] = $expression . ' ' . $columnName; - } + $selectParts = []; + $deferredStatements = []; + $selectedSourceColumns = []; + foreach ($tableColumns as $column) { + if ($this->isLongColumn($column)) { + continue; + } - $rewriteContext['tables_by_id'][$tableId]['select_list'] = $selectParts === [] - ? '' - : "\n " . implode(",\n ", $selectParts); - } + $isSelected = isset($selectedLookup[(int) $column->id]); + $columnName = $column->column_name ?? ''; + if ($columnName === '') { + continue; + } - return $warnings; - } + if ($isSelected) { + $selectedSourceColumns[] = Str::upper($columnName); + } - protected function buildJobTableRewriteContext(Collection $columns, ?AnonymizationJobs $job, bool $skipLongDetection = false): array - { - $targetSchema = $this->targetSchemaForJob($job); - $tablePrefix = $this->tablePrefixForJob($job); - $targetTableMode = $this->normalizeJobOption($job?->target_table_mode) ?: 'prefixed'; - $defaultRelationKind = $this->normalizeRelationKind($job?->target_relation_kind ?? 'table'); + if (! $isSelected && $nullUnselectedColumns) { + $selectParts[] = $this->oracleNullExpressionForColumn($column) . ' ' . $columnName; + continue; + } - if (! $targetSchema || ! $tablePrefix) { - return []; - } + $method = $isSelected ? $this->resolveMethodForColumn($column) : null; - $tables = collect(); + if ($method) { + $requiredPackageRefs = $this->collectPackageRefsFromSqlBlock( + (string) ($method->sql_block ?? ''), + $requiredPackageRefs + ); + } - // For FULL jobs, clone every table in the selected schema scope. - if ($job && $job->job_type === AnonymizationJobs::TYPE_FULL) { - $schemaIds = $this->schemaIdsForJobOrSelection($job, $columns); + $expression = $this->inlineMaskedExpressionForColumn( + $column, + $method, + $seedProviders, + $rewriteContext, + $seedMapContext, + $sourceAlias + ); + + // Exclude: omit column from CTAS entirely. + if ($expression === self::INLINE_EXCLUDE) { + continue; + } - if ($schemaIds !== []) { + // No-op: pass column through unchanged, no warning. + if ($expression === self::INLINE_NOOP) { + $selectParts[] = $sourceAlias . '.' . $columnName . ' ' . $columnName; + continue; + } + + // Deferred (MERGE/shuffle): pass column through in CTAS, collect + // the full statement for post-CTAS execution. + if ($expression !== null && str_starts_with($expression, self::INLINE_DEFERRED_PREFIX)) { + $selectParts[] = $sourceAlias . '.' . $columnName . ' ' . $columnName; + $rawBlock = substr($expression, strlen(self::INLINE_DEFERRED_PREFIX)); + $deferredStatements[] = $this->applyPlaceholders( + $rawBlock, + $column, + $seedProviders[$column->id] ?? null, + $rewriteContext, + $seedMapContext, + 'tgt', + false + ); + continue; + } + + if (! $expression) { + if ($method) { + $warnings[] = $this->describeColumn($column) + . ': method SQL could not be inlined; column will pass through unchanged.'; + } + $expression = $sourceAlias . '.' . ($column->column_name ?? ''); + } + + $expression = $this->normalizeInlineExpressionForCtas($expression, $column); + + $lookupPlan = $this->buildInlineReferenceLookupPlan( + $tableId, + $column, + $method, + $expression, + $rewriteContext, + $sourceAlias, + $seedProviders[$column->id] ?? null, + $seedMapContext + ); + + if ($lookupPlan !== null) { + $selectParts[] = $lookupPlan['select_expression'] . ' ' . $columnName; + + $existingPreCtas = $rewriteContext['tables_by_id'][$tableId]['pre_ctas_statements'] ?? []; + $rewriteContext['tables_by_id'][$tableId]['pre_ctas_statements'] = array_merge( + is_array($existingPreCtas) ? $existingPreCtas : [], + $lookupPlan['pre_ctas_statements'] + ); + + $existingJoins = $rewriteContext['tables_by_id'][$tableId]['post_source_joins'] ?? []; + $rewriteContext['tables_by_id'][$tableId]['post_source_joins'] = array_values(array_unique(array_merge( + is_array($existingJoins) ? $existingJoins : [], + $lookupPlan['join_clauses'] ?? [] + ))); + + continue; + } + + // Optimisation: convert {{SEED_MAP_LOOKUP}} correlated subqueries to an + // indexed LEFT JOIN. The correlated form executes a probe per row; a + // JOIN lets Oracle use the seed map's PRIMARY KEY (old_value) in a + // single hash or nested-loops pass — much faster on large FK tables. + // A unique alias per (seed_map_table, column) pair handles tables with + // multiple FK columns that each reference a different parent seed map. + if ($method && str_contains((string) ($method->sql_block ?? ''), '{{SEED_MAP_LOOKUP}}')) { + $seedProvider = $seedProviders[$column->id] ?? null; + $seedMapEntry = $this->seedMapForColumn( + $seedProvider['provider'] ?? null, + $seedMapContext + ); + $smTable = $seedMapEntry['seed_map_table'] ?? ''; + if ($smTable !== '') { + $smAlias = 'smj_' . substr(md5($smTable . '|' . $columnName), 0, 8); + $joinClause = 'LEFT JOIN ' . $smTable . ' ' . $smAlias + . ' ON ' . $smAlias . '.old_value = ' . $sourceAlias . '.' . $columnName; + + $selectParts[] = 'NVL(' . $smAlias . '.new_value, ' + . $sourceAlias . '.' . $columnName . ') ' . $columnName; + + $existingJoins = $rewriteContext['tables_by_id'][$tableId]['post_source_joins'] ?? []; + $rewriteContext['tables_by_id'][$tableId]['post_source_joins'] = array_values(array_unique(array_merge( + is_array($existingJoins) ? $existingJoins : [], + [$joinClause] + ))); + continue; + } + } + + $selectParts[] = $expression . ' ' . $columnName; + } + + // Store deferred (post-CTAS) statements for this table. + if ($deferredStatements !== []) { + $rewriteContext['tables_by_id'][$tableId]['deferred_statements'] = $deferredStatements; + } + + $rewriteContext['tables_by_id'][$tableId]['null_unselected_columns'] = $nullUnselectedColumns; + $rewriteContext['tables_by_id'][$tableId]['selected_source_columns'] = array_values(array_unique($selectedSourceColumns)); + $rewriteContext['tables_by_id'][$tableId]['select_list'] = $selectParts === [] + ? '' + : "\n " . implode(",\n ", $selectParts); + } + + // Release column models for this chunk before loading the next. + unset($columns, $columnsByTable); + } + + if ($requiredPackageRefs !== []) { + $rewriteContext['required_package_refs'] = $requiredPackageRefs; + } + + return $warnings; + } + + protected function normalizeInlineExpressionForCtas(string $expression, AnonymousSiebelColumn $column): string + { + if (preg_match('/^\s*NULL\s*$/i', $expression)) { + return $this->oracleNullExpressionForColumn($column); + } + + return $expression; + } + + protected function collectPackageRefsFromSqlBlock(string $sqlBlock, array $refs): array + { + $sqlBlock = $this->rewriteAnonymizationPackageOwner($sqlBlock); + + if (trim($sqlBlock) === '') { + return $refs; + } + + preg_match_all( + '/\b([A-Za-z][A-Za-z0-9_$#]*)\.([A-Za-z][A-Za-z0-9_$#]*)\.[A-Za-z][A-Za-z0-9_$#]*\b/', + $sqlBlock, + $matches, + PREG_SET_ORDER + ); + + foreach ($matches as $match) { + $owner = $this->mapAnonymizationPackageOwner((string) ($match[1] ?? '')); + $package = strtoupper((string) ($match[2] ?? '')); + + if ($owner === '' || $package === '' || ! str_starts_with($package, 'PKG_ANON_')) { + continue; + } + + $key = $owner . '.' . $package; + $refs[$key] = [ + 'owner' => $owner, + 'package' => $package, + ]; + } + + return $refs; + } + + protected function buildInlineReferenceLookupPlan( + int $tableId, + AnonymousSiebelColumn $column, + ?AnonymizationMethods $method, + string $expression, + array $rewriteContext, + string $sourceAlias, + ?array $seedProvider, + array $seedMapContext + ): ?array { + if (! $method || trim($expression) === '') { + return null; + } + + $sqlBlock = strtoupper((string) ($method->sql_block ?? '')); + if (! ((bool) ($method->requires_seed)) || ! preg_match('/\bPKG_ANON_[A-Z0-9_$#]+\b/', $sqlBlock)) { + return null; + } + + $mapping = $rewriteContext['tables_by_id'][$tableId] ?? null; + if (! is_array($mapping)) { + return null; + } + + $targetSchema = (string) ($mapping['target_schema'] ?? ($rewriteContext['target_schema'] ?? '')); + $sourceQualified = (string) ($mapping['source_qualified'] ?? ''); + $sourceTable = (string) ($mapping['source_table'] ?? ''); + $tablePrefix = (string) ($rewriteContext['table_prefix'] ?? 'JOB'); + $columnName = (string) ($column->column_name ?? ''); + + if ($targetSchema === '' || $sourceQualified === '' || $sourceTable === '' || $columnName === '') { + return null; + } + + $lookupTableName = $this->oracleIdentifier($tablePrefix . '_REFMAP_' . strtoupper($sourceTable) . '_' . strtoupper($columnName)); + $lookupQualified = $targetSchema . '.' . $lookupTableName; + $lookupIndexName = $this->oracleIdentifier($tablePrefix . '_RFX_' . strtoupper($sourceTable) . '_' . strtoupper($columnName)); + $joinAlias = 'ref_' . substr(md5($lookupTableName), 0, 8); + + $lookupAlias = 'lkp_src'; + $lookupExpr = str_replace($sourceAlias . '.', $lookupAlias . '.', $expression); + $lookupExpr = trim($lookupExpr); + + $seedExprLookup = $this->applyPlaceholders( + '{{SEED_EXPR}}', + $column, + $seedProvider, + $rewriteContext, + $seedMapContext, + $lookupAlias, + true + ); + $seedExprSource = $this->applyPlaceholders( + '{{SEED_EXPR}}', + $column, + $seedProvider, + $rewriteContext, + $seedMapContext, + $sourceAlias, + true + ); + + $seedExprLookup = trim($seedExprLookup) !== '' ? $seedExprLookup : ($lookupAlias . '.ROW_ID'); + $seedExprSource = trim($seedExprSource) !== '' ? $seedExprSource : ($sourceAlias . '.ROW_ID'); + + if ($lookupExpr === '') { + return null; + } + + $preCtas = [ + '-- Build deterministic reference map for ' . $sourceQualified . '.' . $columnName, + 'BEGIN', + " EXECUTE IMMEDIATE 'DROP TABLE {$lookupQualified} PURGE';", + 'EXCEPTION', + ' WHEN OTHERS THEN', + ' IF SQLCODE != -942 THEN RAISE; END IF;', + 'END;', + '/', + 'CREATE TABLE ' . $lookupQualified . ' AS', + 'SELECT DISTINCT', + ' TO_CHAR(' . $seedExprLookup . ') AS seed_key,', + ' ' . $lookupAlias . '.' . $columnName . ' AS old_value,', + ' ' . $lookupExpr . ' AS new_value', + 'FROM ' . $sourceQualified . ' ' . $lookupAlias, + 'WHERE ' . $lookupAlias . '.' . $columnName . ' IS NOT NULL;', + 'BEGIN', + " EXECUTE IMMEDIATE 'DROP INDEX {$targetSchema}.{$lookupIndexName}';", + 'EXCEPTION', + ' WHEN OTHERS THEN', + ' IF SQLCODE != -1418 THEN RAISE; END IF;', + 'END;', + '/', + 'CREATE INDEX ' . $targetSchema . '.' . $lookupIndexName, + 'ON ' . $lookupQualified . ' (seed_key, old_value);', + '', + ]; + + $joinClause = 'LEFT JOIN ' . $lookupQualified . ' ' . $joinAlias + . ' ON ' . $joinAlias . '.seed_key = TO_CHAR(' . $seedExprSource . ')' + . ' AND ' . $joinAlias . '.old_value = ' . $sourceAlias . '.' . $columnName; + + $selectExpression = $joinAlias . '.new_value'; + + return [ + 'select_expression' => $selectExpression, + 'pre_ctas_statements' => $preCtas, + 'join_clauses' => [$joinClause], + ]; + } + + protected function buildJobTableRewriteContext(Collection $columns, ?AnonymizationJobs $job, bool $skipLongDetection = false): array + { + $targetSchema = $this->targetSchemaForJob($job); + $tablePrefix = $this->tablePrefixForJob($job); + $targetTableMode = $this->normalizeJobOption($job?->target_table_mode) ?: 'prefixed'; + $defaultRelationKind = $this->normalizeRelationKind($job?->target_relation_kind ?? 'table'); + $hasExplicitColumns = false; + + if ($job?->id) { + $hasExplicitColumns = DB::table('anonymization_job_columns') + ->where('job_id', (int) $job->id) + ->exists(); + } + + if (! $targetSchema || ! $tablePrefix) { + return []; + } + + $tables = collect(); + $grantScopeTableIds = []; + + // For FULL jobs without explicit column selections, clone every table in scope. + // If explicit columns were selected, respect that narrower scope. + if ($job && $job->job_type === AnonymizationJobs::TYPE_FULL && ! $hasExplicitColumns) { + $schemaIds = $this->schemaIdsForJobOrSelection($job, $columns); + + if ($schemaIds !== []) { $tables = AnonymousSiebelTable::query() ->withTrashed() ->with(['schema.database']) @@ -2130,6 +3256,11 @@ protected function buildJobTableRewriteContext(Collection $columns, ?Anonymizati $table = $column->getRelationValue('table'); if ($table) { $tables->push($table); + + $tableId = (int) $table->getKey(); + if ($tableId > 0) { + $grantScopeTableIds[$tableId] = true; + } } $parents = $column->getRelationValue('parentColumns') ?? collect(); @@ -2137,6 +3268,11 @@ protected function buildJobTableRewriteContext(Collection $columns, ?Anonymizati $parentTable = $parent->getRelationValue('table'); if ($parentTable) { $tables->push($parentTable); + + $parentTableId = (int) $parentTable->getKey(); + if ($parentTableId > 0) { + $grantScopeTableIds[$parentTableId] = true; + } } } } @@ -2206,7 +3342,9 @@ protected function buildJobTableRewriteContext(Collection $columns, ?Anonymizati 'table_prefix' => $tablePrefix, 'target_table_mode' => $targetTableMode, 'target_relation_kind' => $defaultRelationKind, + 'table_scope_mode' => $hasExplicitColumns ? 'explicit-columns' : ($job?->job_type === AnonymizationJobs::TYPE_FULL ? 'full-schema' : 'selection-derived'), 'tables_by_id' => $tablesById, + 'grant_scope_table_ids' => array_values(array_keys($grantScopeTableIds)), 'raw_replace' => $rawReplace, 'seed_store_mode' => trim((string) ($job?->seed_store_mode ?? '')), 'seed_store_schema' => trim((string) ($job?->seed_store_schema ?? '')), @@ -2221,6 +3359,10 @@ protected function targetTableNameForSourceTable(string $sourceTable, string $ta { $mode = $this->normalizeJobOption($mode); + if ($mode === 'exact') { + return $sourceTable; + } + if ($mode === 'anon') { // In anon mode, write into ANON_* tables (including INITIAL_* -> ANON_*). if (Str::startsWith($sourceTable, 'ANON_')) { @@ -2289,7 +3431,7 @@ protected function renderSeedMapHygieneSection(array $seedMapContext, ?Anonymiza $lines[] = $prefix . " EXECUTE IMMEDIATE 'DROP TABLE {$table} PURGE';"; $lines[] = $prefix . 'EXCEPTION'; $lines[] = $prefix . ' WHEN OTHERS THEN'; - $lines[] = $prefix . ' IF SQLCODE != -942 THEN RAISE; END IF;'; + $lines[] = $prefix . ' IF SQLCODE NOT IN (-942, -12083) THEN RAISE; END IF;'; $lines[] = $prefix . 'END;'; $lines[] = $prefix . '/'; $lines[] = ''; @@ -2506,7 +3648,14 @@ protected function renderJobTableClones(array $rewriteContext): array return []; } + $skipCommonPreflight = (bool) ($rewriteContext['skip_common_preflight'] ?? false); + $lines = []; + if (! $skipCommonPreflight) { + $lines = $this->buildSourceAccessPreflightForClones($rewriteContext); + $lines = array_merge($lines, $this->buildConditionalPackageBootstrap($rewriteContext)); + $lines = array_merge($lines, $this->buildRequiredPackagePreflight($rewriteContext)); + } foreach ($tablesById as $mapping) { $source = $mapping['source_qualified'] ?? null; $target = $mapping['target_qualified'] ?? null; @@ -2514,13 +3663,37 @@ protected function renderJobTableClones(array $rewriteContext): array continue; } + $lines[] = $this->commentDivider('-'); + $lines[] = '-- Safety check: source and target must not be identical'; + $lines[] = $this->commentDivider('-'); + $lines[] = 'BEGIN'; + $lines[] = " IF UPPER('" . str_replace("'", "''", $source) . "') = UPPER('" . str_replace("'", "''", $target) . "') THEN"; + $lines[] = " RAISE_APPLICATION_ERROR(-20044, 'Unsafe mapping: source and target are identical (" . str_replace("'", "''", $source) . "). Use a different target schema or table mode.');"; + $lines[] = ' END IF;'; + $lines[] = 'END;'; + $lines[] = '/'; + $lines[] = ''; + $selectList = $mapping['select_list'] ?? '*'; $longColumns = $mapping['long_columns'] ?? []; $relationKind = $this->normalizeRelationKind($mapping['target_relation_kind'] ?? ($rewriteContext['target_relation_kind'] ?? 'table')); $inlineMasking = ($rewriteContext['masking_mode'] ?? '') === 'inline'; $sourceAlias = $inlineMasking ? ($rewriteContext['source_alias'] ?? 'src') : null; + $preCtasStatements = $mapping['pre_ctas_statements'] ?? []; + $postSourceJoins = $mapping['post_source_joins'] ?? []; if ($relationKind === 'view') { + if ($preCtasStatements !== []) { + $lines[] = $this->commentDivider('-'); + $lines[] = '-- Pre-build reference maps for ' . $target; + $lines[] = '-- Materializes deterministic lookup values once per distinct source value.'; + $lines[] = $this->commentDivider('-'); + foreach ($preCtasStatements as $stmt) { + $lines[] = $stmt; + } + $lines[] = ''; + } + $lines[] = $this->commentDivider('='); $lines[] = '-- Drop target view/table if it exists'; $lines[] = $this->commentDivider('='); @@ -2528,7 +3701,7 @@ protected function renderJobTableClones(array $rewriteContext): array $lines[] = " EXECUTE IMMEDIATE 'DROP VIEW {$target}';"; $lines[] = 'EXCEPTION'; $lines[] = ' WHEN OTHERS THEN'; - $lines[] = ' IF SQLCODE != -942 THEN'; + $lines[] = ' IF SQLCODE NOT IN (-942, -12083) THEN'; $lines[] = ' RAISE;'; $lines[] = ' END IF;'; $lines[] = 'END;'; @@ -2545,74 +3718,783 @@ protected function renderJobTableClones(array $rewriteContext): array $lines[] = $this->commentDivider('='); $lines[] = ''; - $lines[] = $this->commentDivider('='); - $lines[] = '-- Create anonymized view'; - $lines[] = '-- NOTE:'; - $lines[] = '-- * Uses SELECT * to avoid invalid identifier failures'; - $lines[] = '-- * Copies only columns visible to this user'; - if (is_array($longColumns) && $longColumns !== []) { - $lines[] = '-- * LONG columns are omitted to avoid ORA-00997'; + $lines[] = $this->commentDivider('='); + $lines[] = '-- Create anonymized view'; + $lines[] = '-- NOTE:'; + $lines[] = '-- * Uses SELECT * to avoid invalid identifier failures'; + $lines[] = '-- * Copies only columns visible to this user'; + if (is_array($longColumns) && $longColumns !== []) { + $lines[] = '-- * LONG columns are omitted to avoid ORA-00997'; + } + $lines[] = $this->commentDivider('='); + + if (! is_string($selectList) || trim($selectList) === '') { + $lines[] = '-- Skipped: no non-LONG columns available for view.'; + } elseif (trim($selectList) === '*' && (empty($longColumns))) { + $lines[] = 'CREATE OR REPLACE VIEW ' . $target . ' AS'; + $lines[] = 'SELECT *'; + $fromLines = $this->buildCloneFromLines($source, $sourceAlias, $postSourceJoins); + $lines = array_merge($lines, $fromLines); + $lines[count($lines) - 1] .= ';'; + } else { + $lines[] = 'CREATE OR REPLACE VIEW ' . $target . ' AS'; + $lines[] = 'SELECT ' . $selectList; + $fromLines = $this->buildCloneFromLines($source, $sourceAlias, $postSourceJoins); + $lines = array_merge($lines, $fromLines); + $lines[count($lines) - 1] .= ';'; + } + $lines[] = $this->commentDivider('='); + $lines[] = ''; + + // Emit deferred (post-create) statements for this table (e.g. MERGE-based shuffles). + $deferred = $mapping['deferred_statements'] ?? []; + if ($deferred !== []) { + $lines[] = $this->commentDivider('-'); + $lines[] = '-- Post-create operations for ' . $target; + $lines[] = '-- These methods cannot be expressed as inline SELECT expressions.'; + $lines[] = $this->commentDivider('-'); + foreach ($deferred as $stmt) { + $lines[] = $stmt; + $lines[] = ''; + } + } + continue; + } + + if ($preCtasStatements !== []) { + $lines[] = $this->commentDivider('-'); + $lines[] = '-- Pre-build reference maps for ' . $target; + $lines[] = '-- Materializes deterministic lookup values once per distinct source value.'; + $lines[] = $this->commentDivider('-'); + foreach ($preCtasStatements as $stmt) { + $lines[] = $stmt; + } + $lines[] = ''; + } + + $lines[] = $this->commentDivider('='); + $lines[] = '-- Drop target table if it exists'; + $lines[] = $this->commentDivider('='); + $lines[] = 'BEGIN'; + $lines[] = " EXECUTE IMMEDIATE 'DROP TABLE {$target} CASCADE CONSTRAINTS PURGE';"; + $lines[] = 'EXCEPTION'; + $lines[] = ' WHEN OTHERS THEN'; + $lines[] = ' IF SQLCODE != -942 THEN'; + $lines[] = ' RAISE;'; + $lines[] = ' END IF;'; + $lines[] = 'END;'; + $lines[] = '/'; + $lines[] = $this->commentDivider('='); + $lines[] = ''; + + $lines[] = $this->commentDivider('='); + $lines[] = '-- Create anonymized working copy'; + $lines[] = '-- NOTE:'; + $lines[] = '-- * Uses SELECT * to avoid invalid identifier failures'; + $lines[] = '-- * Copies only columns visible to this user'; + $lines[] = '-- * No constraints / indexes are copied (expected)'; + if (is_array($longColumns) && $longColumns !== []) { + $lines[] = '-- * LONG columns are omitted to avoid ORA-00997'; + } + $lines[] = $this->commentDivider('='); + + if (! is_string($selectList) || trim($selectList) === '') { + $lines[] = '-- Skipped: no non-LONG columns available for CTAS.'; + } elseif (trim($selectList) === '*' && (empty($longColumns))) { + $lines[] = 'CREATE TABLE ' . $target . ' AS'; + $lines[] = 'SELECT *'; + $fromLines = $this->buildCloneFromLines($source, $sourceAlias, $postSourceJoins); + $lines = array_merge($lines, $fromLines); + $lines[count($lines) - 1] .= ';'; + } else { + $lines[] = 'CREATE TABLE ' . $target . ' AS'; + $lines[] = 'SELECT ' . $selectList; + $fromLines = $this->buildCloneFromLines($source, $sourceAlias, $postSourceJoins); + $lines = array_merge($lines, $fromLines); + $lines[count($lines) - 1] .= ';'; + } + $lines[] = $this->commentDivider('='); + $lines[] = ''; + + // Emit deferred (post-CTAS) statements for this table (e.g. MERGE-based shuffles). + $deferred = $mapping['deferred_statements'] ?? []; + if ($deferred !== []) { + $lines[] = $this->commentDivider('-'); + $lines[] = '-- Post-CTAS operations for ' . $target; + $lines[] = '-- These methods cannot be expressed as inline SELECT expressions.'; + $lines[] = $this->commentDivider('-'); + foreach ($deferred as $stmt) { + $lines[] = $stmt; + $lines[] = ''; + } + } + } + + return $lines; + } + + protected function buildCloneFromLines(string $source, ?string $sourceAlias, array $postSourceJoins = []): array + { + $lines = ['FROM ' . $source . ($sourceAlias ? (' ' . $sourceAlias) : '')]; + + foreach ($postSourceJoins as $joinClause) { + if (! is_string($joinClause) || trim($joinClause) === '') { + continue; + } + + $lines[] = ' ' . trim($joinClause); + } + + return $lines; + } + + protected function buildSourceAccessPreflightForClones(array $rewriteContext): array + { + $tablesById = $rewriteContext['tables_by_id'] ?? []; + $targetSchema = trim((string) ($rewriteContext['target_schema'] ?? '')); + + if (! is_array($tablesById) || $tablesById === [] || $targetSchema === '') { + return []; + } + + $resolveSourcesForTableIds = function (array $tableIds) use ($tablesById): array { + return collect($tableIds) + ->map(function (int $tableId) use ($tablesById) { + $mapping = $tablesById[$tableId] ?? null; + return is_array($mapping) ? ($mapping['source_qualified'] ?? null) : null; + }) + ->filter(fn($source) => is_string($source) && trim($source) !== '') + ->map(fn(string $source) => trim($source)) + ->unique() + ->values() + ->all(); + }; + + $grantScopeTableIds = array_values(array_filter( + array_map('intval', $rewriteContext['grant_scope_table_ids'] ?? []), + fn(int $id) => $id > 0 + )); + + $sources = []; + if ($grantScopeTableIds !== []) { + $sources = $resolveSourcesForTableIds($grantScopeTableIds); + } + + if ($sources === []) { + $allTableIds = array_values(array_filter(array_map('intval', array_keys($tablesById)), fn(int $id) => $id > 0)); + $sources = $resolveSourcesForTableIds($allTableIds); + } + + if ($sources === []) { + return []; + } + + $targetSchemaUpper = Str::upper($targetSchema); + $targetSchemaLiteral = str_replace("'", "''", $targetSchemaUpper); + + // Collect distinct source schemas for fallback guidance. + $sourceSchemas = collect($sources) + ->map(fn($s) => explode('.', $s, 2)[0] ?? '') + ->filter(fn($s) => $s !== '') + ->map(fn($s) => Str::upper($s)) + ->unique() + ->values() + ->all(); + + $sourceSchemaSample = $sourceSchemas[0] ?? 'SOURCE_OWNER'; + $sourceCount = count($sources); + + $needsCreateView = false; + $needsCreateTable = false; + foreach ($tablesById as $mapping) { + if (! is_array($mapping)) { + continue; + } + + $relationKind = $this->normalizeRelationKind($mapping['target_relation_kind'] ?? ($rewriteContext['target_relation_kind'] ?? 'table')); + if ($relationKind === 'view') { + $needsCreateView = true; + } else { + $needsCreateTable = true; + } + } + + // ── Section header ──────────────────────────────────────────── + $lines = [ + $this->commentDivider('='), + '-- Privilege preflight (optimistic)', + '-- Attempts all privilege setup as the current user.', + '-- If the current user cannot grant or create objects, the script', + '-- stops with a clear message explaining what to do.', + $this->commentDivider('='), + '', + ]; + + // ── Step 1: Try SELECT grants (best-effort) ────────────────── + $lines[] = $this->commentDivider('-'); + $lines[] = '-- Step 1: Ensure SELECT grants on source objects to target schema'; + $lines[] = $this->commentDivider('-'); + $lines[] = 'DECLARE'; + $lines[] = ' v_current_user VARCHAR2(128) := UPPER(USER);'; + $lines[] = " v_target_schema VARCHAR2(128) := '{$targetSchemaLiteral}';"; + $lines[] = ' v_grant_ok NUMBER := 0;'; + $lines[] = ' v_grant_skip NUMBER := 0;'; + $lines[] = 'BEGIN'; + + foreach ($sources as $source) { + $grantSql = "GRANT SELECT ON {$source} TO {$targetSchemaLiteral}"; + $sourceLiteral = str_replace("'", "''", $source); + + $lines[] = ' BEGIN'; + $lines[] = " EXECUTE IMMEDIATE '" . str_replace("'", "''", $grantSql) . "';"; + $lines[] = ' v_grant_ok := v_grant_ok + 1;'; + $lines[] = ' EXCEPTION'; + $lines[] = ' WHEN OTHERS THEN'; + $lines[] = ' v_grant_skip := v_grant_skip + 1;'; + $lines[] = ' END;'; + } + + $lines[] = ''; + if ($needsCreateView || $needsCreateTable) { + $lines[] = ' -- Try system privilege grants needed for target object creation'; + } + if ($needsCreateView) { + $lines[] = ' BEGIN'; + $lines[] = " EXECUTE IMMEDIATE 'GRANT CREATE VIEW TO {$targetSchemaLiteral}';"; + $lines[] = ' EXCEPTION WHEN OTHERS THEN NULL;'; + $lines[] = ' END;'; + } + if ($needsCreateTable) { + $lines[] = ' BEGIN'; + $lines[] = " EXECUTE IMMEDIATE 'GRANT CREATE TABLE TO {$targetSchemaLiteral}';"; + $lines[] = ' EXCEPTION WHEN OTHERS THEN NULL;'; + $lines[] = ' END;'; + } + $lines[] = ''; + $lines[] = " IF v_grant_ok > 0 THEN"; + $lines[] = " DBMS_OUTPUT.PUT_LINE('Step 1: granted SELECT on ' || v_grant_ok || ' object(s) to ' || v_target_schema || '.');"; + $lines[] = " ELSIF v_grant_skip = {$sourceCount} THEN"; + $lines[] = " DBMS_OUTPUT.PUT_LINE('Step 1: no grant privilege — assuming grants are pre-configured.');"; + $lines[] = ' END IF;'; + $lines[] = 'END;'; + $lines[] = '/'; + $lines[] = ''; + + // ── Step 2: Validate SELECT grants exist ───────────────────── + $lines[] = $this->commentDivider('-'); + $lines[] = '-- Step 2: Validate SELECT grants exist for target schema'; + $lines[] = $this->commentDivider('-'); + $lines[] = 'DECLARE'; + $lines[] = ' v_failures NUMBER := 0;'; + $lines[] = ' v_grant_count NUMBER := 0;'; + $lines[] = " v_target_schema VARCHAR2(128) := '{$targetSchemaLiteral}';"; + $lines[] = ' v_current_user VARCHAR2(128) := UPPER(USER);'; + $lines[] = 'BEGIN'; + + foreach ($sources as $index => $source) { + $sourceLiteral = str_replace("'", "''", $source); + + $ownerPart = ''; + $objectPart = ''; + $parts = explode('.', $source, 2); + if (count($parts) === 2) { + $ownerPart = Str::upper(trim($parts[0])); + $objectPart = Str::upper(trim($parts[1])); + } else { + $objectPart = Str::upper(trim($source)); + } + + $ownerLiteral = str_replace("'", "''", $ownerPart); + $objectLiteral = str_replace("'", "''", $objectPart); + + $lines[] = ' v_grant_count := 0;'; + $lines[] = ' BEGIN'; + if ($ownerPart !== '') { + $lines[] = " EXECUTE IMMEDIATE 'SELECT COUNT(*) FROM ALL_TAB_PRIVS WHERE OWNER = :1 AND TABLE_NAME = :2 AND GRANTEE = :3 AND PRIVILEGE = ''SELECT''' INTO v_grant_count USING '{$ownerLiteral}', '{$objectLiteral}', v_target_schema;"; + $lines[] = ' EXCEPTION WHEN OTHERS THEN'; + $lines[] = ' BEGIN'; + $lines[] = " EXECUTE IMMEDIATE 'SELECT COUNT(*) FROM ALL_TAB_PRIVS WHERE TABLE_SCHEMA = :1 AND TABLE_NAME = :2 AND GRANTEE = :3 AND PRIVILEGE = ''SELECT''' INTO v_grant_count USING '{$ownerLiteral}', '{$objectLiteral}', v_target_schema;"; + $lines[] = ' EXCEPTION WHEN OTHERS THEN v_grant_count := 0;'; + $lines[] = ' END;'; + } else { + $lines[] = " EXECUTE IMMEDIATE 'SELECT COUNT(*) FROM ALL_TAB_PRIVS WHERE TABLE_NAME = :1 AND GRANTEE = :2 AND PRIVILEGE = ''SELECT''' INTO v_grant_count USING '{$objectLiteral}', v_target_schema;"; + $lines[] = ' EXCEPTION WHEN OTHERS THEN v_grant_count := 0;'; + } + $lines[] = ' END;'; + // If ALL_TAB_PRIVS didn't find it (e.g. running as source owner), try USER_TAB_PRIVS_MADE. + $lines[] = ' IF v_grant_count = 0 THEN'; + $lines[] = ' BEGIN'; + $lines[] = ' SELECT COUNT(*) INTO v_grant_count FROM USER_TAB_PRIVS_MADE'; + $lines[] = " WHERE TABLE_NAME = '{$objectLiteral}' AND GRANTEE = v_target_schema AND PRIVILEGE = 'SELECT';"; + $lines[] = ' EXCEPTION WHEN OTHERS THEN v_grant_count := 0;'; + $lines[] = ' END;'; + $lines[] = ' END IF;'; + $lines[] = ' IF v_grant_count = 0 THEN'; + $lines[] = ' v_failures := v_failures + 1;'; + $lines[] = " DBMS_OUTPUT.PUT_LINE(' Missing grant: SELECT ON {$sourceLiteral} TO ' || v_target_schema);"; + $lines[] = ' END IF;'; + } + + $lines[] = ''; + $lines[] = ' IF v_failures > 0 THEN'; + $lines[] = " RAISE_APPLICATION_ERROR(-20042, v_failures || ' source object(s) lack SELECT grants to ' || v_target_schema || '. Connect as " . str_replace("'", "''", $sourceSchemaSample) . " (source owner) and re-run, or ask a DBA to grant them.');"; + $lines[] = ' ELSE'; + $lines[] = " DBMS_OUTPUT.PUT_LINE('Step 2: all {$sourceCount} source object grants verified.');"; + $lines[] = ' END IF;'; + $lines[] = 'END;'; + $lines[] = '/'; + $lines[] = ''; + + // ── Step 3: DDL readiness ───────────────────────────────────── + $lines[] = $this->commentDivider('-'); + $lines[] = '-- Step 3: Verify DDL privileges for target schema'; + $lines[] = $this->commentDivider('-'); + $lines[] = 'DECLARE'; + $lines[] = ' v_current_user VARCHAR2(128) := UPPER(USER);'; + $lines[] = " v_target_schema VARCHAR2(128) := '{$targetSchemaLiteral}';"; + $lines[] = ' v_needs_view NUMBER := ' . ($needsCreateView ? '1' : '0') . ';'; + $lines[] = ' v_needs_table NUMBER := ' . ($needsCreateTable ? '1' : '0') . ';'; + $lines[] = ' v_can_create_view NUMBER := 0;'; + $lines[] = ' v_can_create_table NUMBER := 0;'; + $lines[] = 'BEGIN'; + $lines[] = ' BEGIN'; + $lines[] = ' SELECT COUNT(*) INTO v_can_create_view FROM SESSION_PRIVS'; + $lines[] = " WHERE PRIVILEGE IN ('CREATE VIEW', 'CREATE ANY VIEW');"; + $lines[] = ' EXCEPTION WHEN OTHERS THEN v_can_create_view := 0;'; + $lines[] = ' END;'; + $lines[] = ' BEGIN'; + $lines[] = ' SELECT COUNT(*) INTO v_can_create_table FROM SESSION_PRIVS'; + $lines[] = " WHERE PRIVILEGE IN ('CREATE TABLE', 'CREATE ANY TABLE');"; + $lines[] = ' EXCEPTION WHEN OTHERS THEN v_can_create_table := 0;'; + $lines[] = ' END;'; + $lines[] = ''; + $lines[] = ' IF (v_needs_view = 0 OR v_can_create_view > 0)'; + $lines[] = ' AND (v_needs_table = 0 OR v_can_create_table > 0)'; + $lines[] = ' AND (v_current_user = v_target_schema OR (v_needs_view = 1 AND v_can_create_view > 0) OR (v_needs_table = 1 AND v_can_create_table > 0)) THEN'; + $lines[] = " DBMS_OUTPUT.PUT_LINE('Step 3: DDL readiness confirmed (user=' || v_current_user || ').');"; + $lines[] = ' ELSE'; + $lines[] = ' IF v_current_user = v_target_schema AND v_needs_view = 1 AND v_can_create_view = 0 THEN'; + $lines[] = " RAISE_APPLICATION_ERROR(-20043, 'User ' || v_current_user || ' lacks CREATE VIEW. A DBA must run: GRANT CREATE VIEW TO ' || v_target_schema);"; + $lines[] = ' ELSIF v_current_user = v_target_schema AND v_needs_table = 1 AND v_can_create_table = 0 THEN'; + $lines[] = " RAISE_APPLICATION_ERROR(-20043, 'User ' || v_current_user || ' lacks CREATE TABLE. A DBA must run: GRANT CREATE TABLE TO ' || v_target_schema);"; + $lines[] = ' ELSIF v_needs_view = 1 AND v_needs_table = 1 THEN'; + $lines[] = " RAISE_APPLICATION_ERROR(-20043, 'User ' || v_current_user || ' cannot create objects in ' || v_target_schema || '. Connect as ' || v_target_schema || ' or grant CREATE ANY VIEW/CREATE ANY TABLE.');"; + $lines[] = ' ELSIF v_needs_view = 1 THEN'; + $lines[] = " RAISE_APPLICATION_ERROR(-20043, 'User ' || v_current_user || ' cannot create views in ' || v_target_schema || '. Connect as ' || v_target_schema || ' or grant CREATE ANY VIEW.');"; + $lines[] = ' ELSE'; + $lines[] = " RAISE_APPLICATION_ERROR(-20043, 'User ' || v_current_user || ' cannot create tables in ' || v_target_schema || '. Connect as ' || v_target_schema || ' or grant CREATE ANY TABLE.');"; + $lines[] = ' END IF;'; + $lines[] = ' END IF;'; + $lines[] = 'END;'; + $lines[] = '/'; + $lines[] = $this->commentDivider('='); + $lines[] = ''; + + return $lines; + } + + protected function buildRequiredPackagePreflight(array $rewriteContext): array + { + $refs = $rewriteContext['required_package_refs'] ?? []; + if (! is_array($refs) || $refs === []) { + return []; + } + + $refs = array_values(array_filter($refs, fn($ref) => is_array($ref) && ! empty($ref['owner']) && ! empty($ref['package']))); + if ($refs === []) { + return []; + } + + usort($refs, function (array $a, array $b): int { + return strcmp(($a['owner'] ?? '') . '.' . ($a['package'] ?? ''), ($b['owner'] ?? '') . '.' . ($b['package'] ?? '')); + }); + + $packageOwnerHint = str_replace("'", "''", $this->anonymizationPackageOwner()); + + $lines = [ + $this->commentDivider('='), + '-- Package readiness preflight', + '-- Confirms required Faker lookup packages are pre-installed, valid, and executable by the runtime user.', + '-- Install once as ' . $packageOwnerHint . ' using the package installation script (for example: database/seeders/anonymization/packages/ANON_DATA_INSTALL_ALL.sql).', + $this->commentDivider('='), + '', + 'DECLARE', + ' v_missing NUMBER := 0;', + ' v_exists NUMBER := 0;', + ' v_exec_count NUMBER := 0;', + ' v_current_user VARCHAR2(128) := UPPER(USER);', + ' v_pkg_status VARCHAR2(30);', + ' v_body_status VARCHAR2(30);', + 'BEGIN', + ]; + + foreach ($refs as $ref) { + $owner = str_replace("'", "''", $this->mapAnonymizationPackageOwner((string) $ref['owner'])); + $package = str_replace("'", "''", strtoupper((string) $ref['package'])); + + $lines[] = ' v_exists := 0;'; + $lines[] = ' v_exec_count := 0;'; + $lines[] = ' v_pkg_status := NULL;'; + $lines[] = ' v_body_status := NULL;'; + $lines[] = ' BEGIN'; + $lines[] = ' SELECT COUNT(*) INTO v_exists FROM ALL_OBJECTS'; + $lines[] = " WHERE OWNER = '{$owner}' AND OBJECT_NAME = '{$package}' AND OBJECT_TYPE = 'PACKAGE';"; + $lines[] = ' EXCEPTION WHEN OTHERS THEN v_exists := 0;'; + $lines[] = ' END;'; + $lines[] = ' IF v_exists = 0 THEN'; + $lines[] = ' v_missing := v_missing + 1;'; + $lines[] = " DBMS_OUTPUT.PUT_LINE(' Missing package: {$owner}.{$package}');"; + $lines[] = ' END IF;'; + $lines[] = ' IF v_exists > 0 THEN'; + $lines[] = ' BEGIN'; + $lines[] = " SELECT MAX(CASE WHEN OBJECT_TYPE = 'PACKAGE' THEN STATUS END),"; + $lines[] = " MAX(CASE WHEN OBJECT_TYPE = 'PACKAGE BODY' THEN STATUS END)"; + $lines[] = ' INTO v_pkg_status, v_body_status'; + $lines[] = ' FROM ALL_OBJECTS'; + $lines[] = " WHERE OWNER = '{$owner}' AND OBJECT_NAME = '{$package}'"; + $lines[] = " AND OBJECT_TYPE IN ('PACKAGE', 'PACKAGE BODY');"; + $lines[] = ' EXCEPTION WHEN OTHERS THEN'; + $lines[] = ' v_pkg_status := NULL;'; + $lines[] = ' v_body_status := NULL;'; + $lines[] = ' END;'; + $lines[] = ' BEGIN'; + $lines[] = " IF v_current_user = '{$owner}' THEN"; + $lines[] = ' v_exec_count := 1;'; + $lines[] = ' ELSE'; + $lines[] = ' BEGIN'; + $lines[] = " EXECUTE IMMEDIATE 'SELECT COUNT(*) FROM ALL_TAB_PRIVS WHERE OWNER = :1 AND TABLE_NAME = :2 AND PRIVILEGE = ''EXECUTE'' AND (GRANTEE = :3 OR GRANTEE = ''PUBLIC'' OR GRANTEE IN (SELECT ROLE FROM SESSION_ROLES))' INTO v_exec_count USING '{$owner}', '{$package}', v_current_user;"; + $lines[] = ' EXCEPTION WHEN OTHERS THEN'; + $lines[] = ' BEGIN'; + $lines[] = " EXECUTE IMMEDIATE 'SELECT COUNT(*) FROM ALL_TAB_PRIVS WHERE TABLE_SCHEMA = :1 AND TABLE_NAME = :2 AND PRIVILEGE = ''EXECUTE'' AND (GRANTEE = :3 OR GRANTEE = ''PUBLIC'' OR GRANTEE IN (SELECT ROLE FROM SESSION_ROLES))' INTO v_exec_count USING '{$owner}', '{$package}', v_current_user;"; + $lines[] = ' EXCEPTION WHEN OTHERS THEN v_exec_count := 0;'; + $lines[] = ' END;'; + $lines[] = ' END;'; + $lines[] = ' IF v_exec_count = 0 THEN'; + $lines[] = ' BEGIN'; + $lines[] = ' SELECT COUNT(*) INTO v_exec_count FROM USER_TAB_PRIVS_MADE'; + $lines[] = " WHERE TABLE_NAME = '{$package}' AND PRIVILEGE = 'EXECUTE'"; + $lines[] = " AND (GRANTEE = v_current_user OR GRANTEE = 'PUBLIC');"; + $lines[] = ' EXCEPTION WHEN OTHERS THEN v_exec_count := 0;'; + $lines[] = ' END;'; + $lines[] = ' END IF;'; + $lines[] = ' END IF;'; + $lines[] = ' EXCEPTION WHEN OTHERS THEN'; + $lines[] = ' v_exec_count := 0;'; + $lines[] = ' END;'; + $lines[] = " IF NVL(v_pkg_status, 'INVALID') != 'VALID' THEN"; + $lines[] = ' v_missing := v_missing + 1;'; + $lines[] = " DBMS_OUTPUT.PUT_LINE(' Invalid package spec: {$owner}.{$package} (status=' || NVL(v_pkg_status, 'UNKNOWN') || ')');"; + $lines[] = ' END IF;'; + $lines[] = " IF NVL(v_body_status, 'INVALID') != 'VALID' THEN"; + $lines[] = ' v_missing := v_missing + 1;'; + $lines[] = " DBMS_OUTPUT.PUT_LINE(' Invalid package body: {$owner}.{$package} (status=' || NVL(v_body_status, 'UNKNOWN') || ')');"; + $lines[] = ' END IF;'; + $lines[] = ' IF v_exec_count = 0 THEN'; + $lines[] = ' v_missing := v_missing + 1;'; + $lines[] = " DBMS_OUTPUT.PUT_LINE(' Missing EXECUTE grant for runtime user on {$owner}.{$package} (grant to user, role, or PUBLIC).');"; + $lines[] = " DBMS_OUTPUT.PUT_LINE(' Suggested: GRANT EXECUTE ON {$owner}.{$package} TO ' || v_current_user || ';');"; + $lines[] = ' END IF;'; + $lines[] = ' END IF;'; + } + + $lines[] = ' IF v_missing > 0 THEN'; + $lines[] = " RAISE_APPLICATION_ERROR(-20044, v_missing || ' package readiness issue(s) detected. Install/recompile {$packageOwnerHint} packages, then re-run this job script.');"; + $lines[] = ' ELSE'; + $lines[] = " DBMS_OUTPUT.PUT_LINE('Package preflight: all required packages and bodies are VALID.');"; + $lines[] = ' END IF;'; + $lines[] = 'END;'; + $lines[] = '/'; + $lines[] = $this->commentDivider('='); + $lines[] = ''; + + return $lines; + } + + protected function buildConditionalPackageBootstrap(array $rewriteContext): array + { + $refs = $rewriteContext['required_package_refs'] ?? []; + if (! is_array($refs) || $refs === []) { + return []; + } + + $refs = array_values(array_filter($refs, fn($ref) => is_array($ref) && ! empty($ref['owner']) && ! empty($ref['package']))); + if ($refs === []) { + return []; + } + + $packageNames = array_values(array_unique(array_map( + fn($ref) => strtoupper((string) ($ref['package'] ?? '')), + $refs + ))); + + $packages = AnonymizationPackage::query() + ->withTrashed() + ->whereIn('package_name', $packageNames) + ->get() + ->keyBy(fn(AnonymizationPackage $pkg) => strtoupper((string) ($pkg->package_name ?? ''))); + + $lines = [ + $this->commentDivider('='), + '-- Conditional package bootstrap', + '-- Installs required Faker packages only when missing in target schema.', + '-- Uses package artifacts stored in KLAMM metadata.', + $this->commentDivider('='), + '', + ]; + + $emitted = 0; + + foreach ($refs as $ref) { + $owner = $this->mapAnonymizationPackageOwner((string) ($ref['owner'] ?? '')); + $packageName = strtoupper((string) ($ref['package'] ?? '')); + + if ($owner === '' || $packageName === '') { + continue; + } + + $package = $packages->get($packageName); + $specSql = $this->rewriteAnonymizationPackageOwner(trim((string) ($package?->package_spec_sql ?? ''))); + $bodySql = $this->rewriteAnonymizationPackageOwner(trim((string) ($package?->package_body_sql ?? ''))); + + if ($specSql === '' || $bodySql === '') { + $lines[] = '-- Package bootstrap unavailable for ' . $owner . '.' . $packageName . ' (missing stored spec/body SQL).'; + continue; + } + + $lines = array_merge($lines, $this->buildConditionalPackageInstallBlock( + $owner, + $packageName, + $specSql, + $bodySql + )); + $emitted++; + } + + if ($emitted === 0) { + $lines[] = '-- No installable package payloads available; preflight checks will enforce readiness.'; + } + + $lines[] = $this->commentDivider('='); + $lines[] = ''; + + return $lines; + } + + protected function buildConditionalPackageInstallBlock( + string $owner, + string $packageName, + string $specSql, + string $bodySql + ): array { + $ownerLiteral = str_replace("'", "''", strtoupper($owner)); + $packageLiteral = str_replace("'", "''", strtoupper($packageName)); + + $lines = [ + '-- Package bootstrap candidate: ' . $ownerLiteral . '.' . $packageLiteral, + 'DECLARE', + ' v_pkg_status VARCHAR2(30) := NULL;', + ' v_body_status VARCHAR2(30) := NULL;', + ' v_needs_install NUMBER := 0;', + ' v_cursor INTEGER := NULL;', + ' v_lines DBMS_SQL.VARCHAR2A;', + ' v_line_count PLS_INTEGER := 0;', + 'BEGIN', + ' BEGIN', + " SELECT MAX(CASE WHEN OBJECT_TYPE = 'PACKAGE' THEN STATUS END),", + " MAX(CASE WHEN OBJECT_TYPE = 'PACKAGE BODY' THEN STATUS END)", + ' INTO v_pkg_status, v_body_status', + ' FROM ALL_OBJECTS', + " WHERE OWNER = '{$ownerLiteral}'", + " AND OBJECT_NAME = '{$packageLiteral}'", + " AND OBJECT_TYPE IN ('PACKAGE', 'PACKAGE BODY');", + ' EXCEPTION WHEN OTHERS THEN', + ' v_pkg_status := NULL;', + ' v_body_status := NULL;', + ' END;', + " IF NVL(v_pkg_status, 'INVALID') != 'VALID' OR NVL(v_body_status, 'INVALID') != 'VALID' THEN", + ' v_needs_install := 1;', + " DBMS_OUTPUT.PUT_LINE('Package status before bootstrap: spec=' || NVL(v_pkg_status, 'MISSING') || ', body=' || NVL(v_body_status, 'MISSING'));", + ' END IF;', + ' IF v_needs_install = 1 THEN', + " DBMS_OUTPUT.PUT_LINE('Installing missing package {$ownerLiteral}.{$packageLiteral} ...');", + ]; + + $lines = array_merge($lines, $this->renderPlsqlExecuteChunkedStatement('v_lines', 'v_line_count', 'v_cursor', trim($specSql))); + $lines = array_merge($lines, $this->renderPlsqlExecuteChunkedStatement('v_lines', 'v_line_count', 'v_cursor', trim($bodySql))); + + $lines[] = " DBMS_OUTPUT.PUT_LINE('Installed package {$ownerLiteral}.{$packageLiteral}.');"; + $lines[] = ' ELSE'; + $lines[] = " DBMS_OUTPUT.PUT_LINE('Package {$ownerLiteral}.{$packageLiteral} already installed and VALID; skipping bootstrap.');"; + $lines[] = ' END IF;'; + $lines[] = 'EXCEPTION'; + $lines[] = ' WHEN OTHERS THEN'; + $lines[] = ' IF v_cursor IS NOT NULL AND DBMS_SQL.IS_OPEN(v_cursor) THEN'; + $lines[] = ' DBMS_SQL.CLOSE_CURSOR(v_cursor);'; + $lines[] = ' END IF;'; + $lines[] = ' IF SQLCODE = -1031 THEN'; + $lines[] = " DBMS_OUTPUT.PUT_LINE('Insufficient privileges to install package {$ownerLiteral}.{$packageLiteral}; skipping bootstrap.');"; + $lines[] = " DBMS_OUTPUT.PUT_LINE('Install package payloads once as {$ownerLiteral} (or a DBA), then re-run this script.');"; + $lines[] = ' ELSIF SQLCODE = -24344 THEN'; + $lines[] = " DBMS_OUTPUT.PUT_LINE('Package {$ownerLiteral}.{$packageLiteral} compiled with errors.');"; + $lines[] = " DBMS_OUTPUT.PUT_LINE('Compiler diagnostics:');"; + $lines[] = ' DECLARE'; + $lines[] = ' v_found NUMBER := 0;'; + $lines[] = ' BEGIN'; + $lines[] = ' BEGIN'; + $lines[] = ' FOR rec IN ('; + $lines[] = ' SELECT TYPE, LINE, POSITION, TEXT'; + $lines[] = ' FROM ALL_ERRORS'; + $lines[] = " WHERE OWNER = '{$ownerLiteral}'"; + $lines[] = " AND NAME = '{$packageLiteral}'"; + $lines[] = " AND TYPE IN ('PACKAGE', 'PACKAGE BODY')"; + $lines[] = " ORDER BY CASE TYPE WHEN 'PACKAGE' THEN 1 ELSE 2 END, LINE, POSITION"; + $lines[] = ' ) LOOP'; + $lines[] = ' v_found := v_found + 1;'; + $lines[] = " DBMS_OUTPUT.PUT_LINE(' ' || rec.TYPE || ' L' || rec.LINE || ':' || rec.POSITION || ' ' || rec.TEXT);"; + $lines[] = ' END LOOP;'; + $lines[] = ' EXCEPTION'; + $lines[] = ' WHEN OTHERS THEN'; + $lines[] = ' NULL;'; + $lines[] = ' END;'; + $lines[] = ' IF v_found = 0 THEN'; + $lines[] = ' BEGIN'; + $lines[] = ' FOR rec IN ('; + $lines[] = ' SELECT TYPE, LINE, POSITION, TEXT'; + $lines[] = ' FROM USER_ERRORS'; + $lines[] = " WHERE NAME = '{$packageLiteral}'"; + $lines[] = " AND TYPE IN ('PACKAGE', 'PACKAGE BODY')"; + $lines[] = " ORDER BY CASE TYPE WHEN 'PACKAGE' THEN 1 ELSE 2 END, LINE, POSITION"; + $lines[] = ' ) LOOP'; + $lines[] = ' v_found := v_found + 1;'; + $lines[] = " DBMS_OUTPUT.PUT_LINE(' ' || rec.TYPE || ' L' || rec.LINE || ':' || rec.POSITION || ' ' || rec.TEXT);"; + $lines[] = ' END LOOP;'; + $lines[] = ' EXCEPTION'; + $lines[] = ' WHEN OTHERS THEN'; + $lines[] = ' NULL;'; + $lines[] = ' END;'; + $lines[] = ' END IF;'; + $lines[] = ' IF v_found = 0 THEN'; + $lines[] = " DBMS_OUTPUT.PUT_LINE(' (No compiler diagnostics visible. Query ALL_ERRORS/USER_ERRORS for details.)');"; + $lines[] = ' END IF;'; + $lines[] = ' END;'; + $lines[] = " RAISE_APPLICATION_ERROR(-20045, 'Package {$ownerLiteral}.{$packageLiteral} failed to compile. See DBMS_OUTPUT compiler diagnostics above.');"; + $lines[] = ' ELSE'; + $lines[] = ' RAISE;'; + $lines[] = ' END IF;'; + $lines[] = 'END;'; + $lines[] = '/'; + $lines[] = ''; + + return $lines; + } + + protected function renderPlsqlExecuteClobStatement(string $sqlVar, string $cursorVar, string $statement): array + { + return $this->renderPlsqlExecuteChunkedStatement('v_lines', 'v_line_count', $cursorVar, $statement); + } + + protected function renderPlsqlExecuteChunkedStatement( + string $linesVar, + string $countVar, + string $cursorVar, + string $statement + ): array { + $statement = $this->normalizeStatementForDbmsSqlParse($statement); + + $maxChunkBytes = 20000; + $chunks = []; + + if ($statement !== '') { + $linesForChunking = preg_split('/\n/', $statement) ?: []; + $currentChunk = ''; + + foreach ($linesForChunking as $line) { + $lineWithNewline = $line . "\n"; + + if ($currentChunk !== '' && strlen($currentChunk) + strlen($lineWithNewline) > $maxChunkBytes) { + $chunks[] = rtrim($currentChunk, "\n"); + $currentChunk = ''; } - $lines[] = $this->commentDivider('='); - if (! is_string($selectList) || trim($selectList) === '') { - $lines[] = '-- Skipped: no non-LONG columns available for view.'; - } elseif (trim($selectList) === '*' && (empty($longColumns))) { - $lines[] = 'CREATE OR REPLACE VIEW ' . $target . ' AS'; - $lines[] = 'SELECT *'; - $lines[] = 'FROM ' . $source . ($sourceAlias ? (' ' . $sourceAlias) : '') . ';'; - } else { - $lines[] = 'CREATE OR REPLACE VIEW ' . $target . ' AS'; - $lines[] = 'SELECT ' . $selectList; - $lines[] = 'FROM ' . $source . ($sourceAlias ? (' ' . $sourceAlias) : '') . ';'; + if (strlen($lineWithNewline) > $maxChunkBytes) { + $lineChunks = str_split($lineWithNewline, $maxChunkBytes); + foreach ($lineChunks as $lineChunk) { + if ($lineChunk === '') { + continue; + } + + if (strlen($lineChunk) === $maxChunkBytes) { + $chunks[] = $lineChunk; + } else { + $currentChunk = $lineChunk; + } + } + + continue; } - $lines[] = $this->commentDivider('='); - $lines[] = ''; - continue; + + $currentChunk .= $lineWithNewline; } - $lines[] = $this->commentDivider('='); - $lines[] = '-- Drop target table if it exists'; - $lines[] = $this->commentDivider('='); - $lines[] = 'BEGIN'; - $lines[] = " EXECUTE IMMEDIATE 'DROP TABLE {$target} CASCADE CONSTRAINTS PURGE';"; - $lines[] = 'EXCEPTION'; - $lines[] = ' WHEN OTHERS THEN'; - $lines[] = ' IF SQLCODE != -942 THEN'; - $lines[] = ' RAISE;'; - $lines[] = ' END IF;'; - $lines[] = 'END;'; - $lines[] = '/'; - $lines[] = $this->commentDivider('='); - $lines[] = ''; + if ($currentChunk !== '') { + $chunks[] = rtrim($currentChunk, "\n"); + } + } - $lines[] = $this->commentDivider('='); - $lines[] = '-- Create anonymized working copy'; - $lines[] = '-- NOTE:'; - $lines[] = '-- * Uses SELECT * to avoid invalid identifier failures'; - $lines[] = '-- * Copies only columns visible to this user'; - $lines[] = '-- * No constraints / indexes are copied (expected)'; - if (is_array($longColumns) && $longColumns !== []) { - $lines[] = '-- * LONG columns are omitted to avoid ORA-00997'; + if ($chunks === []) { + $chunks = ['']; + } + + $lines = []; + $lines[] = ' ' . $linesVar . '.DELETE;'; + $lines[] = ' ' . $countVar . ' := 0;'; + + foreach ($chunks as $index => $chunk) { + $literal = $this->oracleQQuotedLiteral($chunk); + $lineNo = $index + 1; + $lines[] = ' ' . $countVar . ' := ' . $countVar . ' + 1;'; + $lines[] = ' ' . $linesVar . '(' . $lineNo . ') := ' . $literal . ';'; + } + + $lines[] = ' ' . $cursorVar . ' := DBMS_SQL.OPEN_CURSOR;'; + $lines[] = ' DBMS_SQL.PARSE(' . $cursorVar . ', ' . $linesVar . ', 1, ' . $countVar . ', TRUE, DBMS_SQL.NATIVE);'; + $lines[] = ' DBMS_SQL.CLOSE_CURSOR(' . $cursorVar . ');'; + + return $lines; + } + + protected function normalizeStatementForDbmsSqlParse(string $statement): string + { + if ($statement === '') { + return ''; + } + + $statement = str_replace("\r\n", "\n", $statement); + $statement = str_replace("\r", "\n", $statement); + + $lines = preg_split('/\n/', $statement) ?: []; + $filtered = []; + + foreach ($lines as $line) { + if (trim($line) === '/') { + continue; } - $lines[] = $this->commentDivider('='); - if (! is_string($selectList) || trim($selectList) === '') { - $lines[] = '-- Skipped: no non-LONG columns available for CTAS.'; - } elseif (trim($selectList) === '*' && (empty($longColumns))) { - $lines[] = 'CREATE TABLE ' . $target . ' AS'; - $lines[] = 'SELECT *'; - $lines[] = 'FROM ' . $source . ($sourceAlias ? (' ' . $sourceAlias) : '') . ';'; - } else { - $lines[] = 'CREATE TABLE ' . $target . ' AS'; - $lines[] = 'SELECT ' . $selectList; - $lines[] = 'FROM ' . $source . ($sourceAlias ? (' ' . $sourceAlias) : '') . ';'; + $filtered[] = rtrim($line); + } + + return trim(implode("\n", $filtered)); + } + + protected function oracleQQuotedLiteral(string $value): string + { + foreach (['~', '!', '#', '|', '^', '%', '@'] as $delimiter) { + if (! str_contains($value, $delimiter)) { + return "q'{$delimiter}{$value}{$delimiter}'"; } - $lines[] = $this->commentDivider('='); - $lines[] = ''; } - return $lines; + return "'" . str_replace("'", "''", $value) . "'"; } protected function renderJobTableClonesForTables(array $rewriteContext, array $tableIds): array @@ -2726,12 +4608,22 @@ protected function columnsByTableWithTypes(Collection $tables): array return []; } - return AnonymousSiebelColumn::query() - ->with(['dataType']) - ->whereIn('table_id', $tableIds) - ->get() - ->groupBy(fn(AnonymousSiebelColumn $column) => (int) ($column->table_id ?? 0)) - ->all(); + // Chunk the query to avoid enormous WHERE IN clauses on large schemas. + $result = []; + + foreach (array_chunk($tableIds, self::TABLE_COLUMN_CHUNK_SIZE * 5) as $chunk) { + $loaded = AnonymousSiebelColumn::query() + ->with(['dataType']) + ->whereIn('table_id', $chunk) + ->get() + ->groupBy(fn(AnonymousSiebelColumn $column) => (int) ($column->table_id ?? 0)); + + foreach ($loaded as $tableId => $columns) { + $result[$tableId] = $columns; + } + } + + return $result; } protected function longColumnsForTable(Collection $columns): array @@ -2799,15 +4691,6 @@ protected function buildForeignKeyStatements(array $rewriteContext): array return []; } - $columns = AnonymousSiebelColumn::query() - ->with(['dataType', 'table.schema']) - ->whereIn('table_id', $tableIds) - ->get(); - - if ($columns->isEmpty()) { - return []; - } - $tablesByIdentity = []; foreach ($tablesById as $tableId => $mapping) { if (($mapping['target_relation_kind'] ?? 'table') === 'view') { @@ -2820,111 +4703,151 @@ protected function buildForeignKeyStatements(array $rewriteContext): array } } - $columnsByTable = $columns->groupBy(fn(AnonymousSiebelColumn $column) => (int) ($column->table_id ?? 0)); - - $lines = []; - $seen = []; - - foreach ($columns as $column) { - $childTableId = (int) ($column->table_id ?? 0); - if ($childTableId <= 0) { - continue; - } - - $childMap = $tablesById[$childTableId] ?? null; - if (! is_array($childMap)) { - continue; - } + // Pre-load only ROW_ID columns for parent verification (tiny result set: ≤1 per table). + // This avoids loading ALL columns just for the parent compatibility check, + // and eliminates cross-chunk lookup issues. + $rowIdByTable = []; + foreach (array_chunk($tableIds, self::TABLE_COLUMN_CHUNK_SIZE * 5) as $chunk) { + $loaded = AnonymousSiebelColumn::query() + ->with(['dataType']) + ->whereIn('table_id', $chunk) + ->whereRaw('UPPER(column_name) = ?', ['ROW_ID']) + ->get(); - if (($childMap['target_relation_kind'] ?? 'table') === 'view') { - continue; + foreach ($loaded as $col) { + $rowIdByTable[(int) $col->table_id] = $col; } + } - $childColumn = trim((string) ($column->column_name ?? '')); - if ($childColumn === '') { - continue; - } + $lines = []; + $seen = []; - if ($this->isLongColumn($column)) { - continue; - } + // Process tables in chunks to keep memory bounded on large schema jobs. + foreach (array_chunk($tableIds, self::TABLE_COLUMN_CHUNK_SIZE) as $tableChunk) { + $columns = AnonymousSiebelColumn::query() + ->with(['dataType', 'table.schema']) + ->whereIn('table_id', $tableChunk) + ->get(); - $relationships = $this->resolveForeignKeyRelationships($column); - if ($relationships === []) { + if ($columns->isEmpty()) { continue; } - foreach ($relationships as $relationship) { - $direction = strtoupper((string) ($relationship['direction'] ?? 'OUTBOUND')); - if ($direction === 'INBOUND') { + foreach ($columns as $column) { + $childTableId = (int) ($column->table_id ?? 0); + if ($childTableId <= 0) { continue; } - $schema = strtoupper(trim((string) ($relationship['schema'] ?? ''))); - $table = strtoupper(trim((string) ($relationship['table'] ?? ''))); - $parentColumn = trim((string) ($relationship['column'] ?? 'ROW_ID')); - - if ($schema === '' || $table === '' || $parentColumn === '') { + $childMap = $tablesById[$childTableId] ?? null; + if (! is_array($childMap)) { continue; } - if (strtoupper($parentColumn) !== 'ROW_ID') { + if (($childMap['target_relation_kind'] ?? 'table') === 'view') { continue; } - $parentTableId = $tablesByIdentity[$schema . '|' . $table] ?? null; - if (! $parentTableId) { + $childColumn = trim((string) ($column->column_name ?? '')); + if ($childColumn === '') { continue; } - $parentMap = $tablesById[$parentTableId] ?? null; - if (! is_array($parentMap)) { + $childSelectedColumns = array_map('strtoupper', $childMap['selected_source_columns'] ?? []); + $childNullUnselectedColumns = (bool) ($childMap['null_unselected_columns'] ?? false); + if ($childNullUnselectedColumns && ! in_array(strtoupper($childColumn), $childSelectedColumns, true)) { continue; } - if (($parentMap['target_relation_kind'] ?? 'table') === 'view') { + if ($this->isLongColumn($column)) { continue; } - $parentColumns = $columnsByTable->get((int) $parentTableId, collect()); - $parentModel = $parentColumns - ->first(fn(AnonymousSiebelColumn $col) => strtoupper((string) ($col->column_name ?? '')) === strtoupper($parentColumn)); - - if (! $parentModel || $this->isLongColumn($parentModel)) { + $relationships = $this->resolveForeignKeyRelationships($column); + if ($relationships === []) { continue; } - if (! $this->columnsAreCompatible($column, $parentModel)) { - continue; - } + foreach ($relationships as $relationship) { + $direction = strtoupper((string) ($relationship['direction'] ?? 'OUTBOUND')); + if ($direction === 'INBOUND') { + continue; + } - $childTarget = $childMap['target_qualified'] ?? null; - $parentTarget = $parentMap['target_qualified'] ?? null; + $schema = strtoupper(trim((string) ($relationship['schema'] ?? ''))); + $table = strtoupper(trim((string) ($relationship['table'] ?? ''))); + $parentColumn = trim((string) ($relationship['column'] ?? 'ROW_ID')); - if (! $childTarget || ! $parentTarget) { - continue; - } + if ($schema === '' || $table === '' || $parentColumn === '') { + continue; + } - $fingerprint = strtoupper($childTarget . '|' . $childColumn . '|' . $parentTarget . '|' . $parentColumn); - if (isset($seen[$fingerprint])) { - continue; - } - $seen[$fingerprint] = true; + if (strtoupper($parentColumn) !== 'ROW_ID') { + continue; + } - $hash = substr(md5($fingerprint), 0, 8); - $constraintName = $this->oracleIdentifier('FK_' . ($childMap['target_table'] ?? 'CHILD') . '_' . $hash); + $parentTableId = $tablesByIdentity[$schema . '|' . $table] ?? null; + if (! $parentTableId) { + continue; + } - $lines[] = 'BEGIN'; - $lines[] = " EXECUTE IMMEDIATE 'ALTER TABLE {$childTarget} ADD CONSTRAINT {$constraintName} FOREIGN KEY ({$childColumn}) REFERENCES {$parentTarget} ({$parentColumn}) ENABLE NOVALIDATE';"; - $lines[] = 'EXCEPTION'; - $lines[] = ' WHEN OTHERS THEN'; - $lines[] = ' IF SQLCODE NOT IN (-2275, -2298, -2261, -955) THEN'; - $lines[] = ' RAISE;'; - $lines[] = ' END IF;'; - $lines[] = 'END;'; - $lines[] = '/'; - $lines[] = ''; + $parentMap = $tablesById[$parentTableId] ?? null; + if (! is_array($parentMap)) { + continue; + } + + if (($parentMap['target_relation_kind'] ?? 'table') === 'view') { + continue; + } + + $parentSelectedColumns = array_map('strtoupper', $parentMap['selected_source_columns'] ?? []); + $parentNullUnselectedColumns = (bool) ($parentMap['null_unselected_columns'] ?? false); + if ($parentNullUnselectedColumns && ! in_array('ROW_ID', $parentSelectedColumns, true)) { + continue; + } + + // Use pre-loaded ROW_ID map for parent verification. + $parentModel = $rowIdByTable[$parentTableId] ?? null; + + if (! $parentModel || $this->isLongColumn($parentModel)) { + continue; + } + + if (! $this->columnsAreCompatible($column, $parentModel)) { + continue; + } + + $childTarget = $childMap['target_qualified'] ?? null; + $parentTarget = $parentMap['target_qualified'] ?? null; + + if (! $childTarget || ! $parentTarget) { + continue; + } + + $fingerprint = strtoupper($childTarget . '|' . $childColumn . '|' . $parentTarget . '|' . $parentColumn); + if (isset($seen[$fingerprint])) { + continue; + } + $seen[$fingerprint] = true; + + $hash = substr(md5($fingerprint), 0, 8); + $constraintName = $this->oracleIdentifier('FK_' . ($childMap['target_table'] ?? 'CHILD') . '_' . $hash); + + $lines[] = 'BEGIN'; + $lines[] = " EXECUTE IMMEDIATE 'ALTER TABLE {$childTarget} ADD CONSTRAINT {$constraintName} FOREIGN KEY ({$childColumn}) REFERENCES {$parentTarget} ({$parentColumn}) ENABLE NOVALIDATE';"; + $lines[] = 'EXCEPTION'; + $lines[] = ' WHEN OTHERS THEN'; + $lines[] = ' IF SQLCODE NOT IN (-2275, -2298, -2261, -955) THEN'; + $lines[] = ' RAISE;'; + $lines[] = ' END IF;'; + $lines[] = 'END;'; + $lines[] = '/'; + $lines[] = ''; + } } + + // Release column models for this chunk before loading the next. + unset($columns); } return $lines; @@ -2943,11 +4866,20 @@ protected function buildPrimaryKeyStatements(array $rewriteContext): array return []; } - $columnsByTable = AnonymousSiebelColumn::query() - ->with(['dataType']) - ->whereIn('table_id', $tableIds) - ->get() - ->groupBy(fn(AnonymousSiebelColumn $column) => (int) ($column->table_id ?? 0)); + // Only load ROW_ID columns — that is all PK generation needs. + // This avoids loading the entire column set for every table in scope. + $columnsByTable = collect(); + + foreach (array_chunk($tableIds, self::TABLE_COLUMN_CHUNK_SIZE * 5) as $chunk) { + $loaded = AnonymousSiebelColumn::query() + ->with(['dataType']) + ->whereIn('table_id', $chunk) + ->whereRaw('UPPER(column_name) = ?', ['ROW_ID']) + ->get() + ->groupBy(fn(AnonymousSiebelColumn $column) => (int) ($column->table_id ?? 0)); + + $columnsByTable = $columnsByTable->merge($loaded); + } $lines = []; $seen = []; @@ -2961,6 +4893,12 @@ protected function buildPrimaryKeyStatements(array $rewriteContext): array continue; } + $selectedSourceColumns = array_map('strtoupper', $mapping['selected_source_columns'] ?? []); + $nullUnselectedColumns = (bool) ($mapping['null_unselected_columns'] ?? false); + if ($nullUnselectedColumns && ! in_array('ROW_ID', $selectedSourceColumns, true)) { + continue; + } + $columns = $columnsByTable->get((int) $tableId, collect()); $rowId = $columns->first(fn(AnonymousSiebelColumn $column) => strtoupper((string) ($column->column_name ?? '')) === 'ROW_ID'); if (! $rowId || $this->isLongColumn($rowId)) { @@ -3130,7 +5068,36 @@ protected function rewritePackageSqlBlock(string $block, array $rewriteContext): $block = preg_replace('/\b' . preg_quote($tableName, '/') . '\b/', $prefixed, $block); } - return $block; + return $this->rewriteAnonymizationPackageOwner($block); + } + + protected function anonymizationPackageOwner(): string + { + $owner = strtoupper(trim((string) config('anonymizer.package_owner', 'ANON_DATA'))); + $owner = preg_replace('/[^A-Z0-9_$#]/', '', $owner) ?: ''; + + return $owner !== '' ? $owner : 'ANON_DATA'; + } + + protected function mapAnonymizationPackageOwner(string $owner): string + { + $owner = strtoupper(trim($owner)); + + if ($owner === 'ANON_DATA') { + return $this->anonymizationPackageOwner(); + } + + return $owner; + } + + protected function rewriteAnonymizationPackageOwner(string $sql): string + { + $owner = $this->anonymizationPackageOwner(); + if ($owner === 'ANON_DATA' || trim($sql) === '') { + return $sql; + } + + return preg_replace('/\bANON_DATA\.(PKG_ANON_[A-Za-z0-9_$#]+)\b/i', $owner . '.$1', $sql) ?? $sql; } protected function buildSeedMapContext(Collection $columns, array $seedProviders, array $rewriteContext, ?AnonymizationJobs $job = null): array @@ -3207,10 +5174,26 @@ protected function buildSeedMapContext(Collection $columns, array $seedProviders $columnType = $this->oracleColumnTypeForColumn($provider); - $seedExpr = $this->seedExpressionForProvider($provider); - $seedExpr = $this->renderSeedExpressionPlaceholders($seedExpr, $rewriteContext); - if ($inlineMasking) { - $seedExpr = str_replace('tgt.', $sourceAlias . '.', $seedExpr); + // Compute the actual anonymized expression from the provider's method. + // This ensures the seed map stores old_value → anonymized_value, + // not an identity mapping (old_value → old_value). + $providerMethod = $this->resolveMethodForColumn($provider); + $anonymizedExpr = $this->anonymizedExpressionForSeedMap( + $provider, + $providerMethod, + $rewriteContext, + $inlineMasking ? $sourceAlias : 'tgt' + ); + + if ($anonymizedExpr !== null) { + $seedExpr = $anonymizedExpr; + } else { + // Fallback to raw column reference when expression can't be extracted. + $seedExpr = $this->seedExpressionForProvider($provider); + $seedExpr = $this->renderSeedExpressionPlaceholders($seedExpr, $rewriteContext); + if ($inlineMasking) { + $seedExpr = str_replace('tgt.', $sourceAlias . '.', $seedExpr); + } } $providers[(int) $providerId] = [ @@ -3282,8 +5265,11 @@ protected function renderSeedMapTables(array $seedMapContext): array $lines[] = ' ' . $sourceAlias . '.' . $providerColumn . ' AS old_value,'; $lines[] = ' ' . $seedExpr . ' AS new_value'; $lines[] = ' FROM ' . $providerTable . ' ' . $sourceAlias; + $lines[] = ' WHERE ' . $sourceAlias . '.' . $providerColumn . ' IS NOT NULL'; $lines[] = ') src'; $lines[] = 'ON (sm.old_value = src.old_value)'; + $lines[] = 'WHEN MATCHED THEN'; + $lines[] = ' UPDATE SET sm.new_value = src.new_value'; $lines[] = 'WHEN NOT MATCHED THEN'; $lines[] = ' INSERT (old_value, new_value) VALUES (src.old_value, src.new_value);'; $lines[] = ''; @@ -3292,14 +5278,15 @@ protected function renderSeedMapTables(array $seedMapContext): array $lines[] = " EXECUTE IMMEDIATE 'DROP TABLE {$seedMapTable} PURGE';"; $lines[] = 'EXCEPTION'; $lines[] = ' WHEN OTHERS THEN'; - $lines[] = ' IF SQLCODE != -942 THEN RAISE; END IF;'; + $lines[] = ' IF SQLCODE NOT IN (-942, -12083) THEN RAISE; END IF;'; $lines[] = 'END;'; $lines[] = '/'; $lines[] = 'CREATE TABLE ' . $seedMapTable . ' AS'; $lines[] = 'SELECT'; $lines[] = ' ' . $sourceAlias . '.' . $providerColumn . ' AS old_value,'; $lines[] = ' ' . $seedExpr . ' AS new_value'; - $lines[] = 'FROM ' . $providerTable . ' ' . $sourceAlias . ';'; + $lines[] = 'FROM ' . $providerTable . ' ' . $sourceAlias; + $lines[] = 'WHERE ' . $sourceAlias . '.' . $providerColumn . ' IS NOT NULL;'; $lines[] = ''; } } @@ -3368,6 +5355,21 @@ protected function jobHeaderMetadata(?AnonymizationJobs $job): array protected function buildHeaderLines(array $jobMeta, array $rewriteContext = []): array { + $targetSchema = Str::upper(trim((string) ($rewriteContext['target_schema'] ?? ''))); + $tableScopeMode = trim((string) ($rewriteContext['table_scope_mode'] ?? '')); + + // Collect distinct source schemas for header instructions. + $sourceSchemas = []; + $tablesById = $rewriteContext['tables_by_id'] ?? []; + if (is_array($tablesById)) { + $sourceSchemas = collect($tablesById) + ->map(fn($m) => is_array($m) ? Str::upper(explode('.', (string) ($m['source_qualified'] ?? ''), 2)[0] ?? '') : '') + ->filter(fn($s) => $s !== '') + ->unique() + ->values() + ->all(); + } + $lines = [ $this->commentDivider('='), '-- ' . $jobMeta['title'], @@ -3382,6 +5384,27 @@ protected function buildHeaderLines(array $jobMeta, array $rewriteContext = []): $lines[] = '-- Output Format: ' . $jobMeta['output']; } + if ($tableScopeMode !== '') { + $scopeLabel = match ($tableScopeMode) { + 'explicit-columns' => 'explicit selected columns (plus dependencies)', + 'full-schema' => 'full schema expansion', + default => 'selection-derived scope', + }; + $lines[] = '-- Table Scope: ' . $scopeLabel; + } + + // Connection guidance + if ($targetSchema !== '' && $sourceSchemas !== []) { + $lines[] = '--'; + $lines[] = '-- HOW TO RUN: Connect and execute. The script auto-detects privileges.'; + $lines[] = '-- Best: a DBA or privileged user runs once and everything works.'; + $lines[] = '-- Otherwise: the script stops with guidance if split-user setup is needed.'; + } + + $lines[] = '-- SQL*Plus / SQLcl runtime settings'; + $lines[] = 'SET SERVEROUTPUT ON SIZE UNLIMITED'; + $lines[] = 'WHENEVER SQLERROR EXIT SQL.SQLCODE'; + $lines[] = $this->commentDivider('='); $lines[] = ''; @@ -3390,12 +5413,37 @@ protected function buildHeaderLines(array $jobMeta, array $rewriteContext = []): return $lines; } + protected function buildDeterministicRandomSeedSection(array $rewriteContext): array + { + $jobSeed = trim((string) ($rewriteContext['job_seed'] ?? '')); + if ($jobSeed === '') { + return []; + } + + $jobSeedLiteral = $rewriteContext['job_seed_literal'] ?? $this->oracleStringLiteral($jobSeed); + if (! is_string($jobSeedLiteral) || $jobSeedLiteral === '') { + $jobSeedLiteral = $this->oracleStringLiteral($jobSeed); + } + + return [ + $this->commentDivider('='), + '-- Deterministic Randomness', + '-- Seeds DBMS_RANDOM from job seed so random-based methods are repeatable.', + $this->commentDivider('='), + 'BEGIN', + ' DBMS_RANDOM.SEED(' . $jobSeedLiteral . ');', + 'END;', + '/', + '', + ]; + } + protected function buildPrivilegePreflightSection(): array { return [ $this->commentDivider('='), - '-- Privilege Preflight', - '-- CREATE TABLE AS SELECT requires direct SELECT grants (roles are insufficient in Oracle).', + '-- Note: CREATE VIEW / CTAS require direct SELECT grants (role-only access is not sufficient).', + '-- The preflight below auto-detects and configures privileges where possible.', $this->commentDivider('='), '', ]; @@ -3488,11 +5536,36 @@ protected function resolveMethodForColumn(AnonymousSiebelColumn $column): ?Anony return $this->methodCache[$columnId]; } + // Rule-based resolution: use the column's assigned rule to resolve the method. + // The job's strategy (stored on $this->currentJobStrategy) guides which method + // the rule returns; if no strategy is set, the rule's default method is used. + $rules = $column->getRelationValue('anonymizationRule'); + $rule = $rules instanceof \Illuminate\Database\Eloquent\Collection ? $rules->first() : $rules; + + if (! $rule && ! $column->relationLoaded('anonymizationRule')) { + $rule = $column->anonymizationRule()->with('methods')->first(); + } + + if ($rule) { + // Ensure methods are loaded on the rule + if (! $rule->relationLoaded('methods')) { + $rule->load('methods'); + } + + $resolved = $rule->resolveMethod($this->currentJobStrategy ?? null); + + if ($resolved) { + $this->methodCache[$columnId] = $resolved; + return $resolved; + } + } + $methodId = $column->pivot->anonymization_method_id ?? null; if ($methodId) { - // Prefer the job-selected anonymization method from the pivot when present. - // Fall back to the column's global method list when no pivot match is loaded. + // Pivot method IDs are treated as a fallback only when no rule-based + // method could be resolved. This keeps existing jobs aligned with + // rule default/strategy updates. $resolved = $column->anonymizationMethods->firstWhere('id', $methodId); if ($resolved) { @@ -3505,6 +5578,7 @@ protected function resolveMethodForColumn(AnonymousSiebelColumn $column): ?Anony return $resolved; } + // Legacy fallback: direct column→method association $resolved = $column->anonymizationMethods->first(); $this->methodCache[$columnId] = $resolved; return $resolved; @@ -3542,6 +5616,48 @@ protected function topologicallySortColumns(Collection $columns): Collection } } + // Also add ordering edges from FK relationship metadata for columns that have no + // explicit anonymous_siebel_column_dependencies rows. Without this, FK child tables + // may be sorted ahead of their PK parent tables, causing deferred UPDATE statements + // to run against stale data. + // + // Build TABLE_NAME → ROW_ID column id once for O(n) lookup. + $rowIdByTableName = []; + foreach ($columns as $candidate) { + if (strtoupper((string) ($candidate->column_name ?? '')) === 'ROW_ID') { + $tbl = $candidate->getRelationValue('table'); + $tk = $tbl ? strtoupper((string) ($tbl->table_name ?? '')) : ''; + if ($tk !== '') { + $rowIdByTableName[$tk] = (int) $candidate->id; + } + } + } + + foreach ($columns as $column) { + // Skip columns that already have explicit parent edges applied above. + $parents = $column->getRelationValue('parentColumns') ?? collect(); + if ($parents->isNotEmpty()) { + continue; + } + + $relationships = $this->resolveForeignKeyRelationships($column); + foreach ($relationships as $rel) { + if (strtoupper((string) ($rel['direction'] ?? 'OUTBOUND')) !== 'OUTBOUND') { + continue; + } + $pCol = strtoupper(trim((string) ($rel['column'] ?? 'ROW_ID'))); + $pTable = strtoupper(trim((string) ($rel['table'] ?? ''))); + if ($pCol !== 'ROW_ID' || $pTable === '') { + continue; + } + $parentColId = $rowIdByTableName[$pTable] ?? null; + if ($parentColId && $columns->has($parentColId) && $parentColId !== (int) $column->id) { + $adjacency[$parentColId][] = $column->id; + $inDegree[$column->id]++; + } + } + } + // Collect all nodes with no incoming edges (roots/seed providers) $queue = []; foreach ($inDegree as $nodeId => $degree) { diff --git a/app/Services/Anonymizer/AnonymizerActivityLogger.php b/app/Services/Anonymizer/AnonymizerActivityLogger.php index 0e8b5ac1..aab31d66 100644 --- a/app/Services/Anonymizer/AnonymizerActivityLogger.php +++ b/app/Services/Anonymizer/AnonymizerActivityLogger.php @@ -3,12 +3,57 @@ namespace App\Services\Anonymizer; use App\Models\Anonymizer\AnonymousSiebelColumn; +use Illuminate\Support\Facades\DB; class AnonymizerActivityLogger { + /** + * Buffer for pending activity log entries. Flushed in batches to avoid N+1 queries. + * + * @var array + */ + protected static array $pendingEvents = []; + + /** + * Maximum number of events to buffer before auto-flushing. + */ + protected static int $batchSize = 500; + + /** + * Queue a single column event for batch logging. + * Events are buffered and flushed when the batch size is reached. + */ public static function logColumnEvent(int $columnId, string $eventName, array $diff = [], array $context = []): void { - $column = AnonymousSiebelColumn::withTrashed() + self::$pendingEvents[] = [ + 'columnId' => $columnId, + 'eventName' => $eventName, + 'diff' => $diff, + 'context' => $context, + ]; + + if (count(self::$pendingEvents) >= self::$batchSize) { + self::flush(); + } + } + + /** + * Flush all pending activity log events in a single batch. + * Loads all referenced columns in one eager-loaded query, then bulk-inserts activity log rows. + */ + public static function flush(): void + { + if (self::$pendingEvents === []) { + return; + } + + $events = self::$pendingEvents; + self::$pendingEvents = []; + + // Collect unique column IDs and load them all in a single query + $columnIds = array_unique(array_column($events, 'columnId')); + + $columns = AnonymousSiebelColumn::withTrashed() ->with([ 'table' => fn($query) => $query->withTrashed()->with([ 'schema' => fn($schemaQuery) => $schemaQuery->withTrashed()->with([ @@ -17,34 +62,67 @@ public static function logColumnEvent(int $columnId, string $eventName, array $d ]), 'dataType' => fn($query) => $query->withTrashed(), ]) - ->find($columnId); + ->whereIn('id', $columnIds) + ->get() + ->keyBy('id'); - if (! $column) { - return; - } + // Build bulk insert rows for the activity_log table + $logRows = []; + $logName = AnonymousSiebelColumn::activityLogName(); - $properties = [ - 'attributes' => self::extractAttributes($column), - 'old' => self::extractOldValues($diff), - 'diff' => $diff, - 'diff_fields' => array_keys($diff), - 'source' => 'anonymous_upload', - ]; + foreach ($events as $event) { + $column = $columns->get($event['columnId']); + + if (! $column) { + continue; + } + + $properties = [ + 'attributes' => self::extractAttributes($column), + 'old' => self::extractOldValues($event['diff']), + 'diff' => $event['diff'], + 'diff_fields' => array_keys($event['diff']), + 'source' => 'anonymous_upload', + ]; - if ($context !== []) { - $properties = array_merge($properties, array_filter($context, fn($value) => $value !== null)); + if ($event['context'] !== []) { + $properties = array_merge($properties, array_filter($event['context'], fn($value) => $value !== null)); + } + + $description = $column->makeActivityDescription($event['eventName'], [ + 'diff' => $event['diff'], + 'context' => $event['context'], + ]); + + $logRows[] = [ + 'log_name' => $logName, + 'description' => $description, + 'subject_type' => $column->getMorphClass(), + 'subject_id' => $column->getKey(), + 'causer_type' => null, + 'causer_id' => null, + 'event' => $event['eventName'], + 'properties' => json_encode($properties, JSON_UNESCAPED_UNICODE), + 'batch_uuid' => null, + 'created_at' => now(), + 'updated_at' => now(), + ]; } - $description = $column->makeActivityDescription($eventName, [ - 'diff' => $diff, - 'context' => $context, - ]); + // Bulk insert all activity log rows in chunks to avoid query size limits + if ($logRows !== []) { + foreach (array_chunk($logRows, 500) as $chunk) { + DB::table('activity_log')->insert($chunk); + } + } + } - activity($column::activityLogName()) - ->performedOn($column) - ->event($eventName) - ->withProperties($properties) - ->log($description); + /** + * Get the number of pending (unflushed) events. + */ + public static function pendingCount(): int + { + return count(self::$pendingEvents); } private static function extractAttributes(AnonymousSiebelColumn $column): array diff --git a/app/Services/Anonymizer/Concerns/BuildsDoubleSeededDeterministicOracleScripts.php b/app/Services/Anonymizer/Concerns/BuildsDoubleSeededDeterministicOracleScripts.php index fdae9ab0..4baf56bf 100644 --- a/app/Services/Anonymizer/Concerns/BuildsDoubleSeededDeterministicOracleScripts.php +++ b/app/Services/Anonymizer/Concerns/BuildsDoubleSeededDeterministicOracleScripts.php @@ -30,6 +30,7 @@ public function buildDoubleSeededDeterministicFromColumns(Collection $columns, A // Load core relations first $columns->loadMissing([ 'anonymizationMethods', + 'anonymizationRule.methods', 'table.schema.database', 'dataType', 'parentColumns', @@ -75,8 +76,11 @@ public function buildDoubleSeededDeterministicFromColumns(Collection $columns, A // Collect tables involved and map to working copies. $tables = $this->collectTablesForDoubleSeededJob($ordered); + $tableColumns = $this->columnsByTableWithTypes($tables); $tableMappings = $this->buildStableDemoTableMappings($tables, $targetSchema, $seedPrefix); $tableMappingsBySourceTable = collect($tableMappings)->keyBy('source_table'); + $selectedLookup = $ordered->pluck('id')->mapWithKeys(fn($id) => [(int) $id => true])->all(); + $nullUnselectedColumns = $job->job_type === AnonymizationJobs::TYPE_PARTIAL; // Identify seed provider columns that need ORIGINAL_ tracking for deterministic masking. $seedProviderColumns = $this->identifySeedProviderColumns($ordered, $seedMapContext); @@ -108,6 +112,17 @@ public function buildDoubleSeededDeterministicFromColumns(Collection $columns, A $lines[] = $this->commentDivider('-'); $lines = array_merge($lines, $this->renderJobSeedTableDDL($jobSeedTable, $jobKeyName, $jobSeedLiteral)); + // Ensure any residual DBMS_RANDOM usage is repeatable for this run. + $lines[] = $this->commentDivider('-'); + $lines[] = '-- DETERMINISTIC RANDOMNESS'; + $lines[] = '-- Seeds DBMS_RANDOM from job seed.'; + $lines[] = $this->commentDivider('-'); + $lines[] = 'BEGIN'; + $lines[] = ' DBMS_RANDOM.SEED(' . $jobSeedLiteral . ');'; + $lines[] = 'END;'; + $lines[] = '/'; + $lines[] = ''; + // === Packages === $packages = $this->collectPackagesFromColumns($ordered); if ($packages->isNotEmpty()) { @@ -140,8 +155,23 @@ public function buildDoubleSeededDeterministicFromColumns(Collection $columns, A $lines[] = '-- Adds ORIGINAL_ columns for seed provider tracking.'; $lines[] = $this->commentDivider('-'); - foreach ($tableMappings as $mapping) { - $lines = array_merge($lines, $this->renderStableCloneStatements($mapping['source_qualified'], $mapping['target_qualified'])); + foreach ($tableMappings as $index => $mapping) { + $tableId = (int) ($mapping['table_id'] ?? 0); + $selectedSourceColumns = []; + $selectList = $this->buildDoubleSeededCloneSelectList( + $tableColumns[$tableId] ?? collect(), + $selectedLookup, + $nullUnselectedColumns, + $selectedSourceColumns + ); + + $tableMappings[$index]['selected_source_columns'] = $selectedSourceColumns; + $tableMappings[$index]['null_unselected_columns'] = $nullUnselectedColumns; + $lines = array_merge($lines, $this->renderStableCloneStatements( + $mapping['source_qualified'], + $mapping['target_qualified'], + $selectList + )); // Add ORIGINAL_ columns for each seed provider in this table. $tableProviders = $seedProviderColumns->filter( @@ -164,6 +194,8 @@ public function buildDoubleSeededDeterministicFromColumns(Collection $columns, A } } + $tableMappingsBySourceTable = collect($tableMappings)->keyBy('source_table'); + // === Seed maps for FK preservation === $seedMaps = $this->buildDoubleSeededSeedMaps($seedProviderColumns, $tableMappingsBySourceTable, $seedStoreSchema, $seedPrefix); @@ -630,8 +662,66 @@ protected function stableDemoSuffixForSourceTable(string $sourceTable): string return implode('_', $rendered); } - protected function renderStableCloneStatements(string $qualifiedSource, string $qualifiedTarget): array + protected function buildDoubleSeededCloneSelectList( + Collection $columns, + array $selectedLookup, + bool $nullUnselectedColumns, + array &$selectedSourceColumns = [] + ): string { + if ($columns->isEmpty()) { + return '*'; + } + + $selectParts = []; + $selectedSourceColumns = []; + + foreach ($columns as $column) { + if ($this->isLongColumn($column)) { + continue; + } + + $columnName = (string) ($column->column_name ?? ''); + if ($columnName === '') { + continue; + } + + $isSelected = isset($selectedLookup[(int) $column->id]); + if ($isSelected) { + $selectedSourceColumns[] = Str::upper($columnName); + } + + if (! $isSelected && $nullUnselectedColumns) { + $selectParts[] = $this->oracleNullExpressionForColumn($column) . ' ' . $columnName; + continue; + } + + $selectParts[] = $columnName; + } + + if ($selectParts === []) { + return ''; + } + + return implode(', ', $selectParts); + } + + protected function renderStableCloneStatements(string $qualifiedSource, string $qualifiedTarget, string $selectList = '*'): array { + if (trim($selectList) === '') { + return [ + 'BEGIN', + " EXECUTE IMMEDIATE 'DROP TABLE {$qualifiedTarget} CASCADE CONSTRAINTS PURGE';", + 'EXCEPTION', + ' WHEN OTHERS THEN', + ' IF SQLCODE != -942 THEN RAISE; END IF;', + 'END;', + '/', + '', + '-- Skipped: no non-LONG columns available for CTAS.', + '', + ]; + } + return [ 'BEGIN', " EXECUTE IMMEDIATE 'DROP TABLE {$qualifiedTarget} CASCADE CONSTRAINTS PURGE';", @@ -642,7 +732,7 @@ protected function renderStableCloneStatements(string $qualifiedSource, string $ '/', '', 'CREATE TABLE ' . $qualifiedTarget . ' AS', - 'SELECT * FROM ' . $qualifiedSource . ';', + 'SELECT ' . $selectList . ' FROM ' . $qualifiedSource . ';', '', ]; } @@ -667,15 +757,6 @@ protected function renderDeterministicForeignKeys(array $tableMappings): array $tableIds = array_keys($tableMapById); - $columns = AnonymousSiebelColumn::query() - ->with(['dataType', 'table.schema']) - ->whereIn('table_id', $tableIds) - ->get(); - - if ($columns->isEmpty()) { - return []; - } - $tablesByIdentity = []; foreach ($tableMapById as $tableId => $mapping) { $schema = strtoupper(trim((string) ($mapping['source_schema'] ?? ''))); @@ -685,95 +766,133 @@ protected function renderDeterministicForeignKeys(array $tableMappings): array } } - $columnsByTable = $columns->groupBy(fn(AnonymousSiebelColumn $column) => (int) ($column->table_id ?? 0)); + // Pre-load only ROW_ID columns for parent verification (tiny: ≤1 per table). + $rowIdByTable = []; + foreach (array_chunk($tableIds, 500) as $chunk) { + $loaded = AnonymousSiebelColumn::query() + ->with(['dataType']) + ->whereIn('table_id', $chunk) + ->whereRaw('UPPER(column_name) = ?', ['ROW_ID']) + ->get(); - $lines = []; - $seen = []; - - foreach ($columns as $column) { - $childTableId = (int) ($column->table_id ?? 0); - if ($childTableId <= 0) { - continue; + foreach ($loaded as $col) { + $rowIdByTable[(int) $col->table_id] = $col; } + } - $childMap = $tableMapById[$childTableId] ?? null; - if (! is_array($childMap)) { - continue; - } + $lines = []; + $seen = []; - $childColumn = trim((string) ($column->column_name ?? '')); - if ($childColumn === '' || $this->isLongColumn($column)) { - continue; - } + // Process tables in chunks to keep memory bounded on large schema jobs. + foreach (array_chunk($tableIds, 100) as $tableChunk) { + $columns = AnonymousSiebelColumn::query() + ->with(['dataType', 'table.schema']) + ->whereIn('table_id', $tableChunk) + ->get(); - $relationships = $this->resolveDeterministicForeignKeyRelationships($column); - if ($relationships === []) { + if ($columns->isEmpty()) { continue; } - foreach ($relationships as $relationship) { - $direction = strtoupper((string) ($relationship['direction'] ?? 'OUTBOUND')); - if ($direction === 'INBOUND') { + foreach ($columns as $column) { + $childTableId = (int) ($column->table_id ?? 0); + if ($childTableId <= 0) { continue; } - $schema = strtoupper(trim((string) ($relationship['schema'] ?? ''))); - $table = strtoupper(trim((string) ($relationship['table'] ?? ''))); - $parentColumn = trim((string) ($relationship['column'] ?? 'ROW_ID')); - - if ($schema === '' || $table === '' || $parentColumn === '') { + $childMap = $tableMapById[$childTableId] ?? null; + if (! is_array($childMap)) { continue; } - if (strtoupper($parentColumn) !== 'ROW_ID') { + $childColumn = trim((string) ($column->column_name ?? '')); + if ($childColumn === '' || $this->isLongColumn($column)) { continue; } - $parentTableId = $tablesByIdentity[$schema . '|' . $table] ?? null; - if (! $parentTableId) { + $childSelectedColumns = array_map('strtoupper', $childMap['selected_source_columns'] ?? []); + $childNullUnselectedColumns = (bool) ($childMap['null_unselected_columns'] ?? false); + if ($childNullUnselectedColumns && ! in_array(strtoupper($childColumn), $childSelectedColumns, true)) { continue; } - $parentMap = $tableMapById[$parentTableId] ?? null; - if (! is_array($parentMap)) { - continue; - } - - $parentColumns = $columnsByTable->get((int) $parentTableId, collect()); - $parentModel = $parentColumns - ->first(fn(AnonymousSiebelColumn $col) => strtoupper((string) ($col->column_name ?? '')) === strtoupper($parentColumn)); - - if (! $parentModel || $this->isLongColumn($parentModel)) { + $relationships = $this->resolveDeterministicForeignKeyRelationships($column); + if ($relationships === []) { continue; } - if (! $this->columnsAreCompatible($column, $parentModel)) { - continue; - } - - $childTarget = $childMap['target_qualified'] ?? null; - $parentTarget = $parentMap['target_qualified'] ?? null; - - if (! $childTarget || ! $parentTarget) { - continue; - } - - $fingerprint = strtoupper($childTarget . '|' . $childColumn . '|' . $parentTarget . '|' . $parentColumn); - if (isset($seen[$fingerprint])) { - continue; + foreach ($relationships as $relationship) { + $direction = strtoupper((string) ($relationship['direction'] ?? 'OUTBOUND')); + if ($direction === 'INBOUND') { + continue; + } + + $schema = strtoupper(trim((string) ($relationship['schema'] ?? ''))); + $table = strtoupper(trim((string) ($relationship['table'] ?? ''))); + $parentColumn = trim((string) ($relationship['column'] ?? 'ROW_ID')); + + if ($schema === '' || $table === '' || $parentColumn === '') { + continue; + } + + if (strtoupper($parentColumn) !== 'ROW_ID') { + continue; + } + + $parentTableId = $tablesByIdentity[$schema . '|' . $table] ?? null; + if (! $parentTableId) { + continue; + } + + $parentMap = $tableMapById[$parentTableId] ?? null; + if (! is_array($parentMap)) { + continue; + } + + $parentSelectedColumns = array_map('strtoupper', $parentMap['selected_source_columns'] ?? []); + $parentNullUnselectedColumns = (bool) ($parentMap['null_unselected_columns'] ?? false); + if ($parentNullUnselectedColumns && ! in_array('ROW_ID', $parentSelectedColumns, true)) { + continue; + } + + // Use pre-loaded ROW_ID map for parent verification. + $parentModel = $rowIdByTable[$parentTableId] ?? null; + + if (! $parentModel || $this->isLongColumn($parentModel)) { + continue; + } + + if (! $this->columnsAreCompatible($column, $parentModel)) { + continue; + } + + $childTarget = $childMap['target_qualified'] ?? null; + $parentTarget = $parentMap['target_qualified'] ?? null; + + if (! $childTarget || ! $parentTarget) { + continue; + } + + $fingerprint = strtoupper($childTarget . '|' . $childColumn . '|' . $parentTarget . '|' . $parentColumn); + if (isset($seen[$fingerprint])) { + continue; + } + $seen[$fingerprint] = true; + + $hash = substr(md5($fingerprint), 0, 8); + $constraintName = $this->oracleIdentifier('FK_' . ($childMap['target_table'] ?? 'CHILD') . '_' . $hash); + + $lines[] = 'ALTER TABLE ' . $childTarget; + $lines[] = 'ADD CONSTRAINT ' . $constraintName; + $lines[] = 'FOREIGN KEY (' . $childColumn . ')'; + $lines[] = 'REFERENCES ' . $parentTarget . ' (' . $parentColumn . ')'; + $lines[] = 'ENABLE NOVALIDATE;'; + $lines[] = ''; } - $seen[$fingerprint] = true; - - $hash = substr(md5($fingerprint), 0, 8); - $constraintName = $this->oracleIdentifier('FK_' . ($childMap['target_table'] ?? 'CHILD') . '_' . $hash); - - $lines[] = 'ALTER TABLE ' . $childTarget; - $lines[] = 'ADD CONSTRAINT ' . $constraintName; - $lines[] = 'FOREIGN KEY (' . $childColumn . ')'; - $lines[] = 'REFERENCES ' . $parentTarget . ' (' . $parentColumn . ')'; - $lines[] = 'ENABLE NOVALIDATE;'; - $lines[] = ''; } + + // Release column models for this chunk before loading the next. + unset($columns); } return $lines; @@ -798,11 +917,20 @@ protected function renderDeterministicPrimaryKeys(array $tableMappings): array } $tableIds = array_keys($tableMapById); - $columnsByTable = AnonymousSiebelColumn::query() - ->with(['dataType']) - ->whereIn('table_id', $tableIds) - ->get() - ->groupBy(fn(AnonymousSiebelColumn $column) => (int) ($column->table_id ?? 0)); + + // Only load ROW_ID columns — that is all PK generation needs. + $columnsByTable = collect(); + + foreach (array_chunk($tableIds, 500) as $chunk) { + $loaded = AnonymousSiebelColumn::query() + ->with(['dataType']) + ->whereIn('table_id', $chunk) + ->whereRaw('UPPER(column_name) = ?', ['ROW_ID']) + ->get() + ->groupBy(fn(AnonymousSiebelColumn $column) => (int) ($column->table_id ?? 0)); + + $columnsByTable = $columnsByTable->merge($loaded); + } $lines = []; $seen = []; @@ -813,6 +941,12 @@ protected function renderDeterministicPrimaryKeys(array $tableMappings): array continue; } + $selectedSourceColumns = array_map('strtoupper', $mapping['selected_source_columns'] ?? []); + $nullUnselectedColumns = (bool) ($mapping['null_unselected_columns'] ?? false); + if ($nullUnselectedColumns && ! in_array('ROW_ID', $selectedSourceColumns, true)) { + continue; + } + $columns = $columnsByTable->get((int) $tableId, collect()); $rowId = $columns->first(fn(AnonymousSiebelColumn $column) => strtoupper((string) ($column->column_name ?? '')) === 'ROW_ID'); if (! $rowId || $this->isLongColumn($rowId)) { diff --git a/app/Services/Anonymizer/ExportProgressNotificationService.php b/app/Services/Anonymizer/ExportProgressNotificationService.php new file mode 100644 index 00000000..2b7a7100 --- /dev/null +++ b/app/Services/Anonymizer/ExportProgressNotificationService.php @@ -0,0 +1,210 @@ +with('user')->find($exportId); + + if (! $export) { + return; + } + + $this->syncForExport($export, $stage); + } + + public function syncForExport(Export $export, ?string $stage = null): void + { + $user = $export->user; + + if (! $user instanceof Authenticatable) { + return; + } + + $notification = $this->findExistingNotification($export, $user); + $currentStage = $stage; + + // If it does not pass a stage, keep the previous stage. + if (! $currentStage && $notification) { + $currentStage = $notification->data['stage'] ?? null; + } + + $data = $this->buildNotificationData($export, $this->normalizeStage($currentStage)); + + if ($notification) { + // Update in-place: rolling notification per job. + $notification->forceFill([ + 'data' => $data, + ])->save(); + + return; + } + + DatabaseNotification::query()->create([ + 'id' => (string) Str::uuid(), + 'type' => \Filament\Notifications\DatabaseNotification::class, + 'notifiable_type' => $user::class, + 'notifiable_id' => $user->getAuthIdentifier(), + 'data' => $data, + // Keep unread so it remains visible in the notifications panel. + 'read_at' => null, + ]); + } + + + // Derive and normalize state before producing notification. + private function buildNotificationData(Export $export, ?string $stage = null): array + { + $metrics = $this->collectMetrics($export); + $resolvedStage = $this->resolveStage($metrics, $stage); + $notification = $this->buildNotificationForStage($export, $resolvedStage, $metrics); + + return array_merge($notification->getDatabaseMessage(), [ + 'notification_kind' => self::NOTIFICATION_KIND, + 'export_id' => (int) $export->getKey(), + 'stage' => $resolvedStage, + 'processed_rows' => $metrics['processedRows'], + 'total_rows' => $metrics['totalRows'], + 'successful_rows' => $metrics['successfulRows'], + 'progress_percent' => $metrics['percent'], + ]); + } + + + private function collectMetrics(Export $export): array + { + // Clamp counters to avoid negative values and overflow over total rows. + $totalRows = max(0, (int) ($export->total_rows ?? 0)); + $processedRows = min($totalRows, max(0, (int) ($export->processed_rows ?? 0))); + $successfulRows = min($totalRows, max(0, (int) ($export->successful_rows ?? 0))); + + $percent = $totalRows > 0 + ? (int) min(100, floor(($processedRows / $totalRows) * 100)) + : 0; + + // Completion can be explicit (completed_at) or inferred once processed reaches total. + $isCompleted = filled($export->completed_at) || ($totalRows > 0 && $processedRows >= $totalRows); + $failedRows = max(0, $totalRows - $successfulRows); + + return [ + 'totalRows' => $totalRows, + 'processedRows' => $processedRows, + 'successfulRows' => $successfulRows, + 'percent' => $percent, + 'failedRows' => $failedRows, + 'isCompleted' => $isCompleted, + ]; + } + + private function resolveStage(array $metrics, ?string $stage): string + { + if ($metrics['isCompleted']) { + return self::STAGE_COMPLETED; + } + + if ($stage) { + return $stage; + } + + return $metrics['processedRows'] > 0 + ? self::STAGE_EXPORTING + : self::STAGE_QUEUED; + } + + private function buildNotificationForStage(Export $export, string $stage, array $metrics): Notification + { + $notification = Notification::make("export-progress-{$export->getKey()}"); + + if (! $metrics['isCompleted']) { + return match ($stage) { + self::STAGE_PREPARING => $notification + ->title('Export preparing') + ->body('Step 1/3: Preparing records and chunks. Row progress will begin shortly.') + ->info(), + self::STAGE_QUEUED => $notification + ->title('Export queued') + ->body('Step 0/3: Queued and waiting for worker to build job. (This step may take a while.)') + ->info(), + default => $notification + ->title('Export in progress') + ->body('Step 2/3: Processed ' . $this->formatNumber($metrics['processedRows']) . ' of ' . $this->formatNumber($metrics['totalRows']) . ' rows (' . $metrics['percent'] . '%).') + ->info(), + }; + } + + if ($metrics['failedRows'] === 0) { + return $notification + ->title('Export completed') + ->body('Step 3/3: Completed successfully with ' . $this->formatNumber($metrics['successfulRows']) . ' rows.') + ->success(); + } + + if ($metrics['failedRows'] < $metrics['totalRows']) { + return $notification + ->title('Export completed with failures') + ->body('Step 3/3: ' . $this->formatNumber($metrics['successfulRows']) . ' rows exported and ' . $this->formatNumber($metrics['failedRows']) . ' failed.') + ->warning(); + } + + return $notification + ->title('Export failed') + ->body('Step 3/3: No rows were exported successfully.') + ->danger(); + } + + private function normalizeStage(?string $stage): ?string + { + // Accept only known stages to prevent accidental/invalid stage values from persisting. + if (! is_string($stage) || $stage === '') { + return null; + } + + if ($stage === self::STAGE_COMPLETED) { + return $stage; + } + + return in_array($stage, self::NON_COMPLETED_STAGES, true) + ? $stage + : null; + } + + private function formatNumber(int $number): string + { + return Number::format($number); + } + + private function findExistingNotification(Export $export, Authenticatable $user): ?DatabaseNotification + { + return DatabaseNotification::query() + ->where('notifiable_type', $user::class) + ->where('notifiable_id', $user->getAuthIdentifier()) + ->where('data->format', 'filament') + ->where('data->notification_kind', self::NOTIFICATION_KIND) + ->where('data->export_id', (int) $export->getKey()) + ->latest('created_at') + ->first(); + } +} diff --git a/config/anonymizer.php b/config/anonymizer.php index 32131bca..a590296d 100644 --- a/config/anonymizer.php +++ b/config/anonymizer.php @@ -7,4 +7,20 @@ * Files are retained to support auditing and troubleshooting, then purged by a scheduled command. */ 'upload_retention_days' => (int) env('ANONYMIZATION_UPLOAD_RETENTION_DAYS', 30), + + /* + * How long to retain upload staging rows for resume/retry before pruning them. + * + * Staging can be significantly larger than upload files, so this is intentionally separate + * from file retention and defaults to a shorter window. + */ + 'staging_retention_days' => (int) env('ANONYMIZATION_STAGING_RETENTION_DAYS', 7), + + /* + * Oracle schema that owns Faker anonymization packages (PKG_ANON_*). + * + * Generated scripts use this as the canonical owner when method SQL contains + * legacy ANON_DATA package references. + */ + 'package_owner' => strtoupper((string) env('ANONYMIZATION_PACKAGE_OWNER', 'ANON_DATA')), ]; diff --git a/config/database.php b/config/database.php index 1cf9dfa2..7fbc4ed2 100644 --- a/config/database.php +++ b/config/database.php @@ -92,6 +92,9 @@ 'prefix_indexes' => true, 'search_path' => 'public', 'sslmode' => 'prefer', + // Persistent connections reuse TCP sockets across queries within the same + // process, eliminating per-query connection overhead for queue workers. + 'persistent' => env('DB_PERSISTENT', false), 'options' => [ PDO::ATTR_TIMEOUT => env('DB_TIMEOUT', 60), ], diff --git a/database/migrations/2026_02_12_120000_add_temp_csv_fields_to_anonymous_siebel_columns_and_stagings.php b/database/migrations/2026_02_12_120000_add_temp_csv_fields_to_anonymous_siebel_columns_and_stagings.php new file mode 100644 index 00000000..4dd9d156 --- /dev/null +++ b/database/migrations/2026_02_12_120000_add_temp_csv_fields_to_anonymous_siebel_columns_and_stagings.php @@ -0,0 +1,122 @@ +string('qualfield', 512)->nullable()->after('column_name'); + } + if (! Schema::hasColumn('anonymous_siebel_stagings', 'anon_rule')) { + $table->string('anon_rule', 255)->nullable()->after('column_name'); + } + if (! Schema::hasColumn('anonymous_siebel_stagings', 'anon_note')) { + $table->text('anon_note')->nullable()->after('anon_rule'); + } + if (! Schema::hasColumn('anonymous_siebel_stagings', 'pr_key')) { + $table->string('pr_key', 32)->nullable()->after('anon_note'); + } + if (! Schema::hasColumn('anonymous_siebel_stagings', 'ref_tab_name')) { + $table->string('ref_tab_name', 255)->nullable()->after('pr_key'); + } + if (! Schema::hasColumn('anonymous_siebel_stagings', 'num_distinct')) { + $table->unsignedBigInteger('num_distinct')->nullable()->after('ref_tab_name'); + } + if (! Schema::hasColumn('anonymous_siebel_stagings', 'num_not_null')) { + $table->unsignedBigInteger('num_not_null')->nullable()->after('num_distinct'); + } + if (! Schema::hasColumn('anonymous_siebel_stagings', 'num_nulls')) { + $table->unsignedBigInteger('num_nulls')->nullable()->after('num_not_null'); + } + if (! Schema::hasColumn('anonymous_siebel_stagings', 'num_rows')) { + $table->unsignedBigInteger('num_rows')->nullable()->after('num_nulls'); + } + if (! Schema::hasColumn('anonymous_siebel_stagings', 'sbl_user_name')) { + $table->string('sbl_user_name', 255)->nullable()->after('column_comment'); + } + if (! Schema::hasColumn('anonymous_siebel_stagings', 'sbl_desc_text')) { + $table->text('sbl_desc_text')->nullable()->after('sbl_user_name'); + } + }); + + Schema::table('anonymous_siebel_columns', function (Blueprint $table) { + if (! Schema::hasColumn('anonymous_siebel_columns', 'qualfield')) { + $table->string('qualfield', 512)->nullable()->after('column_name'); + } + if (! Schema::hasColumn('anonymous_siebel_columns', 'pr_key')) { + $table->string('pr_key', 32)->nullable()->after('column_id'); + } + if (! Schema::hasColumn('anonymous_siebel_columns', 'ref_tab_name')) { + $table->string('ref_tab_name', 255)->nullable()->after('pr_key'); + } + if (! Schema::hasColumn('anonymous_siebel_columns', 'num_distinct')) { + $table->unsignedBigInteger('num_distinct')->nullable()->after('ref_tab_name'); + } + if (! Schema::hasColumn('anonymous_siebel_columns', 'num_not_null')) { + $table->unsignedBigInteger('num_not_null')->nullable()->after('num_distinct'); + } + if (! Schema::hasColumn('anonymous_siebel_columns', 'num_nulls')) { + $table->unsignedBigInteger('num_nulls')->nullable()->after('num_not_null'); + } + if (! Schema::hasColumn('anonymous_siebel_columns', 'num_rows')) { + $table->unsignedBigInteger('num_rows')->nullable()->after('num_nulls'); + } + if (! Schema::hasColumn('anonymous_siebel_columns', 'sbl_user_name')) { + $table->string('sbl_user_name', 255)->nullable()->after('column_comment'); + } + if (! Schema::hasColumn('anonymous_siebel_columns', 'sbl_desc_text')) { + $table->text('sbl_desc_text')->nullable()->after('sbl_user_name'); + } + }); + } + + public function down(): void + { + Schema::table('anonymous_siebel_stagings', function (Blueprint $table) { + foreach ( + [ + 'sbl_desc_text', + 'sbl_user_name', + 'num_rows', + 'num_nulls', + 'num_not_null', + 'num_distinct', + 'ref_tab_name', + 'pr_key', + 'anon_note', + 'anon_rule', + 'qualfield', + ] as $column + ) { + if (Schema::hasColumn('anonymous_siebel_stagings', $column)) { + $table->dropColumn($column); + } + } + }); + + Schema::table('anonymous_siebel_columns', function (Blueprint $table) { + foreach ( + [ + 'sbl_desc_text', + 'sbl_user_name', + 'num_rows', + 'num_nulls', + 'num_not_null', + 'num_distinct', + 'ref_tab_name', + 'pr_key', + 'qualfield', + ] as $column + ) { + if (Schema::hasColumn('anonymous_siebel_columns', $column)) { + $table->dropColumn($column); + } + } + }); + } +}; diff --git a/database/migrations/2026_02_12_120100_add_override_anonymization_rules_to_anonymization_uploads.php b/database/migrations/2026_02_12_120100_add_override_anonymization_rules_to_anonymization_uploads.php new file mode 100644 index 00000000..134d4749 --- /dev/null +++ b/database/migrations/2026_02_12_120100_add_override_anonymization_rules_to_anonymization_uploads.php @@ -0,0 +1,26 @@ +boolean('override_anonymization_rules')->default(false)->after('create_change_tickets'); + } + }); + } + + public function down(): void + { + Schema::table('anonymization_uploads', function (Blueprint $table) { + if (Schema::hasColumn('anonymization_uploads', 'override_anonymization_rules')) { + $table->dropColumn('override_anonymization_rules'); + } + }); + } +}; diff --git a/database/migrations/2026_02_17_173500_add_column_indexes_to_anonymization_method_column.php b/database/migrations/2026_02_17_173500_add_column_indexes_to_anonymization_method_column.php new file mode 100644 index 00000000..a58a3569 --- /dev/null +++ b/database/migrations/2026_02_17_173500_add_column_indexes_to_anonymization_method_column.php @@ -0,0 +1,24 @@ +index(['column_id'], 'anon_method_column_column_id_idx'); + $table->index(['column_id', 'method_id'], 'anon_method_column_column_method_idx'); + }); + } + + public function down(): void + { + Schema::table('anonymization_method_column', function (Blueprint $table) { + $table->dropIndex('anon_method_column_column_method_idx'); + $table->dropIndex('anon_method_column_column_id_idx'); + }); + } +}; diff --git a/database/migrations/2026_02_19_120000_optimize_anonymous_siebel_staging_indexes.php b/database/migrations/2026_02_19_120000_optimize_anonymous_siebel_staging_indexes.php new file mode 100644 index 00000000..4cc714ab --- /dev/null +++ b/database/migrations/2026_02_19_120000_optimize_anonymous_siebel_staging_indexes.php @@ -0,0 +1,59 @@ +id(); + $table->string('name')->unique(); + $table->text('description')->nullable(); + $table->timestamps(); + $table->softDeletes(); + }); + + // Pivot: rule ↔ method (with strategy label and default flag) + Schema::create('anonymization_rule_methods', function (Blueprint $table) { + $table->id(); + $table->foreignId('rule_id')->constrained('anonymization_rules')->cascadeOnDelete(); + $table->foreignId('method_id')->constrained('anonymization_methods')->cascadeOnDelete(); + $table->boolean('is_default')->default(false); + $table->string('strategy')->nullable()->comment('Null for the default method; a label like "aggressive", "development" for variants'); + $table->timestamps(); + + $table->unique(['rule_id', 'method_id']); + $table->index('strategy'); + }); + + // Pivot: column ↔ rule (each column gets one rule) + Schema::create('anonymization_rule_column', function (Blueprint $table) { + $table->id(); + $table->foreignId('rule_id')->constrained('anonymization_rules')->cascadeOnDelete(); + $table->foreignId('column_id')->constrained('anonymous_siebel_columns')->cascadeOnDelete(); + $table->timestamps(); + + $table->unique(['column_id']); // A column can only have one rule + $table->index('rule_id'); + }); + + // Add strategy column to jobs so each job can select which strategy to use + Schema::table('anonymization_jobs', function (Blueprint $table) { + $table->string('strategy')->nullable()->after('output_format') + ->comment('Which method strategy to resolve from rules. Null = use defaults.'); + }); + } + + public function down(): void + { + Schema::table('anonymization_jobs', function (Blueprint $table) { + $table->dropColumn('strategy'); + }); + + Schema::dropIfExists('anonymization_rule_column'); + Schema::dropIfExists('anonymization_rule_methods'); + Schema::dropIfExists('anonymization_rules'); + } +}; diff --git a/database/seeders/Anonymization/AnonymizationAllSeeder.php b/database/seeders/Anonymization/AnonymizationAllSeeder.php new file mode 100644 index 00000000..24997404 --- /dev/null +++ b/database/seeders/Anonymization/AnonymizationAllSeeder.php @@ -0,0 +1,35 @@ +method mappings + * 4) Demo anonymization job metadata and generated SQL + * + * Usage: + * sail artisan db:seed --class="Database\\Seeders\\Anonymization\\AnonymizationAllSeeder" + * + */ +class AnonymizationAllSeeder extends Seeder +{ + public function run(): void + { + $this->call([ + AnonymizationFakerPackageSeeder::class, + AnonymizationMethodSeeder::class, + AnonymizationRuleMethodSeeder::class, + // Demo anonymization job + AnonymizationAnonymousTestJobSeeder::class, + ]); + } +} diff --git a/database/seeders/AnonymizationAnonymousTestJobSeeder.php b/database/seeders/Anonymization/AnonymizationAnonymousTestJobSeeder.php similarity index 77% rename from database/seeders/AnonymizationAnonymousTestJobSeeder.php rename to database/seeders/Anonymization/AnonymizationAnonymousTestJobSeeder.php index 38be5781..6f30f4e9 100644 --- a/database/seeders/AnonymizationAnonymousTestJobSeeder.php +++ b/database/seeders/Anonymization/AnonymizationAnonymousTestJobSeeder.php @@ -1,10 +1,11 @@ updateOrCreate( - // For the Oracle demo seed schema, keep this aligned with the actual schema name - // so generated SQL refers to a real owner (ANON_SCHEMA_SEED.sql creates INITIAL_* there). + // demo name ['database_name' => 'ANON_SIEBEL'], [ - 'description' => 'Seeded metadata database (Oracle owner) used for anonymization job demos.', + 'description' => 'Seeded metadata database (owner) used for anonymization job demos.', 'content_hash' => hash('sha256', 'ANON_SIEBEL'), 'last_synced_at' => now(), 'changed_at' => null, @@ -56,11 +56,11 @@ public function run(): void } $schema = AnonymousSiebelSchema::withTrashed()->updateOrCreate( - // This must match the Oracle schema that owns INITIAL_* tables in ANON_SCHEMA_SEED.sql. + // This must match the schema that owns INITIAL_* tables in ANON_SCHEMA_SEED.sql. ['schema_name' => 'ANON_SIEBEL'], [ 'database_id' => $database->getKey(), - 'description' => 'Seeded metadata schema (Oracle owner) for anonymization job demos.', + 'description' => 'Seeded metadata schema (owner) for anonymization job demos.', 'type' => 'oracle', 'content_hash' => hash('sha256', 'ANON_SIEBEL:ANON_SIEBEL'), 'last_synced_at' => now(), @@ -87,7 +87,6 @@ public function run(): void $table->restore(); } - // Seed minimal referenced metadata so RELATED_COLUMNS targets exist. $userTable = AnonymousSiebelTable::withTrashed()->updateOrCreate( ['schema_id' => $schema->getKey(), 'table_name' => 'INITIAL_S_USER'], [ @@ -125,21 +124,17 @@ public function run(): void relatedColumnsRaw: null, ); - /** @var AnonymousSiebelColumn $userRowId */ $userRowId = AnonymousSiebelColumn::withTrashed() ->where('table_id', (int) $userTable->getKey()) ->where('column_name', 'ROW_ID') ->firstOrFail(); - // Seed expression can reference job seed placeholders; the script generator resolves them. $userRowId->forceFill([ 'seed_contract_expression' => "substr(lower(rawtohex(standard_hash({{JOB_SEED_LITERAL}} || '|ROW_ID|' || tgt.ROW_ID, 'SHA256'))), 1, 15)", 'seed_contract_notes' => 'Deterministically remap INITIAL_S_USER.ROW_ID so dependent FKs can be remapped via seed maps.', ])->save(); - // Seed provider: ROW_ID. - // This mirrors how the job generator resolves {{SEED_EXPR}}: - // consumer columns (that require seed) will use the provider's seed_contract_expression. + // Seed provider: ROW_ID - mirrors how the job generator resolves {{SEED_EXPR}}: $rowId = $this->upsertColumn( tableId: (int) $table->getKey(), dataTypeId: (int) $varchar2->getKey(), @@ -213,7 +208,7 @@ public function run(): void ); // A related/dependent column (from the metadata export): CREATOR_LOGIN relates to INITIAL_S_USER.LOGIN. - // We anonymize it with a deterministic irreversible token. + // Anonymized with a deterministic token. $creatorLogin = $this->upsertColumn( tableId: (int) $table->getKey(), dataTypeId: (int) $varchar2->getKey(), @@ -221,8 +216,6 @@ public function run(): void length: 50, nullable: true, anonymizationRequired: true, - // In the seeded Oracle demo data, CREATOR_LOGIN contains INITIAL_S_USER.LOGIN. - // We will pre-mask rewrite it into INITIAL_S_USER.ROW_ID, then remap via seed map. seedContractMode: SeedContractMode::CONSUMER, relatedColumnsRaw: 'ANON_SIEBEL.INITIAL_S_USER.ROW_ID via LINK_CREATOR_LOGIN', ); @@ -246,8 +239,7 @@ public function run(): void ]); // Methods (seeded by AnonymizationSqlOnlyMethodSeeder). - // Use SQL-only methods so the generated script runs in Oracle demo schemas - // that cannot CREATE PACKAGE. + // Uses SQL-only methods. $methodSeedProvider = AnonymizationMethods::query()->where('name', 'Seed Provider (No-Op)')->firstOrFail(); $methodUserRowId = AnonymizationMethods::query()->where('name', 'SQL Deterministic Siebel ROW_ID (SHA-256)')->firstOrFail(); $methodFirst = AnonymizationMethods::query()->where('name', 'SQL Deterministic First Name (SHA-256)')->firstOrFail(); @@ -256,8 +248,61 @@ public function run(): void $methodBirth = AnonymizationMethods::query()->where('name', 'SQL Date Shift (±365 days)')->firstOrFail(); $methodFkLookup = AnonymizationMethods::query()->where('name', 'SQL Seed Map Lookup (FK)')->firstOrFail(); - // Ensure each demo column has exactly the intended method association. - // This prevents method resolution from picking up stale/legacy associations. + // Create rules that group methods for each anonymization concern. + // Each column is assigned exactly one rule; the rule determines method used (via default or strategy selection on the job). + $ruleSeedProvider = $this->upsertRule( + 'Seed Provider (No-Op)', + 'Marks a column as a seed source without masking its value.', + [['method' => $methodSeedProvider, 'is_default' => true, 'strategy' => null]], + ); + + $ruleRowIdHash = $this->upsertRule( + 'ROW_ID Hash (SHA-256)', + 'Deterministically remaps Siebel ROW_ID values using SHA-256 so dependent FK columns can be re-pointed.', + [['method' => $methodUserRowId, 'is_default' => true, 'strategy' => null]], + ); + + $ruleFirstName = $this->upsertRule( + 'First Name Masking', + 'Deterministic first-name replacement using SHA-256 hash.', + [['method' => $methodFirst, 'is_default' => true, 'strategy' => null]], + ); + + $ruleLastName = $this->upsertRule( + 'Last Name Masking', + 'Deterministic last-name replacement using SHA-256 hash.', + [['method' => $methodLast, 'is_default' => true, 'strategy' => null]], + ); + + $ruleEmail = $this->upsertRule( + 'Email Masking', + 'Deterministic email replacement using SHA-256 hash with safe domain.', + [['method' => $methodEmail, 'is_default' => true, 'strategy' => null]], + ); + + $ruleDateShift = $this->upsertRule( + 'Date Shift (±365 days)', + 'Shifts date values by a deterministic offset derived from the seed.', + [['method' => $methodBirth, 'is_default' => true, 'strategy' => null]], + ); + + $ruleFkLookup = $this->upsertRule( + 'FK Seed Map Lookup', + 'Remaps a foreign-key column via the seed map populated by the referenced table.', + [['method' => $methodFkLookup, 'is_default' => true, 'strategy' => null]], + ); + + // Each column gets exactly one rule (enforced by unique constraint on column_id). + $rowId->anonymizationRule()->sync([$ruleSeedProvider->getKey()]); + $userRowId->anonymizationRule()->sync([$ruleRowIdHash->getKey()]); + $firstName->anonymizationRule()->sync([$ruleFirstName->getKey()]); + $lastName->anonymizationRule()->sync([$ruleLastName->getKey()]); + $email->anonymizationRule()->sync([$ruleEmail->getKey()]); + $altEmail->anonymizationRule()->sync([$ruleEmail->getKey()]); + $birthDate->anonymizationRule()->sync([$ruleDateShift->getKey()]); + $creatorLogin->anonymizationRule()->sync([$ruleFkLookup->getKey()]); + + // Legacy direct method associations kept for backward compatibility. Script generator prefers rule-based resolution. $rowId->anonymizationMethods()->sync([(int) $methodSeedProvider->getKey()]); $userRowId->anonymizationMethods()->sync([(int) $methodUserRowId->getKey()]); $firstName->anonymizationMethods()->sync([(int) $methodFirst->getKey()]); @@ -283,8 +328,7 @@ public function run(): void 'seed_store_prefix' => null, 'job_seed' => 'anonymous-test-seed', // Convert CREATOR_LOGIN from LOGIN -> ROW_ID before building seed maps and remapping. - // This demonstrates a cross-table relationship where the final ANON_S_CONTACT.CREATOR_LOGIN - // references the remapped ANON_S_USER.ROW_ID. + // This demonstrates a cross-table relationship where the final ANON_S_CONTACT.CREATOR_LOGIN references the remapped ANON_S_USER.ROW_ID. 'pre_mask_sql' => "update ANON_S_CONTACT c\n set c.CREATOR_LOGIN = (select u.ROW_ID from ANON_S_USER u where u.LOGIN = c.CREATOR_LOGIN and rownum = 1)\n where c.CREATOR_LOGIN is not null;", 'post_mask_sql' => null, 'last_run_at' => null, @@ -364,4 +408,31 @@ private function upsertColumn( return $col; } + + //Create or update an anonymization rule with its method assignments. + private function upsertRule(string $name, string $description, array $methodAssignments): AnonymizationRule + { + $rule = AnonymizationRule::withTrashed()->updateOrCreate( + ['name' => $name], + ['description' => $description], + ); + + if ($rule->trashed()) { + $rule->restore(); + } + + // Sync method assignments via pivot with is_default and strategy. + $syncData = []; + foreach ($methodAssignments as $assignment) { + $methodId = (int) $assignment['method']->getKey(); + $syncData[$methodId] = [ + 'is_default' => $assignment['is_default'] ?? false, + 'strategy' => $assignment['strategy'] ?? null, + ]; + } + + $rule->methods()->sync($syncData); + + return $rule; + } } diff --git a/database/seeders/Anonymization/AnonymizationComprehensiveMethodSeeder.php b/database/seeders/Anonymization/AnonymizationComprehensiveMethodSeeder.php new file mode 100644 index 00000000..8d513a25 --- /dev/null +++ b/database/seeders/Anonymization/AnonymizationComprehensiveMethodSeeder.php @@ -0,0 +1,1476 @@ +formatPreservingMethods(), + $this->generalizationMethods(), + $this->specializedPiiMethods(), + $this->healthcareFinancialMethods(), + $this->freeTextMethods(), + $this->numericMethods(), + $this->conditionalMethods(), + $this->shuffleMethods(), + $this->temporalMethods(), + $this->referentialIntegrityMethods(), + ); + + foreach ($methods as $payload) { + $method = AnonymizationMethods::withTrashed()->updateOrCreate( + ['name' => $payload['name']], + $payload + ); + + if ($method->trashed()) { + $method->restore(); + } + } + } + + /** + * Format-preserving masking methods that maintain the structure/format of data. + */ + protected function formatPreservingMethods(): array + { + return [ + [ + 'name' => 'Format Preserving SIN/SIN (XXX-XX-XXXX)', + 'category' => AnonymizationMethods::CATEGORY_FORMAT_PRESERVING_RANDOMIZATION, + 'categories' => [AnonymizationMethods::CATEGORY_FORMAT_PRESERVING_RANDOMIZATION], + 'description' => 'Replaces SIN/SIN with format-preserving synthetic value.', + 'what_it_does' => 'Generates a fake SIN/SIN that looks real but uses invalid area numbers (900-999 range).', + 'how_it_works' => 'Hashes the original value to produce deterministic fake digits in invalid ranges.', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Output uses 9XX prefix (reserved/invalid). Deterministic for same input.', + ], + [ + 'name' => 'Format Preserving Phone (XXX-XXX-XXXX)', + 'category' => AnonymizationMethods::CATEGORY_FORMAT_PRESERVING_RANDOMIZATION, + 'categories' => [AnonymizationMethods::CATEGORY_FORMAT_PRESERVING_RANDOMIZATION], + 'description' => 'Replaces phone numbers with format-preserving synthetic values.', + 'what_it_does' => 'Generates fake phone numbers using reserved 555-01XX exchange.', + 'how_it_works' => 'Preserves original format while replacing digits with 555-01XX pattern.', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Uses 555-01XX (reserved fictional exchange). Handles various delimiters.', + ], + [ + 'name' => 'Format Preserving Credit Card (Masked Middle)', + 'category' => AnonymizationMethods::CATEGORY_FORMAT_PRESERVING_RANDOMIZATION, + 'categories' => [AnonymizationMethods::CATEGORY_FORMAT_PRESERVING_RANDOMIZATION], + 'description' => 'Masks middle digits of credit card while preserving first/last 4.', + 'what_it_does' => 'Keeps first 4 (BIN) and last 4 digits visible, masks middle with X.', + 'how_it_works' => 'Pattern-based replacement preserving card structure for testing.', + 'sql_block' => <<= 13; +SQL, + 'emits_seed' => false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'BIN and last 4 preserved for card type identification. Middle digits masked.', + ], + [ + 'name' => 'Format Preserving Credit Card (Full Replacement)', + 'category' => AnonymizationMethods::CATEGORY_FORMAT_PRESERVING_RANDOMIZATION, + 'categories' => [AnonymizationMethods::CATEGORY_FORMAT_PRESERVING_RANDOMIZATION], + 'description' => 'Replaces entire credit card with test card number.', + 'what_it_does' => 'Generates a deterministic test card number (4111-prefix for Visa test range).', + 'how_it_works' => 'Uses hash to generate middle digits, applies Luhn checksum.', + 'sql_block' => <<= 13; +SQL, + 'emits_seed' => false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Uses 4111-1111 test prefix. Note: Luhn checksum not enforced.', + ], + [ + 'name' => 'Format Preserving Alphanumeric (Character Class)', + 'category' => AnonymizationMethods::CATEGORY_FORMAT_PRESERVING_RANDOMIZATION, + 'categories' => [AnonymizationMethods::CATEGORY_FORMAT_PRESERVING_RANDOMIZATION], + 'description' => 'Replaces characters while preserving alpha/numeric/special class positions.', + 'what_it_does' => 'Maintains format structure: A→A, 9→9, special→special.', + 'how_it_works' => 'Translates each character class to deterministic replacement within same class.', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Preserves string length and character type positions (letter→letter, digit→digit).', + ], + [ + 'name' => 'Postal Code Generalization (First 3 Chars)', + 'category' => AnonymizationMethods::CATEGORY_FORMAT_PRESERVING_RANDOMIZATION, + 'categories' => [AnonymizationMethods::CATEGORY_FORMAT_PRESERVING_RANDOMIZATION, AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION], + 'description' => 'Keeps first 3 characters of postal/ZIP code, masks remainder.', + 'what_it_does' => 'Preserves geographic region (FSA for Canada, ZIP3 for US) while masking specifics.', + 'how_it_works' => 'Truncates and pads with placeholder characters.', + 'sql_block' => <<= 6 THEN SUBSTR({{COLUMN}}, 1, 3) || ' XXX' + WHEN LENGTH({{COLUMN}}) >= 5 THEN SUBSTR({{COLUMN}}, 1, 3) || 'XX' + ELSE SUBSTR({{COLUMN}}, 1, 3) + END + WHERE {{COLUMN}} IS NOT NULL; +SQL, + 'emits_seed' => false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Supports both US ZIP (5-digit) and Canadian postal (A1A 1A1) formats.', + ], + ]; + } + + /** + * Data generalization and bucketing methods for quasi-identifiers. + */ + protected function generalizationMethods(): array + { + return [ + [ + 'name' => 'Age Bucketing (10-Year Ranges)', + 'category' => AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION, + 'categories' => [AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION], + 'description' => 'Converts exact age to 10-year age ranges.', + 'what_it_does' => 'Generalizes ages into buckets: 0-9, 10-19, 20-29, etc.', + 'how_it_works' => 'Calculates age bucket floor and formats as range string.', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Output format: "20-29", "30-39", etc. Supports VARCHAR columns.', + ], + [ + 'name' => 'Age Bucketing (5-Year Ranges)', + 'category' => AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION, + 'categories' => [AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION], + 'description' => 'Converts exact age to 5-year age ranges for finer granularity.', + 'what_it_does' => 'Generalizes ages into 5-year buckets: 0-4, 5-9, 10-14, etc.', + 'how_it_works' => 'Calculates 5-year bucket floor and formats as range string.', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Output format: "20-24", "25-29", etc. Finer than 10-year ranges.', + ], + [ + 'name' => 'Date to Year Only', + 'category' => AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION, + 'categories' => [AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION], + 'description' => 'Truncates date to year only (Jan 1).', + 'what_it_does' => 'Removes month/day precision by setting to January 1st of same year.', + 'how_it_works' => 'Truncates date to year boundary.', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'All dates become January 1st of their original year.', + ], + [ + 'name' => 'Date to Quarter Only', + 'category' => AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION, + 'categories' => [AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION], + 'description' => 'Truncates date to start of quarter.', + 'what_it_does' => 'Removes day precision by setting to first day of calendar quarter.', + 'how_it_works' => 'Truncates date to quarter boundary (Q1=Jan 1, Q2=Apr 1, etc.).', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Dates become first day of their quarter.', + ], + [ + 'name' => 'Date to Month Only', + 'category' => AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION, + 'categories' => [AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION], + 'description' => 'Truncates date to first of month.', + 'what_it_does' => 'Removes day precision by setting to first day of month.', + 'how_it_works' => 'Truncates date to month boundary.', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'All dates become the 1st of their original month.', + ], + [ + 'name' => 'Birth Date to Age (As of Today)', + 'category' => AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION, + 'categories' => [AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION], + 'description' => 'Converts birth date to current age in years.', + 'what_it_does' => 'Replaces exact birth date with calculated integer age.', + 'how_it_works' => 'Calculates years between birth date and current date.', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Column becomes numeric age. Consider target column data type.', + ], + [ + 'name' => 'Geographic Region (State/Province Only)', + 'category' => AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION, + 'categories' => [AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION], + 'description' => 'Replaces detailed address with state/province only.', + 'what_it_does' => 'Suppresses street/city while preserving regional identifier.', + 'how_it_works' => 'Retains only the state/province portion of address data.', + 'sql_block' => << 0; +SQL, + 'emits_seed' => false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Assumes "Street, City, State" format. May need adjustment per data.', + ], + [ + 'name' => 'Salary Range Bucketing ($25K)', + 'category' => AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION, + 'categories' => [AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION], + 'description' => 'Converts exact salary to $25K ranges.', + 'what_it_does' => 'Generalizes salaries into $25K buckets: 50000-74999, etc.', + 'how_it_works' => 'Calculates salary bucket floor using 25000 intervals.', + 'sql_block' => << 0; +SQL, + 'emits_seed' => false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Output is VARCHAR like "50000-74999". Column must support text.', + ], + ]; + } + + /** + * Specialized PII masking methods for technical identifiers. + */ + protected function specializedPiiMethods(): array + { + return [ + [ + 'name' => 'IP Address Anonymization (Zero Last Octet)', + 'category' => AnonymizationMethods::CATEGORY_CONDITIONAL_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_CONDITIONAL_MASKING], + 'description' => 'Zeros the last octet of IPv4 addresses.', + 'what_it_does' => 'Preserves network segment while anonymizing host identifier.', + 'how_it_works' => 'Replaces last octet with 0 to create /24 network generalization.', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Converts 192.168.1.123 to 192.168.1.0. IPv4 only.', + ], + [ + 'name' => 'IP Address Full Replacement', + 'category' => AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING], + 'description' => 'Replaces IP addresses with deterministic private-range IPs.', + 'what_it_does' => 'Generates synthetic IP in 10.x.x.x private range.', + 'how_it_works' => 'Hashes original IP to generate deterministic octets.', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Uses RFC 1918 private 10.0.0.0/8 range. Deterministic.', + ], + [ + 'name' => 'MAC Address Anonymization', + 'category' => AnonymizationMethods::CATEGORY_FORMAT_PRESERVING_RANDOMIZATION, + 'categories' => [AnonymizationMethods::CATEGORY_FORMAT_PRESERVING_RANDOMIZATION], + 'description' => 'Replaces MAC addresses with locally-administered synthetic values.', + 'what_it_does' => 'Generates fake MAC with locally-administered bit set.', + 'how_it_works' => 'Hashes to generate deterministic hex pairs with X2/X6/XA/XE prefix.', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => '02:xx prefix indicates locally-administered (non-manufacturer) MAC.', + ], + [ + 'name' => 'UUID/GUID Replacement', + 'category' => AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING], + 'description' => 'Replaces UUIDs with deterministic version-4 format values.', + 'what_it_does' => 'Generates synthetic UUIDs that preserve version-4 format.', + 'how_it_works' => 'Uses hash to generate hex values with proper version/variant bits.', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Produces valid UUID v4 format (4xxx-[89ab]xxx). Deterministic.', + ], + [ + 'name' => 'URL Path Anonymization', + 'category' => AnonymizationMethods::CATEGORY_CONDITIONAL_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_CONDITIONAL_MASKING], + 'description' => 'Masks URL path segments while preserving domain.', + 'what_it_does' => 'Replaces URL path with /masked-path to hide page access patterns.', + 'how_it_works' => 'Regex extracts and preserves protocol+domain, replaces path.', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Keeps protocol and domain. Example: https://example.com/masked-path', + ], + [ + 'name' => 'Email Domain Preservation', + 'category' => AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING], + 'description' => 'Anonymizes email local part while preserving domain.', + 'what_it_does' => 'Replaces username part with hash, keeps original domain.', + 'how_it_works' => 'Extracts domain, generates deterministic local part via hash.', + 'sql_block' => << 1; +SQL, + 'emits_seed' => false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Preserves original domain. Useful for domain-based routing tests.', + ], + [ + 'name' => 'File Path Anonymization', + 'category' => AnonymizationMethods::CATEGORY_CONDITIONAL_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_CONDITIONAL_MASKING], + 'description' => 'Anonymizes file paths while preserving extension.', + 'what_it_does' => 'Replaces path/filename with hash, keeps file extension.', + 'how_it_works' => 'Extracts extension, generates deterministic path prefix.', + 'sql_block' => << 0 + THEN SUBSTR({{COLUMN}}, INSTR({{COLUMN}}, '.', -1)) + ELSE '' + END + WHERE {{COLUMN}} IS NOT NULL; +SQL, + 'emits_seed' => false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Output format: /masked/file_[hash].[ext]. Deterministic.', + ], + ]; + } + + /** + * Healthcare and financial identifier masking methods. + */ + protected function healthcareFinancialMethods(): array + { + return [ + [ + 'name' => 'Medical Record Number (MRN) Replacement', + 'category' => AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING], + 'description' => 'Replaces MRN with deterministic synthetic value.', + 'what_it_does' => 'Generates test MRN prefixed with TEST- for easy identification.', + 'how_it_works' => 'Hashes original MRN to produce stable numeric replacement.', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Format: TEST-XXXXXXXX. Deterministic for referential integrity.', + ], + [ + 'name' => 'Health Card Number (Canadian)', + 'category' => AnonymizationMethods::CATEGORY_FORMAT_PRESERVING_RANDOMIZATION, + 'categories' => [AnonymizationMethods::CATEGORY_FORMAT_PRESERVING_RANDOMIZATION], + 'description' => 'Replaces health card numbers with format-preserving synthetic values.', + 'what_it_does' => 'Generates fake health card number matching 10-digit format.', + 'how_it_works' => 'Uses 9999-prefix (invalid range) with deterministic digits.', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => '9999-prefix is invalid/test range. Deterministic.', + ], + [ + 'name' => 'Insurance Policy Number', + 'category' => AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING], + 'description' => 'Replaces insurance policy numbers with synthetic values.', + 'what_it_does' => 'Generates test policy number with TESTPOL- prefix.', + 'how_it_works' => 'Hashes original to produce stable alphanumeric replacement.', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Format: TESTPOL-[10 hex chars]. Deterministic.', + ], + [ + 'name' => 'Bank Account Number (Generic)', + 'category' => AnonymizationMethods::CATEGORY_FORMAT_PRESERVING_RANDOMIZATION, + 'categories' => [AnonymizationMethods::CATEGORY_FORMAT_PRESERVING_RANDOMIZATION], + 'description' => 'Replaces bank account numbers with test values.', + 'what_it_does' => 'Generates synthetic account number using 0000 test prefix.', + 'how_it_works' => 'Preserves length, uses test-range prefix + hash-derived digits.', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Uses 0000 test prefix. Attempts to preserve original length.', + ], + [ + 'name' => 'Bank Routing Number (ABA)', + 'category' => AnonymizationMethods::CATEGORY_FORMAT_PRESERVING_RANDOMIZATION, + 'categories' => [AnonymizationMethods::CATEGORY_FORMAT_PRESERVING_RANDOMIZATION], + 'description' => 'Replaces ABA routing numbers with test values.', + 'what_it_does' => 'Generates synthetic 9-digit routing number with test Federal Reserve prefix.', + 'how_it_works' => 'Uses 00 prefix (invalid) with deterministic digits.', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => '00-prefix is invalid Federal Reserve district. Deterministic.', + ], + [ + 'name' => 'IBAN Replacement', + 'category' => AnonymizationMethods::CATEGORY_FORMAT_PRESERVING_RANDOMIZATION, + 'categories' => [AnonymizationMethods::CATEGORY_FORMAT_PRESERVING_RANDOMIZATION], + 'description' => 'Replaces IBANs while preserving country code.', + 'what_it_does' => 'Generates synthetic IBAN with original country code + test values.', + 'how_it_works' => 'Preserves 2-letter country code, replaces remainder with hash.', + 'sql_block' => <<= 15 + AND REGEXP_LIKE(SUBSTR({{COLUMN}}, 1, 2), '^[A-Z]{2}$'); +SQL, + 'emits_seed' => false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Preserves country code. Check digits (00) are invalid.', + ], + [ + 'name' => 'Driver License Number', + 'category' => AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING], + 'description' => 'Replaces driver license numbers with synthetic values.', + 'what_it_does' => 'Generates test DL number with TEST-DL prefix.', + 'how_it_works' => 'Hashes original to produce deterministic alphanumeric value.', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Format: TEST-DL-[12 hex chars]. Deterministic.', + ], + [ + 'name' => 'Passport Number', + 'category' => AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING], + 'description' => 'Replaces passport numbers with test values.', + 'what_it_does' => 'Generates synthetic passport with TEST prefix.', + 'how_it_works' => 'Uses TEST prefix with hash-derived alphanumeric suffix.', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Format: TEST[8 hex chars]. Deterministic.', + ], + ]; + } + + /** + * Free-text and CLOB handling methods. + */ + protected function freeTextMethods(): array + { + return [ + [ + 'name' => 'Lorem Ipsum Replacement (Short)', + 'category' => AnonymizationMethods::CATEGORY_CONDITIONAL_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_CONDITIONAL_MASKING], + 'description' => 'Replaces text with short lorem ipsum placeholder.', + 'what_it_does' => 'Overwrites free-text with standard 50-char lorem ipsum.', + 'how_it_works' => 'Simple replacement with fixed text preserving non-null semantics.', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Fixed 56-character replacement. Use for short note fields.', + ], + [ + 'name' => 'Lorem Ipsum Replacement (Medium)', + 'category' => AnonymizationMethods::CATEGORY_CONDITIONAL_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_CONDITIONAL_MASKING], + 'description' => 'Replaces text with medium-length lorem ipsum.', + 'what_it_does' => 'Overwrites with ~200 characters of lorem ipsum.', + 'how_it_works' => 'Simple replacement for medium-sized text fields.', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Fixed ~200-character replacement. Use for description fields.', + ], + [ + 'name' => 'Truncate and Mask Text', + 'category' => AnonymizationMethods::CATEGORY_CONDITIONAL_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_CONDITIONAL_MASKING], + 'description' => 'Truncates text to first N chars + mask indicator.', + 'what_it_does' => 'Shows first 20 characters then "[MASKED]" indicator.', + 'how_it_works' => 'Concatenates substring with fixed mask suffix.', + 'sql_block' => << 20 + THEN SUBSTR({{COLUMN}}, 1, 20) || '... [MASKED]' + ELSE {{COLUMN}} + END + WHERE {{COLUMN}} IS NOT NULL; +SQL, + 'emits_seed' => false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Preserves short values unchanged. Shows partial context.', + ], + [ + 'name' => 'Deterministic Text Hash', + 'category' => AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING], + 'description' => 'Replaces text with deterministic hash-based token.', + 'what_it_does' => 'Generates unique, reproducible token from text content.', + 'how_it_works' => 'Uses SHA-256 hash truncated to readable length.', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Format: TXT_[16 hex chars]. Same input = same output.', + ], + [ + 'name' => 'Clear CLOB Content', + 'category' => AnonymizationMethods::CATEGORY_CONDITIONAL_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_CONDITIONAL_MASKING], + 'description' => 'Replaces CLOB content with placeholder indicator.', + 'what_it_does' => 'Clears large text objects with "[CLOB CONTENT REMOVED]".', + 'how_it_works' => 'Simple replacement for CLOB columns.', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Use for CLOB columns. Preserves non-null status.', + ], + [ + 'name' => 'Pattern-Based PII Redaction (Email)', + 'category' => AnonymizationMethods::CATEGORY_CONDITIONAL_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_CONDITIONAL_MASKING], + 'description' => 'Redacts email addresses found within free text.', + 'what_it_does' => 'Finds and replaces email patterns in text with [EMAIL].', + 'how_it_works' => 'Regex pattern matching for email-like strings.', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Scans and replaces all email-like patterns in text.', + ], + [ + 'name' => 'Pattern-Based PII Redaction (Phone)', + 'category' => AnonymizationMethods::CATEGORY_CONDITIONAL_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_CONDITIONAL_MASKING], + 'description' => 'Redacts phone number patterns found within free text.', + 'what_it_does' => 'Finds and replaces phone patterns in text with [PHONE].', + 'how_it_works' => 'Regex pattern matching for phone-like strings.', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Handles various North American phone formats.', + ], + [ + 'name' => 'Pattern-Based PII Redaction (SIN)', + 'category' => AnonymizationMethods::CATEGORY_CONDITIONAL_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_CONDITIONAL_MASKING], + 'description' => 'Redacts SIN patterns found within free text.', + 'what_it_does' => 'Finds and replaces SIN-like patterns with [SIN].', + 'how_it_works' => 'Regex pattern matching for XXX-XX-XXXX format.', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'May produce false positives with 9-digit number sequences.', + ], + ]; + } + + /** + * Numeric perturbation, rounding, and transformation methods. + */ + protected function numericMethods(): array + { + return [ + [ + 'name' => 'Numeric Rounding (Integer)', + 'category' => AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION, + 'categories' => [AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION], + 'description' => 'Rounds numeric values to nearest integer.', + 'what_it_does' => 'Removes decimal precision from floating-point values.', + 'how_it_works' => 'Standard rounding to zero decimal places.', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Simple precision reduction. Non-deterministic across jobs.', + ], + [ + 'name' => 'Numeric Rounding (Nearest 10)', + 'category' => AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION, + 'categories' => [AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION], + 'description' => 'Rounds numeric values to nearest 10.', + 'what_it_does' => 'Generalizes numbers to nearest decade value.', + 'how_it_works' => 'Rounds to -1 decimal places (tens position).', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Example: 47 → 50, 123 → 120.', + ], + [ + 'name' => 'Numeric Rounding (Nearest 100)', + 'category' => AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION, + 'categories' => [AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION], + 'description' => 'Rounds numeric values to nearest 100.', + 'what_it_does' => 'Generalizes numbers to nearest hundred.', + 'how_it_works' => 'Rounds to -2 decimal places (hundreds position).', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Example: 1234 → 1200, 4567 → 4600.', + ], + [ + 'name' => 'Numeric Noise Addition (±5%)', + 'category' => AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION, + 'categories' => [AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION], + 'description' => 'Adds random noise within ±5% of original value.', + 'what_it_does' => 'Perturbs numeric values while preserving approximate magnitude.', + 'how_it_works' => 'Multiplies by random factor between 0.95 and 1.05.', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Non-deterministic (random). Preserves sign and approximate scale.', + ], + [ + 'name' => 'Numeric Noise Addition (±10%)', + 'category' => AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION, + 'categories' => [AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION], + 'description' => 'Adds random noise within ±10% of original value.', + 'what_it_does' => 'Perturbs numeric values with moderate randomization.', + 'how_it_works' => 'Multiplies by random factor between 0.90 and 1.10.', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Non-deterministic (random). Greater perturbation than ±5%.', + ], + [ + 'name' => 'Numeric Noise (Deterministic ±10%)', + 'category' => AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING, AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION], + 'description' => 'Adds deterministic noise within ±10% based on seed.', + 'what_it_does' => 'Perturbs numeric values reproducibly using hash-based offset.', + 'how_it_works' => 'Uses hash of seed+value to generate consistent perturbation factor.', + 'sql_block' => << false, + 'requires_seed' => true, + 'supports_composite_seed' => false, + 'seed_notes' => 'Deterministic perturbation. Same seed = same noise factor.', + ], + [ + 'name' => 'Numeric Floor (Remove Decimals)', + 'category' => AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION, + 'categories' => [AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION], + 'description' => 'Floors numeric values, removing decimal portion.', + 'what_it_does' => 'Truncates decimals by flooring toward negative infinity.', + 'how_it_works' => 'Applies FLOOR function to numeric column.', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Example: 3.7 → 3, -2.3 → -3.', + ], + [ + 'name' => 'Numeric Range Capping', + 'category' => AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION, + 'categories' => [AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION], + 'description' => 'Caps extreme values to specified bounds (top/bottom code).', + 'what_it_does' => 'Limits outliers by capping at 1st/99th percentile equivalent.', + 'how_it_works' => 'Uses LEAST/GREATEST to bound values (customize bounds as needed).', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Customize bound values (0, 999999) per column requirements.', + ], + [ + 'name' => 'Replace with Statistical Surrogate', + 'category' => AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION, + 'categories' => [AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION], + 'description' => 'Replaces values with table-level average/median.', + 'what_it_does' => 'Eliminates individual variation by using aggregate.', + 'how_it_works' => 'Computes average and applies uniformly (K-anonymity support).', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'All rows get same value. High privacy, low utility.', + ], + ]; + } + + /** + * Conditional and rule-based masking methods. + */ + protected function conditionalMethods(): array + { + return [ + [ + 'name' => 'Conditional Mask (If Length > N)', + 'category' => AnonymizationMethods::CATEGORY_CONDITIONAL_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_CONDITIONAL_MASKING], + 'description' => 'Masks only values exceeding specified length.', + 'what_it_does' => 'Preserves short values, masks longer ones.', + 'how_it_works' => 'Conditional UPDATE based on LENGTH check (default: 10).', + 'sql_block' => <<10 chars) +UPDATE {{TABLE}} tgt + SET {{COLUMN}} = CASE + WHEN LENGTH({{COLUMN}}) > 10 + THEN SUBSTR({{COLUMN}}, 1, 3) || '***MASKED***' + ELSE {{COLUMN}} + END + WHERE {{COLUMN}} IS NOT NULL; +SQL, + 'emits_seed' => false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Customize length threshold (10) as needed.', + ], + [ + 'name' => 'Conditional Mask (Pattern Match)', + 'category' => AnonymizationMethods::CATEGORY_CONDITIONAL_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_CONDITIONAL_MASKING], + 'description' => 'Masks values matching specified pattern only.', + 'what_it_does' => 'Selectively masks rows matching regex criteria.', + 'how_it_works' => 'UPDATE with REGEXP_LIKE filter (customize pattern as needed).', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Customize REGEXP pattern per use case.', + ], + [ + 'name' => 'Suppress Low-Frequency Values', + 'category' => AnonymizationMethods::CATEGORY_CONDITIONAL_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_CONDITIONAL_MASKING], + 'description' => 'Replaces values occurring fewer than N times.', + 'what_it_does' => 'Protects rare values by replacing with "OTHER" (K-anonymity support).', + 'how_it_works' => 'Counts value frequency, suppresses those below threshold.', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Customize threshold (5) for K-anonymity requirements.', + ], + [ + 'name' => 'Age-Based Date Suppression', + 'category' => AnonymizationMethods::CATEGORY_CONDITIONAL_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_CONDITIONAL_MASKING], + 'description' => 'Nullifies dates for records older than threshold.', + 'what_it_does' => 'Suppresses very old dates (HIPAA: >89 years triggers special handling).', + 'how_it_works' => 'Conditional NULL for dates beyond threshold.', + 'sql_block' => <<89 years per HIPAA) +UPDATE {{TABLE}} tgt + SET {{COLUMN}} = NULL + WHERE {{COLUMN}} IS NOT NULL + AND {{COLUMN}} < ADD_MONTHS(SYSDATE, -89 * 12); +SQL, + 'emits_seed' => false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'HIPAA safe harbor: ages >89 must be aggregated to "90+".', + ], + [ + 'name' => 'Preserve Value If In Allowlist', + 'category' => AnonymizationMethods::CATEGORY_CONDITIONAL_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_CONDITIONAL_MASKING], + 'description' => 'Masks values unless they appear in allowlist.', + 'what_it_does' => 'Keeps specific safe values unchanged, masks others.', + 'how_it_works' => 'Conditional masking with IN clause for safe values.', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Customize allowlist values per column domain.', + ], + ]; + } + + /** + * Data shuffling methods for intra-table anonymization. + */ + protected function shuffleMethods(): array + { + return [ + [ + 'name' => 'Intra-Column Value Shuffle', + 'category' => AnonymizationMethods::CATEGORY_SHUFFLE_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_SHUFFLE_MASKING], + 'description' => 'Shuffles values within the same column across rows.', + 'what_it_does' => 'Randomly redistributes existing values, preserving overall distribution.', + 'how_it_works' => 'Uses ROWNUM-based random assignment via self-join.', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Non-deterministic. Preserves data distribution. Use DBMS_RANDOM.SEED for reproducibility.', + ], + [ + 'name' => 'Group-Based Shuffle', + 'category' => AnonymizationMethods::CATEGORY_SHUFFLE_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_SHUFFLE_MASKING], + 'description' => 'Shuffles values within groups (e.g., same department).', + 'what_it_does' => 'Randomizes within partitions to maintain group-level statistics.', + 'how_it_works' => 'PARTITION BY clause limits shuffle scope (customize partition column).', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Replace GROUP_COLUMN with actual partition column name.', + ], + [ + 'name' => 'Deterministic Shuffle (Reproducible)', + 'category' => AnonymizationMethods::CATEGORY_SHUFFLE_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_SHUFFLE_MASKING, AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING], + 'description' => 'Shuffles values deterministically using hash-based ordering.', + 'what_it_does' => 'Reproducible shuffle: same seed always produces same arrangement.', + 'how_it_works' => 'Uses ORA_HASH with job seed for deterministic reordering.', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Deterministic: same job seed produces identical shuffle.', + ], + ]; + } + + /** + * Temporal data masking methods. + */ + protected function temporalMethods(): array + { + return [ + [ + 'name' => 'Timestamp Jitter (±1 Hour)', + 'category' => AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION, + 'categories' => [AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION], + 'description' => 'Adds random jitter of ±1 hour to timestamps.', + 'what_it_does' => 'Obscures exact time while preserving approximate timing.', + 'how_it_works' => 'Adds random interval between -1 and +1 hours.', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Non-deterministic. For TIMESTAMP columns.', + ], + [ + 'name' => 'Date Shift (±30 Days)', + 'category' => AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION, + 'categories' => [AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION], + 'description' => 'Shifts dates by random offset within ±30 days.', + 'what_it_does' => 'Perturbs dates while preserving seasonal patterns.', + 'how_it_works' => 'Adds random integer between -30 and +30.', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Non-deterministic. For DATE columns.', + ], + [ + 'name' => 'Date Shift (±90 Days, Deterministic)', + 'category' => AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING, AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION], + 'description' => 'Deterministically shifts dates by up to ±90 days.', + 'what_it_does' => 'Reproducible date perturbation for consistency across runs.', + 'how_it_works' => 'Uses hash to generate consistent offset per record.', + 'sql_block' => << false, + 'requires_seed' => true, + 'supports_composite_seed' => false, + 'seed_notes' => 'Requires seed. Same seed+value = same offset.', + ], + [ + 'name' => 'Timestamp Truncate to Hour', + 'category' => AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION, + 'categories' => [AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION], + 'description' => 'Truncates timestamps to the hour boundary.', + 'what_it_does' => 'Removes minute/second precision from timestamps.', + 'how_it_works' => 'Truncates to HH (hour) precision.', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Example: 2024-01-15 14:32:45 → 2024-01-15 14:00:00.', + ], + [ + 'name' => 'Future Date Constraint', + 'category' => AnonymizationMethods::CATEGORY_CONDITIONAL_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_CONDITIONAL_MASKING], + 'description' => 'Caps future dates to current date.', + 'what_it_does' => 'Prevents test data from having unrealistic future dates.', + 'how_it_works' => 'Replaces dates beyond SYSDATE with SYSDATE.', + 'sql_block' => << SYSDATE; +SQL, + 'emits_seed' => false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Useful for cleaning synthetic data or test environments.', + ], + [ + 'name' => 'Date Relative Preservation', + 'category' => AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING], + 'description' => 'Shifts all dates by same offset to preserve relative ordering.', + 'what_it_does' => 'Maintains date intervals/sequences while anonymizing.', + 'how_it_works' => 'Calculates offset from reference date, applies uniformly.', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Preserves date intervals. Customize target epoch as needed.', + ], + ]; + } + + /** + * Referential integrity and cascade methods. + */ + protected function referentialIntegrityMethods(): array + { + return [ + [ + 'name' => 'FK Cascade (Pre-Update Lookup)', + 'category' => AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING], + 'description' => 'Updates FK columns by looking up transformed parent values.', + 'what_it_does' => 'Ensures FK references remain valid after parent column is masked.', + 'how_it_works' => 'Joins to seed map table to find new value for parent reference.', + 'sql_block' => << false, + 'requires_seed' => true, + 'supports_composite_seed' => false, + 'seed_notes' => 'Requires seed map table from parent anonymization. Replace {{PARENT_TABLE}}.', + ], + [ + 'name' => 'Orphan Row Suppression', + 'category' => AnonymizationMethods::CATEGORY_CONDITIONAL_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_CONDITIONAL_MASKING], + 'description' => 'Nullifies FK values that no longer have valid parent reference.', + 'what_it_does' => 'Cleans up broken references after parent table anonymization.', + 'how_it_works' => 'Sets FK to NULL where parent lookup fails.', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Replace PARENT_TABLE and PARENT_COLUMN. Use after parent masking.', + ], + [ + 'name' => 'Preserve NULL Semantics', + 'category' => AnonymizationMethods::CATEGORY_CONDITIONAL_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_CONDITIONAL_MASKING], + 'description' => 'Wrapper method ensuring NULL values stay NULL after masking.', + 'what_it_does' => 'Explicitly preserves NULL/non-NULL distinction.', + 'how_it_works' => 'No-op method documenting NULL preservation requirement.', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Documentation method. Actual NULL handling is in other methods.', + ], + [ + 'name' => 'Composite Key Hash', + 'category' => AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING], + 'description' => 'Generates deterministic surrogate from multiple columns.', + 'what_it_does' => 'Creates compound key replacement when PK spans multiple columns.', + 'how_it_works' => 'Concatenates columns with delimiter, hashes result.', + 'sql_block' => << true, + 'requires_seed' => false, + 'supports_composite_seed' => true, + 'seed_notes' => 'Replace COL1, COL2 with actual composite key columns.', + ], + ]; + } +} diff --git a/database/seeders/Anonymization/AnonymizationFakerLookupMethodSeeder.php b/database/seeders/Anonymization/AnonymizationFakerLookupMethodSeeder.php new file mode 100644 index 00000000..1c4d996c --- /dev/null +++ b/database/seeders/Anonymization/AnonymizationFakerLookupMethodSeeder.php @@ -0,0 +1,706 @@ + 'Faker First Name (Deterministic Lookup)', + 'category' => AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING], + 'description' => 'Replaces first names with synthetic values from a pre-generated lookup table.', + 'what_it_does' => 'Maps original first names to realistic synthetic first names deterministically.', + 'how_it_works' => 'Uses a seed-based hash to select from 10,000+ Faker-generated first names.', + 'sql_block' => << false, + 'requires_seed' => true, + 'supports_composite_seed' => false, + 'seed_notes' => 'Requires seed expression. Produces consistent results for same seed.', + ], + [ + 'name' => 'Faker Last Name (Deterministic Lookup)', + 'category' => AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING], + 'description' => 'Replaces last names with synthetic values from a pre-generated lookup table.', + 'what_it_does' => 'Maps original last names to realistic synthetic last names deterministically.', + 'how_it_works' => 'Uses a seed-based hash to select from 10,000+ Faker-generated last names.', + 'sql_block' => << false, + 'requires_seed' => true, + 'supports_composite_seed' => false, + 'seed_notes' => 'Requires seed expression. Produces consistent results for same seed.', + ], + [ + 'name' => 'Faker Full Name (Deterministic Lookup)', + 'category' => AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING], + 'description' => 'Replaces full names with synthetic values from a pre-generated lookup table.', + 'what_it_does' => 'Maps original full names to realistic synthetic full names deterministically.', + 'how_it_works' => 'Uses a seed-based hash to select from 10,000+ Faker-generated full names.', + 'sql_block' => << false, + 'requires_seed' => true, + 'supports_composite_seed' => false, + 'seed_notes' => 'Requires seed expression. Produces consistent results for same seed.', + ], + [ + 'name' => 'Faker Email (Deterministic Lookup)', + 'category' => AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING], + 'description' => 'Replaces email addresses with synthetic values using safe domains.', + 'what_it_does' => 'Maps original emails to realistic synthetic emails deterministically.', + 'how_it_works' => 'Uses a seed-based hash to select from 10,000+ Faker-generated safe emails.', + 'sql_block' => << false, + 'requires_seed' => true, + 'supports_composite_seed' => false, + 'seed_notes' => 'All generated emails use @example.com/org/net domains.', + ], + [ + 'name' => 'Faker Phone Number (Deterministic Lookup)', + 'category' => AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING], + 'description' => 'Replaces phone numbers with synthetic values using reserved exchanges.', + 'what_it_does' => 'Maps original phones to realistic synthetic phone numbers deterministically.', + 'how_it_works' => 'Uses a seed-based hash to select from 10,000+ synthetic phone numbers.', + 'sql_block' => << false, + 'requires_seed' => true, + 'supports_composite_seed' => false, + 'seed_notes' => 'Uses 555 and toll-free exchanges. Various formats supported.', + ], + [ + 'name' => 'Faker Street Address (Deterministic Lookup)', + 'category' => AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING], + 'description' => 'Replaces street addresses with synthetic values.', + 'what_it_does' => 'Maps original addresses to realistic synthetic addresses deterministically.', + 'how_it_works' => 'Uses a seed-based hash to select from 10,000+ Faker-generated addresses.', + 'sql_block' => << false, + 'requires_seed' => true, + 'supports_composite_seed' => false, + 'seed_notes' => 'Requires seed expression. Max length 200 chars.', + ], + [ + 'name' => 'Faker City (Deterministic Lookup)', + 'category' => AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING], + 'description' => 'Replaces city names with synthetic values.', + 'what_it_does' => 'Maps original cities to realistic synthetic city names deterministically.', + 'how_it_works' => 'Uses a seed-based hash to select from 5,000+ Faker-generated city names.', + 'sql_block' => << false, + 'requires_seed' => true, + 'supports_composite_seed' => false, + 'seed_notes' => 'Max length 50 chars.', + ], + [ + 'name' => 'Faker Postal Code (Deterministic Lookup)', + 'category' => AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING], + 'description' => 'Replaces postal/ZIP codes with synthetic values.', + 'what_it_does' => 'Maps original postal codes to synthetic US ZIP or Canadian postal codes.', + 'how_it_works' => 'Uses a seed-based hash to select from 10,000+ synthetic postal codes.', + 'sql_block' => << false, + 'requires_seed' => true, + 'supports_composite_seed' => false, + 'seed_notes' => 'Mix of US ZIP (5-digit) and Canadian postal codes.', + ], + [ + 'name' => 'Faker Company Name (Deterministic Lookup)', + 'category' => AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING], + 'description' => 'Replaces company/organization names with synthetic values.', + 'what_it_does' => 'Maps original company names to realistic synthetic company names.', + 'how_it_works' => 'Uses a seed-based hash to select from 5,000+ Faker-generated company names.', + 'sql_block' => << false, + 'requires_seed' => true, + 'supports_composite_seed' => false, + 'seed_notes' => 'Max length 100 chars.', + ], + [ + 'name' => 'Faker sin Surrogate (Deterministic Lookup)', + 'category' => AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING], + 'description' => 'Replaces sin/SIN values with non-valid format-preserving surrogates.', + 'what_it_does' => 'Maps original sin values to synthetic sin-format strings that are not valid.', + 'how_it_works' => 'Uses a seed-based hash to select from 10,000+ invalid-but-formatted sin surrogates.', + 'sql_block' => << false, + 'requires_seed' => true, + 'supports_composite_seed' => false, + 'seed_notes' => 'Uses invalid sin area codes (900-999). Not valid for verification.', + ], + [ + 'name' => 'Faker Credit Card (Deterministic Lookup)', + 'category' => AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING], + 'description' => 'Replaces credit card numbers with masked non-functional surrogates.', + 'what_it_does' => 'Maps original CC values to masked format-preserving surrogates.', + 'how_it_works' => 'Uses a seed-based hash to select from 10,000+ masked card number patterns.', + 'sql_block' => << false, + 'requires_seed' => true, + 'supports_composite_seed' => false, + 'seed_notes' => 'Masked format with visible last 4 digits. Not functional.', + ], + [ + 'name' => 'Faker Account Number (Deterministic Lookup)', + 'category' => AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING], + 'description' => 'Replaces account/reference numbers with synthetic values.', + 'what_it_does' => 'Maps original account numbers to synthetic account number patterns.', + 'how_it_works' => 'Uses a seed-based hash to select from 10,000+ synthetic account numbers.', + 'sql_block' => << false, + 'requires_seed' => true, + 'supports_composite_seed' => false, + 'seed_notes' => 'Format: PREFIX-NNNNNNNN', + ], + [ + 'name' => 'Faker Username (Deterministic Lookup)', + 'category' => AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING], + 'description' => 'Replaces usernames/login IDs with synthetic values.', + 'what_it_does' => 'Maps original usernames to realistic synthetic usernames.', + 'how_it_works' => 'Uses a seed-based hash to select from 10,000+ Faker-generated usernames.', + 'sql_block' => << false, + 'requires_seed' => true, + 'supports_composite_seed' => false, + 'seed_notes' => 'Max length 50 chars.', + ], + [ + 'name' => 'Faker Comment/Notes (Deterministic Lookup)', + 'category' => AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING], + 'description' => 'Replaces free-text comments with lorem ipsum placeholder text.', + 'what_it_does' => 'Maps original comments to generic lorem ipsum text.', + 'how_it_works' => 'Uses a seed-based hash to select from 5,000+ lorem ipsum sentences.', + 'sql_block' => << false, + 'requires_seed' => true, + 'supports_composite_seed' => false, + 'seed_notes' => 'For CLOB columns, use with explicit max_len or separate CLOB method.', + ], + [ + 'name' => 'Faker Job Title (Deterministic Lookup)', + 'category' => AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING], + 'description' => 'Replaces job titles with synthetic values.', + 'what_it_does' => 'Maps original job titles to realistic synthetic job titles.', + 'how_it_works' => 'Uses a seed-based hash to select from 2,000+ Faker-generated job titles.', + 'sql_block' => << false, + 'requires_seed' => true, + 'supports_composite_seed' => false, + 'seed_notes' => 'Max length 75 chars.', + ], + + // ================================================================ + // RANDOM LOOKUP METHODS (non-deterministic, each run different) + // ================================================================ + [ + 'name' => 'Faker First Name (Random)', + 'category' => AnonymizationMethods::CATEGORY_FORMAT_PRESERVING_RANDOMIZATION, + 'categories' => [AnonymizationMethods::CATEGORY_FORMAT_PRESERVING_RANDOMIZATION], + 'description' => 'Replaces first names with random synthetic values.', + 'what_it_does' => 'Replaces original first names with random synthetic first names.', + 'how_it_works' => 'Selects randomly from 10,000+ Faker-generated first names.', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Non-deterministic. Different results each execution.', + ], + [ + 'name' => 'Faker Last Name (Random)', + 'category' => AnonymizationMethods::CATEGORY_FORMAT_PRESERVING_RANDOMIZATION, + 'categories' => [AnonymizationMethods::CATEGORY_FORMAT_PRESERVING_RANDOMIZATION], + 'description' => 'Replaces last names with random synthetic values.', + 'what_it_does' => 'Replaces original last names with random synthetic last names.', + 'how_it_works' => 'Selects randomly from 10,000+ Faker-generated last names.', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Non-deterministic. Different results each execution.', + ], + [ + 'name' => 'Faker Email (Random)', + 'category' => AnonymizationMethods::CATEGORY_FORMAT_PRESERVING_RANDOMIZATION, + 'categories' => [AnonymizationMethods::CATEGORY_FORMAT_PRESERVING_RANDOMIZATION], + 'description' => 'Replaces emails with random synthetic values using safe domains.', + 'what_it_does' => 'Replaces original emails with random synthetic emails.', + 'how_it_works' => 'Selects randomly from 10,000+ Faker-generated safe emails.', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Non-deterministic. Uses @example.com/org/net domains.', + ], + [ + 'name' => 'Faker Phone (Random)', + 'category' => AnonymizationMethods::CATEGORY_FORMAT_PRESERVING_RANDOMIZATION, + 'categories' => [AnonymizationMethods::CATEGORY_FORMAT_PRESERVING_RANDOMIZATION], + 'description' => 'Replaces phone numbers with random synthetic values.', + 'what_it_does' => 'Replaces original phone numbers with random synthetic phones.', + 'how_it_works' => 'Selects randomly from 10,000+ synthetic phone numbers.', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Non-deterministic. Uses 555/toll-free exchanges.', + ], + [ + 'name' => 'Faker Address (Random)', + 'category' => AnonymizationMethods::CATEGORY_FORMAT_PRESERVING_RANDOMIZATION, + 'categories' => [AnonymizationMethods::CATEGORY_FORMAT_PRESERVING_RANDOMIZATION], + 'description' => 'Replaces addresses with random synthetic values.', + 'what_it_does' => 'Replaces original addresses with random synthetic addresses.', + 'how_it_works' => 'Selects randomly from 10,000+ Faker-generated addresses.', + 'sql_block' => << false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Non-deterministic. Max length 200 chars.', + ], + + // ================================================================ + // SIEBEL STATUS/CATEGORY METHODS (deterministic from fixed lists) + // ================================================================ + [ + 'name' => 'Siebel Status Value (Deterministic)', + 'category' => AnonymizationMethods::CATEGORY_SHUFFLE_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_SHUFFLE_MASKING], + 'description' => 'Replaces status values with valid Siebel status terms.', + 'what_it_does' => 'Maps original status values to valid Siebel-compatible status values.', + 'how_it_works' => 'Uses a seed-based hash to select from standard Siebel status values.', + 'sql_block' => << false, + 'requires_seed' => true, + 'supports_composite_seed' => false, + 'seed_notes' => 'Uses standard Siebel status values (Active, Inactive, Pending, etc.)', + ], + [ + 'name' => 'Siebel Priority Value (Deterministic)', + 'category' => AnonymizationMethods::CATEGORY_SHUFFLE_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_SHUFFLE_MASKING], + 'description' => 'Replaces priority values with valid Siebel priority terms.', + 'what_it_does' => 'Maps original priority values to valid Siebel-compatible priority values.', + 'how_it_works' => 'Uses a seed-based hash to select from standard Siebel priority values.', + 'sql_block' => << false, + 'requires_seed' => true, + 'supports_composite_seed' => false, + 'seed_notes' => 'Uses standard Siebel priority values (1-ASAP, 2-High, 3-Medium, 4-Low)', + ], + [ + 'name' => 'Siebel Type Value (Deterministic)', + 'category' => AnonymizationMethods::CATEGORY_SHUFFLE_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_SHUFFLE_MASKING], + 'description' => 'Replaces type/category values with valid Siebel type terms.', + 'what_it_does' => 'Maps original type values to valid Siebel-compatible type values.', + 'how_it_works' => 'Uses a seed-based hash to select from standard Siebel entity types.', + 'sql_block' => << false, + 'requires_seed' => true, + 'supports_composite_seed' => false, + 'seed_notes' => 'Uses standard Siebel type values (Individual, Organization, etc.)', + ], + + // ================================================================ + // NUMERIC METHODS + // ================================================================ + [ + 'name' => 'Faker Age (Deterministic)', + 'category' => AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION, + 'categories' => [AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION], + 'description' => 'Replaces age values with valid ages (18-99).', + 'what_it_does' => 'Maps original ages to valid age values within the 18-99 range.', + 'how_it_works' => 'Uses a seed-based hash to select deterministically from valid ages.', + 'sql_block' => << false, + 'requires_seed' => true, + 'supports_composite_seed' => false, + 'seed_notes' => 'Returns NUMBER. Valid range 18-99.', + ], + [ + 'name' => 'Numeric Perturbation (±10%)', + 'category' => AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION, + 'categories' => [AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION], + 'description' => 'Perturbs numeric values by ±10% using deterministic hashing.', + 'what_it_does' => 'Adjusts numeric values by a stable pseudo-random percentage.', + 'how_it_works' => 'Uses STANDARD_HASH to generate a consistent ±10% adjustment.', + 'sql_block' => << false, + 'requires_seed' => true, + 'supports_composite_seed' => false, + 'seed_notes' => 'For NUMBER columns. Preserves sign and approximate magnitude.', + ], + + // ================================================================ + // DATE/TIME METHODS + // ================================================================ + [ + 'name' => 'Date Shift (±30 days, Deterministic)', + 'category' => AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION, + 'categories' => [AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION], + 'description' => 'Shifts dates by ±30 days using deterministic hashing.', + 'what_it_does' => 'Adjusts dates by a stable pseudo-random offset within ±30 days.', + 'how_it_works' => 'Uses STANDARD_HASH to generate a consistent day offset.', + 'sql_block' => << false, + 'requires_seed' => true, + 'supports_composite_seed' => false, + 'seed_notes' => 'For DATE columns. Preserves relative ordering within ±30 day variance.', + ], + [ + 'name' => 'Timestamp Shift (±7 days, Deterministic)', + 'category' => AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION, + 'categories' => [AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION], + 'description' => 'Shifts timestamps by ±7 days using deterministic hashing.', + 'what_it_does' => 'Adjusts timestamps by a stable pseudo-random offset.', + 'how_it_works' => 'Uses STANDARD_HASH to generate a consistent time offset.', + 'sql_block' => << false, + 'requires_seed' => true, + 'supports_composite_seed' => false, + 'seed_notes' => 'For TIMESTAMP columns. ±7 day variance.', + ], + + // ================================================================ + // CLOB/LARGE TEXT METHODS + // ================================================================ + [ + 'name' => 'CLOB Comment Replacement', + 'category' => AnonymizationMethods::CATEGORY_CONDITIONAL_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_CONDITIONAL_MASKING], + 'description' => 'Replaces CLOB content with lorem ipsum placeholder text.', + 'what_it_does' => 'Replaces large text fields with generic placeholder content.', + 'how_it_works' => 'Uses a deterministic lookup to select lorem ipsum text.', + 'sql_block' => << false, + 'requires_seed' => true, + 'supports_composite_seed' => false, + 'seed_notes' => 'For CLOB columns. Truncates to 255 chars; extend as needed.', + ], + + // ================================================================ + // NULL-SAFE CONDITIONAL METHODS + // ================================================================ + [ + 'name' => 'Faker First Name (Nullable-Safe)', + 'category' => AnonymizationMethods::CATEGORY_CONDITIONAL_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_CONDITIONAL_MASKING, AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING], + 'description' => 'Replaces first names, preserving NULL values.', + 'what_it_does' => 'Maps non-null first names to synthetic values; NULLs remain NULL.', + 'how_it_works' => 'Uses NVL2 to conditionally apply masking only to non-null values.', + 'sql_block' => << false, + 'requires_seed' => true, + 'supports_composite_seed' => false, + 'seed_notes' => 'Preserves NULL values. No WHERE clause needed.', + ], + ]; + + foreach ($methods as $payload) { + $method = AnonymizationMethods::withTrashed()->updateOrCreate( + ['name' => $payload['name']], + $payload + ); + + if ($method->trashed()) { + $method->restore(); + } + } + + $this->command->info('Seeded ' . count($methods) . ' Faker-based anonymization methods.'); + } +} diff --git a/database/seeders/Anonymization/AnonymizationFakerPackageSeeder.php b/database/seeders/Anonymization/AnonymizationFakerPackageSeeder.php new file mode 100644 index 00000000..70067d46 --- /dev/null +++ b/database/seeders/Anonymization/AnonymizationFakerPackageSeeder.php @@ -0,0 +1,324 @@ + [ + 'name' => 'Faker First Names', + 'package_name' => 'PKG_ANON_FIRST_NAMES', + 'summary' => 'Synthetic first names for PII masking (10,000+ entries)', + ], + 'anon_last_names' => [ + 'name' => 'Faker Last Names', + 'package_name' => 'PKG_ANON_LAST_NAMES', + 'summary' => 'Synthetic last names for PII masking (10,000+ entries)', + ], + 'anon_full_names' => [ + 'name' => 'Faker Full Names', + 'package_name' => 'PKG_ANON_FULL_NAMES', + 'summary' => 'Synthetic full names for PII masking (10,000+ entries)', + ], + 'anon_emails' => [ + 'name' => 'Faker Email Addresses', + 'package_name' => 'PKG_ANON_EMAILS', + 'summary' => 'Synthetic email addresses using safe domains (10,000+ entries)', + ], + 'anon_phones' => [ + 'name' => 'Faker Phone Numbers', + 'package_name' => 'PKG_ANON_PHONES', + 'summary' => 'Synthetic phone numbers using reserved exchanges (10,000+ entries)', + ], + 'anon_addresses' => [ + 'name' => 'Faker Street Addresses', + 'package_name' => 'PKG_ANON_ADDRESSES', + 'summary' => 'Synthetic street addresses for PII masking (10,000+ entries)', + ], + 'anon_cities' => [ + 'name' => 'Faker Cities', + 'package_name' => 'PKG_ANON_CITIES', + 'summary' => 'Synthetic city names for address masking (5,000+ entries)', + ], + 'anon_states' => [ + 'name' => 'Faker States/Provinces', + 'package_name' => 'PKG_ANON_STATES', + 'summary' => 'US states and Canadian provinces for address masking', + ], + 'anon_postal_codes' => [ + 'name' => 'Faker Postal Codes', + 'package_name' => 'PKG_ANON_POSTAL_CODES', + 'summary' => 'Synthetic US ZIP and Canadian postal codes (10,000+ entries)', + ], + 'anon_companies' => [ + 'name' => 'Faker Company Names', + 'package_name' => 'PKG_ANON_COMPANIES', + 'summary' => 'Synthetic company/organization names (5,000+ entries)', + ], + 'anon_job_titles' => [ + 'name' => 'Faker Job Titles', + 'package_name' => 'PKG_ANON_JOB_TITLES', + 'summary' => 'Synthetic job titles for employment data masking (2,000+ entries)', + ], + 'anon_credit_cards' => [ + 'name' => 'Faker Credit Cards (Masked)', + 'package_name' => 'PKG_ANON_CREDIT_CARDS', + 'summary' => 'Non-functional masked credit card surrogates (10,000+ entries)', + ], + 'anon_sin' => [ + 'name' => 'Faker SIN Surrogates', + 'package_name' => 'PKG_ANON_SIN', + 'summary' => 'Invalid SIN-format surrogates for testing (10,000+ entries)', + ], + 'anon_ssn' => [ + 'name' => 'Faker SSN Surrogates', + 'package_name' => 'PKG_ANON_SSN', + 'summary' => 'Invalid SSN-format surrogates for testing (10,000+ entries)', + ], + 'anon_accounts' => [ + 'name' => 'Faker Account Numbers', + 'package_name' => 'PKG_ANON_ACCOUNTS', + 'summary' => 'Synthetic account/reference numbers (10,000+ entries)', + ], + 'anon_usernames' => [ + 'name' => 'Faker Usernames', + 'package_name' => 'PKG_ANON_USERNAMES', + 'summary' => 'Synthetic usernames for login data masking (10,000+ entries)', + ], + 'anon_ages' => [ + 'name' => 'Faker Ages', + 'package_name' => 'PKG_ANON_AGES', + 'summary' => 'Valid age values (18-99) for numeric masking', + ], + 'anon_statuses' => [ + 'name' => 'Siebel Status Values', + 'package_name' => 'PKG_ANON_STATUSES', + 'summary' => 'Standard Siebel-compatible status values', + ], + 'anon_priorities' => [ + 'name' => 'Siebel Priority Values', + 'package_name' => 'PKG_ANON_PRIORITIES', + 'summary' => 'Standard Siebel-compatible priority values', + ], + 'anon_types' => [ + 'name' => 'Siebel Type Values', + 'package_name' => 'PKG_ANON_TYPES', + 'summary' => 'Standard Siebel entity type values', + ], + 'anon_comments' => [ + 'name' => 'Faker Comment Text', + 'package_name' => 'PKG_ANON_COMMENTS', + 'summary' => 'Lorem ipsum placeholder text for notes/comments (5,000+ entries)', + ], + ]; + + public function run(): void + { + $packagesDir = base_path(self::PACKAGES_DIR); + + if (! File::isDirectory($packagesDir)) { + $this->command?->warn("Expected directory: {$packagesDir}"); + + return; + } + + $seededCount = 0; + $skippedCount = 0; + + foreach ($this->packageDefinitions as $handle => $definition) { + $specFile = "{$handle}_spec.sql"; + $bodyFile = "{$handle}_body.sql"; + + $specPath = $packagesDir . '/' . $specFile; + $bodyPath = $packagesDir . '/' . $bodyFile; + + if (! File::exists($specPath) || ! File::exists($bodyPath)) { + $this->command?->warn("Missing SQL files for {$handle}; skipping."); + $skippedCount++; + + continue; + } + + $this->seedFakerPackage( + handle: $handle, + name: $definition['name'], + packageName: $definition['package_name'], + summary: $definition['summary'], + specPath: $specPath, + bodyPath: $bodyPath, + ); + + $seededCount++; + } + + $this->command?->info("Seeded {$seededCount} Faker anonymization packages."); + + if ($skippedCount > 0) { + $this->command?->warn("Skipped {$skippedCount} packages (missing SQL files)."); + } + } + + /** + * Seed a single Faker package from its generated SQL files. + */ + protected function seedFakerPackage( + string $handle, + string $name, + string $packageName, + string $summary, + string $specPath, + string $bodyPath, + ): void { + $specSql = $this->normalizeFakerPackageSql($this->loadSql($specPath)); + $bodySql = $this->normalizeFakerPackageSql($this->loadSql($bodyPath)); + + if (empty($specSql) || empty($bodySql)) { + $this->command?->warn("Empty SQL content for {$handle}; skipping."); + + return; + } + + // Generate install SQL that creates both spec and body + $installSql = $this->generateInstallSql($handle, $packageName); + + $package = AnonymizationPackage::withTrashed()->updateOrCreate( + ['handle' => $handle], + [ + 'name' => $name, + 'package_name' => $packageName, + 'database_platform' => 'oracle', + 'summary' => $summary, + 'install_sql' => $installSql, + 'package_spec_sql' => $specSql, + 'package_body_sql' => $bodySql, + ] + ); + + if ($package->trashed()) { + $package->restore(); + } + } + + /** + * Normalize generated package SQL for broader Oracle compatibility. + * + * Current faker package generator emits DBMS_CRYPTO hashing in deterministic + * lookups, which requires EXECUTE on SYS.DBMS_CRYPTO in target schemas. + * Replace with STANDARD_HASH to avoid that privilege dependency. + */ + protected function normalizeFakerPackageSql(string $sql): string + { + if ($sql === '') { + return ''; + } + + // Prefer DBMS_UTILITY.GET_HASH_VALUE for widest PL/SQL compatibility. + // This avoids requiring DBMS_CRYPTO grants and avoids environments + // where STANDARD_HASH/ORA_HASH are unavailable in PL/SQL contexts. + $normalized = preg_replace( + "/v_hash\\s*:=\\s*DBMS_CRYPTO\\.HASH\\(\\s*UTL_RAW\\.CAST_TO_RAW\\(\\s*NVL\\(p_seed,\\s*'NULL'\\)\\s*\\)\\s*,\\s*DBMS_CRYPTO\\.HASH_SH256\\s*\\)\\s*;\\s*v_idx\\s*:=\\s*MOD\\(TO_NUMBER\\(SUBSTR\\(RAWTOHEX\\(v_hash\\),\\s*1,\\s*8\\),\\s*'XXXXXXXX'\\),\\s*C_COUNT\\)\\s*\\+\\s*1\\s*;/is", + "v_idx := MOD(ABS(DBMS_UTILITY.GET_HASH_VALUE(NVL(p_seed, 'NULL'), 0, 2147483647)), C_COUNT) + 1;", + $sql + ); + + $normalized = preg_replace( + "/v_hash\\s*:=\\s*STANDARD_HASH\\(\\s*NVL\\(p_seed,\\s*'NULL'\\)\\s*,\\s*'SHA256'\\s*\\)\\s*;\\s*v_idx\\s*:=\\s*MOD\\(TO_NUMBER\\(SUBSTR\\(RAWTOHEX\\(v_hash\\),\\s*1,\\s*8\\),\\s*'XXXXXXXX'\\),\\s*C_COUNT\\)\\s*\\+\\s*1\\s*;/is", + "v_idx := MOD(ABS(DBMS_UTILITY.GET_HASH_VALUE(NVL(p_seed, 'NULL'), 0, 2147483647)), C_COUNT) + 1;", + $normalized ?? $sql + ); + + $normalized = preg_replace( + "/v_idx\\s*:=\\s*MOD\\(ABS\\(ORA_HASH\\(NVL\\(p_seed,\\s*'NULL'\\),\\s*4294967295\\)\\),\\s*C_COUNT\\)\\s*\\+\\s*1\\s*;/is", + "v_idx := MOD(ABS(DBMS_UTILITY.GET_HASH_VALUE(NVL(p_seed, 'NULL'), 0, 2147483647)), C_COUNT) + 1;", + $normalized ?? $sql + ); + + return $normalized ?? $sql; + } + + /** + * Generate installation SQL with usage instructions. + */ + protected function generateInstallSql(string $handle, string $packageName): string + { + return <<packageDefinitions); + } + + /** + * Check if all expected package files exist. + */ + public function validatePackageFiles(): array + { + $packagesDir = base_path(self::PACKAGES_DIR); + $results = []; + + foreach ($this->packageDefinitions as $handle => $definition) { + $specPath = $packagesDir . '/' . $handle . '_spec.sql'; + $bodyPath = $packagesDir . '/' . $handle . '_body.sql'; + + $results[$handle] = [ + 'name' => $definition['name'], + 'spec_exists' => File::exists($specPath), + 'body_exists' => File::exists($bodyPath), + 'ready' => File::exists($specPath) && File::exists($bodyPath), + ]; + } + + return $results; + } +} diff --git a/database/seeders/Anonymization/AnonymizationFakerSeeder.php b/database/seeders/Anonymization/AnonymizationFakerSeeder.php new file mode 100644 index 00000000..5fd70b77 --- /dev/null +++ b/database/seeders/Anonymization/AnonymizationFakerSeeder.php @@ -0,0 +1,26 @@ +call([ + AnonymizationFakerPackageSeeder::class, + AnonymizationFakerLookupMethodSeeder::class, + ]); + } +} diff --git a/database/seeders/AnonymizationMethodSeeder.php b/database/seeders/Anonymization/AnonymizationMethodSeeder.php similarity index 83% rename from database/seeders/AnonymizationMethodSeeder.php rename to database/seeders/Anonymization/AnonymizationMethodSeeder.php index ab789408..904daf40 100644 --- a/database/seeders/AnonymizationMethodSeeder.php +++ b/database/seeders/Anonymization/AnonymizationMethodSeeder.php @@ -1,6 +1,6 @@ call([ AnonymizationSqlOnlyMethodSeeder::class, + AnonymizationFakerLookupMethodSeeder::class, + AnonymizationComprehensiveMethodSeeder::class, ]); $genericMethods = [ diff --git a/database/seeders/AnonymizationPackageSeeder.php b/database/seeders/Anonymization/AnonymizationPackageSeeder.php similarity index 89% rename from database/seeders/AnonymizationPackageSeeder.php rename to database/seeders/Anonymization/AnonymizationPackageSeeder.php index 0c86f29a..609c08ee 100644 --- a/database/seeders/AnonymizationPackageSeeder.php +++ b/database/seeders/Anonymization/AnonymizationPackageSeeder.php @@ -1,6 +1,6 @@ call(AnonymizationFakerPackageSeeder::class); } protected function seedPackageFromDir( diff --git a/database/seeders/Anonymization/AnonymizationRuleMethodSeeder.php b/database/seeders/Anonymization/AnonymizationRuleMethodSeeder.php new file mode 100644 index 00000000..7973dac8 --- /dev/null +++ b/database/seeders/Anonymization/AnonymizationRuleMethodSeeder.php @@ -0,0 +1,907 @@ +curatedMethods(); + $methodIdsByName = []; + + foreach ($methods as $payload) { + $method = AnonymizationMethods::withTrashed()->updateOrCreate( + ['name' => $payload['name']], + $payload + ); + + if ($method->trashed()) { + $method->restore(); + } + + $methodIdsByName[$method->name] = $method->id; + } + + $this->command?->info('Seeded ' . count($methods) . ' curated anonymization methods.'); + + // ── 2. Seed rules & wire default methods ──────────────────────── + $rules = $this->ruleDefinitions(); + $rulesCreated = 0; + $associations = 0; + + foreach ($rules as $ruleDef) { + $rule = AnonymizationRule::withTrashed()->updateOrCreate( + ['name' => $ruleDef['name']], + ['description' => $ruleDef['description'] ?? null] + ); + + if ($rule->trashed()) { + $rule->restore(); + } + + $rulesCreated++; + + $methodName = $ruleDef['default_method'] ?? null; + + if ($methodName === null) { + continue; + } + + $methodId = $methodIdsByName[$methodName] ?? null; + + if ($methodId === null) { + $this->command?->warn("Rule '{$ruleDef['name']}': method '{$methodName}' not found; skipping association."); + + continue; + } + + // Upsert into the rule-methods pivot (one default per rule) + $existingPivot = DB::table('anonymization_rule_methods') + ->where('rule_id', $rule->id) + ->where('method_id', $methodId) + ->first(); + + if ($existingPivot) { + DB::table('anonymization_rule_methods') + ->where('rule_id', $rule->id) + ->where('method_id', $methodId) + ->update([ + 'is_default' => true, + 'strategy' => null, + 'updated_at' => now(), + ]); + } else { + DB::table('anonymization_rule_methods')->insert([ + 'rule_id' => $rule->id, + 'method_id' => $methodId, + 'is_default' => true, + 'strategy' => null, + 'created_at' => now(), + 'updated_at' => now(), + ]); + } + + $associations++; + } + + $this->command?->info("Seeded {$rulesCreated} anonymization rules ({$associations} with method associations)."); + } + + // ===================================================================== + // CURATED METHOD DEFINITIONS + // ===================================================================== + + protected function curatedMethods(): array + { + return array_merge( + $this->fakerLookupMethods(), + $this->dateTimeMethods(), + $this->numericMethods(), + $this->identifierMethods(), + $this->shuffleAndRedactMethods(), + $this->siebelKeyMethods(), + ); + } + + // ─── Faker lookup (deterministic) ─────────────────────────────── + + protected function fakerLookupMethods(): array + { + return [ + [ + 'name' => 'Faker First Name (Deterministic Lookup)', + 'category' => AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING], + 'description' => 'Replaces first names with synthetic values from a pre-generated lookup table.', + 'what_it_does' => 'Maps original first names to realistic synthetic first names deterministically.', + 'how_it_works' => 'Uses a seed-based hash to select from 10,000+ Faker-generated first names.', + 'sql_block' => <<<'SQL' +-- Deterministic first name lookup from Faker package +UPDATE {{TABLE}} tgt + SET {{COLUMN}} = ANON_DATA.PKG_ANON_FIRST_NAMES.GET_FIRST_NAMES( + {{JOB_SEED_LITERAL}} || '|FN|' || TO_CHAR({{SEED_EXPR}}) || '|' || tgt.{{COLUMN}}, + {{COLUMN_MAX_LEN_EXPR}} + ) + WHERE {{COLUMN}} IS NOT NULL; +SQL, + 'emits_seed' => false, + 'requires_seed' => true, + 'supports_composite_seed' => false, + 'seed_notes' => 'Requires seed expression. Produces consistent results for same seed.', + ], + [ + 'name' => 'Faker Last Name (Deterministic Lookup)', + 'category' => AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING], + 'description' => 'Replaces last names with synthetic values from a pre-generated lookup table.', + 'what_it_does' => 'Maps original last names to realistic synthetic last names deterministically.', + 'how_it_works' => 'Uses a seed-based hash to select from 10,000+ Faker-generated last names.', + 'sql_block' => <<<'SQL' +-- Deterministic last name lookup from Faker package +UPDATE {{TABLE}} tgt + SET {{COLUMN}} = ANON_DATA.PKG_ANON_LAST_NAMES.GET_LAST_NAMES( + {{JOB_SEED_LITERAL}} || '|LN|' || TO_CHAR({{SEED_EXPR}}) || '|' || tgt.{{COLUMN}}, + {{COLUMN_MAX_LEN_EXPR}} + ) + WHERE {{COLUMN}} IS NOT NULL; +SQL, + 'emits_seed' => false, + 'requires_seed' => true, + 'supports_composite_seed' => false, + 'seed_notes' => 'Requires seed expression. Produces consistent results for same seed.', + ], + [ + 'name' => 'Faker Full Name (Deterministic Lookup)', + 'category' => AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING], + 'description' => 'Replaces full names with synthetic values from a pre-generated lookup table.', + 'what_it_does' => 'Maps original full names to realistic synthetic full names deterministically.', + 'how_it_works' => 'Uses a seed-based hash to select from 10,000+ Faker-generated full names.', + 'sql_block' => <<<'SQL' +-- Deterministic full name lookup from Faker package +UPDATE {{TABLE}} tgt + SET {{COLUMN}} = ANON_DATA.PKG_ANON_FULL_NAMES.GET_FULL_NAMES( + {{JOB_SEED_LITERAL}} || '|NAME|' || TO_CHAR({{SEED_EXPR}}) || '|' || tgt.{{COLUMN}}, + {{COLUMN_MAX_LEN_EXPR}} + ) + WHERE {{COLUMN}} IS NOT NULL; +SQL, + 'emits_seed' => false, + 'requires_seed' => true, + 'supports_composite_seed' => false, + 'seed_notes' => 'Requires seed expression. Produces consistent results for same seed.', + ], + [ + 'name' => 'Faker Email (Deterministic Lookup)', + 'category' => AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING], + 'description' => 'Replaces email addresses with synthetic values using safe domains.', + 'what_it_does' => 'Maps original emails to realistic synthetic emails deterministically.', + 'how_it_works' => 'Uses a seed-based hash to select from 10,000+ Faker-generated safe emails.', + 'sql_block' => <<<'SQL' +-- Deterministic email lookup from Faker package +UPDATE {{TABLE}} tgt + SET {{COLUMN}} = ANON_DATA.PKG_ANON_EMAILS.GET_EMAILS( + {{JOB_SEED_LITERAL}} || '|EMAIL|' || TO_CHAR({{SEED_EXPR}}) || '|' || tgt.{{COLUMN}}, + {{COLUMN_MAX_LEN_EXPR}} + ) + WHERE {{COLUMN}} IS NOT NULL; +SQL, + 'emits_seed' => false, + 'requires_seed' => true, + 'supports_composite_seed' => false, + 'seed_notes' => 'All generated emails use @example.com/org/net domains.', + ], + [ + 'name' => 'Faker Phone Number (Deterministic Lookup)', + 'category' => AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING], + 'description' => 'Replaces phone numbers with synthetic values using reserved exchanges.', + 'what_it_does' => 'Maps original phones to realistic synthetic phone numbers deterministically.', + 'how_it_works' => 'Uses a seed-based hash to select from 10,000+ synthetic phone numbers.', + 'sql_block' => <<<'SQL' +-- Deterministic phone lookup from Faker package +UPDATE {{TABLE}} tgt + SET {{COLUMN}} = ANON_DATA.PKG_ANON_PHONES.GET_PHONES( + {{JOB_SEED_LITERAL}} || '|PHONE|' || TO_CHAR({{SEED_EXPR}}) || '|' || tgt.{{COLUMN}}, + {{COLUMN_MAX_LEN_EXPR}} + ) + WHERE {{COLUMN}} IS NOT NULL; +SQL, + 'emits_seed' => false, + 'requires_seed' => true, + 'supports_composite_seed' => false, + 'seed_notes' => 'Uses 555 and toll-free exchanges. Various formats supported.', + ], + [ + 'name' => 'Faker Street Address (Deterministic Lookup)', + 'category' => AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING], + 'description' => 'Replaces street addresses with synthetic values.', + 'what_it_does' => 'Maps original addresses to realistic synthetic addresses deterministically.', + 'how_it_works' => 'Uses a seed-based hash to select from 10,000+ Faker-generated addresses.', + 'sql_block' => <<<'SQL' +-- Deterministic address lookup from Faker package +UPDATE {{TABLE}} tgt + SET {{COLUMN}} = ANON_DATA.PKG_ANON_ADDRESSES.GET_ADDRESSES( + {{JOB_SEED_LITERAL}} || '|ADDR|' || TO_CHAR({{SEED_EXPR}}) || '|' || tgt.{{COLUMN}}, + {{COLUMN_MAX_LEN_EXPR}} + ) + WHERE {{COLUMN}} IS NOT NULL; +SQL, + 'emits_seed' => false, + 'requires_seed' => true, + 'supports_composite_seed' => false, + 'seed_notes' => 'Requires seed expression. Max length 200 chars.', + ], + [ + 'name' => 'Faker City (Deterministic Lookup)', + 'category' => AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING], + 'description' => 'Replaces city names with synthetic values.', + 'what_it_does' => 'Maps original cities to realistic synthetic city names deterministically.', + 'how_it_works' => 'Uses a seed-based hash to select from 5,000+ Faker-generated city names.', + 'sql_block' => <<<'SQL' +-- Deterministic city lookup from Faker package +UPDATE {{TABLE}} tgt + SET {{COLUMN}} = ANON_DATA.PKG_ANON_CITIES.GET_CITIES( + {{JOB_SEED_LITERAL}} || '|CITY|' || TO_CHAR({{SEED_EXPR}}) || '|' || tgt.{{COLUMN}}, + {{COLUMN_MAX_LEN_EXPR}} + ) + WHERE {{COLUMN}} IS NOT NULL; +SQL, + 'emits_seed' => false, + 'requires_seed' => true, + 'supports_composite_seed' => false, + 'seed_notes' => 'Max length 50 chars.', + ], + [ + 'name' => 'Faker Postal Code (Deterministic Lookup)', + 'category' => AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING], + 'description' => 'Replaces postal/ZIP codes with synthetic values.', + 'what_it_does' => 'Maps original postal codes to synthetic US ZIP or Canadian postal codes.', + 'how_it_works' => 'Uses a seed-based hash to select from 10,000+ synthetic postal codes.', + 'sql_block' => <<<'SQL' +-- Deterministic postal code lookup from Faker package +UPDATE {{TABLE}} tgt + SET {{COLUMN}} = ANON_DATA.PKG_ANON_POSTAL_CODES.GET_POSTAL_CODES( + {{JOB_SEED_LITERAL}} || '|ZIP|' || TO_CHAR({{SEED_EXPR}}) || '|' || tgt.{{COLUMN}}, + {{COLUMN_MAX_LEN_EXPR}} + ) + WHERE {{COLUMN}} IS NOT NULL; +SQL, + 'emits_seed' => false, + 'requires_seed' => true, + 'supports_composite_seed' => false, + 'seed_notes' => 'Mix of US ZIP (5-digit) and Canadian postal codes.', + ], + [ + 'name' => 'Faker Company Name (Deterministic Lookup)', + 'category' => AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING], + 'description' => 'Replaces company/organization names with synthetic values.', + 'what_it_does' => 'Maps original company names to realistic synthetic company names.', + 'how_it_works' => 'Uses a seed-based hash to select from 5,000+ Faker-generated company names.', + 'sql_block' => <<<'SQL' +-- Deterministic company name lookup from Faker package +UPDATE {{TABLE}} tgt + SET {{COLUMN}} = ANON_DATA.PKG_ANON_COMPANIES.GET_COMPANIES( + {{JOB_SEED_LITERAL}} || '|ORG|' || TO_CHAR({{SEED_EXPR}}) || '|' || tgt.{{COLUMN}}, + {{COLUMN_MAX_LEN_EXPR}} + ) + WHERE {{COLUMN}} IS NOT NULL; +SQL, + 'emits_seed' => false, + 'requires_seed' => true, + 'supports_composite_seed' => false, + 'seed_notes' => 'Max length 100 chars.', + ], + [ + 'name' => 'Faker sin Surrogate (Deterministic Lookup)', + 'category' => AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING], + 'description' => 'Replaces SIN values with non-valid format-preserving surrogates.', + 'what_it_does' => 'Maps original SIN values to synthetic SIN-format strings that are not valid.', + 'how_it_works' => 'Uses a seed-based hash to select from 10,000+ invalid-but-formatted SIN surrogates.', + 'sql_block' => <<<'SQL' +-- Deterministic SIN surrogate lookup from Faker package +UPDATE {{TABLE}} tgt + SET {{COLUMN}} = ANON_DATA.PKG_ANON_SIN.GET_SIN( + {{JOB_SEED_LITERAL}} || '|SIN|' || TO_CHAR({{SEED_EXPR}}) || '|' || tgt.{{COLUMN}}, + {{COLUMN_MAX_LEN_EXPR}} + ) + WHERE {{COLUMN}} IS NOT NULL; +SQL, + 'emits_seed' => false, + 'requires_seed' => true, + 'supports_composite_seed' => false, + 'seed_notes' => 'Uses invalid SIN area codes (900-999). Not valid for verification.', + ], + [ + 'name' => 'Faker Account Number (Deterministic Lookup)', + 'category' => AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING], + 'description' => 'Replaces account/reference numbers with synthetic values.', + 'what_it_does' => 'Maps original account numbers to synthetic account number patterns.', + 'how_it_works' => 'Uses a seed-based hash to select from 10,000+ synthetic account numbers.', + 'sql_block' => <<<'SQL' +-- Deterministic account number lookup from Faker package +UPDATE {{TABLE}} tgt + SET {{COLUMN}} = ANON_DATA.PKG_ANON_ACCOUNTS.GET_ACCOUNTS( + {{JOB_SEED_LITERAL}} || '|ACCT|' || TO_CHAR({{SEED_EXPR}}) || '|' || tgt.{{COLUMN}}, + {{COLUMN_MAX_LEN_EXPR}} + ) + WHERE {{COLUMN}} IS NOT NULL; +SQL, + 'emits_seed' => false, + 'requires_seed' => true, + 'supports_composite_seed' => false, + 'seed_notes' => 'Format: PREFIX-NNNNNNNN', + ], + [ + 'name' => 'Faker Username (Deterministic Lookup)', + 'category' => AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING], + 'description' => 'Replaces usernames/login IDs with synthetic values.', + 'what_it_does' => 'Maps original usernames to realistic synthetic usernames.', + 'how_it_works' => 'Uses a seed-based hash to select from 10,000+ Faker-generated usernames.', + 'sql_block' => <<<'SQL' +-- Deterministic username lookup from Faker package +UPDATE {{TABLE}} tgt + SET {{COLUMN}} = ANON_DATA.PKG_ANON_USERNAMES.GET_USERNAMES( + {{JOB_SEED_LITERAL}} || '|USER|' || TO_CHAR({{SEED_EXPR}}) || '|' || tgt.{{COLUMN}}, + {{COLUMN_MAX_LEN_EXPR}} + ) + WHERE {{COLUMN}} IS NOT NULL; +SQL, + 'emits_seed' => false, + 'requires_seed' => true, + 'supports_composite_seed' => false, + 'seed_notes' => 'Max length 50 chars.', + ], + [ + 'name' => 'Faker Comment/Notes (Deterministic Lookup)', + 'category' => AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING], + 'description' => 'Replaces free-text comments with lorem ipsum placeholder text.', + 'what_it_does' => 'Maps original comments to generic lorem ipsum text.', + 'how_it_works' => 'Uses a seed-based hash to select from 5,000+ lorem ipsum sentences.', + 'sql_block' => <<<'SQL' +-- Deterministic comment lookup from Faker package +UPDATE {{TABLE}} tgt + SET {{COLUMN}} = ANON_DATA.PKG_ANON_COMMENTS.GET_COMMENTS( + {{JOB_SEED_LITERAL}} || '|NOTES|' || TO_CHAR({{SEED_EXPR}}) || '|' || tgt.{{COLUMN}}, + {{COLUMN_MAX_LEN_EXPR}} + ) + WHERE {{COLUMN}} IS NOT NULL; +SQL, + 'emits_seed' => false, + 'requires_seed' => true, + 'supports_composite_seed' => false, + 'seed_notes' => 'For CLOB columns, use with explicit max_len or separate CLOB method.', + ], + ]; + } + + // ─── Date / time methods ──────────────────────────────────────── + + protected function dateTimeMethods(): array + { + return [ + [ + 'name' => 'Date Shift (±30 days, Deterministic)', + 'category' => AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION, + 'categories' => [AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION], + 'description' => 'Shifts dates by ±30 days using deterministic hashing.', + 'what_it_does' => 'Adjusts dates by a stable pseudo-random offset within ±30 days.', + 'how_it_works' => 'Uses STANDARD_HASH to generate a consistent day offset.', + 'sql_block' => <<<'SQL' +-- Date shift ±30 days (deterministic) +UPDATE {{TABLE}} tgt + SET {{COLUMN}} = tgt.{{COLUMN}} + ( + MOD( + TO_NUMBER( + SUBSTR( + LOWER(RAWTOHEX(STANDARD_HASH( + {{JOB_SEED_LITERAL}} || '|DATE30|' || TO_CHAR({{SEED_EXPR}}) || '|' || TO_CHAR(tgt.{{COLUMN}}, 'YYYYMMDD'), + 'SHA256' + ))), + 1, 8 + ), + 'xxxxxxxx' + ), + 61 + ) - 30 + ) + WHERE {{COLUMN}} IS NOT NULL; +SQL, + 'emits_seed' => false, + 'requires_seed' => true, + 'supports_composite_seed' => false, + 'seed_notes' => 'For DATE columns. Preserves relative ordering within ±30 day variance.', + ], + [ + 'name' => 'Date Shift (±90 Days, Deterministic)', + 'category' => AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING, AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION], + 'description' => 'Deterministically shifts dates by up to ±90 days.', + 'what_it_does' => 'Reproducible date perturbation for consistency across runs.', + 'how_it_works' => 'Uses hash to generate consistent offset per record.', + 'sql_block' => <<<'SQL' +-- Deterministic date shift ±90 days +UPDATE {{TABLE}} tgt + SET {{COLUMN}} = {{COLUMN}} + ( + MOD(ORA_HASH({{JOB_SEED_LITERAL}} || TO_CHAR({{SEED_EXPR}}) || TO_CHAR({{COLUMN}}, 'YYYYMMDDHH24MISS')), 181) - 90 + ) + WHERE {{COLUMN}} IS NOT NULL; +SQL, + 'emits_seed' => false, + 'requires_seed' => true, + 'supports_composite_seed' => false, + 'seed_notes' => 'Requires seed. Same seed+value = same offset. Use for birth/death dates.', + ], + [ + 'name' => 'Timestamp Shift (±7 days, Deterministic)', + 'category' => AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION, + 'categories' => [AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION], + 'description' => 'Shifts timestamps by ±7 days using deterministic hashing.', + 'what_it_does' => 'Adjusts timestamps by a stable pseudo-random offset.', + 'how_it_works' => 'Uses STANDARD_HASH to generate a consistent time offset.', + 'sql_block' => <<<'SQL' +-- Timestamp shift ±7 days (deterministic) +UPDATE {{TABLE}} tgt + SET {{COLUMN}} = tgt.{{COLUMN}} + ( + MOD( + TO_NUMBER( + SUBSTR( + LOWER(RAWTOHEX(STANDARD_HASH( + {{JOB_SEED_LITERAL}} || '|TS7|' || TO_CHAR({{SEED_EXPR}}) || '|' || TO_CHAR(tgt.{{COLUMN}}, 'YYYYMMDDHH24MISS'), + 'SHA256' + ))), + 1, 8 + ), + 'xxxxxxxx' + ), + 15 + ) - 7 + ) + WHERE {{COLUMN}} IS NOT NULL; +SQL, + 'emits_seed' => false, + 'requires_seed' => true, + 'supports_composite_seed' => false, + 'seed_notes' => 'For TIMESTAMP columns. ±7 day variance.', + ], + ]; + } + + // ─── Numeric methods ──────────────────────────────────────────── + + protected function numericMethods(): array + { + return [ + [ + 'name' => 'Numeric Perturbation (±10%)', + 'category' => AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION, + 'categories' => [AnonymizationMethods::CATEGORY_BLURRING_PERTURBATION], + 'description' => 'Perturbs numeric values by ±10% using deterministic hashing.', + 'what_it_does' => 'Adjusts numeric values by a stable pseudo-random percentage.', + 'how_it_works' => 'Uses STANDARD_HASH to generate a consistent ±10% adjustment.', + 'sql_block' => <<<'SQL' +-- Numeric perturbation ±10% (deterministic) +UPDATE {{TABLE}} tgt + SET {{COLUMN}} = tgt.{{COLUMN}} * ( + 0.9 + ( + MOD( + TO_NUMBER( + SUBSTR( + LOWER(RAWTOHEX(STANDARD_HASH( + {{JOB_SEED_LITERAL}} || '|NUM|' || TO_CHAR({{SEED_EXPR}}) || '|' || TO_CHAR(tgt.{{COLUMN}}), + 'SHA256' + ))), + 1, 8 + ), + 'xxxxxxxx' + ), + 201 + ) / 1000.0 + ) + ) + WHERE {{COLUMN}} IS NOT NULL; +SQL, + 'emits_seed' => false, + 'requires_seed' => true, + 'supports_composite_seed' => false, + 'seed_notes' => 'For NUMBER columns. Preserves sign and approximate magnitude.', + ], + ]; + } + + // ─── Identifier / format-preserving methods ───────────────────── + + protected function identifierMethods(): array + { + return [ + [ + 'name' => 'Format Preserving Alphanumeric (Character Class)', + 'category' => AnonymizationMethods::CATEGORY_FORMAT_PRESERVING_RANDOMIZATION, + 'categories' => [AnonymizationMethods::CATEGORY_FORMAT_PRESERVING_RANDOMIZATION], + 'description' => 'Replaces characters while preserving alpha/numeric/special class positions.', + 'what_it_does' => 'Maintains format structure: A→A, 9→9, special→special.', + 'how_it_works' => 'Translates each character class to deterministic replacement within same class.', + 'sql_block' => <<<'SQL' +-- Format-preserving alphanumeric (maintains character classes) +UPDATE {{TABLE}} tgt + SET {{COLUMN}} = TRANSLATE( + {{COLUMN}}, + 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789', + SUBSTR( + 'XQWERTASDFGZXCVBNHJKLYUIOPMXQWERTASDFGZXCVBNHJKLYUIOPM9876543210', + MOD(ORA_HASH({{JOB_SEED_LITERAL}} || tgt.{{COLUMN}}), 10) + 1, + 62 + ) || '9876543210' + ) + WHERE {{COLUMN}} IS NOT NULL; +SQL, + 'emits_seed' => false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Preserves string length and character type positions (letter→letter, digit→digit).', + ], + [ + 'name' => 'Deterministic Text Hash', + 'category' => AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING], + 'description' => 'Replaces text with deterministic hash-based token.', + 'what_it_does' => 'Generates unique, reproducible token from text content.', + 'how_it_works' => 'Uses SHA-256 hash truncated to readable length.', + 'sql_block' => <<<'SQL' +-- Deterministic text hash +UPDATE {{TABLE}} tgt + SET {{COLUMN}} = 'TXT_' || + SUBSTR(LOWER(RAWTOHEX(STANDARD_HASH({{JOB_SEED_LITERAL}} || {{COLUMN}}, 'SHA256'))), 1, 16) + WHERE {{COLUMN}} IS NOT NULL; +SQL, + 'emits_seed' => false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Format: TXT_[16 hex chars]. Same input = same output.', + ], + [ + 'name' => 'UUID/GUID Replacement', + 'category' => AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING], + 'description' => 'Replaces UUIDs with deterministic version-4 format values.', + 'what_it_does' => 'Generates synthetic UUIDs that preserve version-4 format.', + 'how_it_works' => 'Uses hash to generate hex values with proper version/variant bits.', + 'sql_block' => <<<'SQL' +-- UUID/GUID deterministic replacement (version-4 format) +UPDATE {{TABLE}} tgt + SET {{COLUMN}} = LOWER( + SUBSTR(RAWTOHEX(STANDARD_HASH({{JOB_SEED_LITERAL}} || {{COLUMN}}, 'SHA256')), 1, 8) || '-' || + SUBSTR(RAWTOHEX(STANDARD_HASH({{JOB_SEED_LITERAL}} || {{COLUMN}}, 'SHA256')), 9, 4) || '-4' || + SUBSTR(RAWTOHEX(STANDARD_HASH({{JOB_SEED_LITERAL}} || {{COLUMN}}, 'SHA256')), 14, 3) || '-' || + CASE MOD(TO_NUMBER(SUBSTR(RAWTOHEX(STANDARD_HASH({{JOB_SEED_LITERAL}} || {{COLUMN}}, 'SHA256')), 17, 1), 'X'), 4) + WHEN 0 THEN '8' WHEN 1 THEN '9' WHEN 2 THEN 'a' ELSE 'b' + END || + SUBSTR(RAWTOHEX(STANDARD_HASH({{JOB_SEED_LITERAL}} || {{COLUMN}}, 'SHA256')), 18, 3) || '-' || + SUBSTR(RAWTOHEX(STANDARD_HASH({{JOB_SEED_LITERAL}} || {{COLUMN}}, 'SHA256')), 21, 12) + ) + WHERE {{COLUMN}} IS NOT NULL + AND REGEXP_LIKE({{COLUMN}}, '^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$'); +SQL, + 'emits_seed' => false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Produces valid UUID v4 format (4xxx-[89ab]xxx). Deterministic.', + ], + [ + 'name' => 'URL Path Anonymization', + 'category' => AnonymizationMethods::CATEGORY_CONDITIONAL_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_CONDITIONAL_MASKING], + 'description' => 'Masks URL path segments while preserving domain.', + 'what_it_does' => 'Replaces URL path with /masked-path to hide page access patterns.', + 'how_it_works' => 'Regex extracts and preserves protocol+domain, replaces path.', + 'sql_block' => <<<'SQL' +-- URL path anonymization (preserve domain) +UPDATE {{TABLE}} tgt + SET {{COLUMN}} = REGEXP_REPLACE({{COLUMN}}, '(https?://[^/]+)/.*', '\1/masked-path') + WHERE {{COLUMN}} IS NOT NULL + AND REGEXP_LIKE({{COLUMN}}, '^https?://'); +SQL, + 'emits_seed' => false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Keeps protocol and domain. Example: https://example.com/masked-path', + ], + ]; + } + + // ─── Shuffle, redact, nullify ─────────────────────────────────── + + protected function shuffleAndRedactMethods(): array + { + return [ + [ + 'name' => 'Intra-Column Value Shuffle', + 'category' => AnonymizationMethods::CATEGORY_SHUFFLE_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_SHUFFLE_MASKING], + 'description' => 'Shuffles values within the same column across rows.', + 'what_it_does' => 'Randomly redistributes existing values, preserving overall distribution.', + 'how_it_works' => 'Uses ROWNUM-based random assignment via self-join.', + 'sql_block' => <<<'SQL' +-- Intra-column shuffle (redistributes values randomly) +MERGE INTO {{TABLE}} tgt +USING ( + SELECT + ROWID AS rid, + {{COLUMN}} AS old_val, + FIRST_VALUE({{COLUMN}}) OVER (ORDER BY DBMS_RANDOM.VALUE) AS new_val + FROM {{TABLE}} + WHERE {{COLUMN}} IS NOT NULL +) src +ON (tgt.ROWID = src.rid) +WHEN MATCHED THEN UPDATE SET tgt.{{COLUMN}} = src.new_val; +SQL, + 'emits_seed' => false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Non-deterministic. Preserves data distribution. Use DBMS_RANDOM.SEED for reproducibility.', + ], + [ + 'name' => 'Redact (Fixed Token)', + 'category' => AnonymizationMethods::CATEGORY_CONDITIONAL_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_CONDITIONAL_MASKING], + 'description' => 'Replaces a value with a fixed redaction token.', + 'what_it_does' => 'Overwrites sensitive values with a constant (e.g., REDACTED) to eliminate leakage risk.', + 'how_it_works' => 'Simple UPDATE that replaces non-null values with a fixed token.', + 'sql_block' => <<<'SQL' +-- Hard redaction (non-reversible) +UPDATE {{TABLE}} tgt + SET {{COLUMN}} = 'REDACTED' + WHERE {{COLUMN}} IS NOT NULL; +SQL, + 'emits_seed' => false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Use for notes/comments/free-text where format realism is not required.', + ], + [ + 'name' => 'Nullify (Set NULL)', + 'category' => AnonymizationMethods::CATEGORY_CONDITIONAL_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_CONDITIONAL_MASKING], + 'description' => 'Clears a column to NULL (hard suppression).', + 'what_it_does' => 'Eliminates sensitive data completely in columns where NULL is allowed.', + 'how_it_works' => 'Simple UPDATE that sets the column to NULL.', + 'sql_block' => <<<'SQL' +-- Hard suppression (set NULL) +UPDATE {{TABLE}} tgt + SET {{COLUMN}} = NULL + WHERE {{COLUMN}} IS NOT NULL; +SQL, + 'emits_seed' => false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Use only when NULL is allowed and accepted by the application.', + ], + [ + 'name' => 'Exclude Column (Do Not Copy)', + 'category' => AnonymizationMethods::CATEGORY_CONDITIONAL_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_CONDITIONAL_MASKING], + 'description' => 'Marks a column for exclusion from the anonymized dataset. The column should not be copied at all.', + 'what_it_does' => 'Signals that this column (or its entire table) carries no useful data and should be omitted from any export or copy operation.', + 'how_it_works' => 'No SQL is emitted. The job generator should skip columns tagged with this method when building anonymization scripts.', + 'sql_block' => <<<'SQL' +-- Exclude: column flagged for omission (do not copy) +-- No UPDATE required; this column should be excluded from the export. +SQL, + 'emits_seed' => false, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Use when the column or table contains no records or is otherwise irrelevant to the anonymized copy.', + ], + ]; + } + + // ─── Siebel structural key methods ────────────────────────────── + + protected function siebelKeyMethods(): array + { + return [ + [ + 'name' => 'SQL Deterministic Siebel ROW_ID (SHA-256)', + 'category' => AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING], + 'description' => 'Deterministically remaps Siebel ROW_ID values using Oracle SQL only.', + 'what_it_does' => 'Replaces ROW_ID with a stable, job-seeded surrogate so related foreign keys can be remapped consistently.', + 'how_it_works' => 'Uses STANDARD_HASH(job_seed + ROW_ID) and truncates to the column length.', + 'sql_block' => <<<'SQL' +-- SQL-only deterministic ROW_ID remap (no package dependency) +UPDATE {{TABLE}} tgt + SET {{COLUMN}} = SUBSTR( + LOWER(RAWTOHEX(STANDARD_HASH( + {{JOB_SEED_LITERAL}} || '|ROW_ID|' || tgt.{{COLUMN}}, + 'SHA256' + ))), + 1, + {{COLUMN_MAX_LEN_EXPR}} + ) + WHERE {{COLUMN}} IS NOT NULL; +SQL, + 'emits_seed' => true, + 'requires_seed' => false, + 'supports_composite_seed' => false, + 'seed_notes' => 'Emits a deterministic ROW_ID seed so related FKs can map via seed maps.', + ], + [ + 'name' => 'SQL Seed Map Lookup (FK)', + 'category' => AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING, + 'categories' => [AnonymizationMethods::CATEGORY_DETERMINISTIC_MASKING], + 'description' => 'Remaps foreign-key columns by looking up the provider\'s old-to-new mapping in a generated seed map table.', + 'what_it_does' => 'Keeps cross-table relationships intact when the referenced key column is remapped.', + 'how_it_works' => 'Uses {{SEED_MAP_LOOKUP}} (a subquery against the seed map table) and falls back to the original value.', + 'sql_block' => <<<'SQL' +-- SQL-only FK remap via seed-map lookup +UPDATE {{TABLE}} tgt + SET {{COLUMN}} = SUBSTR( + NVL({{SEED_MAP_LOOKUP}}, tgt.{{COLUMN}}), + 1, + {{COLUMN_MAX_LEN_EXPR}} + ) + WHERE {{COLUMN}} IS NOT NULL; +SQL, + 'emits_seed' => false, + 'requires_seed' => true, + 'supports_composite_seed' => false, + 'seed_notes' => 'Requires a parent seed provider so a seed map table can be generated and referenced via {{SEED_MAP_LOOKUP}}.', + ], + ]; + } + + // ===================================================================== + // RULE DEFINITIONS + // ===================================================================== + + /** + * Returns the full rule catalog. + * + * Each entry has: + * - name: Rule name (matches ANON_RULE import column). + * - description: Human-readable description. + * - default_method: Name of the default method to associate (null = no method). + */ + protected function ruleDefinitions(): array + { + return [ + // ── Account / reference numbers ───────────────────────────── + ['name' => 'account_number', 'description' => 'Account or reference number.', 'default_method' => 'Faker Account Number (Deterministic Lookup)'], + ['name' => 'agreement_number', 'description' => 'Agreement or contract number.', 'default_method' => 'Format Preserving Alphanumeric (Character Class)'], + ['name' => 'benefit_plan_number', 'description' => 'Benefit plan number.', 'default_method' => 'Format Preserving Alphanumeric (Character Class)'], + ['name' => 'bus_pass_sr_number', 'description' => 'Bus pass or service request number.', 'default_method' => 'Format Preserving Alphanumeric (Character Class)'], + ['name' => 'case_number', 'description' => 'ICM case number. Anonymization code will probably use common code with other ICM numbers.', 'default_method' => 'Format Preserving Alphanumeric (Character Class)'], + ['name' => 'client_id_num', 'description' => 'Client identification number.', 'default_method' => 'Format Preserving Alphanumeric (Character Class)'], + ['name' => 'conflict_id', 'description' => 'Conflict identification number.', 'default_method' => 'Format Preserving Alphanumeric (Character Class)'], + ['name' => 'contact_number', 'description' => 'ICM contact number. Anonymization code will probably use common code with other ICM numbers.', 'default_method' => 'Format Preserving Alphanumeric (Character Class)'], + ['name' => 'cpc_file_num', 'description' => 'CPC file number.', 'default_method' => 'Format Preserving Alphanumeric (Character Class)'], + ['name' => 'employee_number', 'description' => 'CHIPS employee number.', 'default_method' => 'Format Preserving Alphanumeric (Character Class)'], + ['name' => 'gentax_num', 'description' => 'GenTax number.', 'default_method' => 'Format Preserving Alphanumeric (Character Class)'], + ['name' => 'ita_reg_num', 'description' => 'ITA registration number.', 'default_method' => 'Format Preserving Alphanumeric (Character Class)'], + ['name' => 'legacy_file_number', 'description' => 'MIS case ID (legacy file number).', 'default_method' => 'Format Preserving Alphanumeric (Character Class)'], + ['name' => 'modification_num', 'description' => 'Modification Number.', 'default_method' => 'Format Preserving Alphanumeric (Character Class)'], + ['name' => 'racf_id', 'description' => 'RACF (mainframe) user ID.', 'default_method' => 'Format Preserving Alphanumeric (Character Class)'], + ['name' => 'reg_num', 'description' => 'Registration number.', 'default_method' => 'Format Preserving Alphanumeric (Character Class)'], + ['name' => 'reg_stat_num', 'description' => 'Registration status number.', 'default_method' => 'Format Preserving Alphanumeric (Character Class)'], + ['name' => 'saje_id', 'description' => 'SAJE identifier.', 'default_method' => 'Format Preserving Alphanumeric (Character Class)'], + + // ── Government identifiers ────────────────────────────────── + ['name' => 'govt_bceid', 'description' => 'BC government BCeID.', 'default_method' => 'Format Preserving Alphanumeric (Character Class)'], + ['name' => 'govt_bcuid', 'description' => 'BC government BCUID.', 'default_method' => 'Format Preserving Alphanumeric (Character Class)'], + ['name' => 'govt_phn', 'description' => 'Provincial personal health number.', 'default_method' => 'Format Preserving Alphanumeric (Character Class)'], + ['name' => 'govt_registration_num', 'description' => 'Government registration number.', 'default_method' => 'Format Preserving Alphanumeric (Character Class)'], + ['name' => 'govt_sin', 'description' => 'Federal social insurance number.', 'default_method' => 'Faker sin Surrogate (Deterministic Lookup)'], + + // ── Personal names ────────────────────────────────────────── + ['name' => 'name_first', 'description' => 'Personal first name.', 'default_method' => 'Faker First Name (Deterministic Lookup)'], + ['name' => 'name_last', 'description' => 'Personal last name.', 'default_method' => 'Faker Last Name (Deterministic Lookup)'], + ['name' => 'name_middle', 'description' => 'Personal middle name.', 'default_method' => 'Faker First Name (Deterministic Lookup)'], + ['name' => 'new_name', 'description' => 'Name field (general).', 'default_method' => 'Faker Full Name (Deterministic Lookup)'], + ['name' => 'case_name', 'description' => 'Case name (usually based on name of key player).', 'default_method' => 'Faker Full Name (Deterministic Lookup)'], + + // ── Organization names ────────────────────────────────────── + ['name' => 'org_name', 'description' => 'Organization (usually business, but may be a personal name) name.', 'default_method' => 'Faker Company Name (Deterministic Lookup)'], + ['name' => 'org_name_1', 'description' => 'Additional organization name field.', 'default_method' => 'Faker Company Name (Deterministic Lookup)'], + ['name' => 'benefit_plan_name', 'description' => 'Benefit plan name.', 'default_method' => 'Deterministic Text Hash'], + + // ── Contact information ───────────────────────────────────── + ['name' => 'email_address', 'description' => 'Email (SMTP) address.', 'default_method' => 'Faker Email (Deterministic Lookup)'], + ['name' => 'phone_number', 'description' => 'Phone number.', 'default_method' => 'Faker Phone Number (Deterministic Lookup)'], + + // ── Address components ────────────────────────────────────── + ['name' => 'address_line1', 'description' => 'First (primary) line of address.', 'default_method' => 'Faker Street Address (Deterministic Lookup)'], + ['name' => 'address_line2', 'description' => 'Second line of address.', 'default_method' => 'Faker Street Address (Deterministic Lookup)'], + ['name' => 'address_line3', 'description' => 'Third line of address.', 'default_method' => 'Faker Street Address (Deterministic Lookup)'], + ['name' => 'address_city', 'description' => 'City component of address.', 'default_method' => 'Faker City (Deterministic Lookup)'], + ['name' => 'address_province', 'description' => 'Province component of address.', 'default_method' => 'Intra-Column Value Shuffle'], + ['name' => 'address_country', 'description' => 'Country component of address.', 'default_method' => 'Intra-Column Value Shuffle'], + ['name' => 'address_zipcode', 'description' => 'Postal code component of address.', 'default_method' => 'Faker Postal Code (Deterministic Lookup)'], + + // ── Dates ─────────────────────────────────────────────────── + ['name' => 'date', 'description' => 'Date field otherwise not special.', 'default_method' => 'Date Shift (±30 days, Deterministic)'], + ['name' => 'date_birth', 'description' => 'Personal birth date.', 'default_method' => 'Date Shift (±90 Days, Deterministic)'], + ['name' => 'date_death', 'description' => 'Personal death date.', 'default_method' => 'Date Shift (±90 Days, Deterministic)'], + ['name' => 'case_dt', 'description' => 'Case date.', 'default_method' => 'Date Shift (±30 days, Deterministic)'], + ['name' => 'date_closed', 'description' => 'Entity closed date.', 'default_method' => 'Date Shift (±30 days, Deterministic)'], + ['name' => 'date_created', 'description' => 'Record creation date.', 'default_method' => 'Date Shift (±30 days, Deterministic)'], + ['name' => 'date_db_last_updated', 'description' => 'Database last-updated timestamp.', 'default_method' => 'Date Shift (±30 days, Deterministic)'], + ['name' => 'date_end', 'description' => 'End date.', 'default_method' => 'Date Shift (±30 days, Deterministic)'], + ['name' => 'date_last_updated', 'description' => 'Last-updated date.', 'default_method' => 'Date Shift (±30 days, Deterministic)'], + ['name' => 'date_start', 'description' => 'Start date.', 'default_method' => 'Date Shift (±30 days, Deterministic)'], + ['name' => 'date_updated', 'description' => 'Updated date.', 'default_method' => 'Date Shift (±30 days, Deterministic)'], + ['name' => 'update_date', 'description' => 'Update date field.', 'default_method' => 'Date Shift (±30 days, Deterministic)'], + ['name' => 'timestamp', 'description' => 'Timestamp field.', 'default_method' => 'Timestamp Shift (±7 days, Deterministic)'], + + // ── Monetary values ───────────────────────────────────────── + ['name' => 'money', 'description' => 'Monetary value.', 'default_method' => 'Numeric Perturbation (±10%)'], + ['name' => 'money_dollars', 'description' => 'Dollar amount.', 'default_method' => 'Numeric Perturbation (±10%)'], + + // ── Free text / comments ──────────────────────────────────── + ['name' => 'comment', 'description' => 'Comment or notes field.', 'default_method' => 'Faker Comment/Notes (Deterministic Lookup)'], + ['name' => 'comment_sr', 'description' => 'Service request comment.', 'default_method' => 'Faker Comment/Notes (Deterministic Lookup)'], + + // ── User / system identifiers ─────────────────────────────── + ['name' => 'user_id', 'description' => 'User identifier.', 'default_method' => 'Faker Username (Deterministic Lookup)'], + ['name' => 'person_uid', 'description' => 'Person unique identifier.', 'default_method' => 'Deterministic Text Hash'], + ['name' => 'integration_id', 'description' => 'ICM integration ID. Should be internal-only, but might be worth munging just in case.', 'default_method' => 'Deterministic Text Hash'], + ['name' => 'guid', 'description' => 'Globally unique identifier (GUID/UUID).', 'default_method' => 'UUID/GUID Replacement'], + ['name' => 'url', 'description' => 'Web site link.', 'default_method' => 'URL Path Anonymization'], + + // ── Siebel structural keys ────────────────────────────────── + ['name' => 'row_id', 'description' => 'Inferred primary or foreign key (observed but not documented).', 'default_method' => 'SQL Deterministic Siebel ROW_ID (SHA-256)'], + ['name' => 'row_id_pk', 'description' => 'Is a primary key; PR_KEY (G) is not empty.', 'default_method' => 'SQL Deterministic Siebel ROW_ID (SHA-256)'], + ['name' => 'row_id_fk', 'description' => 'Is a foreign key referencing another table; REF_TAB_NAME (H) is not empty.', 'default_method' => 'SQL Seed Map Lookup (FK)'], + + // ── Shuffle / categorical ─────────────────────────────────── + ['name' => 'shuffle', 'description' => 'Randomly pick from values present in column. Usually used for LOV fields.', 'default_method' => 'Intra-Column Value Shuffle'], + ['name' => 'shuffle_elmsd_amt', 'description' => 'Shuffle ELMSD amount values.', 'default_method' => 'Intra-Column Value Shuffle'], + ['name' => 'shuffle_transit_rate', 'description' => 'Shuffle transit rate values.', 'default_method' => 'Intra-Column Value Shuffle'], + ['name' => 'sex_mf', 'description' => 'Sex indicator (M/F).', 'default_method' => 'Intra-Column Value Shuffle'], + ['name' => 'business_unit', 'description' => 'Business unit (categorical).', 'default_method' => 'Intra-Column Value Shuffle'], + ['name' => 'code', 'description' => 'Code value (categorical).', 'default_method' => 'Intra-Column Value Shuffle'], + ['name' => 'cp_adp_caseload', 'description' => 'CP/ADP caseload assignment.', 'default_method' => 'Intra-Column Value Shuffle'], + ['name' => 'flag', 'description' => '\'Y\', \'N\', or null.', 'default_method' => 'Intra-Column Value Shuffle'], + ['name' => 'yes_no', 'description' => '\'Yes\', \'No\', or null.', 'default_method' => 'Intra-Column Value Shuffle'], + ['name' => 'yes_no_tbd', 'description' => 'Yes/No/TBD categorical field.', 'default_method' => 'Intra-Column Value Shuffle'], + + // ── Redact / suppress ─────────────────────────────────────── + ['name' => 'base64', 'description' => 'Content is encoded in Base64. Possibly to obfuscate content, but trivially decoded.', 'default_method' => 'Redact (Fixed Token)'], + ['name' => 'db_last_update_source', 'description' => 'Database last-update source identifier.', 'default_method' => 'Redact (Fixed Token)'], + ['name' => 'eim_internal', 'description' => 'EIM (Enterprise Integration Manager) internal field.', 'default_method' => 'Redact (Fixed Token)'], + ['name' => 'webdav_resource', 'description' => 'WebDAV resource content.', 'default_method' => 'Redact (Fixed Token)'], + ['name' => 'webdav_rsource', 'description' => 'WebDAV resource content (alternate spelling).', 'default_method' => 'Redact (Fixed Token)'], + ['name' => 'unused', 'description' => 'Field has no values (NUM_DISTINCT is 0 or empty).', 'default_method' => 'Nullify (Set NULL)'], + + // ── Pass-through / informational (no method) ──────────────── + ['name' => 'no_change', 'description' => 'Do not change the value, pass through unchanged. Included so we can mark that we have decided on a rule.', 'default_method' => null], + ['name' => 'empty', 'description' => 'Table contains no records; column does not need to be copied.', 'default_method' => 'Exclude Column (Do Not Copy)'], + ['name' => 'ZZZ', 'description' => 'End of list marker.', 'default_method' => null], + ]; + } +} diff --git a/database/seeders/AnonymizationSqlOnlyMethodSeeder.php b/database/seeders/Anonymization/AnonymizationSqlOnlyMethodSeeder.php similarity index 95% rename from database/seeders/AnonymizationSqlOnlyMethodSeeder.php rename to database/seeders/Anonymization/AnonymizationSqlOnlyMethodSeeder.php index 85f9bfb1..cccbc5b0 100644 --- a/database/seeders/AnonymizationSqlOnlyMethodSeeder.php +++ b/database/seeders/Anonymization/AnonymizationSqlOnlyMethodSeeder.php @@ -1,10 +1,13 @@ Metadata Uploads > Import`. +2. Review imported columns in `Anonymizer > Siebel Columns`. +3. Create packages in `Anonymizer > Packages` (optional, but recommended for reusable PL/SQL). +4. Create methods in `Anonymizer > Methods` and attach package dependencies. +5. Create rules in `Anonymizer > Rules` and assign methods (default + optional strategy variants). +6. Assign rules to columns and mark `anonymization_required` where needed. +7. Create job in `Anonymizer > Jobs` with scope and generation options. +8. Save/regenerate SQL, review readiness, then download SQL from the job view. +9. Review and validate SQL, then execute manually in Oracle through your controlled deployment process. + +## Metadata Upload: Full Details + +### UI Path + +- `FODIG > Anonymizer > Metadata Uploads > Import` + +### Import Options + +- `Import type` + - `partial`: upserts only rows in CSV; no delete reconciliation. + - Missing rows in scoped catalog are left unchanged. + - Useful for incremental updates or when source CSV is a filtered subset. + - `full`: upserts CSV rows and soft-deletes missing rows in scoped catalog. + - Missing rows in scoped catalog are marked deleted (soft delete). + - Useful for authoritative syncs where CSV represents the full scope. +- `Create change tickets after import` + - If enabled (default), Klamm queues change ticket analysis after successful import. +- `Override anonymization rules from CSV` (admin only) + - Controls whether `ANON_RULE` and `ANON_NOTE` from CSV are applied to column anonymization settings. + - See behavior details below. + +### Accepted Upload Formats + +Klamm detects and processes these header styles: + +1. Canonical metadata format. (Standard format generated through use of Klamm's included Oracle export template at `/scripts/ScriptTemplates/anonymization-relationship-export.sql`). +2. Temp round-trip format. (This is the format used for export from the `Siebel Columns` page and re-import after spreadsheet editing). + +- There is a difference in header requirements and validation rules between these formats, so be sure to use the correct format for your use case. This is due to what is directly stored in the db, versus the additional fields introduced by Klamm for anonymization management. + +CSV/TXT files are accepted. Import upload size limit is configured in UI as `500 MB`. + +### Canonical Required Headers + +- `DATABASE_NAME` +- `SCHEMA_NAME` +- `OBJECT_TYPE` +- `TABLE_NAME` +- `COLUMN_NAME` +- `COLUMN_ID` +- `DATA_TYPE` + +### Canonical Optional Headers + +- `DATA_LENGTH` +- `DATA_PRECISION` +- `DATA_SCALE` +- `NULLABLE` +- `CHAR_LENGTH` +- `TABLE_COMMENT` +- `COLUMN_COMMENT` +- `RELATED_COLUMNS` + +### Temp Round-Trip Headers + +- `DB_INSTANCE` +- `OWNER` +- `QUALFIELD` +- `COLUMN_ID` +- `TABLE_NAME` +- `COLUMN_NAME` +- `ANON_RULE` +- `ANON_NOTE` +- `PR_KEY` +- `REF_TAB_NAME` +- `NUM_DISTINCT` +- `NUM_NOT_NULL` +- `NUM_NULLS` +- `NUM_ROWS` +- `DATA_TYPE` +- `DATA_LENGTH` +- `DATA_PRECISION` +- `DATA_SCALE` +- `COMMENTS` +- `SBL_USER_NAME` +- `SBL_DESC_TEXT` +- `NULLABLE` + +### Header Validation Rules + +- Canonical and temp formats validate required columns and fail on unknown headers. +- Siebel columns-style format is recognized heuristically and transformed into canonical rows. + +### Import Runtime Behavior + +- Upload is queued (`status=queued`) and processed asynchronously on queue `anonymization`. +- Processing phases include staging, metadata reconcile, column upsert, optional anonymization-rule sync (if override selected as admin), deletion reconcile (full import), and relationship rebuild. +- Failed imports can be resumed or restarted from upload actions. + - `Resume` attempts to reuse staged rows when possible. + - `Restart` clears staging and reprocesses from file. + +### Full vs Partial Import Effects + +- `partial` import: + - Updates touched records only. + - Does not soft-delete missing columns. +- `full` import: + - Updates touched records. + - Soft-deletes columns missing from the effective scope. + +### Scope and Defaults During Transform + +- For Siebel-columns and temp transformations without explicit scope values, defaults are used: + - Database: `Siebel` + - Schema: `Siebel` + +### CSV Validation Warning Tickets + +- Row-level validation problems create warning artifacts: + - Upload warnings in metadata upload record. + - `.errors.json` report file. + - Validation change ticket (if not already open for same upload context). + +## Anonymization Design Model + +Klamm composes SQL through three reusable entities: + +1. Packages: reusable SQL/PLSQL building blocks. +2. Methods: masking logic templates (with placeholders). +3. Rules: strategy-aware mapping from column to method choice. + +Columns are then linked to rules, and jobs use column scope plus job strategy to resolve final method selection. + +## Packages + +### Path + +- `Anonymizer > Packages` + +### Core Fields + +- `name` (display) +- `handle` (internal unique reference) +- `package_name` (database package name) +- `database_platform` (Oracle/Siebel, PostgreSQL, MySQL, SQL Server, Generic) +- `summary` +- SQL blocks: + - `install_sql` + - `package_spec_sql` + - `package_body_sql` + +### Behavior + +- Methods can depend on one or more packages, or be completely standalone. +- Job SQL includes package SQL blocks before masking statements. +- Package versions can be created (`New version`) without auto-rewiring existing method associations. + +## Methods + +### Path + +- `Anonymizer > Methods` + +### Core Fields + +- `name` (unique) +- `categories` +- `description` +- `what_it_does` +- `how_it_works` +- `sql_block` +- Seed contract flags: + - `emits_seed` + - `requires_seed` + - `supports_composite_seed` + - `seed_notes` +- `packages` relationship + +**Important Note Regarding Seed Contract Support:** +Methods that emit or require seeds have additional expectations around how they are used in rules and jobs. Review method metadata and seed contract flags carefully when designing your anonymization logic, especially if you plan to use seed-based techniques for referential integrity or realistic value generation. These seeds maintain relationships across columns and tables, as well as supporting deterministic anonymization across runs. + +### Placeholder Support (common) + +Method SQL can use placeholders resolved during generation, including: + +- `{{TABLE}}` +- `{{TABLE_NAME}}` +- `{{SCHEMA}}` +- `{{COLUMN}}` +- `{{ALIAS}}` +- `{{SEED_EXPR}}` +- `{{SEED_MAP_LOOKUP}}` +- `{{JOB_SEED_LITERAL}}` + +Note: methods are primarily resolved through rules. Direct column-method links are allowed, but should be avoided unless necessary for one-offs/specific cases. + +Review seeded method examples for more complex placeholder usage patterns, especially around seed contract support. + +## Rules + +### Path + +- `Anonymizer > Rules` + +### Core Fields + +- `name` +- `description` +- method assignments: + - one default method (`is_default=true`) + - optional strategy-labeled alternatives (`strategy`) + +### Resolution Logic + +When generating SQL for a column with a rule: + +1. If job has `strategy`, the job creator will try matching rule method with that strategy. +2. Otherwise it will use the rule default method. +3. If no rule method resolves, fallback to direct method, if one is attached. + +## Column Designation and Annotation (Creating the "Anonymization Catalog") + +### Path + +- `Anonymizer > Siebel Columns` + +### Key Column-Level Controls + +- `anonymization_required` +- `anonymization_requirement_reviewed` +- `metadata_comment` +- `anonymization_rule_id` +- tags (`Column tags`) +- parent/child dependencies (relationship managers) +- table-level target relation override (`table` vs `view`) + +### Recommended Practice + +1. Assign a rule to each sensitive column. +2. Mark required columns with `anonymization_required=true`. +3. Mark reviewed columns once validated. +4. Maintain dependency links for deterministic FK-safe generation. (These should usually be handled in the source metadata, but can be adjusted here as needed). + +## ANON_RULE / ANON_NOTE Import Behavior + +When importing metadata from CSV, the `ANON_RULE` and `ANON_NOTE` fields can optionally override existing anonymization settings for matched columns. This behavior is controlled by the `Override anonymization rules from CSV` option during import and is intended to allow bulk updates to anonymization design through spreadsheet editing. This is only available to admins to avoid overwrite risks for non-admin users who may be importing metadata without intending to change anonymization settings. + +### Without Override (`Override anonymization rules from CSV = false`) + +- Staging captures `ANON_RULE` / `ANON_NOTE` values. +- Column anonymization settings are not synced from these fields. +- Existing required/reviewed/rule/comment settings remain unchanged. + +### With Override (`true`, admin mode) + +For matched columns, Klamm applies `ANON_RULE` and `ANON_NOTE` to anonymization settings. + +- `ANON_RULE = no_change` (case-insensitive): + - `anonymization_required = false` + - `anonymization_requirement_reviewed = true` + - rule mapping cleared +- `ANON_RULE = `: + - `anonymization_required = true` + - `anonymization_requirement_reviewed = true` + - rule mapped to named rule +- `ANON_RULE` blank/null: + - clears required/reviewed/rule mapping for matched row +- `ANON_NOTE` maps to `metadata_comment` (blank clears comment) +- Unknown rule names create upload-scoped change tickets. + +## CSV Round-Trip Details (Spreadsheet Workflow) + +Klamm supports exporting the current filtered column set, editing in a spreadsheet, then re-importing, in order to manage anonymization without being 100% dependendent on the Klamm interface and Klamm uptime. + +### Export Path + +- `Anonymizer > Siebel Columns > Export > Export currently filtered set` + +### Export Columns (temp format) + +- `DB_INSTANCE` +- `OWNER` +- `QUALFIELD` +- `COLUMN_ID` +- `TABLE_NAME` +- `COLUMN_NAME` +- `ANON_RULE` +- `ANON_NOTE` +- `PR_KEY` +- `REF_TAB_NAME` +- `NUM_DISTINCT` +- `NUM_NOT_NULL` +- `NUM_NULLS` +- `NUM_ROWS` +- `DATA_TYPE` +- `DATA_LENGTH` +- `DATA_PRECISION` +- `DATA_SCALE` +- `COMMENTS` +- `SBL_USER_NAME` +- `SBL_DESC_TEXT` +- `NULLABLE` + +### Exported Anonymization Values + +- `ANON_RULE` + - required + rule assigned: exports rule name + - reviewed + not required: exports `no_change` + - otherwise: blank +- `ANON_NOTE` + - exports `metadata_comment` + +### Import Notes for Round-Trip Files + +- Temp headers are accepted directly during upload. +- `ANON_RULE` and `ANON_NOTE` only affect anonymization settings when `Override anonymization rules from CSV` is enabled. +- With override disabled, existing anonymization settings are preserved regardless of CSV values. + +## Job Creation and SQL Generation + +### Path + +- `Anonymizer > Jobs` + +### Core Job Fields + +- `name` +- `job_type` (`full` or `partial`) +- `output_format` (`sql`) +- `status` +- `strategy` (optional; drives rule strategy selection) + +### Scope Selection + +- Select databases, schemas, tables. +- Use column builder modes: + - `Manual` (default): manually select columns from dropdown + - `Flagged columns` (only show columns marked `anonymization_required=true`) + - `Has methods` (only show columns with any method assigned) + - `Has rules` (only show columns with rules assigned) + - `Missing method` + - `Entire scope` + +`Entire scope` mode avoids loading huge manual column selections and defers bulk selection sync to save-time. + +Note on output format: `output_format` currently only supports `sql`. Parquet support is planned for future implementation and may require additional design around how method SQL blocks are composed and applied in a non-SQL context. + +### Execution Options + +- `target_schema` +- `target_table_mode`: + - `prefixed` (safe working copies) + - `anon` + - `exact` +- `target_relation_kind`: + - `table` + - `view` +- `seed_store_mode`: + - `temporary` + - `persistent` +- `seed_store_schema` +- `seed_store_prefix` +- `seed_map_hygiene_mode`: + - `none` + - `commented` + - `execute` +- `job_seed` +- `pre_mask_sql` +- `post_mask_sql` + +### Partial vs Full Job SQL Behavior + +- `full` job: builds full clone/masking flow for in-scope selected columns. +- `partial` job: allows nulling behavior for unselected columns in generated flows where applicable. + +### Generation Pipeline + +- Saving/updating job queues `GenerateAnonymizationJobSql` on `anonymization` queue. +- Large jobs use chunked SQL generation: + - `GenerateAnonymizationJobSqlChunk` + - `AssembleAnonymizationJobSqlChunks` + - `GenerateAnonymizationJobConstraintsSql` +- SQL preview is truncated for very large scripts; full SQL downloaded via `Download SQL` action. + +### Readiness Checks + +Job readiness reports identify: + +- required columns missing methods +- required columns not reviewed +- ambiguous multi-method assignments +- missing dependency columns +- urgent change tickets intersecting job scope + +Use `Download Readiness Report` on create/edit pages for markdown output. + +## SQL Download and Execution + +### Download + +- Open a job record and click `Download SQL`. +- Route streams SQL in chunks from database to avoid memory spikes. + +### Execution + +- Execute manually in Oracle per your normal change process. +- You will need to first run the script in the source schema to update permissions for the target schema's ability to copy, then switch to target schema for the anonymization execution. + - There are no concerns with running the script in the source schema as it only updates metadata and permissions, not actual data. The anonymization SQL blocks are designed to be schema-agnostic and will apply to the target schema's tables/columns as specified in the job design. +- Validate resulting anonymized targets, constraints, and package dependencies. + +## Upload and Staging Retention + +- Upload files are retained until `retention_until` then purged. +- Staging rows are pruned by age and status. +- Scheduled command: + - `anonymization:purge-uploads` + - runs every 30 minutes via `routes/console.php`. + +## Operational Checklist + +1. Ensure `anonymization` queue worker is running. +2. Import metadata and resolve validation warnings. +3. Create/verify packages, methods, and rules. +4. Assign rules and required/reviewed statuses on columns. +5. Build job scope and options. +6. Check readiness report. +7. Regenerate SQL and download final script. +8. Execute in Oracle via controlled deployment. + +### Current Limitations / Roadmap Notes + +- `parquet` job creation and SQL generation is not yet implemented. +- SQL linting/validation for method templates can be expanded. +- Export auditing and permission hardening can be expanded further. +- More complex placeholder support and method resolution patterns can be added as needed. +- additional testing post-generation can be added to validate SQL structure and dependencies before download. diff --git a/helm/templates/queue-anonymization-deployment.yaml b/helm/templates/queue-anonymization-deployment.yaml index 244246c3..986afc6b 100644 --- a/helm/templates/queue-anonymization-deployment.yaml +++ b/helm/templates/queue-anonymization-deployment.yaml @@ -21,6 +21,8 @@ spec: command: [ "php", + "-d", + "memory_limit=1024M", "/var/www/artisan", "queue:work", "--queue=anonymization", @@ -63,6 +65,10 @@ spec: secretKeyRef: name: app-secrets key: DB_PASSWORD + - name: DB_PERSISTENT + value: "true" + - name: DB_LOGGING + value: "false" - name: MAIL_HOST valueFrom: secretKeyRef: @@ -99,7 +105,7 @@ spec: persistentVolumeClaim: claimName: klamm-app-shared-pvc restartPolicy: Always - terminationGracePeriodSeconds: 30 + terminationGracePeriodSeconds: 630 dnsPolicy: ClusterFirst securityContext: runAsNonRoot: true diff --git a/resources/views/filament/fodig/resources/anonymous-upload-resource/pages/import-siebel-metadata.blade.php b/resources/views/filament/fodig/resources/anonymous-upload-resource/pages/import-siebel-metadata.blade.php index 5ea325d0..f70ac7a9 100644 --- a/resources/views/filament/fodig/resources/anonymous-upload-resource/pages/import-siebel-metadata.blade.php +++ b/resources/views/filament/fodig/resources/anonymous-upload-resource/pages/import-siebel-metadata.blade.php @@ -39,17 +39,21 @@ Updated Deleted Error + Actions @foreach ($this->recentUploads as $upload) @php $status = $upload['status'] ?? 'unknown'; - $badgeClasses = match ($status) { - 'completed' => 'bg-emerald-100 text-emerald-800', - 'processing' => 'bg-blue-100 text-blue-800', - 'failed' => 'bg-rose-100 text-rose-800', - 'queued' => 'bg-amber-100 text-amber-800', + $isCancelled = $status === 'cancelled' || ($status === 'failed' && (($upload['run_phase'] ?? null) === 'cancelled')); + $statusLabel = $isCancelled ? 'Cancelled' : \Illuminate\Support\Str::title($status); + $badgeClasses = match (true) { + $isCancelled => 'bg-gray-200 text-gray-800', + $status === 'completed' => 'bg-emerald-100 text-emerald-800', + $status === 'processing' => 'bg-blue-100 text-blue-800', + $status === 'failed' => 'bg-rose-100 text-rose-800', + $status === 'queued' => 'bg-amber-100 text-amber-800', default => 'bg-gray-100 text-gray-800', }; @endphp @@ -66,7 +70,7 @@ {{ $upload['created_at'] }} - {{ \Illuminate\Support\Str::title($status) }} + {{ $statusLabel }} @if(! empty($upload['status_detail']))
{{ $upload['status_detail'] }}
@@ -75,7 +79,7 @@ @php $progressPercent = max(0, min(100, (int) ($upload['progress_percent'] ?? 0))); - $progressClass = $status === 'failed' ? 'bg-rose-500' : 'bg-blue-500'; + $progressClass = $isCancelled ? 'bg-gray-500' : ($status === 'failed' ? 'bg-rose-500' : 'bg-blue-500'); @endphp
@@ -101,6 +105,18 @@ {{ $upload['error'] ? \Illuminate\Support\Str::limit($upload['error'], 120) : '—' }} + + @if(in_array($status, ['queued', 'processing'], true)) + + Cancel + + @else + + @endif + @endforeach @@ -109,4 +125,4 @@ @endif
- + \ No newline at end of file diff --git a/routes/console.php b/routes/console.php index 20bf0441..08cc0dc3 100644 --- a/routes/console.php +++ b/routes/console.php @@ -14,8 +14,7 @@ ->at('7:00') ->withoutOverlapping(); -Schedule::command(PurgeAnonymizationUploads::class) - ->daily() +Schedule::command('anonymization:purge-uploads --limit=200 --staging-limit=300 --staging-upload-chunk=50 --row-chunk=2000') + ->everyThirtyMinutes() ->timezone('America/Vancouver') - ->at('2:15') ->withoutOverlapping(); diff --git a/routes/web.php b/routes/web.php index 72f7b22a..b1f4936b 100644 --- a/routes/web.php +++ b/routes/web.php @@ -2,7 +2,10 @@ use Illuminate\Support\Facades\Route; use App\Http\Controllers\FormViewController; +use App\Models\Anonymizer\AnonymizationJobs; use Illuminate\Support\Facades\Storage; +use Illuminate\Support\Facades\DB; +use Illuminate\Support\Str; // Explicit login route (otherwise it only lives in the admin panel) Route::get('/login', function () { @@ -30,3 +33,47 @@ ->header('Content-Disposition', 'attachment; filename="' . $filename . '"') ->header('Cache-Control', 'no-store, no-cache, must-revalidate'); })->name('download.form-json'); + +Route::middleware('auth')->get('/download/anonymization-job-sql/{job}', function (AnonymizationJobs $job) { + abort_unless(request()->user()?->can('view', $job), 403); + + $jobId = (int) $job->getKey(); + $length = (int) DB::table('anonymization_jobs') + ->where('id', $jobId) + ->selectRaw('length(sql_script) as len') + ->value('len'); + + if ($length === 0) { + abort(404); + } + + $timestamp = now()->format('Ymd_His'); + $name = Str::slug($job->name) ?: 'anonymization-job'; + $filename = $timestamp . '_' . $name . '.sql'; + + return response()->streamDownload(function () use ($jobId) { + $chunkSize = 5_000_000; + $offset = 0; + + while (true) { + $chunk = DB::table('anonymization_jobs') + ->where('id', $jobId) + ->selectRaw('substr(sql_script, ?, ?) as chunk', [$offset + 1, $chunkSize]) + ->value('chunk'); + + if ($chunk === null || $chunk === '') { + break; + } + + echo $chunk; + flush(); + $offset += $chunkSize; + + if (strlen($chunk) < $chunkSize) { + break; + } + } + }, $filename, [ + 'Content-Type' => 'text/sql; charset=UTF-8', + ]); +})->name('download.anonymization-job-sql'); diff --git a/scripts/ScriptTemplates/anonymization-relationship-export.sql b/scripts/ScriptTemplates/anonymization-relationship-export.sql index 35dc7295..0d8afe5d 100644 --- a/scripts/ScriptTemplates/anonymization-relationship-export.sql +++ b/scripts/ScriptTemplates/anonymization-relationship-export.sql @@ -1,11 +1,15 @@ --- Export every column from every table you can query in the current session. --- Default behavior captures all schemas; adjust OWNER_FILTER to narrow results. --- Run with F5 (script mode) so the entire result streams to the spool file. --- However, you may want to run the statement standalone to preview results --- and export directly if the spool does not include all results. +-- Export anonymization metadata from an Oracle / Siebel database. +-- Run with F5 (script mode) so the full result set is written to the spool file. +-- +-- Parameters (set before running): +-- SBL_REPO_ID : Siebel repository row-id (required for Siebel metadata enrichment) +-- OUTPUT_FILE : spool destination filename +-- +-- The query auto-detects the DB instance name via USERENV and captures all schemas visible to the connected user +-- (uses ALL_* views so no DBA role is required). Uncomment the WHERE filters below to narrow by owner or table. -DEFINE OWNER_FILTER = '%' -DEFINE OUTPUT_FILE = 'all_columns.csv' +DEFINE SBL_REPO_ID = '%' +DEFINE OUTPUT_FILE = 'anonymization_columns.csv' SET TERMOUT OFF SET FEEDBACK OFF @@ -14,36 +18,77 @@ SET HEADING ON SET PAGESIZE 0 SET LINESIZE 32767 SET LONG 1000000 + set sqlformat csv SPOOL &OUTPUT_FILE -PROMPT DATABASE_NAME,SCHEMA_NAME,OBJECT_TYPE,TABLE_NAME,COLUMN_NAME,COLUMN_ID,DATA_TYPE,DATA_LENGTH,DATA_PRECISION,DATA_SCALE,NULLABLE,CHAR_LENGTH,COLUMN_COMMENT,TABLE_COMMENT,RELATED_COLUMNS - with params as ( select sys_context( 'USERENV', 'DB_NAME' - ) as database_name, - nvl( - nullif( - trim(upper('&OWNER_FILTER')), - '' - ), - '%' - ) as owner_filter + ) as db_instance, + '&SBL_REPO_ID' as sbl_repo_id from dual -),relationship_details as ( - select child.owner as column_owner, - child.table_name as column_table, - child.column_name as column_name, - 'OUTBOUND -> ' - || parent.owner - || '.' - || parent.table_name - || '.' - || parent.column_name - || ' via ' - || cons.constraint_name as related_descriptor +),scols as ( + select p.db_instance, + dt.owner, + dt.table_name, + dt.num_rows, + st.name tab_name, + st.type tab_type, + st.stat_cd tab_stat_cd, + st.user_name tab_user_name, + st.desc_text tab_desc_text, + sc.name column_name, + sc.type col_type, + sc.stat_cd col_stat_cd, + sc.user_name sbl_user_name, + sc.desc_text sbl_desc_text, + sc.length col_length, + sc.nullable col_nullable, + sc.pr_key, + rt.name ref_tab_name + from siebel.s_column sc + join params p + on 1 = 1 + join siebel.s_table st + on sc.tbl_id = st.row_id + and st.repository_id = p.sbl_repo_id + join all_tables dt + on dt.owner = 'SIEBEL' + and dt.table_name = st.name + left join siebel.s_table rt + on sc.fkey_tbl_id = rt.row_id +),siebel_fks as ( + -- Siebel-defined foreign keys (via S_COLUMN.FKEY_TBL_ID), independent of scols join + select 'SIEBEL' as owner, + st.name as table_name, + sc.name as column_name, + rt.name as siebel_ref_tab + from siebel.s_column sc + join siebel.s_table st + on sc.tbl_id = st.row_id + join siebel.s_table rt + on sc.fkey_tbl_id = rt.row_id + where sc.fkey_tbl_id is not null +),siebel_pks as ( + -- Siebel-defined primary keys (via S_COLUMN.PR_KEY), independent of scols join + select 'SIEBEL' as owner, + st.name as table_name, + sc.name as column_name, + 'PKEY' as sbl_pk_flag + from siebel.s_column sc + join siebel.s_table st + on sc.tbl_id = st.row_id + where sc.pr_key = 'Y' +),oracle_fks as ( + -- Foreign-key relationships detected from Oracle constraints + select child.owner, + child.table_name, + child.column_name, + listagg(parent.table_name, + '; ') within group( + order by parent.table_name) as fk_references from all_constraints cons join all_cons_columns child on cons.owner = child.owner @@ -56,98 +101,93 @@ with params as ( and pk.constraint_name = parent.constraint_name and parent.position = child.position where cons.constraint_type = 'R' - union all - select parent.owner as column_owner, - parent.table_name as column_table, - parent.column_name as column_name, - 'INBOUND <- ' - || child.owner - || '.' - || child.table_name - || '.' - || child.column_name - || ' via ' - || cons.constraint_name as related_descriptor + group by child.owner, + child.table_name, + child.column_name +),oracle_pks as ( + -- Primary-key columns detected from Oracle constraints + select distinct cols.owner, + cols.table_name, + cols.column_name, + 'PKEY' as pk_flag from all_constraints cons - join all_cons_columns child - on cons.owner = child.owner - and cons.constraint_name = child.constraint_name - join all_constraints pk - on cons.r_owner = pk.owner - and cons.r_constraint_name = pk.constraint_name - join all_cons_columns parent - on pk.owner = parent.owner - and pk.constraint_name = parent.constraint_name - and parent.position = child.position - where cons.constraint_type = 'R' -),relationship_agg as ( - select column_owner, - column_table, - column_name, - rtrim( - replace( - replace( - xmlserialize(content xmlagg(xmlelement( - e, - related_descriptor || '; ' - ) - order by related_descriptor - ) no indent), - '', - '' - ), - '', - '' - ), - '; ' - ) as related_columns - from relationship_details - group by column_owner, - column_table, - column_name + join all_cons_columns cols + on cons.owner = cols.owner + and cons.constraint_name = cols.constraint_name + where cons.constraint_type = 'P' ) -select p.database_name, - c.owner as schema_name, - nvl( - o.object_type, - 'TABLE' - ) as object_type, - c.table_name, - c.column_name, - c.column_id, - c.data_type, - c.data_length, - c.data_precision, - c.data_scale, - c.nullable, - c.char_length, - col.comments as column_comment, - tab.comments as table_comment, - rel.related_columns - from all_tab_columns c - cross join params p - left join relationship_agg rel -on rel.column_owner = c.owner - and rel.column_table = c.table_name - and rel.column_name = c.column_name - left join all_objects o -on o.owner = c.owner - and o.object_name = c.table_name - and o.object_type in ( 'TABLE', - 'VIEW', - 'MATERIALIZED VIEW' ) - left join all_col_comments col -on col.owner = c.owner - and col.table_name = c.table_name - and col.column_name = c.column_name - left join all_tab_comments tab -on tab.owner = c.owner - and tab.table_name = c.table_name - where p.owner_filter = '%' - or upper(c.owner) like p.owner_filter escape '\' - order by c.owner, - c.table_name, - c.column_id; +select p.db_instance, + owner, + table_name + || '.' + || column_name qualfield, + column_id, + table_name, + column_name, + '' as anon_rule, + '' as anon_note, + coalesce( + pk_flag, + sbl_pk_flag, + case + when pr_key = 'Y' then + 'PKEY' + end + ) pr_key, + coalesce( + fk_references, + siebel_ref_tab, + ref_tab_name + ) ref_tab_name, + num_distinct, + dt.num_rows - num_nulls num_not_null, + num_nulls, + dt.num_rows, + dtc.data_type, + dtc.data_length, + dtc.data_precision, + dtc.data_scale, + comments, + sbl_user_name, + sbl_desc_text, + nullable + from all_tab_cols dtc + join params p +on 1 = 1 + join all_tables dt +using ( owner, + table_name ) + join all_col_comments dcc +using ( owner, + table_name, + column_name ) + left join scols +using ( owner, + table_name, + column_name ) + left join oracle_fks +using ( owner, + table_name, + column_name ) + left join oracle_pks +using ( owner, + table_name, + column_name ) + left join siebel_fks +using ( owner, + table_name, + column_name ) + left join siebel_pks +using ( owner, + table_name, + column_name ) + where 1 = 1 +-- Uncomment the lines below to filter by owner or specific tables: +-- and owner = 'SIEBEL' +-- and table_name in ('S_CASE', 'S_CASE_BNFTPLAN', 'S_CONTACT', 'S_ORG_EXT') + order by owner, + table_name, + column_name; SPOOL OFF @@ -158,4 +198,5 @@ SET PAGESIZE 50 SET LINESIZE 200 SET TRIMSPOOL OFF set sqlformat ansiconsole -PROMPT Column export written to &OUTPUT_FILE \ No newline at end of file + +PRO Column export written to &OUTPUT_FILE \ No newline at end of file