We’ve introduced significant enhancements to the Appointment Resource Status
logic in Maica to support better control over which Resources
are considered approved to attend Appointments and to introduce a flexible, permissions-based acceptance workflow. These changes improve visibility, security, and data integrity across both individual and recurring Appointments.
New Status Logic for Appointment Resources: The system now respects the Appointment Resource Status
, enabling workflows based on statuses like Pending
or Accepted
. Default status can be configured via a new Setting. If no setting is defined, the system defaults to Accepted (to preserve backward compatibility).
New Restrictions for Unaccepted Resources: Resources who have not been marked as Accepted cannot: Check In/Out, Quick Complete or Cancel Appointments
Permission-Based Acceptance Actions: New permission sets introduced to control acceptance actions: Accept Own Resource and Accept All Resources. Additionally, the system now shows tailored messages based on whether the user has these permissions.
Visual Indicators and Acceptance UI: A warning icon and tooltip now appear for unaccepted Appointment Resources. Users with appropriate permissions can now accept resources directly via the Appointment Wizard or Manage Appointment modal. Messaging varies based on the user’s relationship to the resource:
Recurring Appointments Now Inherit Status: When Recurring Appointments are created from a Master, the Appointment Resource Status is inherited from the Master Appointment. Updates to the Master Appointment status can cascade to scheduled Appointments, but only when triggered manually (e.g., by editing the Master).
Validation Enhancements: Appointments with Pending or Unaccepted Resources are displayed as Unfilled
in the Planner. These can still be seen by the Resource
and accepted provided the correct Permission Sets are assigned. Appointments now respect Resource-to-Participant ratios and ensure the correct number of Accepted Resources are assigned.
Improved Messaging & Tooltips: The system now shows clear, role-based messages explaining why a user can or cannot accept a Resource or perform an action. Messages dynamically switch between “Appointment” and “Shift” depending on the record type.
Compatibility & Upgrade Considerations: A post-install script ensures that existing Appointment Resources are set to Accepted if no default is defined—preserving historical behavior.
Pending
status: ❌ Cannot check in, complete, or cancel the Appointment.
We resolved an issue where Notes entered against a Checklist Item
within the Manage Appointment modal were not being retained after saving. Users found that notes were either missing or overwritten upon re-entry, causing confusion and potential loss of important information.
Checklist Notes Now Persist After Save: When users complete a Checklist Item
and add Notes, the system now saves and returns those values reliably. Users can exit and re-enter the Checklist modal, and the previously entered Notes will remain visible and unchanged.
Prevents Overwriting of Notes on Re-Entry: The bug causing new entries to overwrite previously saved Notes has been fixed. Users can now confidently add incremental updates or review historical context without losing data.
Applies to All Checklist Item Statuses: The fix supports all status values (e.g., Completed, In Progress, etc.) where Notes are captured, regardless of the Checklist Item’s current state.
We resolved an issue where editing the Start and/or End Date/Time of an Unavailability
record in the Planner did not correctly update the Duration (Minutes) on the related Timesheet Entry
. This caused discrepancies in Timesheet calculations and required manual corrections by users.
Duration Now Recalculates Automatically: When users edit the Start Date/Time or End Date/Time of an Unavailability
entry, the system now automatically recalculates the Duration
(Minutes) field on the corresponding Timesheet Entry
. This ensures that the recorded duration always reflects the updated availability window.
Fix Applies to All Edited Unavailabilities: Whether users change just the start time, just the end time, or both — the calculated duration is now kept in sync. This applies to all Unavailability
records where “Create Corresponding Timesheet = TRUE
”.
No Additional Action Required by Users: The update is applied in real time when users submit changes through the Manage Unavailability modal in the Planner. No need to manually open and resave the Timesheet Entry
to refresh the Duration
.
We resolved an issue where Agreement Items displayed incorrect utilisation percentages and negative remaining balances due to inconsistencies in how Quantity
and Unit Price
were ratioed in relation to Invoice Line Item records
. This fix ensures accurate financial calculations, preventing over-utilisation errors and incorrect funding balances.
New Quantity Delivered Field for Accurate Roll-Ups: Introduced Quantity Delivered
field on Delivery Activity
. This field captures the actual ratioed quantity, ensuring correct utilization calculations. Roll-ups on Agreement Items now sum Quantity Delivered
instead of Quantity
.
Enhanced Handling of Ratio-Based Calculations: The system now correctly differentiates between Unit Price Ratioed and Quantity Ratioed Invoice Line Item
records, ensuring that the Quantity Delivered
field on the Agreement Item
always respects your preferred method of ratio calculation set under Maica settings. If Unit Price
or Quantity
is ratioed, Maica applies the ratio to a new Quantity Delivered
field on the Invoice Line Item
, which the Agreement Item
now uses to calculate Quantity Delivered
. This prevents cases where the Quantity Delivered
field on the Agreement Item
displayed inflated, non-ratioed Quantities
if your preferred method of ratio calculation was defined as Unit Price in Maica Settings.
We resolved an issue where editing an Appointment
within an existing Schedule
(not the Master) unintentionally updated both the original schedule and the newly created schedule during a schedule split. This resulted in incorrect recurrence patterns and unexpected additional Appointments
, particularly when switching between weekly and fortnightly frequencies.
When an Appointment
within a schedule (not the Master) was edited, Maica attempted to split the schedule: The current Appointment
became the Master of a new schedule & the previous schedule was supposed to end on the day before the updated Appointment
.
However, all UI changes (e.g., Frequency
updates) were incorrectly applied to both the original and new schedules, causing both to reflect the updated values. For example, changing a Fortnightly
schedule to Weekly
caused both schedules to become Weekly
, which in turn led to duplicate Appointments
being created for the original schedule beyond its intended end date.
Corrected Cloning Logic During Schedule Splits: The system now ensures that when splitting a schedule the original schedule retains its original values (e.g., Frequency
, Interval
) and only the End Date
of the original schedule is updated to one day before the Appointment’s Scheduled Start
.
New Schedule
Now Uses Updated Values: The current Appointment
becomes the Master of a new schedule, which begins on the Scheduled Start Date
of that Appointment
. The new Schedule
inherits all UI changes, ensuring accurate recurrence going forward.
Pre-Split UI Changes Are No Longer Propagated Prematurely: UI changes are temporarily held until the system confirms a schedule split is required. This prevents incorrect values from being applied to the existing schedule.
Prevents Duplicate Appointment
Creation: The updated logic ensures that the original schedule ends cleanly, preventing the system from generating extra Appointments
based on the wrong Frequency
.
NDIS-834: Required post-install script to update all Invoice Line Items to populate Quantity Delivered
NDIS-834: Required post-install script to update all Agreement Items to populate Quantity Delivered. Please ensure you run the Invoice Line Item script shown above to completion before running this script. You can track the progress of the Job in your Salesforce instance by going to Setup --> Apex Jobs.
CC-504: Required script to reevaluate Duration on TSE related to Unavailability (updates only records where reevaluated value it different to one on the record, basically when Unavailability was changed):
CC-485: Required script to set Default Appointment/Shift Status to Accepted if the field is EMPTY in the org:
CC-485: Optional script that sets Appointment Resource Status to Accepted if the Default value in the settings is Accepted only for those records where Status is not Accepted yet for some reason.