'cancel_activity' Command

1) If no activities with specified key field values exist in the system the command is rejected.

2) If an activity with specified key field values exists in the system:

2a) activity properties and fields (not inventory) are updated by the 'update_appointment' command

2b) activity is canceled

2c) all duplicating activities are deleted

3) If existing activity is not-scheduled and 'date' field is not defined:

3a) if the resource for the current day is valid, the activity is rescheduled to the current date and then canceled

3b) if the resource is not working or not valid for the current day and fallback resource is specified and valid – the activity is moved to the fallback resource, rescheduled to the current date and then canceled

3c) if the resource is not working or not valid for the current day and fallback resource is not specified or is invalid, the command is rejected and the activity is not canceled.

Note:
A segmentable activity can be canceled by the 'cancel_activity' command if the activity status is 'pending' and all segments of the activity are in the 'pending' or 'cancelled' status', otherwise the command will fail.