Keep pending field and price reviews accessible across report dates

This commit is contained in:
Wyndham ARR committed 2026-10-08 22:49:52 +08:00
1 parent f46efd6d9a
commit 52e5d7433b
11 files changed
+325 -26

No files matched your search

@@ -270,3 +270,15 @@ Read: memory-index, project-positioning, current-state latest September sections
- Local preservation evidence: existing Finance snapshot before/after matches exactly (1 prior version and58 audit records, comparing all old columns); newly added excluded_pm_rows remains0 for that historical version. Verified25 original handoff/review files unchanged. This includes preservation of completed10/7 rather than automatic reprocessing. New9/16 request `d89e8c15f9c94bd1a63411fa88e935d7`, job `arrbatch-517912e100e4f0dd6afecf1410b3e028f31eeecd85a0d26d`; old job remains separately auditable/cancelled. Service restarted with all local health flags ready. No production hotel writes, remote deployment/push or primary-checkout integration occurred.
- Product verification: authenticated API and CUA confirm9/16 one pending price key, Oracle amount1000,35 records/35 rooms/35 nights, blank processed price, disabled final generation; original XML upload remains present. Browser result tab retained as deliverable, screenshot `production-validation-20261007/pm-excluded-sept16-price-review-20261008.png`. Cold backup, raw replay, policy intent/completed receipt and upgrade script remain private outside Git. Actual9/16 daily/monthly generation awaits the user's price decision;0 remains accepted when explicitly confirmed.
- Promotion/follow-up: integration owner should promote the approved cancellation→PM→rate→validation→dedup→pricing order and schema021 deployment requirement. Retain the distinction between19 PM scope exclusions and10 removed unmatched PM reservations/4 removed price keys. User can now fill the sole LIAN TAI/WHO2/1000 processed-price key, save and confirm generation through the existing daily/monthly flow. Do not transfer the old PM0 value onto this different key or silently reprocess prior published reports.
## Same-task Follow-up: Price Reviews Across Months
- User reports10/7 unfinished review disappeared after downloading9/16. Concurrent gate Passed, same task/feature/codex/owned worktree/base/branch, no peers or unknown edits. Project Context Loaded: prior required project memory, decisions004/006/007, architecture/rules/evidence/reflection/commitments/stale state retained; task record and planning entry/gate refreshed. Primary remains untouched. Planning gate Passed: preserve every task/price/audit; do not refetch Oracle, reset completed reports or infer a human operator from a shared account.
- Read-only evidence:10/7 remains succeeded with38 rooms and completed review2/2 (850/1200). Trace has arr-data price saves at21:13:22/33 Beijing and finalization21:13:34, completion21:13:41. This contradicts the user's recollection; account identity alone does not identify who operated the session. No price/state reset authorized.9/16 selection changes Daily Report history toSeptember; selectingOctober reveals10/7 completed/downloadable.
- Product gap: pending dates currently include source-field reviews only. An actual pending price review can therefore disappear from the convenient entry after another date/month is selected. Plan: expose all authoritative unfinished source/price reviews, keep original compatibility field, filter completed/cancelled jobs against saved repository state, and let entry selection open the proper existing review/month without new acquisition. Test cross-month selection/reload, terminal filtering and no mutation; activate only after checking active local tasks and retain all business values.
- Backend outcome: durable `pending_reviews` lists source-field and price review requests across all dates. Portal reconciles price candidates against authoritative processing status and filters completed/cancelled jobs; unavailable lookup retains the last-known pending entry. Existing `pending_data_reviews` remains source-only for older callers. Local OHIP/XML wrappers forward the combined list without new access checks or acquisition.43 queue/API/local-wrapper tests passed with disposable PostgreSQL enabled and no skips, including restart, cross-month coexistence, terminal filtering, unavailable status lookup and original acquisition coalescing. No Finance schema/business rule changes.
- Frontend outcome: “待处理日期” labels source-field and price review tasks separately. Selection reads the existing request and opens its original review, syncing the report-history month for price tasks. Authoritative pending lists do not resurrect stale terminal entries; finalization/cancellation reconcile the original request. Source drafts remain per request, and unsaved price inputs prevent review switching until saved, including zero-price drafts. Fixed the missing render after task loading so pending-date buttons unlock.70 JavaScript tests passed, including9 new cases for mixed reviews, terminal filtering, selection, recovery and unsaved-price protection; syntax and whitespace checks passed.
- Local activation/preservation: checked that no acquisition/processing task was active, then gracefully restarted the same8875 LaunchAgent using this owned checkout. Authenticated pending list now contains9/17 needs_data_review and9/16 needs_review only, excluding the completed10/7 and cancelled superseded9/16 task. Full before/after existing10/7 and9/16 price-review objects match exactly. No Oracle read/write, price entry, review finalization, report generation, Finance mutation, schema/config change or primary-checkout edit occurred in this follow-up.
- Actual product verification: CUA selected9/17's existing source review (0/0 active items,18 cancellation and11 PM exclusions), then9/16's existing one-key price review (LIAN TAI/WHO2/Oracle1000,35 records/rooms/nights, blank processed price,0/1). Reload retained both enabled pending-date entries; choosingOctober history showed the original10/7 succeeded38-room report and its download link while bothSeptember pending entries remained visible. Did not click generation or enter any price. Private screenshot `production-validation-20261007/pending-review-dates-october-history-20261008.png`; before/after JSON evidence remains alongside it outside Git. Result tab retained; older user tabs were not reloaded.
- Promotion candidate: integration-owned data-flow/current-state should distinguish cross-month pending review navigation from month-filtered completed-report history. Switching dates preserves original requests and decisions; shared-account audit evidence cannot establish the individual operator. This changes navigation only and has no semantic conflict with accepted processing rules; no additional human business-policy decision is required. Remaining follow-ups: the user supplies the sole9/16 price and explicitly continues9/17 when ready; investigate10/7 operator attribution only if additional evidence is available, without resetting its existing published result.