Back

Maica Client Management V.0.376

You can download the full release notes as a PDF above for detailed information on all updates and fixes included in this version.

If there are any post-install steps required, they will be listed below.

Funding Rollover — Post-Install Steps

Prerequisites

  • Maica package version 0.376 or later installed
  • System Administrator profile or equivalent permissions

Step 1: Assign the Permission Set

Assign the Maica - Manage Agreement Item Rollover permission set to any users who need to view rollover fields on Agreement Items and Service Agreements, use the Process Rollover Quick Action, or configure rollover settings.

To assign:

  1. Navigate to Setup > Permission Sets
  2. Select Maica - Manage Agreement Item Rollover
  3. Click Manage Assignments > Add Assignment
  4. Select the relevant users and save

After assigning the permission set, verify that rollover fields are visible to users. In some environments, you may also need to grant field-level security on the System Administrator profile for the new rollover fields. Navigate to Setup > Profiles > System Administrator > Field-Level Security for Agreement Item and Service Agreement objects to confirm read/write access on all rollover fields.

Step 2: Enable the Feature

2a. Org-Wide Setting

  1. From the App Launcher, open Client Management Settings
  2. In the left sidebar, select Agreement Management
  3. Click Edit
  4. In the Rollover Settings section:
    • Toggle Enable Agreement Item Rollover on
    • Set Gap Tolerance (Days) to the appropriate value:
      • 0 — Periods must be exactly consecutive with no gap allowed between End Date and Start Date
      • 1 — Recommended for NDIS, allows a 1-day gap (e.g. Q1 ends 31 March, Q2 starts 1 April)
      • 7 — Allows up to a 7-day gap between periods
    • Set Processing Time using the time picker. Defaults to 1:00 AM if left blank
  5. Click Save

Saving the Processing Time automatically schedules the daily rollover batch job at the configured time. You do not need to schedule the job manually. Alternatively, these values can be edited directly via Setup > Custom Settings > Service Agreement Setting on the Org Default record.

2b. Service Agreement-Level

For each Service Agreement where rollover should be active:

  1. Open the Service Agreement record
  2. Check the Enable Funding Rollover checkbox
  3. Optionally set Rollover Gap Tolerance to override the org default for this specific agreement
  4. Save the record

Note: the automatic batch job only processes items on Service Agreements that have Enable Funding Rollover checked and a Status of Active.

Step 3: Verify the Scheduled Batch Job

  1. Navigate to Setup > Scheduled Jobs
  2. Look for a job named Agreement Item Rollover - Daily
  3. Confirm the Next Scheduled Run matches the Processing Time configured in Step 2a

If the job is missing, re-save the Processing Time in Client Management Settings — this re-registers the schedule. The job is also re-registered whenever the Processing Time is changed.

Step 4: Add Fields to the Agreement Item Lightning Page

Add a new section called Rollover Information to the Agreement Item Lightning Record Page with the following fields:

Column 1 — Funds Received:

  • Rollover Amount In (Rollover_Amount_In__c)
  • Rollover Date In (Rollover_Date_In__c)
  • Rollover Source Item Name (Rollover_Source_Item_Name__c)

Column 2 — Funds Sent:

  • Rollover Amount Out (Rollover_Amount_Out__c)
  • Rollover Date Out (Rollover_Date_Out__c)
  • Rollover Target Item Name (Rollover_Target_Item_Name__c)

Additional Fields (can be placed in either column or a separate section):

  • Rollover Processed (Rollover_Processed__c)
  • Rollover Processed Date (Rollover_Processed_Date__c)
  • Exclude from Rollover (Exclude_from_Rollover__c)

Note: the existing Total Allocated field now includes rollover adjustments automatically (base allocation + rollover in - rollover out). No additional budget summary field is needed.

To edit the Lightning Record Page:

  1. Navigate to any Agreement Item record
  2. Click the gear icon (top right) > Edit Page
  3. Drag a Field Section component onto the page
  4. Name the section Rollover Information
  5. Add the fields listed above
  6. Click Save and Activate

Step 5: Add Fields to the Service Agreement Lightning Page

Add the following fields to the Service Agreement record page:

  • Enable Funding Rollover (Enable_Funding_Rollover__c) — toggles rollover for this Service Agreement
  • Rollover Gap Tolerance (Rollover_Gap_Tolerance__c) — overrides the org default gap tolerance for this specific agreement

Step 6: Add the Process Rollover Action to the Lightning Record Page

  1. Open any Agreement Item record
  2. Click the gear icon (top right) > Edit Page
  3. Select the Highlights Panel component on the page
  4. In the right-hand properties pane, click Upgrade Now or Actions > Add Action
  5. In the action picker, locate Process Rollover under Mobile & Lightning Actions
  6. Add it to the selected actions list in the desired position
  7. Click Save, then Activate the page if prompted

The Process Rollover action is available on any Agreement Item. When clicked it opens a preview modal showing the rollover amount and auto-detected target. If the parent Service Agreement does not have Enable Funding Rollover checked, the modal displays an informative error.

If your org also uses the classic Page Layout for Agreement Items, add Process Rollover to the Salesforce Mobile and Lightning Experience Actions section via Setup > Object Manager > Agreement Item > Page Layouts.

Enabling Funding Rollover for Existing Service Agreements

The Agreement Item Funding Rollover feature is opt-in at the Service Agreement level, controlled by the new Enable Funding Rollover checkbox. After installing this release, the checkbox is unticked by default on all Service Agreements, including those you already have in your org.

For most NDIS providers, you'll want to enable rollover on Service Agreements that are funded under PACE plans with one of the standard NDIS funding types. The script below sets Enable Funding Rollover = TRUE on all Service Agreements where:

  • Funding Type is Agency Managed, Plan Managed, Self Managed, or Combination
  • The related NDIS Plan is a PACE plan

How to Run It

  1. Navigate to Setup → Developer Console
  2. Open Debug → Open Execute Anonymous Window (or press Ctrl+E / Cmd+E)
  3. Paste the script below
  4. Tick Open Log so you can see the result counts
  5. Click Execute

Preview Before Committing

Set DRY_RUN = true; at the top of the script to see how many Service Agreements would be updated, without making any changes. Once you're happy with the count, set it back to false and re-run.

Script

// =====================================================================
// NDIS-1098 — Bulk Enable Funding Rollover on Existing Service Agreements
//
// Run from Setup > Developer Console > Execute Anonymous (or sf apex run).
// Safe to re-run — only touches records where Enable Funding Rollover is FALSE.
//
// Targets Service Agreements where:
//   - Funding Type is Agency Managed / Plan Managed / Self Managed / Combination
//   - The related NDIS Plan is a PACE plan
// =====================================================================

// Set to TRUE to preview the impact without making any changes.

Boolean DRY_RUN = false;

List<maica__Service_Agreement__c> toUpdate = new List<maica__Service_Agreement__c>();

for (maica__Service_Agreement__c sa : [
    SELECT Id, Name, maica__Funding_Type__c
    FROM maica__Service_Agreement__c
    WHERE maica__Funding_Type__c IN ('Agency Managed', 'Plan Managed', 'Self Managed', 'Combination')
      AND maica__NDIS_Plan__r.maica__PACE_Plan__c = TRUE
      AND maica__Enable_Funding_Rollover__c = FALSE
]) {
    sa.maica__Enable_Funding_Rollover__c = true;
    toUpdate.add(sa);
}

System.debug('Service Agreements matching criteria: ' + toUpdate.size());

if (DRY_RUN) {
    System.debug('DRY RUN — no records updated.');
    return;
}

if (toUpdate.isEmpty()) {
    System.debug('Nothing to update — all matching Service Agreements already have Enable Funding Rollover = TRUE.');
    return;
}

Database.SaveResult[] results = Database.update(toUpdate, false);

Integer successCount = 0;
Integer failureCount = 0;
for (Integer i = 0; i < results.size(); i++) {
    if (results[i].isSuccess()) {
        successCount++;
    } else {
        failureCount++;
        System.debug(LoggingLevel.ERROR,
            'FAILED to update ' + toUpdate[i].Name + ' (' + toUpdate[i].Id + '): '
            + results[i].getErrors()[0].getMessage());
    }
}

System.debug('Updated: ' + successCount);
System.debug('Failed:  ' + failureCount);

What the Script Does

  • Finds Service Agreements matching the criteria above where Enable Funding Rollover is currently unticked
  • Updates them in a single bulk operation
  • Logs the count of successful updates and any failures (e.g. records blocked by a validation rule), with reasons

Safe to Re-Run

The script only touches Service Agreements where Enable Funding Rollover is currently FALSE. Re-running it after the first execution will make no further changes.

Permissions

Run this as a System Administrator, or as a user with edit access to the Enable Funding Rollover field on Service Agreement.

Need Finer Control?

If you want to enable rollover on a different subset of Service Agreements — for example, only specific funding sources, only Service Agreements for a particular Service Provider, or only those starting after a given date — adjust the WHERE clause in the SOQL query. The script is provided as a starting point.

Large Data Volumes

If your org has more than ~50,000 Service Agreements matching the criteria, run the update as a Batch Apex job instead of a single Anonymous Apex execution to stay within Salesforce governor limits. Contact Vertic support if you need help with this.

Post Installation Scripts
Please ensure you complete the following Post Install Scripts listed below. If you require assistance with installing or running this script, please contact Maica Support for guidance.
Post Installation Scripts: Client Management ONLY
The section of below scripts apply if you are on Client Management ONLY, if you use Client Management & Delivery, skip to the next section.
Please ensure you complete the following Post Install Scripts in the order they are provided. If you require assistance with installing or running this script, please contact Maica Support for guidance.

View Code

View Code

View Code

Post Installation Scripts: Client Management & Client Delivery
If you are on Maica Client Delivery as well as Maica Client Management, please use the below scripts. If you are on Client Management ONLY, please ignore the below section.
Note: When running these scripts, please wait until the first Job has been completed before starting the second Script. You can track the progress of the Job in your Salesforce instance by going to Setup --> Apex Jobs.
If you require assistance with installing or running this script, please contact Maica Support for guidance.

View Code

View Code