Adds a graceful, time-bounded operator cancellation to the booking workflow, alongside the existing customer self-cancel, plus a per-order workflow operations column so an assigned operator can act on it.
Customer cutoff: a per-resource cancellation_deadline (with a unit), distinct from refund_deadline, so a resource can stop customer self-cancellation before the refund window closes. BookingScheduleResolver::cancellationDeadline() computes it from the earliest slot start; PrepareCancellation seeds it as yoyaku_cancel_deadline and retimes the customer window to it.
Operator window: a new comment_operation node (n_cancel_window_operator) assigned to the resource managers, bounded by the slot start and requiring a cancellation comment. It is a third arm of the existing cancel fork and feeds the existing quorum join unchanged (first cancelled wins, else all arms time out to confirmed).
Workflow column: a generic hook_yoyaku_order_overview_columns / hook_yoyaku_order_overview_cell extension point in yoyaku_order lets any module add its own column to the orders overview; yoyaku_orchestra_order fills a Workflow column with the current user's assigned operations on the order's process instance (orchestra_ui.pending_actions), kept separate from the standard operations column.
Depends on Orchestra 1.x: the comment_operation task type and PendingActionsFinder::forInstance() from #3610107.
Issue fork yoyaku-3610111
Show commands
Start within a Git clone of the project using the version control instructions.
Or, if you do not have SSH keys set up on git.drupalcode.org:
Comments
Comment #3
mably commentedComment #5
mably commented