diff --git a/force-app/main/default/applications/Appraiser_Review.app-meta.xml b/force-app/main/default/applications/Appraiser_Review.app-meta.xml new file mode 100644 index 0000000..4acd9a3 --- /dev/null +++ b/force-app/main/default/applications/Appraiser_Review.app-meta.xml @@ -0,0 +1,18 @@ + + + Dedicated Lightning app for Appraiser Case review and DocuSign CLM proof-of-concept testing. + Small + Large + false + false + false + false + + Standard + standard-home + Appraiser_Case__c + Appraiser_Case_Deficiency__c + standard-report + standard-Dashboard + Lightning + diff --git a/force-app/main/default/customMetadata/CLM_Account_Setting.DTC_CLM_Demo.md-meta.xml b/force-app/main/default/customMetadata/CLM_Account_Setting.DTC_CLM_Demo.md-meta.xml new file mode 100644 index 0000000..b61247f --- /dev/null +++ b/force-app/main/default/customMetadata/CLM_Account_Setting.DTC_CLM_Demo.md-meta.xml @@ -0,0 +1,57 @@ + + + + false + + Account_Code__c + DTC_CLM_Demo + + + Account_Display_Name__c + DTC CLM Demo + + + Environment_Code__c + UAT + + + CLM_Account_Id__c + bccae332-c7db-4892-ab85-257df0f70fea + + + CLM_Api_Named_Credential__c + CLMuatNamedCreds + + + CLM_Download_Named_Credential__c + CLMuatDownload + + + ESignature_Auth_Named_Credential__c + AcctDemo_NamedCreds + + + ESignature_Rest_Named_Credential__c + Esignature_Demo_NamedCreds + + + Template_Root_Folder_Href__c + https://apiuatna11.springcm.com/v2/bccae332-c7db-4892-ab85-257df0f70fea/folders/12220442-b12e-f111-84fc-88e9a4bd0d9c + + + Destination_Root_Folder_Href__c + https://apiuatna11.springcm.com/v2/bccae332-c7db-4892-ab85-257df0f70fea/folders/12220442-b12e-f111-84fc-88e9a4bd0d9c + + + Default_Template_Document_Href__c + https://apiuatna11.springcm.com/v2/bccae332-c7db-4892-ab85-257df0f70fea/documents/a0cbc0e6-d87d-459e-8d63-66baa47878f3 + + + Default_Destination_Document_Name_Prefix__c + Review + + + Active__c + true + + diff --git a/force-app/main/default/customMetadata/CLM_Account_Setting.DTC_HUD_Demo.md-meta.xml b/force-app/main/default/customMetadata/CLM_Account_Setting.DTC_HUD_Demo.md-meta.xml new file mode 100644 index 0000000..13e7976 --- /dev/null +++ b/force-app/main/default/customMetadata/CLM_Account_Setting.DTC_HUD_Demo.md-meta.xml @@ -0,0 +1,45 @@ + + + + false + + Account_Code__c + DTC_HUD_Demo + + + Account_Display_Name__c + DTC HUD Demo + + + Environment_Code__c + S1 + + + CLM_Account_Id__c + 2371cf36-eb8a-43fe-9f28-b5bbe7644397 + + + CLM_Api_Named_Credential__c + CLMs1NamedCreds + + + CLM_Download_Named_Credential__c + CLMs1Download + + + ESignature_Auth_Named_Credential__c + AcctDemo_NamedCreds + + + ESignature_Rest_Named_Credential__c + Esignature_Demo_NamedCreds + + + Default_Destination_Document_Name_Prefix__c + Review + + + Active__c + true + + diff --git a/force-app/main/default/customMetadata/CLM_Account_Setting.DTC_IAM_Enterprise.md-meta.xml b/force-app/main/default/customMetadata/CLM_Account_Setting.DTC_IAM_Enterprise.md-meta.xml new file mode 100644 index 0000000..521d447 --- /dev/null +++ b/force-app/main/default/customMetadata/CLM_Account_Setting.DTC_IAM_Enterprise.md-meta.xml @@ -0,0 +1,45 @@ + + + + false + + Account_Code__c + DTC_IAM_Enterprise + + + Account_Display_Name__c + DTC IAM Enterprise + + + Environment_Code__c + S1 + + + CLM_Account_Id__c + 2371cf36-eb8a-43fe-9f28-b5bbe7644397 + + + CLM_Api_Named_Credential__c + CLMs1NamedCreds + + + CLM_Download_Named_Credential__c + CLMs1Download + + + ESignature_Auth_Named_Credential__c + AcctDemo_NamedCreds + + + ESignature_Rest_Named_Credential__c + Esignature_Demo_NamedCreds + + + Default_Destination_Document_Name_Prefix__c + Review + + + Active__c + true + + diff --git a/force-app/main/default/customMetadata/CLM_Environment_Setting.S1.md-meta.xml b/force-app/main/default/customMetadata/CLM_Environment_Setting.S1.md-meta.xml new file mode 100644 index 0000000..806b697 --- /dev/null +++ b/force-app/main/default/customMetadata/CLM_Environment_Setting.S1.md-meta.xml @@ -0,0 +1,13 @@ + + + + false + + Environment_Code__c + S1 + + + Default_Destination_Document_Name_Prefix__c + Review + + diff --git a/force-app/main/default/customMetadata/CLM_Environment_Setting.UAT.md-meta.xml b/force-app/main/default/customMetadata/CLM_Environment_Setting.UAT.md-meta.xml new file mode 100644 index 0000000..382831a --- /dev/null +++ b/force-app/main/default/customMetadata/CLM_Environment_Setting.UAT.md-meta.xml @@ -0,0 +1,25 @@ + + + + false + + Environment_Code__c + UAT + + + Destination_Root_Folder_Href__c + https://apiuatna11.springcm.com/v2/bccae332-c7db-4892-ab85-257df0f70fea/folders/12220442-b12e-f111-84fc-88e9a4bd0d9c + + + Template_Root_Folder_Href__c + https://apiuatna11.springcm.com/v2/bccae332-c7db-4892-ab85-257df0f70fea/folders/12220442-b12e-f111-84fc-88e9a4bd0d9c + + + Default_Template_Document_Href__c + https://apiuatna11.springcm.com/v2/bccae332-c7db-4892-ab85-257df0f70fea/documents/a0cbc0e6-d87d-459e-8d63-66baa47878f3 + + + Default_Destination_Document_Name_Prefix__c + Review + + diff --git a/force-app/main/default/customMetadata/CLM_Letter_Definition.DTC_CLM_Demo_Appraiser_Review.md-meta.xml b/force-app/main/default/customMetadata/CLM_Letter_Definition.DTC_CLM_Demo_Appraiser_Review.md-meta.xml new file mode 100644 index 0000000..9dbeed4 --- /dev/null +++ b/force-app/main/default/customMetadata/CLM_Letter_Definition.DTC_CLM_Demo_Appraiser_Review.md-meta.xml @@ -0,0 +1,37 @@ + + + + false + + Account_Code__c + DTC_CLM_Demo + + + Letter_Code__c + APPRAISER_REVIEW + + + Letter_Display_Name__c + Appraiser Review Letter + + + Description__c + Current appraiser letter template flow. + + + Active__c + true + + + Is_Default__c + true + + + Sort_Order__c + 10 + + + Default_Destination_Document_Name_Prefix__c + Review + + diff --git a/force-app/main/default/customMetadata/CLM_Letter_Definition.DTC_CLM_Demo_Education_Letter.md-meta.xml b/force-app/main/default/customMetadata/CLM_Letter_Definition.DTC_CLM_Demo_Education_Letter.md-meta.xml new file mode 100644 index 0000000..bb08718 --- /dev/null +++ b/force-app/main/default/customMetadata/CLM_Letter_Definition.DTC_CLM_Demo_Education_Letter.md-meta.xml @@ -0,0 +1,37 @@ + + + + false + + Account_Code__c + DTC_CLM_Demo + + + Letter_Code__c + EDUCATION_LETTER + + + Letter_Display_Name__c + Education Letter + + + Description__c + Education / guidance letter. + + + Active__c + true + + + Is_Default__c + false + + + Sort_Order__c + 40 + + + Default_Destination_Document_Name_Prefix__c + Education + + diff --git a/force-app/main/default/customMetadata/CLM_Letter_Definition.DTC_CLM_Demo_Intent_to_Remove_Letter.md-meta.xml b/force-app/main/default/customMetadata/CLM_Letter_Definition.DTC_CLM_Demo_Intent_to_Remove_Letter.md-meta.xml new file mode 100644 index 0000000..ace631b --- /dev/null +++ b/force-app/main/default/customMetadata/CLM_Letter_Definition.DTC_CLM_Demo_Intent_to_Remove_Letter.md-meta.xml @@ -0,0 +1,37 @@ + + + + false + + Account_Code__c + DTC_CLM_Demo + + + Letter_Code__c + INTENT_TO_REMOVE_LETTER + + + Letter_Display_Name__c + Intent to Remove Letter + + + Description__c + Intent to Remove letter. + + + Active__c + true + + + Is_Default__c + false + + + Sort_Order__c + 30 + + + Default_Destination_Document_Name_Prefix__c + Intent_Remove + + diff --git a/force-app/main/default/customMetadata/CLM_Letter_Definition.DTC_CLM_Demo_NOD_Letter.md-meta.xml b/force-app/main/default/customMetadata/CLM_Letter_Definition.DTC_CLM_Demo_NOD_Letter.md-meta.xml new file mode 100644 index 0000000..55a74f0 --- /dev/null +++ b/force-app/main/default/customMetadata/CLM_Letter_Definition.DTC_CLM_Demo_NOD_Letter.md-meta.xml @@ -0,0 +1,37 @@ + + + + false + + Account_Code__c + DTC_CLM_Demo + + + Letter_Code__c + NOD_LETTER + + + Letter_Display_Name__c + NOD Letter + + + Description__c + Notice of Deficiency letter. + + + Active__c + true + + + Is_Default__c + false + + + Sort_Order__c + 20 + + + Default_Destination_Document_Name_Prefix__c + NOD + + diff --git a/force-app/main/default/customMetadata/CLM_Letter_Definition.DTC_HUD_Demo_Appraiser_Review.md-meta.xml b/force-app/main/default/customMetadata/CLM_Letter_Definition.DTC_HUD_Demo_Appraiser_Review.md-meta.xml new file mode 100644 index 0000000..18b4120 --- /dev/null +++ b/force-app/main/default/customMetadata/CLM_Letter_Definition.DTC_HUD_Demo_Appraiser_Review.md-meta.xml @@ -0,0 +1,37 @@ + + + + false + + Account_Code__c + DTC_HUD_Demo + + + Letter_Code__c + APPRAISER_REVIEW + + + Letter_Display_Name__c + Appraiser Review Letter + + + Description__c + Current appraiser letter template flow. + + + Active__c + true + + + Is_Default__c + true + + + Sort_Order__c + 10 + + + Default_Destination_Document_Name_Prefix__c + Review + + diff --git a/force-app/main/default/customMetadata/CLM_Letter_Definition.DTC_HUD_Demo_Education_Letter.md-meta.xml b/force-app/main/default/customMetadata/CLM_Letter_Definition.DTC_HUD_Demo_Education_Letter.md-meta.xml new file mode 100644 index 0000000..3ac322f --- /dev/null +++ b/force-app/main/default/customMetadata/CLM_Letter_Definition.DTC_HUD_Demo_Education_Letter.md-meta.xml @@ -0,0 +1,13 @@ + + + + false + Account_Code__cDTC_HUD_Demo + Letter_Code__cEDUCATION_LETTER + Letter_Display_Name__cEducation Letter + Description__cEducation / guidance letter. + Active__ctrue + Is_Default__cfalse + Sort_Order__c40 + Default_Destination_Document_Name_Prefix__cEducation + diff --git a/force-app/main/default/customMetadata/CLM_Letter_Definition.DTC_HUD_Demo_Intent_to_Remove_Letter.md-meta.xml b/force-app/main/default/customMetadata/CLM_Letter_Definition.DTC_HUD_Demo_Intent_to_Remove_Letter.md-meta.xml new file mode 100644 index 0000000..7974b3e --- /dev/null +++ b/force-app/main/default/customMetadata/CLM_Letter_Definition.DTC_HUD_Demo_Intent_to_Remove_Letter.md-meta.xml @@ -0,0 +1,13 @@ + + + + false + Account_Code__cDTC_HUD_Demo + Letter_Code__cINTENT_TO_REMOVE_LETTER + Letter_Display_Name__cIntent to Remove Letter + Description__cIntent to Remove letter. + Active__ctrue + Is_Default__cfalse + Sort_Order__c30 + Default_Destination_Document_Name_Prefix__cIntent_Remove + diff --git a/force-app/main/default/customMetadata/CLM_Letter_Definition.DTC_HUD_Demo_NOD_Letter.md-meta.xml b/force-app/main/default/customMetadata/CLM_Letter_Definition.DTC_HUD_Demo_NOD_Letter.md-meta.xml new file mode 100644 index 0000000..2d98eb2 --- /dev/null +++ b/force-app/main/default/customMetadata/CLM_Letter_Definition.DTC_HUD_Demo_NOD_Letter.md-meta.xml @@ -0,0 +1,13 @@ + + + + false + Account_Code__cDTC_HUD_Demo + Letter_Code__cNOD_LETTER + Letter_Display_Name__cNOD Letter + Description__cNotice of Deficiency letter. + Active__ctrue + Is_Default__cfalse + Sort_Order__c20 + Default_Destination_Document_Name_Prefix__cNOD + diff --git a/force-app/main/default/customMetadata/CLM_Letter_Definition.DTC_IAM_Ent_Intent_Remove.md-meta.xml b/force-app/main/default/customMetadata/CLM_Letter_Definition.DTC_IAM_Ent_Intent_Remove.md-meta.xml new file mode 100644 index 0000000..93ca34f --- /dev/null +++ b/force-app/main/default/customMetadata/CLM_Letter_Definition.DTC_IAM_Ent_Intent_Remove.md-meta.xml @@ -0,0 +1,13 @@ + + + + false + Account_Code__cDTC_IAM_Enterprise + Letter_Code__cINTENT_TO_REMOVE_LETTER + Letter_Display_Name__cIntent to Remove Letter + Description__cIntent to Remove letter. + Active__ctrue + Is_Default__cfalse + Sort_Order__c30 + Default_Destination_Document_Name_Prefix__cIntent_Remove + diff --git a/force-app/main/default/customMetadata/CLM_Letter_Definition.DTC_IAM_Enterprise_Appraiser_Review.md-meta.xml b/force-app/main/default/customMetadata/CLM_Letter_Definition.DTC_IAM_Enterprise_Appraiser_Review.md-meta.xml new file mode 100644 index 0000000..784851f --- /dev/null +++ b/force-app/main/default/customMetadata/CLM_Letter_Definition.DTC_IAM_Enterprise_Appraiser_Review.md-meta.xml @@ -0,0 +1,37 @@ + + + + false + + Account_Code__c + DTC_IAM_Enterprise + + + Letter_Code__c + APPRAISER_REVIEW + + + Letter_Display_Name__c + Appraiser Review Letter + + + Description__c + Current appraiser letter template flow. + + + Active__c + true + + + Is_Default__c + true + + + Sort_Order__c + 10 + + + Default_Destination_Document_Name_Prefix__c + Review + + diff --git a/force-app/main/default/customMetadata/CLM_Letter_Definition.DTC_IAM_Enterprise_Education_Letter.md-meta.xml b/force-app/main/default/customMetadata/CLM_Letter_Definition.DTC_IAM_Enterprise_Education_Letter.md-meta.xml new file mode 100644 index 0000000..62b4188 --- /dev/null +++ b/force-app/main/default/customMetadata/CLM_Letter_Definition.DTC_IAM_Enterprise_Education_Letter.md-meta.xml @@ -0,0 +1,13 @@ + + + + false + Account_Code__cDTC_IAM_Enterprise + Letter_Code__cEDUCATION_LETTER + Letter_Display_Name__cEducation Letter + Description__cEducation / guidance letter. + Active__ctrue + Is_Default__cfalse + Sort_Order__c40 + Default_Destination_Document_Name_Prefix__cEducation + diff --git a/force-app/main/default/customMetadata/CLM_Letter_Definition.DTC_IAM_Enterprise_NOD_Letter.md-meta.xml b/force-app/main/default/customMetadata/CLM_Letter_Definition.DTC_IAM_Enterprise_NOD_Letter.md-meta.xml new file mode 100644 index 0000000..09de142 --- /dev/null +++ b/force-app/main/default/customMetadata/CLM_Letter_Definition.DTC_IAM_Enterprise_NOD_Letter.md-meta.xml @@ -0,0 +1,13 @@ + + + + false + Account_Code__cDTC_IAM_Enterprise + Letter_Code__cNOD_LETTER + Letter_Display_Name__cNOD Letter + Description__cNotice of Deficiency letter. + Active__ctrue + Is_Default__cfalse + Sort_Order__c20 + Default_Destination_Document_Name_Prefix__cNOD + diff --git a/force-app/main/default/flexipages/Appraiser_Case_Record_Page.flexipage-meta.xml b/force-app/main/default/flexipages/Appraiser_Case_Record_Page.flexipage-meta.xml new file mode 100644 index 0000000..7ff0805 --- /dev/null +++ b/force-app/main/default/flexipages/Appraiser_Case_Record_Page.flexipage-meta.xml @@ -0,0 +1,386 @@ + + + + + + + collapsed + false + + + enableActionsConfiguration + false + + + enableActionsInNative + false + + + hideChatterActions + false + + + numVisibleActions + 3 + + force:highlightsPanel + force_highlightsPanel + + + Replace + header + Region + + + + + + relatedListComponentOverride + NONE + + + rowsToDisplay + 10 + + + showActionBar + true + + force:relatedListContainer + force_relatedListContainer + + + Replace + relatedTabContent + Facet + + + + + + uiBehavior + none + + Record.OwnerId + RecordOwnerIdField + + + + + + uiBehavior + none + + Record.Property_Street__c + RecordProperty_Street_cField + + + + + + uiBehavior + none + + Record.Property_City__c + RecordProperty_City_cField + + + + + + uiBehavior + none + + Record.Property_State_Province__c + RecordProperty_State_Province_cField + + + + + + uiBehavior + none + + Record.Property_Postal_Code__c + RecordProperty_Postal_Code_cField + + + + + + uiBehavior + none + + Record.Property_Country__c + RecordProperty_Country_cField + + + Facet-f500e2fb-11c3-416b-9dc6-9d41da18f8b6 + Facet + + + + + + uiBehavior + none + + Record.Name + RecordNameField + + + + + + uiBehavior + none + + Record.Appraiser_Field_Review_Date__c + RecordAppraiser_Field_Review_Date_cField + + + + + + uiBehavior + none + + Record.CreatedById + RecordCreatedByIdField + + + + + + uiBehavior + none + + Record.LastModifiedById + RecordLastModifiedByIdField + + + Facet-dc9d7e8f-5478-43ef-a95e-3f61960274fa + Facet + + + + + + body + Facet-f500e2fb-11c3-416b-9dc6-9d41da18f8b6 + + flexipage:column + flexipage_column + + + + + + body + Facet-dc9d7e8f-5478-43ef-a95e-3f61960274fa + + flexipage:column + flexipage_column2 + + + Facet-70cfd25b-1515-494b-91d2-98730c66f733 + Facet + + + + + force:detailPanel + force_detailPanel + + + + + + columns + Facet-70cfd25b-1515-494b-91d2-98730c66f733 + + + horizontalAlignment + false + + + label + Section + + flexipage:fieldSection + flexipage_fieldSection + + + Replace + detailTabContent + Facet + + + + + + body + previewTabContent + + + title + CLM Preview + + flexipage:tab + clmPreviewTab + + + + + + body + esignTabContent + + + title + Docusign eSignature + + flexipage:tab + esignWorkbenchTab + + + + + + body + relatedTabContent + + + title + Standard.Tab.relatedLists + + flexipage:tab + relatedListsTab + + + + + + active + true + + + body + detailTabContent + + + title + Standard.Tab.detail + + flexipage:tab + detailTab + + + Replace + maintabs + Facet + + + + + c:docusignEsignWorkbench + c_docusignEsignWorkbench + + + esignTabContent + Facet + + + + + c:clmRequestPreview + c_clmRequestPreview + + + previewTabContent + Facet + + + + + + showLegacyActivityComposer + false + + runtime_sales_activities:activityPanel + runtime_sales_activities_activityPanel + + + Replace + activityTabContent + Facet + + + + + + active + true + + + body + activityTabContent + + + title + Standard.Tab.activity + + flexipage:tab + activityTab + + + Replace + sidebartabs + Facet + + + + + + label + Tabs + + + tabs + maintabs + + flexipage:tabset + flexipage_tabset + + + Replace + main + Region + + + + + + label + Tabs + + + tabs + sidebartabs + + flexipage:tabset + flexipage_tabset2 + + + Replace + sidebar + Region + + Appraiser Case Record Page + flexipage__default_rec_L + Appraiser_Case__c + + RecordPage + diff --git a/force-app/main/default/layouts/Appraiser_Case_Deficiency__c-Appraiser Case Deficiency Layout.layout-meta.xml b/force-app/main/default/layouts/Appraiser_Case_Deficiency__c-Appraiser Case Deficiency Layout.layout-meta.xml new file mode 100644 index 0000000..a2d280e --- /dev/null +++ b/force-app/main/default/layouts/Appraiser_Case_Deficiency__c-Appraiser Case Deficiency Layout.layout-meta.xml @@ -0,0 +1,49 @@ + + + + false + true + true + + + + Readonly + Name + + + Edit + Appraiser_Case__c + + + Edit + Deficiency_Number__c + + + + + + + false + true + true + + + + Edit + Description__c + + + + + Edit + Resolution__c + + + + + false + false + false + false + false + diff --git a/force-app/main/default/layouts/Appraiser_Case__c-Appraiser Case Layout.layout-meta.xml b/force-app/main/default/layouts/Appraiser_Case__c-Appraiser Case Layout.layout-meta.xml index 8ef9c1d..56a9bcc 100644 --- a/force-app/main/default/layouts/Appraiser_Case__c-Appraiser Case Layout.layout-meta.xml +++ b/force-app/main/default/layouts/Appraiser_Case__c-Appraiser Case Layout.layout-meta.xml @@ -7,22 +7,79 @@ - Required + Readonly Name Edit Appraiser_Field_Review_Date__c + + + + + + false + true + true + + Edit - CreatedDate + Appraiser_Name__c + + + Edit + Appraiser_Salutation__c + + + Edit + Appraiser_Last_Name__c + + + Edit + Letter_Sent_Date__c Edit - LastModifiedDate + FHA_Case_Number__c + + + Edit + Appraiser_Email__c + + + + + + false + true + true + + + + Edit + Appraiser_Street__c + + + Edit + Appraiser_City__c + + + Edit + Appraiser_State_Province__c + + + + + Edit + Appraiser_Postal_Code__c + + + Edit + Appraiser_Country__c @@ -58,19 +115,94 @@ + + false + true + true + + + + Readonly + Last_DocGen_Status__c + + + Readonly + Last_CLM_Account_Code__c + + + Readonly + Last_DocGen_Task_Id__c + + + Readonly + Generated_Document_Id__c + + + Readonly + Attached_File_Content_Document_Id__c + + + Readonly + Last_DocGen_Requested_At__c + + + Readonly + Last_DocGen_Completed_At__c + + + + + Readonly + Last_DocGen_Task_Url__c + + + Readonly + Generated_Document_Url__c + + + Readonly + Attached_File_Url__c + + + Readonly + Last_Template_Document_Href__c + + + Readonly + Last_Destination_Folder_Href__c + + + Readonly + Last_DocGen_Message__c + + + + + + Record + + Appraiser_Case__c.Generate_Review_Letter + QuickAction + 0 + + + Edit + StandardButton + 1 + + + Delete + StandardButton + 2 + + NAME Deficiency_Number__c Description__c + Reference__c Resolution__c - Sort_Order__c - Appraiser_Deficiencies__r - - - SUBJECT - STATUS - DUE_DATE - OpenActivities + Appraiser_Case_Deficiency__c.Appraiser_Case__c false true diff --git a/force-app/main/default/layouts/CLM_Account_Setting__mdt-CLM Account Setting Layout.layout-meta.xml b/force-app/main/default/layouts/CLM_Account_Setting__mdt-CLM Account Setting Layout.layout-meta.xml new file mode 100644 index 0000000..2cc4ffa --- /dev/null +++ b/force-app/main/default/layouts/CLM_Account_Setting__mdt-CLM Account Setting Layout.layout-meta.xml @@ -0,0 +1,112 @@ + + + + false + true + true + + + + Required + MasterLabel + + + Required + DeveloperName + + + Edit + Account_Code__c + + + Edit + Account_Display_Name__c + + + Edit + Active__c + + + + + Edit + Environment_Code__c + + + Edit + NamespacePrefix + + + Edit + IsProtected + + + Edit + CLM_Account_Id__c + + + Edit + Default_Destination_Document_Name_Prefix__c + + + + + + false + true + true + + + + Edit + CLM_Api_Named_Credential__c + + + Edit + CLM_Download_Named_Credential__c + + + + + Edit + Template_Root_Folder_Href__c + + + Edit + Destination_Root_Folder_Href__c + + + Edit + Default_Template_Document_Href__c + + + + + + false + true + true + + + + Edit + ESignature_Auth_Named_Credential__c + + + Edit + ESignature_Rest_Named_Credential__c + + + Edit + ESignature_Account_Id__c + + + + + + false + false + false + false + false + diff --git a/force-app/main/default/layouts/CLM_Letter_Definition__mdt-CLM Letter Definition Layout.layout-meta.xml b/force-app/main/default/layouts/CLM_Letter_Definition__mdt-CLM Letter Definition Layout.layout-meta.xml new file mode 100644 index 0000000..2532c8a --- /dev/null +++ b/force-app/main/default/layouts/CLM_Letter_Definition__mdt-CLM Letter Definition Layout.layout-meta.xml @@ -0,0 +1,90 @@ + + + + false + true + true + + + + Required + MasterLabel + + + Required + DeveloperName + + + Edit + Account_Code__c + + + Edit + Letter_Code__c + + + Edit + Letter_Display_Name__c + + + Edit + Description__c + + + + + Edit + Active__c + + + Edit + Is_Default__c + + + Edit + Sort_Order__c + + + Edit + NamespacePrefix + + + Edit + IsProtected + + + + + + false + true + true + + + + Edit + Template_Root_Folder_Href__c + + + Edit + Destination_Root_Folder_Href__c + + + + + Edit + Default_Template_Document_Href__c + + + Edit + Default_Destination_Document_Name_Prefix__c + + + + + false + false + false + false + false + diff --git a/force-app/main/default/lwc/clmDocGenWorkbench/clmDocGenWorkbench.css b/force-app/main/default/lwc/clmDocGenWorkbench/clmDocGenWorkbench.css new file mode 100644 index 0000000..23651f6 --- /dev/null +++ b/force-app/main/default/lwc/clmDocGenWorkbench/clmDocGenWorkbench.css @@ -0,0 +1,80 @@ +.panel { + display: grid; + gap: 1rem; + padding: 1rem; +} + +.section { + border: 1px solid #d8dde6; + border-radius: 0.5rem; + padding: 1rem; + display: grid; + gap: 0.75rem; +} + +.section-title { + font-size: 0.95rem; + font-weight: 700; + margin: 0; +} + +.button-row { + display: flex; + gap: 0.75rem; + flex-wrap: wrap; +} + +.hint { + color: #3e3e3c; + font-size: 0.85rem; + margin: 0; +} + +.result { + border-radius: 0.5rem; + padding: 0.75rem 1rem; +} + +.result-success { + background: #e8f5e9; + color: #1b5e20; +} + +.result-error { + background: #fdecea; + color: #8a1f11; +} + +.result-info { + background: #eef4ff; + color: #16325c; +} + +.deficiency-list { + display: grid; + gap: 0.75rem; +} + +.deficiency-item { + border-top: 1px solid #d8dde6; + padding-top: 0.75rem; +} + +.json-block { + margin-top: 0.75rem; + border-top: 1px solid rgba(0, 0, 0, 0.1); + padding-top: 0.75rem; +} + +.json-title { + font-weight: 700; + margin: 0 0 0.5rem; +} + +.json-block pre { + margin: 0; + white-space: pre-wrap; + word-break: break-word; + font-size: 0.8rem; + line-height: 1.4; +} diff --git a/force-app/main/default/lwc/clmDocGenWorkbench/clmDocGenWorkbench.html b/force-app/main/default/lwc/clmDocGenWorkbench/clmDocGenWorkbench.html new file mode 100644 index 0000000..7d80fa3 --- /dev/null +++ b/force-app/main/default/lwc/clmDocGenWorkbench/clmDocGenWorkbench.html @@ -0,0 +1,200 @@ + diff --git a/force-app/main/default/lwc/clmDocGenWorkbench/clmDocGenWorkbench.js b/force-app/main/default/lwc/clmDocGenWorkbench/clmDocGenWorkbench.js new file mode 100644 index 0000000..77b86ee --- /dev/null +++ b/force-app/main/default/lwc/clmDocGenWorkbench/clmDocGenWorkbench.js @@ -0,0 +1,503 @@ +import { LightningElement, api, wire } from 'lwc'; +import { getRecord } from 'lightning/uiRecordApi'; +import { ShowToastEvent } from 'lightning/platformShowToastEvent'; +import { CloseActionScreenEvent } from 'lightning/actions'; +import getCaseContext from '@salesforce/apex/CLMAdminService.getCaseContext'; +import attachGeneratedDocumentToCase from '@salesforce/apex/CLMAdminService.attachGeneratedDocumentToCase'; +import generateDocument from '@salesforce/apex/CLMAdminService.generateDocument'; +import getAccountSettings from '@salesforce/apex/CLMAdminService.getAccountSettings'; +import getLetterSettings from '@salesforce/apex/CLMAdminService.getLetterSettings'; +import listAccountSettings from '@salesforce/apex/CLMAdminService.listAccountSettings'; +import listLetterSettings from '@salesforce/apex/CLMAdminService.listLetterSettings'; +import getFolderContents from '@salesforce/apex/CLMAdminService.getFolderContents'; +import getTaskStatus from '@salesforce/apex/CLMAdminService.getTaskStatus'; + +const CASE_FIELDS = ['Appraiser_Case__c.Name']; + +export default class ClmDocGenWorkbench extends LightningElement { + @api recordId; + @api objectApiName; + + accountCode = ''; + destinationDocName = ''; + templateFolderHref = ''; + templateDocHref = ''; + destinationFolderHref = ''; + + templateFolderName = ''; + destinationFolderName = ''; + templateParentFolderHref = ''; + destinationParentFolderHref = ''; + templateSubfolderOptions = []; + templateDocumentOptions = []; + destinationSubfolderOptions = []; + destinationDocumentOptions = []; + + selectedTemplateSubfolderHref = ''; + selectedDestinationSubfolderHref = ''; + + resultMessage = ''; + resultVariant = 'info'; + taskId = ''; + taskStatus = ''; + taskDetailsJson = ''; + attachedFileUrl = ''; + attachedFileTitle = ''; + isBusy = false; + hasLoadedDefaults = false; + caseNumber = ''; + caseContext; + accountOptions = []; + selectedAccountSettings; + letterCode = ''; + letterOptions = []; + selectedLetterSettings; + + @wire(getRecord, { recordId: '$recordId', fields: CASE_FIELDS }) + wiredCase({ data }) { + if (data) { + this.caseNumber = data.fields.Name.value; + } + + if (data && !this.destinationDocName) { + this.destinationDocName = this.buildDefaultDocumentName('Review'); + } + + if (data && !this.hasLoadedDefaults) { + this.initializeDefaults(); + } + + if (data && !this.caseContext) { + this.loadCaseContext(); + } + } + + get disableGenerate() { + return this.isBusy || !this.recordId || !this.accountCode || !this.templateDocHref || !this.destinationFolderHref || !this.destinationDocName; + } + + get disableStatusCheck() { + return this.isBusy || !this.taskId; + } + + get disableTemplateFolderOpen() { + return this.isBusy || !this.selectedTemplateSubfolderHref; + } + + get disableTemplateFolderUp() { + return this.isBusy || !this.templateParentFolderHref; + } + + get disableDestinationFolderOpen() { + return this.isBusy || !this.selectedDestinationSubfolderHref; + } + + get disableDestinationFolderUp() { + return this.isBusy || !this.destinationParentFolderHref; + } + + get resultClass() { + return `result result-${this.resultVariant}`; + } + + get hasDeficiencies() { + return this.caseContext && this.caseContext.deficiencies && this.caseContext.deficiencies.length > 0; + } + + get selectedTemplateSummary() { + const selected = this.templateDocumentOptions.find((item) => item.value === this.templateDocHref); + return selected ? selected.label : this.templateDocHref; + } + + get lastTaskUrl() { + return this.caseContext ? this.caseContext.lastDocGenTaskUrl : null; + } + + get generatedDocumentUrl() { + return this.caseContext ? this.caseContext.generatedDocumentUrl : null; + } + + get generatedDocumentId() { + return this.caseContext ? this.caseContext.generatedDocumentId : null; + } + + get attachedSalesforceFileUrl() { + return this.attachedFileUrl || (this.caseContext ? this.caseContext.attachedFileUrl : null); + } + + get hasAttachedSalesforceFile() { + return Boolean(this.attachedSalesforceFileUrl); + } + + get disableAttachGeneratedDocument() { + return this.isBusy || !this.generatedDocumentId; + } + + get hasTaskDetails() { + return Boolean(this.taskDetailsJson); + } + + get showCloseButton() { + return true; + } + + get selectedAccountEnvironment() { + return this.selectedAccountSettings ? this.selectedAccountSettings.environment : ''; + } + + get selectedLetterDescription() { + return this.selectedLetterSettings ? this.selectedLetterSettings.description : ''; + } + + async handleAccountChange(event) { + this.accountCode = event.detail.value; + await this.initializeDefaults(true); + } + + async handleLetterChange(event) { + this.letterCode = event.detail.value; + await this.initializeDefaults(true); + } + + handleDestinationNameChange(event) { + this.destinationDocName = event.target.value; + } + + handleTemplateFolderHrefChange(event) { + this.templateFolderHref = event.target.value; + } + + handleTemplateSubfolderChange(event) { + this.selectedTemplateSubfolderHref = event.detail.value; + } + + handleTemplateDocHrefChange(event) { + this.templateDocHref = event.detail.value || event.target.value; + } + + handleDestinationFolderHrefChange(event) { + this.destinationFolderHref = event.target.value; + } + + handleDestinationSubfolderChange(event) { + this.selectedDestinationSubfolderHref = event.detail.value; + } + + handleDestinationDocumentSelection(event) { + this.destinationDocName = event.detail.value; + } + + async loadTemplateFolder() { + await this.loadFolder('template', this.templateFolderHref); + } + + async openSelectedTemplateFolder() { + this.templateFolderHref = this.selectedTemplateSubfolderHref; + await this.loadTemplateFolder(); + } + + async openTemplateParentFolder() { + this.templateFolderHref = this.templateParentFolderHref; + await this.loadTemplateFolder(); + } + + async loadDestinationFolder() { + await this.loadFolder('destination', this.destinationFolderHref); + } + + async openSelectedDestinationFolder() { + this.destinationFolderHref = this.selectedDestinationSubfolderHref; + await this.loadDestinationFolder(); + } + + async openDestinationParentFolder() { + this.destinationFolderHref = this.destinationParentFolderHref; + await this.loadDestinationFolder(); + } + + async initializeDefaults(forceReload = false) { + if (this.hasLoadedDefaults && !forceReload) { + return; + } + + this.isBusy = true; + this.clearResult(); + + try { + await this.loadAccountOptions(); + const settings = await getAccountSettings({ accountCode: this.accountCode }); + await this.loadLetterOptions(forceReload); + const letterSettings = await getLetterSettings({ accountCode: this.accountCode, letterCode: this.letterCode }); + await this.applySettings(settings, letterSettings, forceReload); + this.hasLoadedDefaults = true; + } catch (error) { + this.handleError(error, 'Unable to load CLM account defaults'); + } finally { + this.isBusy = false; + } + } + + async applySettings(settings, letterSettings, forceReload) { + this.selectedAccountSettings = settings; + this.selectedLetterSettings = letterSettings; + const prefix = letterSettings && letterSettings.defaultDocumentNamePrefix + ? letterSettings.defaultDocumentNamePrefix + : settings && settings.defaultDocumentNamePrefix + ? settings.defaultDocumentNamePrefix + : 'Review'; + if (forceReload || !this.destinationDocName) { + this.destinationDocName = this.buildDefaultDocumentName(prefix); + } + + if (settings || letterSettings) { + if (letterSettings && letterSettings.templateRootFolderHref) { + this.templateFolderHref = letterSettings.templateRootFolderHref; + } else if (settings && settings.templateRootFolderHref) { + this.templateFolderHref = settings.templateRootFolderHref; + } + if ((forceReload || !this.templateDocHref) && letterSettings && letterSettings.defaultTemplateDocumentHref) { + this.templateDocHref = letterSettings.defaultTemplateDocumentHref; + } else if ((forceReload || !this.templateDocHref) && settings && settings.defaultTemplateDocumentHref) { + this.templateDocHref = settings.defaultTemplateDocumentHref; + } + if (letterSettings && letterSettings.destinationRootFolderHref) { + this.destinationFolderHref = letterSettings.destinationRootFolderHref; + } else if (settings && settings.destinationRootFolderHref) { + this.destinationFolderHref = settings.destinationRootFolderHref; + } + } + + if (this.templateFolderHref) { + await this.loadFolder('template', this.templateFolderHref, true); + } + if (this.destinationFolderHref) { + await this.loadFolder('destination', this.destinationFolderHref, true); + } + } + + async loadAccountOptions() { + const accounts = await listAccountSettings(); + this.accountOptions = (accounts || []).map((account) => ({ + label: account.accountDisplayName, + value: account.accountCode + })); + + if (!this.accountCode) { + if (this.caseContext && this.caseContext.lastClmAccountCode) { + this.accountCode = this.caseContext.lastClmAccountCode; + } else if (this.accountOptions.length > 0) { + this.accountCode = this.accountOptions[0].value; + } + } + } + + async loadLetterOptions(forceReload) { + const letters = await listLetterSettings({ accountCode: this.accountCode }); + this.letterOptions = (letters || []).map((letter) => ({ + label: letter.letterDisplayName, + value: letter.letterCode + })); + + const hasExistingSelection = this.letterOptions.some((letter) => letter.value === this.letterCode); + if (!hasExistingSelection || forceReload || !this.letterCode) { + const defaultLetter = (letters || []).find((letter) => letter.isDefault); + this.letterCode = defaultLetter + ? defaultLetter.letterCode + : this.letterOptions.length > 0 + ? this.letterOptions[0].value + : ''; + } + } + + buildDefaultDocumentName(prefix) { + const normalizedPrefix = prefix || 'Review'; + if (this.caseNumber) { + return `${normalizedPrefix}_${this.caseNumber}.docx`; + } + return `${normalizedPrefix}.docx`; + } + + resetSelectionsToDefaults() { + this.hasLoadedDefaults = false; + this.templateFolderName = ''; + this.destinationFolderName = ''; + this.templateParentFolderHref = ''; + this.destinationParentFolderHref = ''; + this.templateSubfolderOptions = []; + this.templateDocumentOptions = []; + this.destinationSubfolderOptions = []; + this.destinationDocumentOptions = []; + this.selectedTemplateSubfolderHref = ''; + this.selectedDestinationSubfolderHref = ''; + this.initializeDefaults(true); + } + + async loadCaseContext() { + if (!this.recordId) { + return; + } + + try { + this.caseContext = await getCaseContext({ appraiserCaseId: this.recordId }); + if (this.caseContext && this.caseContext.caseNumber) { + this.caseNumber = this.caseContext.caseNumber; + } + if (this.caseContext && this.caseContext.lastDocGenTaskId) { + this.taskId = this.caseContext.lastDocGenTaskId; + } + if (this.caseContext && this.caseContext.lastClmAccountCode && this.accountCode !== this.caseContext.lastClmAccountCode) { + this.accountCode = this.caseContext.lastClmAccountCode; + if (this.hasLoadedDefaults) { + await this.initializeDefaults(true); + } + } + if (this.caseContext && this.caseContext.lastDocGenStatus && !this.taskStatus) { + this.taskStatus = this.caseContext.lastDocGenStatus; + } + if (this.caseContext && this.caseContext.attachedFileUrl && !this.attachedFileUrl) { + this.attachedFileUrl = this.caseContext.attachedFileUrl; + } + } catch (error) { + this.handleError(error, 'Unable to load case context'); + } + } + + async loadFolder(kind, folderHref, preserveResult = false) { + if (!folderHref) { + this.showToast('Missing folder href', 'Enter a folder href before loading.', 'warning'); + return; + } + + this.isBusy = true; + if (!preserveResult) { + this.clearResult(); + } + + try { + const contents = await getFolderContents({ folderHref, accountCode: this.accountCode }); + const subfolders = (contents.folders || []).map((item) => ({ label: item.name, value: item.href })); + + if (kind === 'template') { + this.templateFolderHref = contents.folder ? contents.folder.href : folderHref; + this.templateFolderName = contents.folder ? contents.folder.name : ''; + this.templateParentFolderHref = contents.folder ? contents.folder.parentHref : ''; + this.templateSubfolderOptions = subfolders; + this.templateDocumentOptions = (contents.documents || []).map((item) => ({ label: item.name, value: item.href })); + this.selectedTemplateSubfolderHref = ''; + } else { + this.destinationFolderHref = contents.folder ? contents.folder.href : folderHref; + this.destinationFolderName = contents.folder ? contents.folder.name : ''; + this.destinationParentFolderHref = contents.folder ? contents.folder.parentHref : ''; + this.destinationSubfolderOptions = subfolders; + this.destinationDocumentOptions = (contents.documents || []).map((item) => ({ label: item.name, value: item.name })); + this.selectedDestinationSubfolderHref = ''; + } + } catch (error) { + this.handleError(error, 'Unable to load folder contents'); + } finally { + this.isBusy = false; + } + } + + async generateDocument() { + this.isBusy = true; + this.clearResult(); + + try { + const response = await generateDocument({ + appraiserCaseId: this.recordId, + templateDocHref: this.templateDocHref, + destinationFolderHref: this.destinationFolderHref, + destinationDocName: this.destinationDocName, + accountCode: this.accountCode + }); + + this.taskId = response.documentId; + this.taskStatus = response.taskStatus || ''; + this.taskDetailsJson = this.formatJsonString(response.taskDetailsJson); + this.resultVariant = response.success ? 'success' : 'error'; + this.resultMessage = response.message; + await this.loadCaseContext(); + this.showToast(response.success ? 'Document submitted' : 'Submission failed', response.message, response.success ? 'success' : 'error'); + } catch (error) { + this.handleError(error, 'Document generation failed'); + } finally { + this.isBusy = false; + } + } + + async checkTaskStatus() { + this.isBusy = true; + this.clearResult(); + + try { + const response = await getTaskStatus({ appraiserCaseId: this.recordId, taskId: this.taskId, accountCode: this.accountCode }); + this.taskStatus = response.taskStatus || ''; + this.taskDetailsJson = this.formatJsonString(response.taskDetailsJson); + this.resultVariant = response.success ? 'success' : 'error'; + this.resultMessage = response.message; + await this.loadCaseContext(); + this.showToast('Task status updated', response.message, response.success ? 'success' : 'error'); + } catch (error) { + this.handleError(error, 'Unable to fetch task status'); + } finally { + this.isBusy = false; + } + } + + async attachGeneratedDocument() { + this.isBusy = true; + + try { + const result = await attachGeneratedDocumentToCase({ + appraiserCaseId: this.recordId, + accountCode: this.accountCode + }); + this.resultVariant = result.success ? 'success' : 'error'; + this.resultMessage = result.message; + this.attachedFileUrl = result.fileUrl || ''; + this.attachedFileTitle = result.fileTitle || ''; + await this.loadCaseContext(); + this.showToast('Document attached', result.message, result.success ? 'success' : 'error'); + } catch (error) { + this.handleError(error, 'Unable to attach generated document'); + } finally { + this.isBusy = false; + } + } + + closeAction() { + this.dispatchEvent(new CloseActionScreenEvent()); + } + + clearResult() { + this.resultMessage = ''; + this.resultVariant = 'info'; + this.taskDetailsJson = ''; + } + + handleError(error, title) { + const bodyMessage = error && error.body ? error.body.message : null; + const directMessage = error ? error.message : null; + const message = bodyMessage || directMessage || 'Unknown error'; + this.resultVariant = 'error'; + this.resultMessage = message; + this.showToast(title, message, 'error'); + } + + showToast(title, message, variant) { + this.dispatchEvent(new ShowToastEvent({ title, message, variant })); + } + + formatJsonString(value) { + if (!value) { + return ''; + } + + try { + return JSON.stringify(JSON.parse(value), null, 2); + } catch (e) { + return value; + } + } +} diff --git a/force-app/main/default/lwc/clmDocGenWorkbench/clmDocGenWorkbench.js-meta.xml b/force-app/main/default/lwc/clmDocGenWorkbench/clmDocGenWorkbench.js-meta.xml new file mode 100644 index 0000000..3339858 --- /dev/null +++ b/force-app/main/default/lwc/clmDocGenWorkbench/clmDocGenWorkbench.js-meta.xml @@ -0,0 +1,23 @@ + + + 63.0 + true + CLM Doc Gen Workbench + + lightning__RecordAction + lightning__RecordPage + + + + ScreenAction + + Appraiser_Case__c + + + + + Appraiser_Case__c + + + + diff --git a/force-app/main/default/lwc/clmRequestPreview/clmRequestPreview.css b/force-app/main/default/lwc/clmRequestPreview/clmRequestPreview.css new file mode 100644 index 0000000..3e27e4c --- /dev/null +++ b/force-app/main/default/lwc/clmRequestPreview/clmRequestPreview.css @@ -0,0 +1,65 @@ +.panel { + display: grid; + gap: 1rem; + padding: 1rem; +} + +.controls { + display: grid; + gap: 0.75rem; +} + +.button-row { + display: flex; + gap: 0.75rem; + flex-wrap: wrap; +} + +.section { + border: 1px solid #d8dde6; + border-radius: 0.5rem; + padding: 1rem; + display: grid; + gap: 0.75rem; +} + +.section-title { + font-size: 0.95rem; + font-weight: 700; + margin: 0; +} + +.hint { + color: #3e3e3c; + font-size: 0.85rem; + margin: 0; + word-break: break-word; +} + +.result { + border-radius: 0.5rem; + padding: 0.75rem 1rem; +} + +.result-success { + background: #e8f5e9; + color: #1b5e20; +} + +.result-error { + background: #fdecea; + color: #8a1f11; +} + +.result-info { + background: #eef4ff; + color: #16325c; +} + +.code-block { + margin: 0; + white-space: pre-wrap; + word-break: break-word; + font-size: 0.8rem; + line-height: 1.4; +} diff --git a/force-app/main/default/lwc/clmRequestPreview/clmRequestPreview.html b/force-app/main/default/lwc/clmRequestPreview/clmRequestPreview.html new file mode 100644 index 0000000..c993e69 --- /dev/null +++ b/force-app/main/default/lwc/clmRequestPreview/clmRequestPreview.html @@ -0,0 +1,67 @@ + diff --git a/force-app/main/default/lwc/clmRequestPreview/clmRequestPreview.js b/force-app/main/default/lwc/clmRequestPreview/clmRequestPreview.js new file mode 100644 index 0000000..878156f --- /dev/null +++ b/force-app/main/default/lwc/clmRequestPreview/clmRequestPreview.js @@ -0,0 +1,137 @@ +import { LightningElement, api } from 'lwc'; +import { ShowToastEvent } from 'lightning/platformShowToastEvent'; +import getDocGenPreview from '@salesforce/apex/CLMAdminService.getDocGenPreview'; +import listAccountSettings from '@salesforce/apex/CLMAdminService.listAccountSettings'; +import listLetterSettings from '@salesforce/apex/CLMAdminService.listLetterSettings'; + +export default class ClmRequestPreview extends LightningElement { + @api recordId; + @api objectApiName; + + accountCode = ''; + letterCode = ''; + accountOptions = []; + letterOptions = []; + preview; + isBusy = false; + message = ''; + messageVariant = 'info'; + + connectedCallback() { + this.initialize(); + } + + get hasPreview() { + return Boolean(this.preview); + } + + get resultClass() { + return `result result-${this.messageVariant}`; + } + + async initialize(forceReload = false) { + if (!this.recordId) { + return; + } + + this.isBusy = true; + this.clearMessage(); + + try { + const accounts = await listAccountSettings(); + this.accountOptions = (accounts || []).map((account) => ({ + label: account.accountDisplayName, + value: account.accountCode + })); + + if ((!this.accountCode || forceReload) && this.accountOptions.length > 0) { + this.accountCode = this.accountOptions[0].value; + } + + await this.loadLetterOptions(forceReload); + await this.loadPreview(); + } catch (error) { + this.handleError(error, 'Unable to initialize CLM preview'); + } finally { + this.isBusy = false; + } + } + + async loadLetterOptions(forceReload) { + const letters = await listLetterSettings({ accountCode: this.accountCode }); + this.letterOptions = (letters || []).map((letter) => ({ + label: letter.letterDisplayName, + value: letter.letterCode + })); + + const hasExistingSelection = this.letterOptions.some((letter) => letter.value === this.letterCode); + if (!hasExistingSelection || forceReload || !this.letterCode) { + const defaultLetter = (letters || []).find((letter) => letter.isDefault); + this.letterCode = defaultLetter + ? defaultLetter.letterCode + : this.letterOptions.length > 0 + ? this.letterOptions[0].value + : ''; + } + } + + async loadPreview() { + this.preview = await getDocGenPreview({ + appraiserCaseId: this.recordId, + accountCode: this.accountCode, + letterCode: this.letterCode + }); + this.showMessage('Preview loaded.', 'success'); + } + + async handleAccountChange(event) { + this.accountCode = event.detail.value; + await this.refreshAll(true); + } + + async handleLetterChange(event) { + this.letterCode = event.detail.value; + await this.refreshAll(false); + } + + async refreshAll(forceReloadLetters) { + this.isBusy = true; + this.clearMessage(); + + try { + if (forceReloadLetters) { + await this.loadLetterOptions(true); + } + await this.loadPreview(); + } catch (error) { + this.handleError(error, 'Unable to refresh CLM preview'); + } finally { + this.isBusy = false; + } + } + + clearMessage() { + this.message = ''; + this.messageVariant = 'info'; + } + + showMessage(message, variant) { + this.message = message; + this.messageVariant = variant; + } + + handleError(error, title) { + const bodyMessage = error && error.body ? error.body.message : null; + const directMessage = error ? error.message : null; + const message = bodyMessage || directMessage || 'Unknown error'; + + this.showMessage(message, 'error'); + this.dispatchEvent( + new ShowToastEvent({ + title, + message, + variant: 'error' + }) + ); + } +} diff --git a/force-app/main/default/lwc/clmRequestPreview/clmRequestPreview.js-meta.xml b/force-app/main/default/lwc/clmRequestPreview/clmRequestPreview.js-meta.xml new file mode 100644 index 0000000..c0775d6 --- /dev/null +++ b/force-app/main/default/lwc/clmRequestPreview/clmRequestPreview.js-meta.xml @@ -0,0 +1,16 @@ + + + 63.0 + true + CLM Request Preview + + lightning__RecordPage + + + + + Appraiser_Case__c + + + + diff --git a/force-app/main/default/lwc/docusignEsignWorkbench/docusignEsignWorkbench.css b/force-app/main/default/lwc/docusignEsignWorkbench/docusignEsignWorkbench.css new file mode 100644 index 0000000..ca09e6f --- /dev/null +++ b/force-app/main/default/lwc/docusignEsignWorkbench/docusignEsignWorkbench.css @@ -0,0 +1,64 @@ +.panel { + display: grid; + gap: 1rem; + padding: 1rem; +} + +.controls { + display: grid; + gap: 0.75rem; +} + +.section { + border: 1px solid #d8dde6; + border-radius: 0.5rem; + padding: 1rem; + display: grid; + gap: 0.75rem; +} + +.section-title { + font-size: 0.95rem; + font-weight: 700; + margin: 0; +} + +.button-row { + display: flex; + gap: 0.75rem; + flex-wrap: wrap; +} + +.hint { + color: #3e3e3c; + font-size: 0.85rem; + margin: 0; +} + +.result { + border-radius: 0.5rem; + padding: 0.75rem 1rem; +} + +.result-success { + background: #e8f5e9; + color: #1b5e20; +} + +.result-error { + background: #fdecea; + color: #8a1f11; +} + +.result-info { + background: #eef4ff; + color: #16325c; +} + +.json-block { + margin: 0; + white-space: pre-wrap; + word-break: break-word; + font-size: 0.8rem; + line-height: 1.4; +} diff --git a/force-app/main/default/lwc/docusignEsignWorkbench/docusignEsignWorkbench.html b/force-app/main/default/lwc/docusignEsignWorkbench/docusignEsignWorkbench.html new file mode 100644 index 0000000..e20a891 --- /dev/null +++ b/force-app/main/default/lwc/docusignEsignWorkbench/docusignEsignWorkbench.html @@ -0,0 +1,114 @@ + diff --git a/force-app/main/default/lwc/docusignEsignWorkbench/docusignEsignWorkbench.js b/force-app/main/default/lwc/docusignEsignWorkbench/docusignEsignWorkbench.js new file mode 100644 index 0000000..f2a041b --- /dev/null +++ b/force-app/main/default/lwc/docusignEsignWorkbench/docusignEsignWorkbench.js @@ -0,0 +1,233 @@ +import { LightningElement, api } from 'lwc'; +import { ShowToastEvent } from 'lightning/platformShowToastEvent'; +import getAccountConfig from '@salesforce/apex/DocusignESignatureService.getAccountConfig'; +import getLoginInformation from '@salesforce/apex/DocusignESignatureService.getLoginInformation'; +import getUserInfo from '@salesforce/apex/DocusignESignatureService.getUserInfo'; +import listAccounts from '@salesforce/apex/DocusignESignatureService.listAccounts'; +import listTemplates from '@salesforce/apex/DocusignESignatureService.listTemplates'; +import listEnvelopes from '@salesforce/apex/DocusignESignatureService.listEnvelopes'; +import listAccountSettings from '@salesforce/apex/CLMAdminService.listAccountSettings'; + +const TEMPLATE_COLUMNS = [ + { label: 'Template Name', fieldName: 'name', type: 'text' }, + { label: 'Template Id', fieldName: 'templateId', type: 'text' }, + { label: 'Shared', fieldName: 'shared', type: 'text' }, + { label: 'Last Modified', fieldName: 'lastModified', type: 'text' } +]; + +const ENVELOPE_COLUMNS = [ + { label: 'Subject', fieldName: 'emailSubject', type: 'text' }, + { label: 'Envelope Id', fieldName: 'envelopeId', type: 'text' }, + { label: 'Status', fieldName: 'status', type: 'text' }, + { label: 'Created', fieldName: 'createdDateTime', type: 'text' }, + { label: 'Completed', fieldName: 'completedDateTime', type: 'text' } +]; + +const ACCOUNT_COLUMNS = [ + { label: 'Account Name', fieldName: 'accountName', type: 'text' }, + { label: 'Account Id', fieldName: 'accountId', type: 'text' }, + { label: 'Base Url', fieldName: 'baseUri', type: 'text' }, + { label: 'Default', fieldName: 'isDefault', type: 'boolean' } +]; + +export default class DocusignEsignWorkbench extends LightningElement { + @api recordId; + @api objectApiName; + + accountOptions = []; + accountCode = ''; + accountConfig; + accountSummaries = []; + templates = []; + envelopes = []; + loginInfoJson = ''; + userInfoJson = ''; + isBusy = false; + message = ''; + messageVariant = 'info'; + fromDate = this.defaultFromDate(); + + templateColumns = TEMPLATE_COLUMNS; + envelopeColumns = ENVELOPE_COLUMNS; + accountColumns = ACCOUNT_COLUMNS; + + connectedCallback() { + this.initialize(); + } + + get hasAccountConfig() { + return Boolean(this.accountConfig); + } + + get selectedEnvironment() { + return this.accountConfig ? this.accountConfig.environment : ''; + } + + get selectedAccountId() { + return this.accountConfig ? this.accountConfig.eSignatureAccountId : ''; + } + + get hasAccounts() { + return this.accountSummaries.length > 0; + } + + get hasTemplates() { + return this.templates.length > 0; + } + + get hasEnvelopes() { + return this.envelopes.length > 0; + } + + get hasLoginInfo() { + return Boolean(this.loginInfoJson); + } + + get hasUserInfo() { + return Boolean(this.userInfoJson); + } + + get resultClass() { + return `result result-${this.messageVariant}`; + } + + async initialize(forceReload = false) { + if (this.isBusy) { + return; + } + + this.isBusy = true; + this.clearMessage(); + + try { + const accounts = await listAccountSettings(); + this.accountOptions = (accounts || []).map((account) => ({ + label: account.accountDisplayName, + value: account.accountCode + })); + + if ((!this.accountCode || forceReload) && this.accountOptions.length > 0) { + this.accountCode = this.accountOptions[0].value; + } + + if (!this.accountCode) { + this.showMessage('No active CLM/eSignature accounts are configured.', 'error'); + return; + } + + await this.loadAll(); + } catch (error) { + this.handleError(error, 'Unable to load eSignature workbench'); + } finally { + this.isBusy = false; + } + } + + async loadAll() { + const [config, accounts, loginInfo, userInfo, templates, envelopes] = await Promise.all([ + getAccountConfig({ accountCode: this.accountCode }), + listAccounts({ accountCode: this.accountCode }), + getLoginInformation({ accountCode: this.accountCode }), + getUserInfo({ accountCode: this.accountCode }), + listTemplates({ accountCode: this.accountCode }), + listEnvelopes({ accountCode: this.accountCode, fromDate: this.fromDate }) + ]); + + this.accountConfig = config; + this.accountSummaries = accounts || []; + this.loginInfoJson = this.prettyJson(loginInfo ? loginInfo.responseBody : null); + this.userInfoJson = this.prettyJson(userInfo ? userInfo.responseBody : null); + this.templates = templates || []; + this.envelopes = envelopes || []; + this.showMessage('eSignature data loaded successfully.', 'success'); + } + + async handleAccountChange(event) { + this.accountCode = event.detail.value; + await this.refreshData(); + } + + handleFromDateChange(event) { + this.fromDate = event.target.value; + } + + async refreshData() { + if (!this.accountCode || this.isBusy) { + return; + } + + this.isBusy = true; + this.clearMessage(); + + try { + await this.loadAll(); + } catch (error) { + this.handleError(error, 'Unable to refresh eSignature data'); + } finally { + this.isBusy = false; + } + } + + async refreshEnvelopes() { + if (!this.accountCode || this.isBusy) { + return; + } + + this.isBusy = true; + this.clearMessage(); + + try { + this.envelopes = await listEnvelopes({ accountCode: this.accountCode, fromDate: this.fromDate }); + this.showMessage('Envelope list refreshed.', 'success'); + } catch (error) { + this.handleError(error, 'Unable to refresh envelopes'); + } finally { + this.isBusy = false; + } + } + + defaultFromDate() { + const current = new Date(); + current.setDate(current.getDate() - 30); + return current.toISOString().slice(0, 10); + } + + prettyJson(raw) { + if (!raw) { + return ''; + } + + try { + return JSON.stringify(JSON.parse(raw), null, 2); + } catch (error) { + return raw; + } + } + + clearMessage() { + this.message = ''; + this.messageVariant = 'info'; + } + + showMessage(message, variant) { + this.message = message; + this.messageVariant = variant; + } + + handleError(error, fallbackMessage) { + const message = error && error.body && error.body.message + ? error.body.message + : error && error.message + ? error.message + : fallbackMessage; + + this.showMessage(message, 'error'); + this.dispatchEvent( + new ShowToastEvent({ + title: 'eSignature Workbench', + message, + variant: 'error' + }) + ); + } +} diff --git a/force-app/main/default/lwc/docusignEsignWorkbench/docusignEsignWorkbench.js-meta.xml b/force-app/main/default/lwc/docusignEsignWorkbench/docusignEsignWorkbench.js-meta.xml new file mode 100644 index 0000000..719522c --- /dev/null +++ b/force-app/main/default/lwc/docusignEsignWorkbench/docusignEsignWorkbench.js-meta.xml @@ -0,0 +1,18 @@ + + + 63.0 + true + Docusign eSignature Workbench + + lightning__RecordPage + lightning__AppPage + lightning__HomePage + + + + + Appraiser_Case__c + + + + diff --git a/force-app/main/default/namedCredentials/CLMs1Download.namedCredential-meta.xml b/force-app/main/default/namedCredentials/CLMs1Download.namedCredential-meta.xml new file mode 100644 index 0000000..b74de72 --- /dev/null +++ b/force-app/main/default/namedCredentials/CLMs1Download.namedCredential-meta.xml @@ -0,0 +1,19 @@ + + + false + false + Enabled + true + + + Url + Url + https://api.s1.us.clm.demo.docusign.net/content + + + DocusignJWT + ExternalCredential + Authentication + + SecuredEndpoint + diff --git a/force-app/main/default/namedCredentials/CLMs1NamedCreds.namedCredential-meta.xml b/force-app/main/default/namedCredentials/CLMs1NamedCreds.namedCredential-meta.xml new file mode 100644 index 0000000..80d4811 --- /dev/null +++ b/force-app/main/default/namedCredentials/CLMs1NamedCreds.namedCredential-meta.xml @@ -0,0 +1,24 @@ + + + false + false + Enabled + true + + + Url + Url + https://api.s1.us.clm.demo.docusign.net + + + DocusignJWT + ExternalCredential + Authentication + + + DocusignJWT + ClientCertificate + ClientCertificate + + SecuredEndpoint + diff --git a/force-app/main/default/namedCredentials/Esignature_Demo_NamedCreds.namedCredential-meta.xml b/force-app/main/default/namedCredentials/Esignature_Demo_NamedCreds.namedCredential-meta.xml new file mode 100644 index 0000000..c0754c4 --- /dev/null +++ b/force-app/main/default/namedCredentials/Esignature_Demo_NamedCreds.namedCredential-meta.xml @@ -0,0 +1,19 @@ + + + false + false + Enabled + true + + + Url + Url + https://demo.docusign.net/restapi + + + DocusignJWT + ExternalCredential + Authentication + + SecuredEndpoint + diff --git a/force-app/main/default/objects/Appraiser_Case_Deficiency__c/fields/Reference__c.field-meta.xml b/force-app/main/default/objects/Appraiser_Case_Deficiency__c/fields/Reference__c.field-meta.xml new file mode 100644 index 0000000..e98e0a1 --- /dev/null +++ b/force-app/main/default/objects/Appraiser_Case_Deficiency__c/fields/Reference__c.field-meta.xml @@ -0,0 +1,11 @@ + + + Reference__c + false + + 255 + false + false + Text + false + diff --git a/force-app/main/default/objects/Appraiser_Case_Deficiency__c/validationRules/Required_Deficiency_Data.validationRule-meta.xml b/force-app/main/default/objects/Appraiser_Case_Deficiency__c/validationRules/Required_Deficiency_Data.validationRule-meta.xml new file mode 100644 index 0000000..3ab73f6 --- /dev/null +++ b/force-app/main/default/objects/Appraiser_Case_Deficiency__c/validationRules/Required_Deficiency_Data.validationRule-meta.xml @@ -0,0 +1,13 @@ + + + true + Prevents empty or incomplete deficiency rows from being saved. + Required_Deficiency_Data + OR( +ISBLANK(TEXT(Deficiency_Number__c)), +ISBLANK(Description__c), +ISBLANK(Resolution__c) +) + Deficiency_Number__c + Deficiency Number, Description, and Resolution are required. + diff --git a/force-app/main/default/objects/Appraiser_Case__c/fields/Appraiser_City__c.field-meta.xml b/force-app/main/default/objects/Appraiser_Case__c/fields/Appraiser_City__c.field-meta.xml new file mode 100644 index 0000000..5641ee8 --- /dev/null +++ b/force-app/main/default/objects/Appraiser_Case__c/fields/Appraiser_City__c.field-meta.xml @@ -0,0 +1,11 @@ + + + Appraiser_City__c + false + + 255 + false + false + Text + false + diff --git a/force-app/main/default/objects/Appraiser_Case__c/fields/Appraiser_Country__c.field-meta.xml b/force-app/main/default/objects/Appraiser_Case__c/fields/Appraiser_Country__c.field-meta.xml new file mode 100644 index 0000000..7cad526 --- /dev/null +++ b/force-app/main/default/objects/Appraiser_Case__c/fields/Appraiser_Country__c.field-meta.xml @@ -0,0 +1,11 @@ + + + Appraiser_Country__c + false + + 255 + false + false + Text + false + diff --git a/force-app/main/default/objects/Appraiser_Case__c/fields/Appraiser_Email__c.field-meta.xml b/force-app/main/default/objects/Appraiser_Case__c/fields/Appraiser_Email__c.field-meta.xml new file mode 100644 index 0000000..f704096 --- /dev/null +++ b/force-app/main/default/objects/Appraiser_Case__c/fields/Appraiser_Email__c.field-meta.xml @@ -0,0 +1,10 @@ + + + Appraiser_Email__c + false + + false + false + Email + false + diff --git a/force-app/main/default/objects/Appraiser_Case__c/fields/Appraiser_Last_Name__c.field-meta.xml b/force-app/main/default/objects/Appraiser_Case__c/fields/Appraiser_Last_Name__c.field-meta.xml new file mode 100644 index 0000000..3b37b9e --- /dev/null +++ b/force-app/main/default/objects/Appraiser_Case__c/fields/Appraiser_Last_Name__c.field-meta.xml @@ -0,0 +1,11 @@ + + + Appraiser_Last_Name__c + false + + 255 + false + false + Text + false + diff --git a/force-app/main/default/objects/Appraiser_Case__c/fields/Appraiser_Name__c.field-meta.xml b/force-app/main/default/objects/Appraiser_Case__c/fields/Appraiser_Name__c.field-meta.xml new file mode 100644 index 0000000..139e09e --- /dev/null +++ b/force-app/main/default/objects/Appraiser_Case__c/fields/Appraiser_Name__c.field-meta.xml @@ -0,0 +1,11 @@ + + + Appraiser_Name__c + false + + 255 + false + false + Text + false + diff --git a/force-app/main/default/objects/Appraiser_Case__c/fields/Appraiser_Postal_Code__c.field-meta.xml b/force-app/main/default/objects/Appraiser_Case__c/fields/Appraiser_Postal_Code__c.field-meta.xml new file mode 100644 index 0000000..219d226 --- /dev/null +++ b/force-app/main/default/objects/Appraiser_Case__c/fields/Appraiser_Postal_Code__c.field-meta.xml @@ -0,0 +1,11 @@ + + + Appraiser_Postal_Code__c + false + + 40 + false + false + Text + false + diff --git a/force-app/main/default/objects/Appraiser_Case__c/fields/Appraiser_Salutation__c.field-meta.xml b/force-app/main/default/objects/Appraiser_Case__c/fields/Appraiser_Salutation__c.field-meta.xml new file mode 100644 index 0000000..b9f6c09 --- /dev/null +++ b/force-app/main/default/objects/Appraiser_Case__c/fields/Appraiser_Salutation__c.field-meta.xml @@ -0,0 +1,11 @@ + + + Appraiser_Salutation__c + false + + 10 + false + false + Text + false + diff --git a/force-app/main/default/objects/Appraiser_Case__c/fields/Appraiser_State_Province__c.field-meta.xml b/force-app/main/default/objects/Appraiser_Case__c/fields/Appraiser_State_Province__c.field-meta.xml new file mode 100644 index 0000000..fc9bb33 --- /dev/null +++ b/force-app/main/default/objects/Appraiser_Case__c/fields/Appraiser_State_Province__c.field-meta.xml @@ -0,0 +1,11 @@ + + + Appraiser_State_Province__c + false + + 255 + false + false + Text + false + diff --git a/force-app/main/default/objects/Appraiser_Case__c/fields/Appraiser_Street__c.field-meta.xml b/force-app/main/default/objects/Appraiser_Case__c/fields/Appraiser_Street__c.field-meta.xml new file mode 100644 index 0000000..45e4a4f --- /dev/null +++ b/force-app/main/default/objects/Appraiser_Case__c/fields/Appraiser_Street__c.field-meta.xml @@ -0,0 +1,11 @@ + + + Appraiser_Street__c + false + + 255 + false + false + Text + false + diff --git a/force-app/main/default/objects/Appraiser_Case__c/fields/Attached_File_Content_Document_Id__c.field-meta.xml b/force-app/main/default/objects/Appraiser_Case__c/fields/Attached_File_Content_Document_Id__c.field-meta.xml new file mode 100644 index 0000000..304cd97 --- /dev/null +++ b/force-app/main/default/objects/Appraiser_Case__c/fields/Attached_File_Content_Document_Id__c.field-meta.xml @@ -0,0 +1,11 @@ + + + Attached_File_Content_Document_Id__c + false + + 18 + false + false + Text + false + diff --git a/force-app/main/default/objects/Appraiser_Case__c/fields/Attached_File_Url__c.field-meta.xml b/force-app/main/default/objects/Appraiser_Case__c/fields/Attached_File_Url__c.field-meta.xml new file mode 100644 index 0000000..76281f8 --- /dev/null +++ b/force-app/main/default/objects/Appraiser_Case__c/fields/Attached_File_Url__c.field-meta.xml @@ -0,0 +1,9 @@ + + + Attached_File_Url__c + false + + false + false + Url + diff --git a/force-app/main/default/objects/Appraiser_Case__c/fields/FHA_Case_Number__c.field-meta.xml b/force-app/main/default/objects/Appraiser_Case__c/fields/FHA_Case_Number__c.field-meta.xml new file mode 100644 index 0000000..0e278c5 --- /dev/null +++ b/force-app/main/default/objects/Appraiser_Case__c/fields/FHA_Case_Number__c.field-meta.xml @@ -0,0 +1,11 @@ + + + FHA_Case_Number__c + false + + 40 + false + false + Text + false + diff --git a/force-app/main/default/objects/Appraiser_Case__c/fields/Generated_Document_Id__c.field-meta.xml b/force-app/main/default/objects/Appraiser_Case__c/fields/Generated_Document_Id__c.field-meta.xml new file mode 100644 index 0000000..d2ec770 --- /dev/null +++ b/force-app/main/default/objects/Appraiser_Case__c/fields/Generated_Document_Id__c.field-meta.xml @@ -0,0 +1,11 @@ + + + Generated_Document_Id__c + false + + 255 + false + false + Text + false + diff --git a/force-app/main/default/objects/Appraiser_Case__c/fields/Generated_Document_Url__c.field-meta.xml b/force-app/main/default/objects/Appraiser_Case__c/fields/Generated_Document_Url__c.field-meta.xml new file mode 100644 index 0000000..416426d --- /dev/null +++ b/force-app/main/default/objects/Appraiser_Case__c/fields/Generated_Document_Url__c.field-meta.xml @@ -0,0 +1,9 @@ + + + Generated_Document_Url__c + false + + false + false + Url + diff --git a/force-app/main/default/objects/Appraiser_Case__c/fields/Last_CLM_Account_Code__c.field-meta.xml b/force-app/main/default/objects/Appraiser_Case__c/fields/Last_CLM_Account_Code__c.field-meta.xml new file mode 100644 index 0000000..0e435bd --- /dev/null +++ b/force-app/main/default/objects/Appraiser_Case__c/fields/Last_CLM_Account_Code__c.field-meta.xml @@ -0,0 +1,11 @@ + + + Last_CLM_Account_Code__c + false + + 80 + false + false + Text + false + diff --git a/force-app/main/default/objects/Appraiser_Case__c/fields/Last_Destination_Folder_Href__c.field-meta.xml b/force-app/main/default/objects/Appraiser_Case__c/fields/Last_Destination_Folder_Href__c.field-meta.xml new file mode 100644 index 0000000..6d84be1 --- /dev/null +++ b/force-app/main/default/objects/Appraiser_Case__c/fields/Last_Destination_Folder_Href__c.field-meta.xml @@ -0,0 +1,11 @@ + + + Last_Destination_Folder_Href__c + false + + 255 + false + false + Text + false + diff --git a/force-app/main/default/objects/Appraiser_Case__c/fields/Last_DocGen_Completed_At__c.field-meta.xml b/force-app/main/default/objects/Appraiser_Case__c/fields/Last_DocGen_Completed_At__c.field-meta.xml new file mode 100644 index 0000000..fbb54eb --- /dev/null +++ b/force-app/main/default/objects/Appraiser_Case__c/fields/Last_DocGen_Completed_At__c.field-meta.xml @@ -0,0 +1,9 @@ + + + Last_DocGen_Completed_At__c + false + + false + false + DateTime + diff --git a/force-app/main/default/objects/Appraiser_Case__c/fields/Last_DocGen_Message__c.field-meta.xml b/force-app/main/default/objects/Appraiser_Case__c/fields/Last_DocGen_Message__c.field-meta.xml new file mode 100644 index 0000000..81ab0f8 --- /dev/null +++ b/force-app/main/default/objects/Appraiser_Case__c/fields/Last_DocGen_Message__c.field-meta.xml @@ -0,0 +1,10 @@ + + + Last_DocGen_Message__c + false + + 32768 + false + LongTextArea + 3 + diff --git a/force-app/main/default/objects/Appraiser_Case__c/fields/Last_DocGen_Requested_At__c.field-meta.xml b/force-app/main/default/objects/Appraiser_Case__c/fields/Last_DocGen_Requested_At__c.field-meta.xml new file mode 100644 index 0000000..b774bda --- /dev/null +++ b/force-app/main/default/objects/Appraiser_Case__c/fields/Last_DocGen_Requested_At__c.field-meta.xml @@ -0,0 +1,9 @@ + + + Last_DocGen_Requested_At__c + false + + false + false + DateTime + diff --git a/force-app/main/default/objects/Appraiser_Case__c/fields/Last_DocGen_Status__c.field-meta.xml b/force-app/main/default/objects/Appraiser_Case__c/fields/Last_DocGen_Status__c.field-meta.xml new file mode 100644 index 0000000..0a74f12 --- /dev/null +++ b/force-app/main/default/objects/Appraiser_Case__c/fields/Last_DocGen_Status__c.field-meta.xml @@ -0,0 +1,11 @@ + + + Last_DocGen_Status__c + false + + 100 + false + false + Text + false + diff --git a/force-app/main/default/objects/Appraiser_Case__c/fields/Last_DocGen_Task_Id__c.field-meta.xml b/force-app/main/default/objects/Appraiser_Case__c/fields/Last_DocGen_Task_Id__c.field-meta.xml new file mode 100644 index 0000000..e4df8ab --- /dev/null +++ b/force-app/main/default/objects/Appraiser_Case__c/fields/Last_DocGen_Task_Id__c.field-meta.xml @@ -0,0 +1,11 @@ + + + Last_DocGen_Task_Id__c + false + + 255 + false + false + Text + false + diff --git a/force-app/main/default/objects/Appraiser_Case__c/fields/Last_DocGen_Task_Url__c.field-meta.xml b/force-app/main/default/objects/Appraiser_Case__c/fields/Last_DocGen_Task_Url__c.field-meta.xml new file mode 100644 index 0000000..7baeca1 --- /dev/null +++ b/force-app/main/default/objects/Appraiser_Case__c/fields/Last_DocGen_Task_Url__c.field-meta.xml @@ -0,0 +1,9 @@ + + + Last_DocGen_Task_Url__c + false + + false + false + Url + diff --git a/force-app/main/default/objects/Appraiser_Case__c/fields/Last_Template_Document_Href__c.field-meta.xml b/force-app/main/default/objects/Appraiser_Case__c/fields/Last_Template_Document_Href__c.field-meta.xml new file mode 100644 index 0000000..da27586 --- /dev/null +++ b/force-app/main/default/objects/Appraiser_Case__c/fields/Last_Template_Document_Href__c.field-meta.xml @@ -0,0 +1,11 @@ + + + Last_Template_Document_Href__c + false + + 255 + false + false + Text + false + diff --git a/force-app/main/default/objects/Appraiser_Case__c/fields/Letter_Sent_Date__c.field-meta.xml b/force-app/main/default/objects/Appraiser_Case__c/fields/Letter_Sent_Date__c.field-meta.xml new file mode 100644 index 0000000..e499ce9 --- /dev/null +++ b/force-app/main/default/objects/Appraiser_Case__c/fields/Letter_Sent_Date__c.field-meta.xml @@ -0,0 +1,9 @@ + + + Letter_Sent_Date__c + false + + false + false + Date + diff --git a/force-app/main/default/objects/Appraiser_Case__c/listViews/All.listView-meta.xml b/force-app/main/default/objects/Appraiser_Case__c/listViews/All.listView-meta.xml index fb3bdfb..0b8a0b2 100644 --- a/force-app/main/default/objects/Appraiser_Case__c/listViews/All.listView-meta.xml +++ b/force-app/main/default/objects/Appraiser_Case__c/listViews/All.listView-meta.xml @@ -1,12 +1,10 @@ All - Name Appraiser_Field_Review_Date__c Property_Street__c Property_City__c Property_State_Province__c - LastModifiedDate Everything diff --git a/force-app/main/default/objects/CLM_Account_Setting__mdt/CLM_Account_Setting__mdt.object-meta.xml b/force-app/main/default/objects/CLM_Account_Setting__mdt/CLM_Account_Setting__mdt.object-meta.xml new file mode 100644 index 0000000..fbb7e26 --- /dev/null +++ b/force-app/main/default/objects/CLM_Account_Setting__mdt/CLM_Account_Setting__mdt.object-meta.xml @@ -0,0 +1,6 @@ + + + + CLM Account Settings + Public + diff --git a/force-app/main/default/objects/CLM_Account_Setting__mdt/fields/Account_Code__c.field-meta.xml b/force-app/main/default/objects/CLM_Account_Setting__mdt/fields/Account_Code__c.field-meta.xml new file mode 100644 index 0000000..a02587b --- /dev/null +++ b/force-app/main/default/objects/CLM_Account_Setting__mdt/fields/Account_Code__c.field-meta.xml @@ -0,0 +1,11 @@ + + + Account_Code__c + false + DeveloperControlled + + 80 + false + Text + false + diff --git a/force-app/main/default/objects/CLM_Account_Setting__mdt/fields/Account_Display_Name__c.field-meta.xml b/force-app/main/default/objects/CLM_Account_Setting__mdt/fields/Account_Display_Name__c.field-meta.xml new file mode 100644 index 0000000..732b8d6 --- /dev/null +++ b/force-app/main/default/objects/CLM_Account_Setting__mdt/fields/Account_Display_Name__c.field-meta.xml @@ -0,0 +1,11 @@ + + + Account_Display_Name__c + false + DeveloperControlled + + 255 + false + Text + false + diff --git a/force-app/main/default/objects/CLM_Account_Setting__mdt/fields/Active__c.field-meta.xml b/force-app/main/default/objects/CLM_Account_Setting__mdt/fields/Active__c.field-meta.xml new file mode 100644 index 0000000..00887d9 --- /dev/null +++ b/force-app/main/default/objects/CLM_Account_Setting__mdt/fields/Active__c.field-meta.xml @@ -0,0 +1,8 @@ + + + Active__c + true + DeveloperControlled + + Checkbox + diff --git a/force-app/main/default/objects/CLM_Account_Setting__mdt/fields/CLM_Account_Id__c.field-meta.xml b/force-app/main/default/objects/CLM_Account_Setting__mdt/fields/CLM_Account_Id__c.field-meta.xml new file mode 100644 index 0000000..08186f7 --- /dev/null +++ b/force-app/main/default/objects/CLM_Account_Setting__mdt/fields/CLM_Account_Id__c.field-meta.xml @@ -0,0 +1,11 @@ + + + CLM_Account_Id__c + false + DeveloperControlled + + 80 + false + Text + false + diff --git a/force-app/main/default/objects/CLM_Account_Setting__mdt/fields/CLM_Api_Named_Credential__c.field-meta.xml b/force-app/main/default/objects/CLM_Account_Setting__mdt/fields/CLM_Api_Named_Credential__c.field-meta.xml new file mode 100644 index 0000000..c02c13c --- /dev/null +++ b/force-app/main/default/objects/CLM_Account_Setting__mdt/fields/CLM_Api_Named_Credential__c.field-meta.xml @@ -0,0 +1,11 @@ + + + CLM_Api_Named_Credential__c + false + DeveloperControlled + + 255 + false + Text + false + diff --git a/force-app/main/default/objects/CLM_Account_Setting__mdt/fields/CLM_Download_Named_Credential__c.field-meta.xml b/force-app/main/default/objects/CLM_Account_Setting__mdt/fields/CLM_Download_Named_Credential__c.field-meta.xml new file mode 100644 index 0000000..6f1414f --- /dev/null +++ b/force-app/main/default/objects/CLM_Account_Setting__mdt/fields/CLM_Download_Named_Credential__c.field-meta.xml @@ -0,0 +1,11 @@ + + + CLM_Download_Named_Credential__c + false + DeveloperControlled + + 255 + false + Text + false + diff --git a/force-app/main/default/objects/CLM_Account_Setting__mdt/fields/Default_Destination_Document_Name_Prefix__c.field-meta.xml b/force-app/main/default/objects/CLM_Account_Setting__mdt/fields/Default_Destination_Document_Name_Prefix__c.field-meta.xml new file mode 100644 index 0000000..0fc44f0 --- /dev/null +++ b/force-app/main/default/objects/CLM_Account_Setting__mdt/fields/Default_Destination_Document_Name_Prefix__c.field-meta.xml @@ -0,0 +1,11 @@ + + + Default_Destination_Document_Name_Prefix__c + false + DeveloperControlled + + 80 + false + Text + false + diff --git a/force-app/main/default/objects/CLM_Account_Setting__mdt/fields/Default_Template_Document_Href__c.field-meta.xml b/force-app/main/default/objects/CLM_Account_Setting__mdt/fields/Default_Template_Document_Href__c.field-meta.xml new file mode 100644 index 0000000..8602af5 --- /dev/null +++ b/force-app/main/default/objects/CLM_Account_Setting__mdt/fields/Default_Template_Document_Href__c.field-meta.xml @@ -0,0 +1,11 @@ + + + Default_Template_Document_Href__c + false + DeveloperControlled + + 255 + false + Text + false + diff --git a/force-app/main/default/objects/CLM_Account_Setting__mdt/fields/Destination_Root_Folder_Href__c.field-meta.xml b/force-app/main/default/objects/CLM_Account_Setting__mdt/fields/Destination_Root_Folder_Href__c.field-meta.xml new file mode 100644 index 0000000..95c756f --- /dev/null +++ b/force-app/main/default/objects/CLM_Account_Setting__mdt/fields/Destination_Root_Folder_Href__c.field-meta.xml @@ -0,0 +1,11 @@ + + + Destination_Root_Folder_Href__c + false + DeveloperControlled + + 255 + false + Text + false + diff --git a/force-app/main/default/objects/CLM_Account_Setting__mdt/fields/ESignature_Account_Id__c.field-meta.xml b/force-app/main/default/objects/CLM_Account_Setting__mdt/fields/ESignature_Account_Id__c.field-meta.xml new file mode 100644 index 0000000..2d91b06 --- /dev/null +++ b/force-app/main/default/objects/CLM_Account_Setting__mdt/fields/ESignature_Account_Id__c.field-meta.xml @@ -0,0 +1,11 @@ + + + ESignature_Account_Id__c + false + DeveloperControlled + + 80 + false + Text + false + diff --git a/force-app/main/default/objects/CLM_Account_Setting__mdt/fields/ESignature_Auth_Named_Credential__c.field-meta.xml b/force-app/main/default/objects/CLM_Account_Setting__mdt/fields/ESignature_Auth_Named_Credential__c.field-meta.xml new file mode 100644 index 0000000..8b660e6 --- /dev/null +++ b/force-app/main/default/objects/CLM_Account_Setting__mdt/fields/ESignature_Auth_Named_Credential__c.field-meta.xml @@ -0,0 +1,11 @@ + + + ESignature_Auth_Named_Credential__c + false + DeveloperControlled + + 255 + false + Text + false + diff --git a/force-app/main/default/objects/CLM_Account_Setting__mdt/fields/ESignature_Rest_Named_Credential__c.field-meta.xml b/force-app/main/default/objects/CLM_Account_Setting__mdt/fields/ESignature_Rest_Named_Credential__c.field-meta.xml new file mode 100644 index 0000000..deba8a8 --- /dev/null +++ b/force-app/main/default/objects/CLM_Account_Setting__mdt/fields/ESignature_Rest_Named_Credential__c.field-meta.xml @@ -0,0 +1,11 @@ + + + ESignature_Rest_Named_Credential__c + false + DeveloperControlled + + 255 + false + Text + false + diff --git a/force-app/main/default/objects/CLM_Account_Setting__mdt/fields/Environment_Code__c.field-meta.xml b/force-app/main/default/objects/CLM_Account_Setting__mdt/fields/Environment_Code__c.field-meta.xml new file mode 100644 index 0000000..d5afbbe --- /dev/null +++ b/force-app/main/default/objects/CLM_Account_Setting__mdt/fields/Environment_Code__c.field-meta.xml @@ -0,0 +1,11 @@ + + + Environment_Code__c + false + DeveloperControlled + + 20 + false + Text + false + diff --git a/force-app/main/default/objects/CLM_Account_Setting__mdt/fields/Template_Root_Folder_Href__c.field-meta.xml b/force-app/main/default/objects/CLM_Account_Setting__mdt/fields/Template_Root_Folder_Href__c.field-meta.xml new file mode 100644 index 0000000..8483b1b --- /dev/null +++ b/force-app/main/default/objects/CLM_Account_Setting__mdt/fields/Template_Root_Folder_Href__c.field-meta.xml @@ -0,0 +1,11 @@ + + + Template_Root_Folder_Href__c + false + DeveloperControlled + + 255 + false + Text + false + diff --git a/force-app/main/default/objects/CLM_Environment_Setting__mdt/CLM_Environment_Setting__mdt.object-meta.xml b/force-app/main/default/objects/CLM_Environment_Setting__mdt/CLM_Environment_Setting__mdt.object-meta.xml new file mode 100644 index 0000000..23db111 --- /dev/null +++ b/force-app/main/default/objects/CLM_Environment_Setting__mdt/CLM_Environment_Setting__mdt.object-meta.xml @@ -0,0 +1,8 @@ + + + Default CLM roots and template settings by environment for the Appraiser Review proof of concept. + false + + CLM Environment Settings + Public + diff --git a/force-app/main/default/objects/CLM_Environment_Setting__mdt/fields/Default_Destination_Document_Name_Prefix__c.field-meta.xml b/force-app/main/default/objects/CLM_Environment_Setting__mdt/fields/Default_Destination_Document_Name_Prefix__c.field-meta.xml new file mode 100644 index 0000000..0fc44f0 --- /dev/null +++ b/force-app/main/default/objects/CLM_Environment_Setting__mdt/fields/Default_Destination_Document_Name_Prefix__c.field-meta.xml @@ -0,0 +1,11 @@ + + + Default_Destination_Document_Name_Prefix__c + false + DeveloperControlled + + 80 + false + Text + false + diff --git a/force-app/main/default/objects/CLM_Environment_Setting__mdt/fields/Default_Template_Document_Href__c.field-meta.xml b/force-app/main/default/objects/CLM_Environment_Setting__mdt/fields/Default_Template_Document_Href__c.field-meta.xml new file mode 100644 index 0000000..8602af5 --- /dev/null +++ b/force-app/main/default/objects/CLM_Environment_Setting__mdt/fields/Default_Template_Document_Href__c.field-meta.xml @@ -0,0 +1,11 @@ + + + Default_Template_Document_Href__c + false + DeveloperControlled + + 255 + false + Text + false + diff --git a/force-app/main/default/objects/CLM_Environment_Setting__mdt/fields/Destination_Root_Folder_Href__c.field-meta.xml b/force-app/main/default/objects/CLM_Environment_Setting__mdt/fields/Destination_Root_Folder_Href__c.field-meta.xml new file mode 100644 index 0000000..95c756f --- /dev/null +++ b/force-app/main/default/objects/CLM_Environment_Setting__mdt/fields/Destination_Root_Folder_Href__c.field-meta.xml @@ -0,0 +1,11 @@ + + + Destination_Root_Folder_Href__c + false + DeveloperControlled + + 255 + false + Text + false + diff --git a/force-app/main/default/objects/CLM_Environment_Setting__mdt/fields/Environment_Code__c.field-meta.xml b/force-app/main/default/objects/CLM_Environment_Setting__mdt/fields/Environment_Code__c.field-meta.xml new file mode 100644 index 0000000..d5afbbe --- /dev/null +++ b/force-app/main/default/objects/CLM_Environment_Setting__mdt/fields/Environment_Code__c.field-meta.xml @@ -0,0 +1,11 @@ + + + Environment_Code__c + false + DeveloperControlled + + 20 + false + Text + false + diff --git a/force-app/main/default/objects/CLM_Environment_Setting__mdt/fields/Template_Root_Folder_Href__c.field-meta.xml b/force-app/main/default/objects/CLM_Environment_Setting__mdt/fields/Template_Root_Folder_Href__c.field-meta.xml new file mode 100644 index 0000000..8483b1b --- /dev/null +++ b/force-app/main/default/objects/CLM_Environment_Setting__mdt/fields/Template_Root_Folder_Href__c.field-meta.xml @@ -0,0 +1,11 @@ + + + Template_Root_Folder_Href__c + false + DeveloperControlled + + 255 + false + Text + false + diff --git a/force-app/main/default/objects/CLM_Letter_Definition__mdt/CLM_Letter_Definition__mdt.object-meta.xml b/force-app/main/default/objects/CLM_Letter_Definition__mdt/CLM_Letter_Definition__mdt.object-meta.xml new file mode 100644 index 0000000..8572193 --- /dev/null +++ b/force-app/main/default/objects/CLM_Letter_Definition__mdt/CLM_Letter_Definition__mdt.object-meta.xml @@ -0,0 +1,6 @@ + + + + CLM Letter Definitions + Public + diff --git a/force-app/main/default/objects/CLM_Letter_Definition__mdt/fields/Account_Code__c.field-meta.xml b/force-app/main/default/objects/CLM_Letter_Definition__mdt/fields/Account_Code__c.field-meta.xml new file mode 100644 index 0000000..5c8ae58 --- /dev/null +++ b/force-app/main/default/objects/CLM_Letter_Definition__mdt/fields/Account_Code__c.field-meta.xml @@ -0,0 +1,11 @@ + + + Account_Code__c + false + DeveloperControlled + + 255 + false + Text + false + diff --git a/force-app/main/default/objects/CLM_Letter_Definition__mdt/fields/Active__c.field-meta.xml b/force-app/main/default/objects/CLM_Letter_Definition__mdt/fields/Active__c.field-meta.xml new file mode 100644 index 0000000..478992e --- /dev/null +++ b/force-app/main/default/objects/CLM_Letter_Definition__mdt/fields/Active__c.field-meta.xml @@ -0,0 +1,9 @@ + + + Active__c + true + false + DeveloperControlled + + Checkbox + diff --git a/force-app/main/default/objects/CLM_Letter_Definition__mdt/fields/Default_Destination_Document_Name_Prefix__c.field-meta.xml b/force-app/main/default/objects/CLM_Letter_Definition__mdt/fields/Default_Destination_Document_Name_Prefix__c.field-meta.xml new file mode 100644 index 0000000..fc9523b --- /dev/null +++ b/force-app/main/default/objects/CLM_Letter_Definition__mdt/fields/Default_Destination_Document_Name_Prefix__c.field-meta.xml @@ -0,0 +1,11 @@ + + + Default_Destination_Document_Name_Prefix__c + false + DeveloperControlled + + 255 + false + Text + false + diff --git a/force-app/main/default/objects/CLM_Letter_Definition__mdt/fields/Default_Template_Document_Href__c.field-meta.xml b/force-app/main/default/objects/CLM_Letter_Definition__mdt/fields/Default_Template_Document_Href__c.field-meta.xml new file mode 100644 index 0000000..8602af5 --- /dev/null +++ b/force-app/main/default/objects/CLM_Letter_Definition__mdt/fields/Default_Template_Document_Href__c.field-meta.xml @@ -0,0 +1,11 @@ + + + Default_Template_Document_Href__c + false + DeveloperControlled + + 255 + false + Text + false + diff --git a/force-app/main/default/objects/CLM_Letter_Definition__mdt/fields/Description__c.field-meta.xml b/force-app/main/default/objects/CLM_Letter_Definition__mdt/fields/Description__c.field-meta.xml new file mode 100644 index 0000000..73df723 --- /dev/null +++ b/force-app/main/default/objects/CLM_Letter_Definition__mdt/fields/Description__c.field-meta.xml @@ -0,0 +1,11 @@ + + + Description__c + false + DeveloperControlled + + 255 + false + Text + false + diff --git a/force-app/main/default/objects/CLM_Letter_Definition__mdt/fields/Destination_Root_Folder_Href__c.field-meta.xml b/force-app/main/default/objects/CLM_Letter_Definition__mdt/fields/Destination_Root_Folder_Href__c.field-meta.xml new file mode 100644 index 0000000..95c756f --- /dev/null +++ b/force-app/main/default/objects/CLM_Letter_Definition__mdt/fields/Destination_Root_Folder_Href__c.field-meta.xml @@ -0,0 +1,11 @@ + + + Destination_Root_Folder_Href__c + false + DeveloperControlled + + 255 + false + Text + false + diff --git a/force-app/main/default/objects/CLM_Letter_Definition__mdt/fields/Is_Default__c.field-meta.xml b/force-app/main/default/objects/CLM_Letter_Definition__mdt/fields/Is_Default__c.field-meta.xml new file mode 100644 index 0000000..7be9b95 --- /dev/null +++ b/force-app/main/default/objects/CLM_Letter_Definition__mdt/fields/Is_Default__c.field-meta.xml @@ -0,0 +1,9 @@ + + + Is_Default__c + false + false + DeveloperControlled + + Checkbox + diff --git a/force-app/main/default/objects/CLM_Letter_Definition__mdt/fields/Letter_Code__c.field-meta.xml b/force-app/main/default/objects/CLM_Letter_Definition__mdt/fields/Letter_Code__c.field-meta.xml new file mode 100644 index 0000000..1ecae5b --- /dev/null +++ b/force-app/main/default/objects/CLM_Letter_Definition__mdt/fields/Letter_Code__c.field-meta.xml @@ -0,0 +1,11 @@ + + + Letter_Code__c + false + DeveloperControlled + + 255 + false + Text + false + diff --git a/force-app/main/default/objects/CLM_Letter_Definition__mdt/fields/Letter_Display_Name__c.field-meta.xml b/force-app/main/default/objects/CLM_Letter_Definition__mdt/fields/Letter_Display_Name__c.field-meta.xml new file mode 100644 index 0000000..3fdfac7 --- /dev/null +++ b/force-app/main/default/objects/CLM_Letter_Definition__mdt/fields/Letter_Display_Name__c.field-meta.xml @@ -0,0 +1,11 @@ + + + Letter_Display_Name__c + false + DeveloperControlled + + 255 + false + Text + false + diff --git a/force-app/main/default/objects/CLM_Letter_Definition__mdt/fields/Sort_Order__c.field-meta.xml b/force-app/main/default/objects/CLM_Letter_Definition__mdt/fields/Sort_Order__c.field-meta.xml new file mode 100644 index 0000000..ce01928 --- /dev/null +++ b/force-app/main/default/objects/CLM_Letter_Definition__mdt/fields/Sort_Order__c.field-meta.xml @@ -0,0 +1,11 @@ + + + Sort_Order__c + false + DeveloperControlled + + 6 + false + 0 + Number + diff --git a/force-app/main/default/objects/CLM_Letter_Definition__mdt/fields/Template_Root_Folder_Href__c.field-meta.xml b/force-app/main/default/objects/CLM_Letter_Definition__mdt/fields/Template_Root_Folder_Href__c.field-meta.xml new file mode 100644 index 0000000..8483b1b --- /dev/null +++ b/force-app/main/default/objects/CLM_Letter_Definition__mdt/fields/Template_Root_Folder_Href__c.field-meta.xml @@ -0,0 +1,11 @@ + + + Template_Root_Folder_Href__c + false + DeveloperControlled + + 255 + false + Text + false + diff --git a/force-app/main/default/permissionsets/Appraiser_Case_Access.permissionset-meta.xml b/force-app/main/default/permissionsets/Appraiser_Case_Access.permissionset-meta.xml index 02e74a9..880f22b 100644 --- a/force-app/main/default/permissionsets/Appraiser_Case_Access.permissionset-meta.xml +++ b/force-app/main/default/permissionsets/Appraiser_Case_Access.permissionset-meta.xml @@ -1,6 +1,22 @@ Access to Appraiser Case records and deficiency rows for CLM generation. + + AppraiserCasePayloadBuilder + true + + + CLMAdminService + true + + + CLMDocGenCallout + true + + + DocusignESignatureService + true + true Appraiser_Case__c.Appraiser_Field_Review_Date__c @@ -8,7 +24,147 @@ true - Appraiser_Case__c.Property_Address__c + Appraiser_Case__c.Appraiser_Name__c + true + + + true + Appraiser_Case__c.Appraiser_Salutation__c + true + + + true + Appraiser_Case__c.Appraiser_Last_Name__c + true + + + true + Appraiser_Case__c.Appraiser_Email__c + true + + + true + Appraiser_Case__c.Appraiser_Street__c + true + + + true + Appraiser_Case__c.Appraiser_City__c + true + + + true + Appraiser_Case__c.Appraiser_State_Province__c + true + + + true + Appraiser_Case__c.Appraiser_Postal_Code__c + true + + + true + Appraiser_Case__c.Appraiser_Country__c + true + + + true + Appraiser_Case__c.Letter_Sent_Date__c + true + + + true + Appraiser_Case__c.FHA_Case_Number__c + true + + + true + Appraiser_Case__c.Property_Street__c + true + + + true + Appraiser_Case__c.Property_City__c + true + + + true + Appraiser_Case__c.Property_State_Province__c + true + + + true + Appraiser_Case__c.Property_Postal_Code__c + true + + + true + Appraiser_Case__c.Property_Country__c + true + + + false + Appraiser_Case__c.Last_DocGen_Status__c + true + + + false + Appraiser_Case__c.Last_DocGen_Message__c + true + + + false + Appraiser_Case__c.Last_CLM_Account_Code__c + true + + + false + Appraiser_Case__c.Last_DocGen_Task_Id__c + true + + + false + Appraiser_Case__c.Last_DocGen_Task_Url__c + true + + + false + Appraiser_Case__c.Generated_Document_Url__c + true + + + false + Appraiser_Case__c.Generated_Document_Id__c + true + + + false + Appraiser_Case__c.Attached_File_Content_Document_Id__c + true + + + false + Appraiser_Case__c.Attached_File_Url__c + true + + + false + Appraiser_Case__c.Last_DocGen_Requested_At__c + true + + + false + Appraiser_Case__c.Last_DocGen_Completed_At__c + true + + + false + Appraiser_Case__c.Last_Template_Document_Href__c + true + + + false + Appraiser_Case__c.Last_Destination_Folder_Href__c true @@ -26,6 +182,11 @@ Appraiser_Case_Deficiency__c.Resolution__c true + + true + Appraiser_Case_Deficiency__c.Reference__c + true + true DocusignJWT-DefaultGroup @@ -50,4 +211,12 @@ Appraiser_Case_Deficiency__c false - \ No newline at end of file + + Appraiser_Case__c + Visible + + + Appraiser_Case_Deficiency__c + Visible + + diff --git a/force-app/main/default/permissionsets/Appraiser_Case_Admin.permissionset-meta.xml b/force-app/main/default/permissionsets/Appraiser_Case_Admin.permissionset-meta.xml index d19e192..b60fc96 100644 --- a/force-app/main/default/permissionsets/Appraiser_Case_Admin.permissionset-meta.xml +++ b/force-app/main/default/permissionsets/Appraiser_Case_Admin.permissionset-meta.xml @@ -1,11 +1,82 @@ - Access to Appraiser Case and Appraiser Deficiency objects for setup and early testing. + Access to Appraiser Case and Appraiser Case Deficiency objects for setup and CLM testing. + + AppraiserCasePayloadBuilder + true + + + CLMAdminService + true + + + CLMDocGenCallout + true + + + DocusignESignatureService + true + true Appraiser_Case__c.Appraiser_Field_Review_Date__c true + + true + Appraiser_Case__c.Appraiser_Name__c + true + + + true + Appraiser_Case__c.Appraiser_Salutation__c + true + + + true + Appraiser_Case__c.Appraiser_Last_Name__c + true + + + true + Appraiser_Case__c.Appraiser_Email__c + true + + + true + Appraiser_Case__c.Appraiser_Street__c + true + + + true + Appraiser_Case__c.Appraiser_City__c + true + + + true + Appraiser_Case__c.Appraiser_State_Province__c + true + + + true + Appraiser_Case__c.Appraiser_Postal_Code__c + true + + + true + Appraiser_Case__c.Appraiser_Country__c + true + + + true + Appraiser_Case__c.Letter_Sent_Date__c + true + + + true + Appraiser_Case__c.FHA_Case_Number__c + true + true Appraiser_Case__c.Property_Street__c @@ -32,28 +103,88 @@ true - true - Appraiser_Deficiency__c.Appraiser_Case__c + false + Appraiser_Case__c.Last_DocGen_Status__c + true + + + false + Appraiser_Case__c.Last_DocGen_Message__c + true + + + false + Appraiser_Case__c.Last_CLM_Account_Code__c + true + + + false + Appraiser_Case__c.Last_DocGen_Task_Id__c + true + + + false + Appraiser_Case__c.Last_DocGen_Task_Url__c + true + + + false + Appraiser_Case__c.Generated_Document_Url__c + true + + + false + Appraiser_Case__c.Generated_Document_Id__c + true + + + false + Appraiser_Case__c.Attached_File_Content_Document_Id__c + true + + + false + Appraiser_Case__c.Attached_File_Url__c + true + + + false + Appraiser_Case__c.Last_DocGen_Requested_At__c + true + + + false + Appraiser_Case__c.Last_DocGen_Completed_At__c + true + + + false + Appraiser_Case__c.Last_Template_Document_Href__c + true + + + false + Appraiser_Case__c.Last_Destination_Folder_Href__c true true - Appraiser_Deficiency__c.Deficiency_Number__c + Appraiser_Case_Deficiency__c.Deficiency_Number__c true true - Appraiser_Deficiency__c.Description__c + Appraiser_Case_Deficiency__c.Description__c true true - Appraiser_Deficiency__c.Resolution__c + Appraiser_Case_Deficiency__c.Resolution__c true true - Appraiser_Deficiency__c.Sort_Order__c + Appraiser_Case_Deficiency__c.Reference__c true false @@ -73,7 +204,7 @@ true true true - Appraiser_Deficiency__c + Appraiser_Case_Deficiency__c true @@ -81,7 +212,7 @@ Visible - Appraiser_Deficiency__c + Appraiser_Case_Deficiency__c Visible diff --git a/force-app/main/default/quickActions/Appraiser_Case__c.Generate_Review_Letter.quickAction-meta.xml b/force-app/main/default/quickActions/Appraiser_Case__c.Generate_Review_Letter.quickAction-meta.xml index cf0ab11..51ae7cd 100644 --- a/force-app/main/default/quickActions/Appraiser_Case__c.Generate_Review_Letter.quickAction-meta.xml +++ b/force-app/main/default/quickActions/Appraiser_Case__c.Generate_Review_Letter.quickAction-meta.xml @@ -1,11 +1,8 @@ - Placeholder action to launch Appraiser review letter generation flow or component. - 600 + Launches the CLM Doc Gen workbench for browsing templates/folders and submitting XML merge tasks. + clmDocGenWorkbench false - New - Appraiser_Case__c - Create - 800 + LightningWebComponent diff --git a/force-app/main/default/tabs/Appraiser_Case_Deficiency__c.tab-meta.xml b/force-app/main/default/tabs/Appraiser_Case_Deficiency__c.tab-meta.xml new file mode 100644 index 0000000..d344eac --- /dev/null +++ b/force-app/main/default/tabs/Appraiser_Case_Deficiency__c.tab-meta.xml @@ -0,0 +1,5 @@ + + + true + Custom18: Form + diff --git a/manifest/package.xml b/manifest/package.xml index fce33a3..f6efe48 100644 --- a/manifest/package.xml +++ b/manifest/package.xml @@ -1,23 +1,63 @@ + + Appraiser_Review + CustomApplication + + + CLM_Environment_Setting.S1 + CLM_Environment_Setting.UAT + CustomMetadata + Appraiser_Case__c Appraiser_Case_Deficiency__c + CLM_Environment_Setting__mdt CustomObject + + Appraiser_Case__c + Appraiser_Case_Deficiency__c + CustomTab + + + Appraiser_Case_Record_Page + FlexiPage + + + Appraiser_Case__c.All + ListView + + + Appraiser_Case__c-Appraiser Case Layout + Appraiser_Case_Deficiency__c-Appraiser Case Deficiency Layout + Layout + + + Appraiser_Case__c.Generate_Review_Letter + QuickAction + Appraiser_Case_Access + Appraiser_Case_Admin PermissionSet + CLMAdminService + CLMAdminServiceTest AppraiserCasePayloadBuilder AppraiserCasePayloadBuilderTest CLMDocGenCallout + CLMDocGenCalloutTest ApexClass + + clmDocGenWorkbench + LightningComponentBundle + DocusignJWT ExternalCredential 62.0 - \ No newline at end of file +