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

Command icon 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

mably created an issue. See original summary.

mably’s picture

Status: Active » Needs review

  • mably committed 2e69b057 on 1.x
    feat: #3610111 Add a time-bounded operator cancellation window and a...
mably’s picture

Status: Needs review » Fixed

Now that this issue is closed, review the contribution record.

As a contributor, attribute any organization that helped you, or if you volunteered your own time.

Maintainers, credit people who helped resolve this issue.

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.