From f46efd6d9a11fec6395242db308d9f34227d3248 Mon Sep 17 00:00:00 2001 From: Wyndham ARR Date: Thu, 8 Oct 2026 22:30:04 +0800 Subject: [PATCH] Exclude PM room types from shared daily report processing --- .../tasks/20261008-production-review-9e7b.md | 17 +- arr-opera-daily-ingest.skill | Bin 92058 -> 93334 bytes arr-opera-daily-ingest.zip | Bin 92058 -> 93334 bytes arr-opera-daily-ingest/SKILL.md | 6 +- .../references/business-rules.md | 12 +- .../data-structured-result.schema.json | 16 +- .../references/field-contracts.md | 4 +- .../references/structured-output.md | 6 +- .../references/structured-result.schema.json | 16 +- .../scripts/process_daily.py | 31 +- .../scripts/validate_daily.py | 36 +- arr_ingestion/direct_postgres.py | 3 +- arr_ingestion/postgres.py | 46 ++- arr_ingestion/validation.py | 23 +- arr_web/arr_data_review.py | 33 +- arr_web/local_ohip.py | 2 +- arr_web/local_replay_database.py | 4 +- arr_web/processing_runtime.py | 1 + arr_web/static/app.js | 3 + arr_web/static/i18n.js | 1 + database/021_daily_pm_exclusion.down.sql | 28 ++ database/021_daily_pm_exclusion.sql | 52 +++ tests/javascript/arr_data_review.cjs | 11 + tests/local_postgres.py | 4 +- tests/test_arr_cancelled_ingestion.py | 14 +- tests/test_arr_cancelled_scope.py | 2 +- tests/test_arr_download_runtime.py | 16 + tests/test_arr_ingestion_postgres.py | 2 +- tests/test_arr_opera_daily_ingest.py | 7 +- tests/test_arr_pm_ingestion.py | 315 ++++++++++++++++++ tests/test_arr_pm_review.py | 98 ++++++ tests/test_arr_pm_scope.py | 228 +++++++++++++ 32 files changed, 968 insertions(+), 69 deletions(-) create mode 100644 database/021_daily_pm_exclusion.down.sql create mode 100644 database/021_daily_pm_exclusion.sql create mode 100644 tests/test_arr_pm_ingestion.py create mode 100644 tests/test_arr_pm_review.py create mode 100644 tests/test_arr_pm_scope.py diff --git a/.project-docs/30-worklog/tasks/20261008-production-review-9e7b.md b/.project-docs/30-worklog/tasks/20261008-production-review-9e7b.md index b89ea55..9abeffd 100644 --- a/.project-docs/30-worklog/tasks/20261008-production-review-9e7b.md +++ b/.project-docs/30-worklog/tasks/20261008-production-review-9e7b.md @@ -12,7 +12,7 @@ ## Scope -- 修复生产 OHIP 查询、环境内任务恢复及接口字段人工完善;保留 XML、原费率筛选、定价、日报/月报规则,并落实用户确认的取消预订排除规则。 +- 修复生产 OHIP 查询、环境内任务恢复及接口字段人工完善;保留 XML、原费率筛选、定价、日报/月报规则,并落实用户确认的取消预订及 PM 房型排除规则。 ## Intent And Constraints @@ -255,3 +255,18 @@ Read: memory-index, project-positioning, current-state latest September sections - User asks how PM was identified and what characteristics support it. Same-task ownership/feature/codex/base2417b1a/owned checkout/no peers and retained Project Context Loaded verified; Planning gate Passed for read-only source-evidence inspection. No new source request, report/rule change or hotel configuration assumption is authorized by this question. - Reopened the saved original search/detail responses for all10 API0 price-unmatched rows. In every row search.roomStay.roomType, detail.roomStay.currentRoomInfo.roomType and detail.roomStay.roomRates[the9/16day].roomType explicitly equal PM. This is the same3-way agreement used by source_fields.agreed_room_type, not an inference from room-number prefix, zero amount or roomTypeCharged. Two examples: confirmation300638606/room9002 and300638238/room9004, all3 PM fields agree; both also have amount0 and adults0/children0. These latter features are auxiliary, never a standalone pseudo-room rule. - Broader source count23 PM records (19 CheckedOut,4 Cancelled) should not be confused with the10 actionable unmatched PM records discussed here. Nothing establishes that PM is the only pseudo code in this hotel, or that every9xxx room/0-price reservation is pseudo. The official Oracle default-PM meaning remains supported by the links above, while actual report eligibility still requires the original report criterion. No code/data/price edits, Oracle calls, test suite, service action or actual generation occurred. Explain explicit roomType evidence separately from the not-yet-settled decision to exclude it from the report. + +## Same-task Follow-up: User-approved PM Exclusion + +- User explicitly confirms PM must not be included and requests updating processing rules. This resolves the PM inclusion-policy question above; exclusion is now authorized for both XML and OHIP input, before required-field checks/deduplication/pricing. Only exact trimmed/case-insensitive ROOM_CATEGORY_LABEL=PM is approved; do not infer from0 price,9xxx rooms, absent type, roomTypeCharged or other pseudo codes. Cancellation remains the first mutually exclusive exclusion. Original source records and prior staff decisions remain auditable. +- Concurrent task gate Passed: same20261008-production-review-9e7b feature/codex/owned checkout/codex/arr-production-review/base2417b1a, no peers; primary unknown docs untouched. Project Context Loaded: retained required memory-index/positioning/current-state/decision-index/ADR004,006,007/architecture/domain/evidence/reflection/commitments/stale context plus active task record/read-before-planning/planning-gate. New user authorization supersedes only the prior undecided-PM boundary. Relevant modules: shared processor/independent validator/schema, Finance validation/SQL contracts, upstream field review, local versioned runtime. Planning gate Passed. +- Plan: add explicit excluded_pm audit outcome and processing identity4.4.0 across shared XML/data rules and independent checks; extend ingestion/Finance schema and counts without altering prior published versions; prevent PM source-field prompts; regression-check both input paths, exclusions before validation/dedup/pricing, zero-priced physical-room retention and legacy contracts. Replay9/16 immutable capture offline, then safely activate the local rule and supersede its obsolete price-review job while retaining any decisions on still-relevant keys. Do not refetch Oracle, fabricate prices, overwrite completed real reports or silently reprocess published10/7. Required local maintenance will be rehearsed/backup/revision-checked; record material preservation limitations before any unsafe change. + +- Implementation outcome: active processor4.4.0 shares the same explicit `is_pm_record` rule for XML and direct OHIP data. Existing text normalization runs before trimmed/case-insensitive PM comparison. Cancellation wins; PM then precedes rate/required fields/deduplication/pricing, and `excluded_pm` / `ROOM_TYPE_PM_EXCLUDED` retains every original/audit record with null price/channel facts. No price lookup, whitelist, normal zero-price or formula rule changed. Source review now uses the same normalized records for issues/counts/edit guards; prior PM decisions remain in immutable audit, with a manually completed room-type value still correctable before finalization. Chinese/English/Thai exclusion counts are visible. Package archives match their source. +- Finance outcome: added migration021 and explicit startup checks for both input paths; new independent PM count reconciles source rows and validates the excluded record shape.4.4 requires all8 outcome counters;4.3/4.2/retired v3 replay retain their old contracts. Upgrade leaves historical versions/records intact with the new count defaulting to0; rollback refuses committed PM-exclusion facts, existing mutation guards and role access remain. +- Verification: processor PM8 + cancellation9 distinct cases passed; ingestion/Finance61 distinct tests passed with disposable local PostgreSQL (no skips), including4.3→021 historical row preservation, both input paths, daily/monthly results, rejected-batch audit, idempotent retry, rollback and role checks. Root source-review/cancellation/executor run passed41 tests with1 PG class skipped before opt-in; the subsequently opted-in DirectFieldReviewPostgresTests and all6 final PM review cases passed7/7. Root package/runtime run passed28/28, JavaScript review passed34/34. Independent review identified differing emoji normalization in review counters/edit guard, fixed by sharing processor normalization and covered by a new PM😀 case; manual room-type correction is also covered. Preliminary runner name mistakes were corrected and are not represented as case failures or as passing tests. Git whitespace, node syntax, documentation structure and task ownership checks passed. +- Offline real9/16 replay: unchanged209-row OHIP source yields6 excluded cancellations,19 excluded PM,34 excluded rates,115 priced candidates and35 price-unmatched records in exactly1 key LIAN TAI/WHO2/1000. The unchanged184-row original XML yields0 cancellations/PM,34 rate exclusions and the same115+35 candidates/one key. This is evidence for this date after the explicit new PM policy, not a claim that the separately deferred universal API/XML population question is solved. No actual price or source value was invented, and no Oracle call occurred. +- Safe local activation: verified no active acquisition/processing queue, gracefully stopped the existing8875 service, cold-backed up the entire119MB private instance to `policy44-service-backup-20261008-142628`, then ran the privately rehearsed explicit upgrade. Schema021, instance hash, launcher and unfinished9/17 identity/receipt were advanced.9/17 remains editing revision4 with0 pending fields,18 cancellations and11 PM exclusions; no staff finalization occurred. Replayed9/16 from its original checkpoint using a source whose fetch method raises if called, creating a new immutable4.4 job/request; superseded/cancelled its old5-key review through the normal revision-checked cancellation method and preserved its1 user-saved0 decision in the old case/audit. No matching still-required price was saved, so the new1-key review remains open0/1. +- 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. diff --git a/arr-opera-daily-ingest.skill b/arr-opera-daily-ingest.skill index 0ca58d9a3e4f921dc819593aead26261544d9b2d..55fb43046803d16058f1f47f86b8c373f4f61b66 100644 GIT binary patch delta 82323 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⪚ar*Un+`-lJIBYZ<{7M1^@pn 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 pkQx5{{yJiy37Co delta 80930 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

_MkW+Tdb?on!~c?KKeg5*&{o#l{) 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�Ov$oU{0Rftm$<=iM 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 diff --git a/arr-opera-daily-ingest.zip b/arr-opera-daily-ingest.zip index 0ca58d9a3e4f921dc819593aead26261544d9b2d..55fb43046803d16058f1f47f86b8c373f4f61b66 100644 GIT binary patch delta 82323 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⪚ar*Un+`-lJIBYZ<{7M1^@pn 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 pkQx5{{yJiy37Co delta 80930 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

_MkW+Tdb?on!~c?KKeg5*&{o#l{) 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�Ov$oU{0Rftm$<=iM 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 diff --git a/arr-opera-daily-ingest/SKILL.md b/arr-opera-daily-ingest/SKILL.md index c563223..19ad0ce 100644 --- a/arr-opera-daily-ingest/SKILL.md +++ b/arr-opera-daily-ingest/SKILL.md @@ -63,7 +63,7 @@ Read `result.json` only after the process exits. If Python or `openpyxl` is unavailable, stop with an infrastructure failure. Do not switch to a different spreadsheet implementation. -## Direct data entry (processor 4.3.0) +## Direct data entry (processor 4.4.0) Use `--data-json` instead of `--xml` for the frozen OHIP data source. Both inputs use the same classification, pricing, review and daily workbook rules. JSON is never converted into XML. XML keeps result schema 4.0; direct data uses schema 5.0 with `ingestion_mode=ohip_data` and an explicit `source_data` / `ohip_json` artifact. The independent validator accepts the same source switch. See `references/data-result.schema.json` and `references/data-structured-result.schema.json`. Trace remains blank for the 15-field data input. @@ -71,3 +71,7 @@ Use `--data-json` instead of `--xml` for the frozen OHIP data source. Both input ## Cancelled reservation scope (processor 4.3.0) Exclude explicitly cancelled reservations before rate-code, required-field, pricing and room/date deduplication checks. Preserve every source row in the audit with `excluded_cancelled` and `RESERVATION_CANCELLED_EXCLUDED`; never request a room for an excluded reservation. Both XML and OHIP data use the same predicate. XML recognizes only explicit CXL/CANCELLED/CANCELED status values; unknown abbreviations and conflicting status fields are not inferred. Retired direct-MCP v3 replay retains its original scope. + +## PM room type scope (processor 4.4.0) + +After cancelled reservation exclusion, exclude records whose explicit `ROOM_CATEGORY_LABEL`, trimmed and compared case-insensitively, equals `PM`. Apply this before whitelist, required-field, deduplication and pricing checks in both XML and OHIP paths. Preserve every row as `excluded_pm` with `ROOM_TYPE_PM_EXCLUDED`; do not request fields or prices for it. Do not infer PM from room number, amount, occupancy, charged room type or other pseudo codes. Cancelled PM rows count only as cancelled. Retired direct-MCP v3 replay keeps its original scope. diff --git a/arr-opera-daily-ingest/references/business-rules.md b/arr-opera-daily-ingest/references/business-rules.md index 50c9ca8..1866f67 100644 --- a/arr-opera-daily-ingest/references/business-rules.md +++ b/arr-opera-daily-ingest/references/business-rules.md @@ -4,7 +4,7 @@ 1. Validate the invocation and parse one fixed `RES_DETAIL` XML. 2. Require exactly one XML business date and keep one audit record for every `G_RESERVATION` in XML order. -3. First exclude explicitly cancelled reservations as `excluded_cancelled` with `RESERVATION_CANCELLED_EXCLUDED`; preserve the original row and source sequence. Other records require `RATE_CODE` so whitelist membership is knowable. +3. First exclude explicitly cancelled reservations as `excluded_cancelled` with `RESERVATION_CANCELLED_EXCLUDED`, then exclude an explicit `ROOM_CATEGORY_LABEL` of `PM` as `excluded_pm` with `ROOM_TYPE_PM_EXCLUDED`. Preserve the original row and source sequence. Other records require `RATE_CODE` so whitelist membership is knowable. 4. Classify a trimmed, uppercased rate code outside the whitelist as `excluded_rate_code`. 5. Validate every whitelist candidate; classify invalid rows as `validation_failed`. 6. Deduplicate valid candidates by `DISP_ROOM_NO + ARRIVAL`; retain the first XML occurrence and classify later occurrences as `duplicate` pointing to the first source sequence. @@ -96,6 +96,12 @@ Do not access OSS, embed credentials, generate/update a monthly workbook, query/ ## Cancellation exclusion approved 2026-10-08 -The active processor4.3.0 excludes cancelled reservations whether or not a room is assigned, before all business-field checks and room/date deduplication. OHIP uses `reservation_status`, retained from matching search/detail responses. XML uses the explicitly named `RESV_STATUS`, `RESERVATION_STATUS`, `SHORT_RESV_STATUS` fields. Trimmed, case-insensitive `CXL`, `CANCELLED`, `CANCELED` identify cancellation. A cancellation marker conflicting with a different nonempty status is not sufficient to exclude. Missing/unknown statuses (including CA/CD), NoShow and reservation types are not interpreted as cancellation. The retired direct-MCP v3 replay keeps its old rules. +Processors4.3.0 and later exclude cancelled reservations whether or not a room is assigned, before all business-field checks and room/date deduplication. OHIP uses `reservation_status`, retained from matching search/detail responses. XML uses the explicitly named `RESV_STATUS`, `RESERVATION_STATUS`, `SHORT_RESV_STATUS` fields. Trimmed, case-insensitive `CXL`, `CANCELLED`, `CANCELED` identify cancellation. A cancellation marker conflicting with a different nonempty status is not sufficient to exclude. Missing/unknown statuses (including CA/CD), NoShow and reservation types are not interpreted as cancellation. The retired direct-MCP v3 replay keeps its old rules. -Every source row stays in the structured audit. `outcome_counts.excluded_cancelled` is always present for4.3.0, including zero; it is separate from `removed_by_rate_code`. Excluded cancellations have no pricing, amount or channel facts and never participate in daily or monthly totals. Original source files and captured HTTP responses remain read-only. +Every source row stays in the structured audit. `outcome_counts.excluded_cancelled` is always present for4.3.0 and later, including zero; it is separate from `removed_by_rate_code`. Excluded cancellations have no pricing, amount or channel facts and never participate in daily or monthly totals. Original source files and captured HTTP responses remain read-only. + +## PM room-type scope + +Processor4.4.0 excludes records only when the explicit `ROOM_CATEGORY_LABEL`, after trimming and case normalization, equals `PM`. This rule is shared by XML and direct OHIP data. Cancellation takes precedence: a cancelled PM record is counted only as `excluded_cancelled`. PM exclusion precedes rate-code/required-field checks, room/date deduplication and pricing, so a PM row cannot consume a real room's duplicate key or produce a manual-price issue. A room number, zero price, guest count, missing room type, or a similar label such as `PM1` never proves PM. + +The source record and source sequence remain audited with `excluded_pm` and exactly `ROOM_TYPE_PM_EXCLUDED`; the original room-type value retains its case after normal text trimming. `outcome_counts.excluded_pm` is always present for4.4.0, including zero, and remains separate from cancelled/rate-code exclusions. PM rows have no price, total, KB, channel or pricing-method facts and do not enter daily/monthly totals or manual pricing. The frozen direct-MCP v3 path retains its original scope and never emits the new outcome. diff --git a/arr-opera-daily-ingest/references/data-structured-result.schema.json b/arr-opera-daily-ingest/references/data-structured-result.schema.json index d92e503..b3dfbee 100644 --- a/arr-opera-daily-ingest/references/data-structured-result.schema.json +++ b/arr-opera-daily-ingest/references/data-structured-result.schema.json @@ -17,7 +17,7 @@ "activation_eligible": { "type": "boolean" }, "ingestion_mode": { "type": "string", "const": "ohip_data" }, "business_date": { "type": ["string", "null"], "format": "date" }, - "processor_version": { "type": "string", "const": "4.3.0" }, + "processor_version": { "type": "string", "const": "4.4.0" }, "rule_set_sha256": { "$ref": "#/$defs/sha256" }, "source_rows": { "type": "integer", "minimum": 0 }, "removed_by_rate_code": { "type": "integer", "minimum": 0 }, @@ -32,11 +32,12 @@ "manually_priced_rows": { "type": "integer", "minimum": 0 }, "outcome_counts": { "type": "object", "additionalProperties": false, - "required": ["candidate", "duplicate", "excluded_cancelled", "excluded_rate_code", "price_unmatched", "retained", "validation_failed"], + "required": ["candidate", "duplicate", "excluded_cancelled", "excluded_pm", "excluded_rate_code", "price_unmatched", "retained", "validation_failed"], "properties": { "candidate": { "type": "integer", "minimum": 0 }, "duplicate": { "type": "integer", "minimum": 0 }, "excluded_cancelled": { "type": "integer", "minimum": 0 }, + "excluded_pm": { "type": "integer", "minimum": 0 }, "excluded_rate_code": { "type": "integer", "minimum": 0 }, "price_unmatched": { "type": "integer", "minimum": 0 }, "retained": { "type": "integer", "minimum": 0 }, @@ -148,7 +149,7 @@ "properties": { "source_sequence": { "type": "integer", "minimum": 1 }, "source_location": { "type": "string", "minLength": 1 }, "source_worksheet": { "type": "null" }, "source_row_no": { "type": "null" }, - "outcome": { "type": "string", "enum": ["retained", "candidate", "excluded_rate_code", "duplicate", "validation_failed", "price_unmatched", "excluded_cancelled"] }, + "outcome": { "type": "string", "enum": ["retained", "candidate", "excluded_rate_code", "duplicate", "validation_failed", "price_unmatched", "excluded_cancelled", "excluded_pm"] }, "decision_codes": { "type": "array", "uniqueItems": true, "items": { "type": "string", "minLength": 1 } }, "duplicate_of_source_sequence": { "type": ["integer", "null"], "minimum": 1 }, "adults": { "type": ["integer", "null"] }, "children": { "type": ["integer", "null"] }, "block_code": { "type": "string" }, @@ -175,6 +176,15 @@ "kb_amount": { "type": "null" }, "channel_key": { "type": "null" }, "pricing_method": { "type": "null" } } } }, + { + "if": { "properties": { "outcome": { "const": "excluded_pm" } }, "required": ["outcome"] }, + "then": { "properties": { + "room_category_label": { "pattern": "^[Pp][Mm]$" }, + "decision_codes": { "const": ["ROOM_TYPE_PM_EXCLUDED"] }, + "real_price": { "type": "null" }, "total_price": { "type": "null" }, + "kb_amount": { "type": "null" }, "channel_key": { "type": "null" }, "pricing_method": { "type": "null" } + } } + }, { "if": { "properties": { "outcome": { "const": "duplicate" } }, "required": ["outcome"] }, "then": { "properties": { "duplicate_of_source_sequence": { "type": "integer", "minimum": 1 } } }, diff --git a/arr-opera-daily-ingest/references/field-contracts.md b/arr-opera-daily-ingest/references/field-contracts.md index 09f4de0..c9ce460 100644 --- a/arr-opera-daily-ingest/references/field-contracts.md +++ b/arr-opera-daily-ingest/references/field-contracts.md @@ -107,7 +107,7 @@ When trimmed `RES_COMMENT` is empty, `group_code_key` is null and `booking_sourc The complete record field list and conditional nullability rules are authoritative in [structured-result.schema.json](structured-result.schema.json). -## Direct OHIP data input (processor 4.3.0) +## Direct OHIP data input (processor 4.4.0) `--data-json` accepts frozen `arr-ohip-data/v1` field observations with complete collection, exact hotel/date context, unique reservation IDs and continuous source order. Classification, whitelist, room/arrival deduplication, pricing, zero-price exceptions, nights, channel assignment and formulas are shared with XML. An unresolved field on a retained candidate fails the batch; it is not treated as a missing price. Non-whitelist rows are excluded before business-field validation, as in XML. @@ -115,3 +115,5 @@ The reservation comment uses the first nonempty note in the supplied order after An OHIP row may carry a nonempty string `reservation_status` outside the15 business `fields`. New acquisition retains it from independently matched search/detail states. For pre-upgrade pending captures, an internal saved-response evidence receipt can append statuses to a derived source without changing original bytes or staff decisions. Cancelled rows are excluded before candidate validation. A missing status in an old source is not silently interpreted as cancelled. + +The shared scope now excludes an explicit `ROOM_CATEGORY_LABEL` equal to `PM` (trimmed, case-insensitive), after cancellation and before business-field validation. PM rows retain source/audit fields with `excluded_pm` and null pricing/channel facts. Neither zero price nor room number identifies PM. diff --git a/arr-opera-daily-ingest/references/structured-output.md b/arr-opera-daily-ingest/references/structured-output.md index d261c02..93195be 100644 --- a/arr-opera-daily-ingest/references/structured-output.md +++ b/arr-opera-daily-ingest/references/structured-output.md @@ -31,7 +31,7 @@ The payload includes: - `removed_by_rate_code` - `removed_as_duplicates` - `output_rows`, `candidate_rows`, `review_required_rows`, and `review_issue_count` -- seven-outcome reconciliation (processor4.3.0) +- eight-outcome reconciliation (processor4.4.0) - grouped, privacy-minimized `review_issues` with fixed-table candidate-price comparisons - `review_case_id`, `manual_override_sha256`, and `manually_priced_rows` on final manual replay only - channel counts @@ -49,6 +49,8 @@ Allowed outcomes: - `retained` - `candidate` +- `excluded_cancelled` +- `excluded_pm` - `excluded_rate_code` - `duplicate` - `validation_failed` @@ -93,3 +95,5 @@ Processor 4.2.0 adds explicit direct-data schema 5.0 (`ohip_data`, `source_data` Processor4.3.0 preserves result schema4.0/5.0 and adds `excluded_cancelled` to `outcome_counts` and record outcomes. It requires `RESERVATION_CANCELLED_EXCLUDED` with no price/channel facts; all source rows still reconcile. Old processor results retain their original outcome contract; the new outcome cannot be declared under an old processor identity. Finance requires migration020. + +Processor4.4.0 keeps schema4.0/5.0 and adds `excluded_pm` with `ROOM_TYPE_PM_EXCLUDED` for an explicit, trimmed, case-insensitive `ROOM_CATEGORY_LABEL = PM`. Cancellation is checked first; PM exclusion is checked before rate-code/required-field validation, deduplication and pricing. The count is required even when zero and is reconciled separately from cancelled and rate-code exclusions. PM audit rows preserve source order and room type but have null `real_price`, `total_price`, `kb_amount`, `channel_key` and `pricing_method`; they never enter daily/monthly facts or manual-price issues. Finance requires migration021. Old processor identities and the frozen v3 replay cannot declare this outcome. diff --git a/arr-opera-daily-ingest/references/structured-result.schema.json b/arr-opera-daily-ingest/references/structured-result.schema.json index e531d23..3db8918 100644 --- a/arr-opera-daily-ingest/references/structured-result.schema.json +++ b/arr-opera-daily-ingest/references/structured-result.schema.json @@ -17,7 +17,7 @@ "activation_eligible": { "type": "boolean" }, "ingestion_mode": { "type": "string", "const": "opera_xml" }, "business_date": { "type": ["string", "null"], "format": "date" }, - "processor_version": { "type": "string", "const": "4.3.0" }, + "processor_version": { "type": "string", "const": "4.4.0" }, "rule_set_sha256": { "$ref": "#/$defs/sha256" }, "source_rows": { "type": "integer", "minimum": 0 }, "removed_by_rate_code": { "type": "integer", "minimum": 0 }, @@ -32,11 +32,12 @@ "manually_priced_rows": { "type": "integer", "minimum": 0 }, "outcome_counts": { "type": "object", "additionalProperties": false, - "required": ["candidate", "duplicate", "excluded_cancelled", "excluded_rate_code", "price_unmatched", "retained", "validation_failed"], + "required": ["candidate", "duplicate", "excluded_cancelled", "excluded_pm", "excluded_rate_code", "price_unmatched", "retained", "validation_failed"], "properties": { "candidate": { "type": "integer", "minimum": 0 }, "duplicate": { "type": "integer", "minimum": 0 }, "excluded_cancelled": { "type": "integer", "minimum": 0 }, + "excluded_pm": { "type": "integer", "minimum": 0 }, "excluded_rate_code": { "type": "integer", "minimum": 0 }, "price_unmatched": { "type": "integer", "minimum": 0 }, "retained": { "type": "integer", "minimum": 0 }, @@ -148,7 +149,7 @@ "properties": { "source_sequence": { "type": "integer", "minimum": 1 }, "source_location": { "type": "string", "minLength": 1 }, "source_worksheet": { "type": "null" }, "source_row_no": { "type": "null" }, - "outcome": { "type": "string", "enum": ["retained", "candidate", "excluded_rate_code", "duplicate", "validation_failed", "price_unmatched", "excluded_cancelled"] }, + "outcome": { "type": "string", "enum": ["retained", "candidate", "excluded_rate_code", "duplicate", "validation_failed", "price_unmatched", "excluded_cancelled", "excluded_pm"] }, "decision_codes": { "type": "array", "uniqueItems": true, "items": { "type": "string", "minLength": 1 } }, "duplicate_of_source_sequence": { "type": ["integer", "null"], "minimum": 1 }, "adults": { "type": ["integer", "null"] }, "children": { "type": ["integer", "null"] }, "block_code": { "type": "string" }, @@ -175,6 +176,15 @@ "kb_amount": { "type": "null" }, "channel_key": { "type": "null" }, "pricing_method": { "type": "null" } } } }, + { + "if": { "properties": { "outcome": { "const": "excluded_pm" } }, "required": ["outcome"] }, + "then": { "properties": { + "room_category_label": { "pattern": "^[Pp][Mm]$" }, + "decision_codes": { "const": ["ROOM_TYPE_PM_EXCLUDED"] }, + "real_price": { "type": "null" }, "total_price": { "type": "null" }, + "kb_amount": { "type": "null" }, "channel_key": { "type": "null" }, "pricing_method": { "type": "null" } + } } + }, { "if": { "properties": { "outcome": { "const": "duplicate" } }, "required": ["outcome"] }, "then": { "properties": { "duplicate_of_source_sequence": { "type": "integer", "minimum": 1 } } }, diff --git a/arr-opera-daily-ingest/scripts/process_daily.py b/arr-opera-daily-ingest/scripts/process_daily.py index cbf4026..ba964bc 100755 --- a/arr-opera-daily-ingest/scripts/process_daily.py +++ b/arr-opera-daily-ingest/scripts/process_daily.py @@ -27,7 +27,7 @@ from openpyxl.utils import get_column_letter RESULT_VERSION = "4.0" -PROCESSOR_VERSION = "4.3.0" +PROCESSOR_VERSION = "4.4.0" DATA_RESULT_VERSION = "5.0" STRUCTURED_RESULT_SCHEMA_VERSION = "4.0" # Retired direct-MCP/callback compatibility. This is deliberately an internal, @@ -66,6 +66,7 @@ RULE_SET_PATHS = ( FINAL_OUTCOMES = { "retained", "excluded_cancelled", + "excluded_pm", "excluded_rate_code", "duplicate", "validation_failed", @@ -1115,6 +1116,11 @@ def is_cancelled_record(record: Mapping[str, Any]) -> bool: and text_or_blank(record.get("_RESERVATION_STATUS")).upper() in CANCELLED_RESERVATION_STATUSES) +def is_pm_record(record: Mapping[str, Any]) -> bool: + """Exclude only an explicitly supplied PM room type, never infer it from other fields.""" + return text_or_blank(record.get("ROOM_CATEGORY_LABEL")).upper() == "PM" + + def classify_normalized_records(all_records, business_date, *, apply_scope=True): candidates: List[Dict[str, Any]] = [] errors: List[ErrorItem] = [] @@ -1124,6 +1130,10 @@ def classify_normalized_records(all_records, business_date, *, apply_scope=True) record["_OUTCOME"] = "excluded_cancelled" append_decision(record, "RESERVATION_CANCELLED_EXCLUDED") continue + if apply_scope and is_pm_record(record): + record["_OUTCOME"] = "excluded_pm" + append_decision(record, "ROOM_TYPE_PM_EXCLUDED") + continue normalized_rate = record["_NORMALIZED_RATE_CODE"] if not normalized_rate: error = xml_record_error( @@ -1787,7 +1797,7 @@ def build_legacy_direct_structured_result( for outcome in sorted(LEGACY_DIRECT_FINAL_OUTCOMES) } if ( - any(record.get("_OUTCOME") == "candidate" for record in records) + any(record.get("_OUTCOME") not in LEGACY_DIRECT_FINAL_OUTCOMES for record in records) or any(record.get("_PRICING_METHOD") == "manual_review" for record in records) or legacy_counts["validation_failed"] or legacy_counts["price_unmatched"] @@ -1869,13 +1879,13 @@ def build_legacy_direct_failed_structured_result( outcome: sum(1 for record in records if record.get("_OUTCOME") == outcome) for outcome in sorted(LEGACY_DIRECT_FINAL_OUTCOMES) } - if any(record.get("_OUTCOME") == "candidate" for record in records): + if any(record.get("_OUTCOME") not in LEGACY_DIRECT_FINAL_OUTCOMES for record in records): raise ProcessingFailure( [ ErrorItem( "LEGACY_DIRECT_OUTPUT_INVALID", "legacy_direct", - "旧direct_mcp失败输出不得包含候选复核行", + "旧direct_mcp失败输出不得包含冻结v3契约之外的记录状态", ) ] ) @@ -2077,7 +2087,7 @@ def validate_structured_completeness(payload: Dict[str, Any]) -> None: failures.append("source_sequence必须从1开始连续且保持XML顺序") counts = payload.get("outcome_counts", {}) if not isinstance(counts, dict) or set(counts) != FINAL_OUTCOMES: - failures.append("outcome_counts必须覆盖七种固定outcome") + failures.append("outcome_counts必须覆盖八种固定outcome") counts = {} for outcome in FINAL_OUTCOMES: actual = sum(1 for record in records if record.get("outcome") == outcome) @@ -2104,6 +2114,7 @@ def validate_structured_completeness(payload: Dict[str, Any]) -> None: + payload.get("removed_as_duplicates", 0) + payload.get("output_rows", 0) + counts.get("excluded_cancelled", 0) + + counts.get("excluded_pm", 0) ): failures.append("成功payload的源行分解不平衡") if payload.get("review_required_rows") or payload.get("review_issue_count"): @@ -2121,7 +2132,7 @@ def validate_structured_completeness(payload: Dict[str, Any]) -> None: failures.append("待复核payload必须包含缺价行") if payload.get("candidate_rows", 0) + payload.get("review_required_rows", 0) + counts.get( "excluded_rate_code", 0 - ) + counts.get("duplicate", 0) + counts.get("excluded_cancelled", 0) != source_rows: + ) + counts.get("duplicate", 0) + counts.get("excluded_cancelled", 0) + counts.get("excluded_pm", 0) != source_rows: failures.append("待复核payload的源行分解不平衡") issues = payload.get("review_issues") if not isinstance(issues, list) or payload.get("review_issue_count") != len(issues): @@ -2218,6 +2229,14 @@ def validate_structured_completeness(payload: Dict[str, Any]) -> None: if any(record.get(field) is not None for field in ( "real_price", "total_price", "kb_amount", "channel_key", "pricing_method")): failures.append("取消排除记录不得参与定价或渠道归属") + if record.get("outcome") == "excluded_pm": + if text_or_blank(record.get("room_category_label")).upper() != "PM": + failures.append("PM排除记录必须有明确的PM房型") + if decisions != ["ROOM_TYPE_PM_EXCLUDED"]: + failures.append("PM排除记录必须保留明确的PM房型排除原因") + if any(record.get(field) is not None for field in ( + "real_price", "total_price", "kb_amount", "channel_key", "pricing_method")): + failures.append("PM排除记录不得参与定价或渠道归属") if record.get("normalized_rate_code") != ( text_or_blank(record.get("rate_code")).upper() or None ): diff --git a/arr-opera-daily-ingest/scripts/validate_daily.py b/arr-opera-daily-ingest/scripts/validate_daily.py index 9693d0c..5deaedd 100755 --- a/arr-opera-daily-ingest/scripts/validate_daily.py +++ b/arr-opera-daily-ingest/scripts/validate_daily.py @@ -535,23 +535,6 @@ def validate_structured_result_contract( f"structured-result.json 的 {field} 应为 {expected!r}", ) ) - expected_outcome_counts = { - "duplicate": removed_duplicates, - "excluded_cancelled": source_rows - removed_by_rate - removed_duplicates - len(expected_records), - "excluded_rate_code": removed_by_rate, - "candidate": 0, - "price_unmatched": 0, - "retained": len(expected_records), - "validation_failed": 0, - } - if payload.get("outcome_counts") != expected_outcome_counts: - errors.append( - validation_error( - "OUTPUT_STRUCTURED_OUTCOME_MISMATCH", - f"structured outcome计数应为 {expected_outcome_counts}", - ) - ) - artifacts = payload.get("artifacts") if isinstance(artifacts, dict): contract = core.source_contract(xml_path) @@ -621,6 +604,23 @@ def validate_structured_result_contract( ) ) return + expected_outcome_counts = { + "duplicate": removed_duplicates, + "excluded_cancelled": sum(record.get("_OUTCOME") == "excluded_cancelled" for record in all_records), + "excluded_pm": sum(record.get("_OUTCOME") == "excluded_pm" for record in all_records), + "excluded_rate_code": removed_by_rate, + "candidate": 0, + "price_unmatched": 0, + "retained": len(expected_records), + "validation_failed": 0, + } + if payload.get("outcome_counts") != expected_outcome_counts: + errors.append( + validation_error( + "OUTPUT_STRUCTURED_OUTCOME_MISMATCH", + f"structured outcome计数应为 {expected_outcome_counts}", + ) + ) price_map = core.load_price_map(Path(core.PRICE_REFERENCE).resolve()) pricing_errors = core.apply_prices_classified( retained, @@ -766,6 +766,7 @@ def validate_review_structured_result_contract( expected_outcome_counts = { "candidate": candidate_rows, "excluded_cancelled": sum(record.get("_OUTCOME") == "excluded_cancelled" for record in all_records), + "excluded_pm": sum(record.get("_OUTCOME") == "excluded_pm" for record in all_records), "duplicate": removed_duplicates, "excluded_rate_code": removed_by_rate, "price_unmatched": review_rows, @@ -982,6 +983,7 @@ def validate_legacy_direct_success_contracts( replay_outcomes = dict(outcomes) replay_outcomes["candidate"] = 0 replay_outcomes["excluded_cancelled"] = 0 + replay_outcomes["excluded_pm"] = 0 replay_structured["outcome_counts"] = replay_outcomes replay_artifacts = dict(artifacts) replay_artifacts["manual_override_json"] = None diff --git a/arr_ingestion/direct_postgres.py b/arr_ingestion/direct_postgres.py index 3e39091..5adee94 100644 --- a/arr_ingestion/direct_postgres.py +++ b/arr_ingestion/direct_postgres.py @@ -757,12 +757,13 @@ class PostgresDirectIngestionRepository(PostgresIngestionRepository): validation_failed_rows, price_unmatched_rows, excluded_cancelled_rows, + excluded_pm_rows, validated_at, result_delivery_mode ) VALUES ( %s, %s, %s, %s, 'validated', %s, %s, %s, %s, - %s, %s, %s, %s, %s, %s, %s, now(), 'direct_mcp' + %s, %s, %s, %s, %s, %s, %s, %s, now(), 'direct_mcp' ) RETURNING id """, diff --git a/arr_ingestion/postgres.py b/arr_ingestion/postgres.py index d72bd19..7eda27f 100644 --- a/arr_ingestion/postgres.py +++ b/arr_ingestion/postgres.py @@ -158,16 +158,20 @@ def _is_transient_database_error(error: Exception) -> bool: return isinstance(sqlstate, str) and sqlstate in TRANSIENT_SQLSTATES -def _outcome_counts(payload: Mapping[str, Any]) -> Tuple[int, int, int, int, int, int]: +def _outcome_counts(payload: Mapping[str, Any]) -> Tuple[int, int, int, int, int, int, int]: values = payload.get("outcome_counts") if not isinstance(values, Mapping): raise IngestionError( "RESULT_CONTRACT_INVALID", "structured outcome counts are invalid", ) + if payload.get("processor_version") == "4.4.0" and not { + "excluded_cancelled", "excluded_pm" + }.issubset(values): + raise IngestionError("RESULT_CONTRACT_INVALID", "structured outcome counts are invalid") try: counts = tuple( - int(values.get(name, 0) if name == "excluded_cancelled" else values[name]) + int(values.get(name, 0) if name in {"excluded_cancelled", "excluded_pm"} else values[name]) for name in ( "retained", "excluded_rate_code", @@ -175,6 +179,7 @@ def _outcome_counts(payload: Mapping[str, Any]) -> Tuple[int, int, int, int, int "validation_failed", "price_unmatched", "excluded_cancelled", + "excluded_pm", ) ) except (KeyError, TypeError, ValueError): @@ -339,6 +344,7 @@ class PostgresIngestionRepository(IngestionRepository): raise IngestionError("DATABASE_MIGRATION_MISSING", "direct data entry requires migration 019") self._run_transaction(check, "direct data schema could not be checked") self.assert_cancelled_scope_schema() + self.assert_pm_scope_schema() def assert_cancelled_scope_schema(self) -> None: """Require the count and outcome constraints before either input is enabled.""" @@ -365,6 +371,36 @@ class PostgresIngestionRepository(IngestionRepository): "ARR processing requires migration 020") self._run_transaction(check, "ARR cancellation schema could not be checked") + def assert_pm_scope_schema(self) -> None: + """Require PM auditing before enabling the processor 4.4 entrypoints.""" + def check(cursor): + cursor.execute("""SELECT EXISTS ( + SELECT 1 FROM information_schema.columns + WHERE table_schema = 'finance' AND table_name = 'daily_versions' + AND column_name = 'excluded_pm_rows' + AND data_type = 'integer' AND is_nullable = 'NO' + ), ( + SELECT pg_get_constraintdef(oid) FROM pg_constraint + WHERE conrelid = 'finance.daily_versions'::regclass + AND conname = 'daily_versions_counts_reconcile' + ), ( + SELECT pg_get_constraintdef(oid) FROM pg_constraint + WHERE conrelid = 'finance.daily_records'::regclass + AND conname = 'daily_records_outcome_check' + ), ( + SELECT pg_get_constraintdef(oid) FROM pg_constraint + WHERE conrelid = 'finance.daily_records'::regclass + AND conname = 'daily_records_pm_exclusion_shape' + )""") + row = cursor.fetchone() + if (not row or row[0] is not True + or "excluded_pm_rows" not in str(row[1] or "") + or "excluded_pm" not in str(row[2] or "") + or "ROOM_TYPE_PM_EXCLUDED" not in str(row[3] or "")): + raise IngestionError("DATABASE_MIGRATION_MISSING", + "ARR processing requires migration 021") + self._run_transaction(check, "ARR PM schema could not be checked") + def register_job(self, registration: JobRegistration) -> None: if ( registration.source.role not in {"source_xml", "source_data"} @@ -1837,13 +1873,14 @@ class PostgresIngestionRepository(IngestionRepository): validation_failed_rows, price_unmatched_rows, excluded_cancelled_rows, + excluded_pm_rows, failure_code, failure_message, validated_at ) VALUES ( NULL, NULL, %s, %s, %s, %s, %s, 'rejected', - %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, + %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, 'deterministic processing failed', now() ) RETURNING id @@ -2076,11 +2113,12 @@ class PostgresIngestionRepository(IngestionRepository): validation_failed_rows, price_unmatched_rows, excluded_cancelled_rows, + excluded_pm_rows, validated_at ) VALUES ( %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, 'validated', - %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, now() + %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, now() ) RETURNING id """, diff --git a/arr_ingestion/validation.py b/arr_ingestion/validation.py index 6f454e9..bcd06fe 100644 --- a/arr_ingestion/validation.py +++ b/arr_ingestion/validation.py @@ -483,16 +483,20 @@ V4_OUTCOME_FIELDS = { "retained", "validation_failed", } -CANCELLED_OUTCOME_PROCESSOR_VERSIONS = {"4.3.0"} +CANCELLED_OUTCOME_PROCESSOR_VERSIONS = {"4.3.0", "4.4.0"} +PM_OUTCOME_PROCESSOR_VERSIONS = {"4.4.0"} def _v4_outcome_fields(processor_version: str) -> set[str]: # Schema 4/5 remain readable for older immutable deliveries. The new - # outcome is part of the explicitly approved 4.3 rule identity only; the + # outcomes are part of the explicitly approved rule identities only; the # delivery validator also binds that identity to the approved rule hash. + outcomes = V4_OUTCOME_FIELDS if processor_version in CANCELLED_OUTCOME_PROCESSOR_VERSIONS: - return V4_OUTCOME_FIELDS | {"excluded_cancelled"} - return V4_OUTCOME_FIELDS + outcomes = outcomes | {"excluded_cancelled"} + if processor_version in PM_OUTCOME_PROCESSOR_VERSIONS: + outcomes = outcomes | {"excluded_pm"} + return outcomes V4_RESULT_METRIC_FIELDS = { @@ -563,6 +567,15 @@ def _validate_v4_records(payload: Mapping[str, Any]) -> Tuple[Dict[str, int], in or len(decisions) != len(set(decisions)) ): raise IngestionError("RESULT_CONTRACT_INVALID", "structured decisions are invalid") + if outcome == "excluded_pm" and ( + not isinstance(values.get("room_category_label"), str) + or values["room_category_label"].strip().upper() != "PM" + or decisions != ["ROOM_TYPE_PM_EXCLUDED"] + or any(values.get(field) is not None for field in ( + "real_price", "total_price", "kb_amount", "channel_key", "pricing_method" + )) + ): + raise IngestionError("RESULT_CONTRACT_INVALID", "structured PM exclusion is invalid") group_code = values.get("group_code_key") booking_status = values.get("booking_source_match_status") if group_code is None: @@ -709,6 +722,7 @@ def _validate_structured_payload_v4( or counts["source_rows"] != counts["removed_by_rate_code"] + counts["removed_as_duplicates"] + counts["output_rows"] + outcomes.get("excluded_cancelled", 0) + + outcomes.get("excluded_pm", 0) or channel_rows != counts["output_rows"] or review_keys ): @@ -737,6 +751,7 @@ def _validate_structured_payload_v4( + counts["candidate_rows"] + counts["review_required_rows"] + outcomes.get("excluded_cancelled", 0) + + outcomes.get("excluded_pm", 0) or channels or not review_keys or manual_ref is not None diff --git a/arr_web/arr_data_review.py b/arr_web/arr_data_review.py index 35016ad..0aa52f5 100644 --- a/arr_web/arr_data_review.py +++ b/arr_web/arr_data_review.py @@ -277,16 +277,19 @@ class DataFieldReviews: data["status"] = "collected_with_gaps" if unresolved else "collected" return data - def _issues(self, directory, data): + def _normalized(self, directory, data): # Use the exact frozen processor's normalizer and field validation; the # acquisition layer never maintains a second whitelist or numeric rule. with tempfile.NamedTemporaryFile(suffix=".json", dir=directory) as stream: stream.write(json_bytes(data)) stream.flush() - business_date, records = self.rules.read_data_source(Path(stream.name)) + return self.rules.read_data_source(Path(stream.name)) + + def _issues(self, directory, data): + business_date, records = self._normalized(directory, data) issues = {} for row, record in zip(data["records"], records): - if self.rules.is_cancelled_record(record): + if self.rules.is_cancelled_record(record) or self.rules.is_pm_record(record): continue rate = record["_NORMALIZED_RATE_CODE"] fields = {} @@ -312,13 +315,24 @@ class DataFieldReviews: value = observation.get("value") return value if observation.get("state") == "available" and isinstance(value, (str, int)) else "" + def _excluded_sequences(self, directory, data): + cancelled, pm = set(), set() + _date, records = self._normalized(directory, data) + for row, record in zip(data["records"], records): + sequence = row["source_sequence"] + if self.rules.is_cancelled_record(record): + cancelled.add(sequence) + elif self.rules.is_pm_record(record): + pm.add(sequence) + return cancelled, pm + def _public(self, directory, meta, original, state): data = self._derive(directory, original, state) issues = self._issues(directory, data) - cancelled_sequences = {row["source_sequence"] for row in data["records"] - if self.rules.is_cancelled_record({"_RESERVATION_STATUS": row.get("reservation_status", "")})} + cancelled_sequences, pm_sequences = self._excluded_sequences(directory, data) keys = set(issues) | {key for key in state["decisions"] - if int(key.split(":")[0]) not in cancelled_sequences} + if int(key.split(":")[0]) not in cancelled_sequences + and (int(key.split(":")[0]) not in pm_sequences or key.endswith(":ROOM_CATEGORY_LABEL"))} items = [] for item_id in sorted(keys, key=lambda key: (int(key.split(":")[0]), key.split(":")[1])): sequence, field = item_id.split(":") @@ -335,6 +349,7 @@ class DataFieldReviews: "revision": state["revision"], "status": state["status"], "items": items, "pending_count": len(issues), "total_count": len(items), "excluded_cancelled_count": len(cancelled_sequences), + "excluded_pm_count": len(pm_sequences), "can_finalize": not issues and state["status"] == "editing"} def prepare(self, request_id, payload, manifest_sha256, report_date): @@ -523,9 +538,11 @@ class DataFieldReviews: actor = self._actor(actor) data = self._derive(directory, original, state) sequence = int(item_id.split(":")[0]) if isinstance(item_id, str) and re.fullmatch(r"[1-9][0-9]*:[A-Z_]+", item_id) else 0 - if 1 <= sequence <= len(data["records"]) and self.rules.is_cancelled_record( - {"_RESERVATION_STATUS": data["records"][sequence - 1].get("reservation_status", "")}): + cancelled_sequences, pm_sequences = self._excluded_sequences(directory, data) + if sequence in cancelled_sequences: raise _error(message="已取消预订不参与日报,无需完善字段") + if sequence in pm_sequences and not (item_id.endswith(":ROOM_CATEGORY_LABEL") and item_id in state["decisions"]): + raise _error(message="PM 房型不参与日报,无需完善字段") if item_id not in self._issues(directory, data) and item_id not in state["decisions"]: raise _error(message="只能完善当前任务列出的异常字段") sequence, field = item_id.split(":") diff --git a/arr_web/local_ohip.py b/arr_web/local_ohip.py index 21f5633..b7276bb 100644 --- a/arr_web/local_ohip.py +++ b/arr_web/local_ohip.py @@ -215,7 +215,7 @@ def open_portal(root, port): load_key(credential_file) access = AccessState(root) with job_lock(root): - database = ReplayDatabase(root, schema_version=20) + database = ReplayDatabase(root, schema_version=21) try: database.start() def factory(*, root, snapshot, **dependencies): diff --git a/arr_web/local_replay_database.py b/arr_web/local_replay_database.py index 788a6b6..68e262e 100644 --- a/arr_web/local_replay_database.py +++ b/arr_web/local_replay_database.py @@ -14,8 +14,8 @@ from integrations.ohip.capture_job import atomic_json, private_directory class ReplayDatabase: - def __init__(self, root: Path, *, schema_version: int = 20): - if schema_version not in (18, 19, 20): + def __init__(self, root: Path, *, schema_version: int = 21): + if schema_version not in (18, 19, 20, 21): raise ValueError("unsupported_local_schema") self.schema_version = schema_version self.root = root diff --git a/arr_web/processing_runtime.py b/arr_web/processing_runtime.py index e5daffc..b8f4928 100644 --- a/arr_web/processing_runtime.py +++ b/arr_web/processing_runtime.py @@ -80,6 +80,7 @@ def compose_programmatic_processing( connect=connect, ) repository.assert_cancelled_scope_schema() + repository.assert_pm_scope_schema() policy = load_processor_policy(project_root) ingestion = IngestionService(DeliveryValidator(object_store, policy), repository) processor = LocalDailyProcessor(policy) diff --git a/arr_web/static/app.js b/arr_web/static/app.js index 3583ce4..8334a45 100644 --- a/arr_web/static/app.js +++ b/arr_web/static/app.js @@ -698,6 +698,9 @@ if (Number.isInteger(review?.excluded_cancelled_count) && review.excluded_cancelled_count > 0) { $("#arr-data-review-progress").textContent += ` · ${I18N.t("data_review.excluded_cancelled", { count: review.excluded_cancelled_count })}`; } + if (Number.isInteger(review?.excluded_pm_count) && review.excluded_pm_count > 0) { + $("#arr-data-review-progress").textContent += ` · ${I18N.t("data_review.excluded_pm", { count: review.excluded_pm_count })}`; + } $("#arr-data-review-refresh").textContent = I18N.t("data_review.refresh"); $("#arr-data-review-refresh").disabled = busy; const finalize = $("#arr-data-review-finalize"); diff --git a/arr_web/static/i18n.js b/arr_web/static/i18n.js index cf85127..0c815c0 100644 --- a/arr_web/static/i18n.js +++ b/arr_web/static/i18n.js @@ -172,6 +172,7 @@ "data_review.loading": ["正在读取待完善字段…", "Loading fields for review…", "กำลังโหลดข้อมูลที่ต้องตรวจสอบ…"], "data_review.no_items": ["没有待完善字段。", "No fields need review.", "ไม่มีข้อมูลที่ต้องตรวจสอบ"], "data_review.excluded_cancelled": ["已排除 {count} 笔取消预订,原始数据保留", "{count} cancelled reservations excluded; original data retained", "ไม่รวมการจองที่ยกเลิก {count} รายการ โดยเก็บข้อมูลต้นฉบับไว้"], + "data_review.excluded_pm": ["已排除 {count} 笔 PM 预订,原始数据保留", "{count} PM reservations excluded; original data retained", "ไม่รวมการจองประเภทห้อง PM {count} รายการ โดยเก็บข้อมูลต้นฉบับไว้"], "data_review.region": ["待完善报表字段", "Report fields to review", "ข้อมูลรายงานที่ต้องตรวจสอบ"], "data_review.disconnected": ["字段读取中断,请刷新字段后继续。", "Field connection lost. Refresh the fields to continue.", "การเชื่อมต่อข้อมูลขัดข้อง โปรดรีเฟรชข้อมูลเพื่อดำเนินการต่อ"], "data_review.saving": ["正在保存并确认字段…", "Saving and confirming field…", "กำลังบันทึกและยืนยันข้อมูล…"], diff --git a/database/021_daily_pm_exclusion.down.sql b/database/021_daily_pm_exclusion.down.sql new file mode 100644 index 0000000..f7d0d67 --- /dev/null +++ b/database/021_daily_pm_exclusion.down.sql @@ -0,0 +1,28 @@ +-- Never roll back after PM exclusion facts have been committed. +BEGIN; +DO $$ +BEGIN + IF current_database() <> 'booking_test' THEN + RAISE EXCEPTION 'ARR migration is allowed only in booking_test'; + END IF; + IF EXISTS (SELECT 1 FROM finance.daily_versions WHERE excluded_pm_rows <> 0) + OR EXISTS (SELECT 1 FROM finance.daily_records WHERE outcome = 'excluded_pm') THEN + RAISE EXCEPTION 'refusing rollback: PM-exclusion facts exist'; + END IF; +END $$; + +ALTER TABLE finance.daily_records DROP CONSTRAINT daily_records_pm_exclusion_shape; +ALTER TABLE finance.daily_records DROP CONSTRAINT daily_records_outcome_check; +ALTER TABLE finance.daily_records + ADD CONSTRAINT daily_records_outcome_check CHECK (outcome IN ( + 'retained', 'excluded_rate_code', 'duplicate', 'validation_failed', + 'price_unmatched', 'excluded_cancelled' + )); +ALTER TABLE finance.daily_versions DROP CONSTRAINT daily_versions_counts_reconcile; +ALTER TABLE finance.daily_versions + ADD CONSTRAINT daily_versions_counts_reconcile CHECK ( + source_rows = retained_rows + excluded_rate_code_rows + duplicate_rows + + validation_failed_rows + price_unmatched_rows + excluded_cancelled_rows + ); +ALTER TABLE finance.daily_versions DROP COLUMN excluded_pm_rows; +COMMIT; diff --git a/database/021_daily_pm_exclusion.sql b/database/021_daily_pm_exclusion.sql new file mode 100644 index 0000000..2279be1 --- /dev/null +++ b/database/021_daily_pm_exclusion.sql @@ -0,0 +1,52 @@ +-- Add PM exclusion auditing without rewriting any released daily facts. +-- PostgreSQL 15+. Migrations 008 through 020 remain immutable. +BEGIN; +DO $$ +BEGIN + IF current_database() <> 'booking_test' THEN + RAISE EXCEPTION 'ARR migration is allowed only in booking_test'; + END IF; + IF NOT EXISTS ( + SELECT 1 FROM information_schema.columns + WHERE table_schema = 'finance' AND table_name = 'daily_versions' + AND column_name = 'excluded_cancelled_rows' + AND data_type = 'integer' AND is_nullable = 'NO' + ) OR NOT EXISTS ( + SELECT 1 FROM pg_constraint + WHERE conrelid = 'finance.daily_records'::regclass + AND conname = 'daily_records_outcome_check' + AND pg_get_constraintdef(oid) LIKE '%excluded_cancelled%' + ) THEN + RAISE EXCEPTION 'ARR migration 020 must be applied first'; + END IF; +END $$; + +ALTER TABLE finance.daily_versions + ADD COLUMN excluded_pm_rows integer NOT NULL DEFAULT 0 CHECK (excluded_pm_rows >= 0); + +ALTER TABLE finance.daily_versions DROP CONSTRAINT daily_versions_counts_reconcile; +ALTER TABLE finance.daily_versions + ADD CONSTRAINT daily_versions_counts_reconcile CHECK ( + source_rows = retained_rows + excluded_rate_code_rows + duplicate_rows + + validation_failed_rows + price_unmatched_rows + excluded_cancelled_rows + excluded_pm_rows + ); + +ALTER TABLE finance.daily_records DROP CONSTRAINT daily_records_outcome_check; +ALTER TABLE finance.daily_records + ADD CONSTRAINT daily_records_outcome_check CHECK (outcome IN ( + 'retained', 'excluded_rate_code', 'duplicate', 'validation_failed', + 'price_unmatched', 'excluded_cancelled', 'excluded_pm' + )); +ALTER TABLE finance.daily_records + ADD CONSTRAINT daily_records_pm_exclusion_shape CHECK ( + outcome <> 'excluded_pm' OR ( + room_category_label IS NOT NULL AND upper(btrim(room_category_label)) = 'PM' + AND decision_codes = ARRAY['ROOM_TYPE_PM_EXCLUDED']::text[] + AND real_price IS NULL AND total_price IS NULL AND kb_amount IS NULL + AND channel_key IS NULL AND pricing_method IS NULL + ) + ); + +COMMENT ON COLUMN finance.daily_versions.excluded_pm_rows IS + 'Source rows explicitly excluded for PM room type under the pinned processor rules; older versions remain zero.'; +COMMIT; diff --git a/tests/javascript/arr_data_review.cjs b/tests/javascript/arr_data_review.cjs index 6a0674e..fc01822 100644 --- a/tests/javascript/arr_data_review.cjs +++ b/tests/javascript/arr_data_review.cjs @@ -19,6 +19,17 @@ test('cancelled source rows need no fields and the exclusion stays visible befor assert.equal(h.calls.every(call=>call.method==='GET'),true); }); +test('PM exclusions stay visible without requiring field completion',async()=>{ + const h=harness(()=>response(200,{...review([]),excluded_cancelled_count:6,excluded_pm_count:19})); + await h.acceptARRDownloadTask(task,{sync:false}); + const progress=h.element('#arr-data-review-progress').textContent; + assert.match(progress,/data_review\.excluded_cancelled/); + assert.match(progress,/data_review\.excluded_pm/); + assert.equal(h.element('#arr-data-review-body').innerHTML,''); + assert.equal(h.element('#arr-data-review-finalize').disabled,false); + assert.equal(h.calls.every(call=>call.method==='GET'),true); +}); + test('removed cancelled items clear obsolete drafts but retain edits still in the review',async()=>{ let current=review([item(),item({item_id:'2:DISP_ROOM_NO',source_sequence:2,field:'DISP_ROOM_NO',can_be_empty:false})]); const h=harness(()=>response(200,current)); diff --git a/tests/local_postgres.py b/tests/local_postgres.py index f066806..5d66697 100644 --- a/tests/local_postgres.py +++ b/tests/local_postgres.py @@ -76,8 +76,8 @@ class TemporaryPostgres: connection.close() raise - def reset_database(self, *, schema_version=20): - if schema_version not in (19, 20): + def reset_database(self, *, schema_version=21): + if schema_version not in (19, 20, 21): raise ValueError("unsupported fixture schema version") # Only this owned cluster has passed data_directory/socket checks above. with self.connect(database="postgres", autocommit=True) as connection: diff --git a/tests/test_arr_cancelled_ingestion.py b/tests/test_arr_cancelled_ingestion.py index a2356ff..7ed8886 100644 --- a/tests/test_arr_cancelled_ingestion.py +++ b/tests/test_arr_cancelled_ingestion.py @@ -59,6 +59,7 @@ class CancelledIngestionContractTests(unittest.TestCase): old_envelope = replace(envelope, processor_version="4.2.0") old_payload = copy.deepcopy(payload) old_payload["processor_version"] = "4.2.0" + old_payload["outcome_counts"].pop("excluded_pm", None) with self.assertRaisesRegex(IngestionError, "outcome counts contract"): _validate_structured_payload_v4(old_payload, old_envelope) del old_payload["outcome_counts"]["excluded_cancelled"] @@ -69,6 +70,7 @@ class CancelledIngestionContractTests(unittest.TestCase): raw, store, envelope, payload = self.generated(Path(temporary)) old = copy.deepcopy(payload) old["processor_version"] = "4.2.0" + old["outcome_counts"].pop("excluded_pm", None) del old["outcome_counts"]["excluded_cancelled"] with self.assertRaisesRegex(IngestionError, "structured outcome is invalid"): _validate_structured_payload_v4(old, replace(envelope, processor_version="4.2.0")) @@ -81,9 +83,9 @@ class CancelledIngestionContractTests(unittest.TestCase): def test_finance_counts_preserve_old_payload_and_add_new_count(self): counts = dict(retained=2, excluded_rate_code=1, duplicate=3, validation_failed=4, price_unmatched=5) - self.assertEqual(_outcome_counts({"outcome_counts": counts}), (2, 1, 3, 4, 5, 0)) + self.assertEqual(_outcome_counts({"outcome_counts": counts}), (2, 1, 3, 4, 5, 0, 0)) counts["excluded_cancelled"] = 6 - self.assertEqual(_outcome_counts({"outcome_counts": counts}), (2, 1, 3, 4, 5, 6)) + self.assertEqual(_outcome_counts({"outcome_counts": counts}), (2, 1, 3, 4, 5, 6, 0)) def test_cancelled_count_balances_pending_price_review(self): with tempfile.TemporaryDirectory() as temporary: @@ -152,17 +154,17 @@ class CancelledFinanceMigrationTests(unittest.TestCase): connection.execute("RESET ROLE") def test_empty_database_allows_guarded_rollback_and_reapply(self): - self.database.reset_database() + self.database.reset_database(schema_version=20) repository = PostgresIngestionRepository(DatabaseConfig("owned-fixture"), connect=self.database.connect) - repository.assert_data_source_schema() + repository.assert_cancelled_scope_schema() with self.database.connect(autocommit=True) as connection: connection.execute((PROJECT / "database/020_daily_cancelled_exclusion.down.sql").read_text(), prepare=False) with self.assertRaises(IngestionError) as missing: - repository.assert_data_source_schema() + repository.assert_cancelled_scope_schema() self.assertEqual(missing.exception.code, "DATABASE_MIGRATION_MISSING") with self.database.connect(autocommit=True) as connection: connection.execute((PROJECT / "database/020_daily_cancelled_exclusion.sql").read_text(), prepare=False) - repository.assert_data_source_schema() + repository.assert_cancelled_scope_schema() if __name__ == "__main__": diff --git a/tests/test_arr_cancelled_scope.py b/tests/test_arr_cancelled_scope.py index e2e9cc3..ce98d8d 100644 --- a/tests/test_arr_cancelled_scope.py +++ b/tests/test_arr_cancelled_scope.py @@ -157,7 +157,7 @@ class CancelledScopeTests(unittest.TestCase): self.assertEqual((payload["source_rows"], payload["removed_by_rate_code"], payload["output_rows"]), (2, 0, 1)) self.assertEqual(payload["outcome_counts"]["excluded_cancelled"], 1) self.assertEqual(set(payload["outcome_counts"]), core.FINAL_OUTCOMES) - self.assertEqual(payload["processor_version"], "4.3.0") + self.assertEqual(payload["processor_version"], "4.4.0") self.assertEqual([row["outcome"] for row in payload["records"]], ["excluded_cancelled", "retained"]) self.assertEqual(payload["records"][0]["decision_codes"], ["RESERVATION_CANCELLED_EXCLUDED"]) self.assertEqual(payload["records"][0]["confirmation_no"], "SYNTHETIC-CONF-1") diff --git a/tests/test_arr_download_runtime.py b/tests/test_arr_download_runtime.py index 04c5913..80ae040 100644 --- a/tests/test_arr_download_runtime.py +++ b/tests/test_arr_download_runtime.py @@ -41,6 +41,7 @@ class RuntimeTests(unittest.TestCase): self.store = ManagedObjectStore(FilesystemObjectBackend(self.root / 'objects', create=True)) self.repository = InMemoryIngestionRepository() self.repository.assert_cancelled_scope_schema = Mock() + self.repository.assert_pm_scope_schema = Mock() self.processor = CountingProcessor(self.policy) self.client = Mock() with patch.object(processing_runtime, 'compose_object_store', return_value= @@ -59,6 +60,21 @@ class RuntimeTests(unittest.TestCase): def test_processing_composition_checks_finance_cancellation_schema(self): self.repository.assert_cancelled_scope_schema.assert_called_once_with() + self.repository.assert_pm_scope_schema.assert_called_once_with() + + def test_missing_pm_migration_closes_storage_and_disables_composition(self): + from arr_ingestion.contracts import IngestionError + self.repository.assert_pm_scope_schema.side_effect = IngestionError( + "DATABASE_MIGRATION_MISSING", "ARR processing requires migration 021") + client = Mock() + with patch.object(processing_runtime, 'compose_object_store', return_value= + processing_runtime.ObjectStoreRuntime(client, self.store)), \ + patch.object(processing_runtime, 'PostgresIngestionRepository', return_value=self.repository), \ + self.assertRaises(IngestionError) as error: + processing_runtime.compose_programmatic_processing( + project_root=Path(__file__).resolve().parents[1], connect=Mock()) + self.assertEqual(error.exception.code, "DATABASE_MIGRATION_MISSING") + client.close.assert_called_once_with() def test_missing_cancellation_migration_closes_storage_and_disables_composition(self): from arr_ingestion.contracts import IngestionError diff --git a/tests/test_arr_ingestion_postgres.py b/tests/test_arr_ingestion_postgres.py index 04aa1af..f4fcdb8 100644 --- a/tests/test_arr_ingestion_postgres.py +++ b/tests/test_arr_ingestion_postgres.py @@ -533,7 +533,7 @@ class PostgresIngestionTests(unittest.TestCase): and "INSERT INTO finance.daily_versions" in value ) - self.assertEqual(version_insert.count("%s"), 21) + self.assertEqual(version_insert.count("%s"), 22) class Migration008ContractTests(unittest.TestCase): diff --git a/tests/test_arr_opera_daily_ingest.py b/tests/test_arr_opera_daily_ingest.py index b9fd2cd..b6965ac 100644 --- a/tests/test_arr_opera_daily_ingest.py +++ b/tests/test_arr_opera_daily_ingest.py @@ -236,7 +236,7 @@ class ArrOperaDailyIngestTests(unittest.TestCase): self.assertNotIn(forbidden, scripts) self.assertEqual(core.RESULT_VERSION, "4.0") self.assertEqual(core.STRUCTURED_RESULT_SCHEMA_VERSION, "4.0") - self.assertEqual(core.PROCESSOR_VERSION, "4.3.0") + self.assertEqual(core.PROCESSOR_VERSION, "4.4.0") self.assertEqual(len(core.DAILY_HEADERS), 19) self.assertEqual(len(core.RATE_WHITELIST), 20) @@ -302,7 +302,7 @@ class ArrOperaDailyIngestTests(unittest.TestCase): ) self.assertEqual(payload["result_schema_version"], "4.0") - self.assertEqual(payload["processor_version"], "4.3.0") + self.assertEqual(payload["processor_version"], "4.4.0") self.assertEqual(payload["source_rows"], 5) self.assertEqual( payload["outcome_counts"], @@ -310,6 +310,7 @@ class ArrOperaDailyIngestTests(unittest.TestCase): "candidate": 0, "duplicate": 1, "excluded_cancelled": 0, + "excluded_pm": 0, "excluded_rate_code": 1, "price_unmatched": 0, "retained": 3, @@ -802,7 +803,7 @@ class ArrOperaDailyIngestTests(unittest.TestCase): }, } ) - self.assertEqual(delivery.processor_version, "4.3.0") + self.assertEqual(delivery.processor_version, "4.4.0") self.assertEqual(delivery.result_schema_version, "4.0") self.assertEqual(delivery.business_date, date(2026, 7, 27)) diff --git a/tests/test_arr_pm_ingestion.py b/tests/test_arr_pm_ingestion.py new file mode 100644 index 0000000..23742aa --- /dev/null +++ b/tests/test_arr_pm_ingestion.py @@ -0,0 +1,315 @@ +"""Approved PM exclusion contracts and additive Finance upgrade; all inputs synthetic.""" +from __future__ import annotations + +import copy +from dataclasses import replace +import json +import os +from pathlib import Path +import tempfile +import unittest + +from openpyxl import load_workbook + +from arr_ingestion.contracts import DeliveryEnvelope, IngestionError +from arr_ingestion.postgres import DatabaseConfig, PostgresIngestionRepository, _outcome_counts +from arr_ingestion.validation import DeliveryValidator, _validate_structured_payload_v4 +from arr_processing.policy import load_processor_policy +from tests.local_postgres import TemporaryPostgres +from tests import test_arr_direct_data as direct_helpers +from tests.test_arr_ingestion_validation import build_delivery, policy +from tests.test_arr_opera_daily_ingest import reservation, xml_document + + +PROJECT = Path(__file__).resolve().parents[1] + + +def pm_row(*, status=None): + value = reservation(1, rate_code="", rate_amount="0", company="").replace( + "SYNTHETIC ROOM TYPE", + " pm ", + ).replace("SYNTHETIC-ROOM-1", "") + if status: + value = value.replace("", f"{status}") + return value + + +class PMIngestionContractTests(unittest.TestCase): + def generated(self, root, *rows): + raw, store, _ = build_delivery(xml_document(*rows), root) + envelope = DeliveryEnvelope.from_dict(json.loads(raw)) + payload = json.loads(store.objects[envelope.artifacts["structured_result_json"].object_key]) + return raw, store, envelope, payload + + def test_pm_missing_required_fields_is_audited_before_validation_and_pricing(self): + with tempfile.TemporaryDirectory() as temporary: + raw, store, _, payload = self.generated(Path(temporary), pm_row(), reservation(2)) + verified = DeliveryValidator(store, policy()).validate(raw) + self.assertEqual(verified.envelope.status, "success") + self.assertEqual(payload["outcome_counts"]["excluded_pm"], 1) + self.assertEqual(payload["output_rows"], 1) + row = payload["records"][0] + self.assertEqual(row["outcome"], "excluded_pm") + self.assertEqual(row["decision_codes"], ["ROOM_TYPE_PM_EXCLUDED"]) + for field in ("real_price", "total_price", "kb_amount", "channel_key", "pricing_method"): + self.assertIsNone(row[field]) + + def test_pm_count_is_required_only_for_44_and_older_versions_stay_readable(self): + with tempfile.TemporaryDirectory() as temporary: + _, _, envelope, payload = self.generated(Path(temporary), reservation(1)) + self.assertEqual(payload["processor_version"], "4.4.0") + self.assertEqual(payload["outcome_counts"]["excluded_pm"], 0) + for field in ("excluded_pm", "excluded_cancelled"): + missing = copy.deepcopy(payload) + del missing["outcome_counts"][field] + with self.assertRaisesRegex(IngestionError, "outcome counts contract"): + _validate_structured_payload_v4(missing, envelope) + for version in ("4.3.0", "4.2.0"): + older = copy.deepcopy(payload) + older["processor_version"] = version + with self.assertRaisesRegex(IngestionError, "outcome counts contract"): + _validate_structured_payload_v4(older, replace(envelope, processor_version=version)) + del older["outcome_counts"]["excluded_pm"] + if version == "4.2.0": + del older["outcome_counts"]["excluded_cancelled"] + _validate_structured_payload_v4(older, replace(envelope, processor_version=version)) + + def test_pm_record_cannot_be_relabelled_or_given_price_facts(self): + with tempfile.TemporaryDirectory() as temporary: + _, _, envelope, payload = self.generated(Path(temporary), pm_row(), reservation(2)) + changes = { + "room_category_label": "PM-SUITE", + "decision_codes": ["RATE_CODE_EXCLUDED"], + "real_price": 0, + "total_price": 0, + "kb_amount": 0, + "channel_key": "Group", + "pricing_method": "zero_price_exception", + } + for field, value in changes.items(): + changed = copy.deepcopy(payload) + changed["records"][0][field] = value + with self.subTest(field=field), self.assertRaisesRegex(IngestionError, "PM exclusion"): + _validate_structured_payload_v4(changed, envelope) + older = copy.deepcopy(payload) + older["processor_version"] = "4.3.0" + del older["outcome_counts"]["excluded_pm"] + with self.assertRaisesRegex(IngestionError, "structured outcome is invalid"): + _validate_structured_payload_v4(older, replace(envelope, processor_version="4.3.0")) + changed = copy.deepcopy(payload) + changed["outcome_counts"]["excluded_pm"] = 0 + with self.assertRaisesRegex(IngestionError, "outcomes do not reconcile"): + _validate_structured_payload_v4(changed, envelope) + + def test_pm_balances_price_review_and_failure_and_cancelled_takes_precedence(self): + cases = ( + (reservation(2, rate_amount="1800"), "review_required"), + (reservation(2, departure="2026-07-26"), "failed"), + ) + for row, status in cases: + with self.subTest(status=status), tempfile.TemporaryDirectory() as temporary: + raw, store, _, payload = self.generated(Path(temporary), pm_row(), row) + self.assertEqual(DeliveryValidator(store, policy()).validate(raw).envelope.status, status) + self.assertEqual(payload["outcome_counts"]["excluded_pm"], 1) + with tempfile.TemporaryDirectory() as temporary: + raw, store, _, payload = self.generated(Path(temporary), pm_row(status="CXL"), reservation(2)) + DeliveryValidator(store, policy()).validate(raw) + self.assertEqual(payload["outcome_counts"]["excluded_cancelled"], 1) + self.assertEqual(payload["outcome_counts"]["excluded_pm"], 0) + + def test_finance_defaults_only_old_pm_counts_and_rejects_44_missing_keys(self): + counts = dict(retained=2, excluded_rate_code=1, duplicate=3, + validation_failed=4, price_unmatched=5) + self.assertEqual(_outcome_counts({"outcome_counts": counts}), (2, 1, 3, 4, 5, 0, 0)) + counts["excluded_cancelled"] = 6 + self.assertEqual(_outcome_counts({"processor_version": "4.3.0", "outcome_counts": counts}), + (2, 1, 3, 4, 5, 6, 0)) + with self.assertRaises(IngestionError): + _outcome_counts({"processor_version": "4.4.0", "outcome_counts": counts}) + counts["excluded_pm"] = 7 + self.assertEqual(_outcome_counts({"processor_version": "4.4.0", "outcome_counts": counts}), + (2, 1, 3, 4, 5, 6, 7)) + del counts["excluded_cancelled"] + with self.assertRaises(IngestionError): + _outcome_counts({"processor_version": "4.4.0", "outcome_counts": counts}) + + +@unittest.skipUnless(os.environ.get("ARR_TEST_LOCAL_POSTGRES") == "1", "owned PostgreSQL opt-in required") +class PMFinanceMigrationTests(unittest.TestCase): + @classmethod + def setUpClass(cls): + cls.database = TemporaryPostgres().__enter__() + cls.addClassCleanup(cls.database.__exit__, None, None, None) + + def test_additive_upgrade_preserves_cancelled_history_and_role_privileges(self): + import psycopg + self.database.reset_database(schema_version=20) + repository = PostgresIngestionRepository(DatabaseConfig("owned-fixture"), connect=self.database.connect) + repository.assert_cancelled_scope_schema() + with self.assertRaises(IngestionError) as missing: + repository.assert_pm_scope_schema() + self.assertEqual(missing.exception.code, "DATABASE_MIGRATION_MISSING") + with self.database.connect(autocommit=True) as connection: + artifact = connection.execute("""INSERT INTO ingestion.artifacts + (artifact_kind,storage_provider,bucket_alias,object_key,original_filename,sha256,byte_size) + VALUES ('opera_xml','local_fixture','fixture','old/source.xml','source.xml',%s,0) RETURNING id""", + ("a" * 64,)).fetchone()[0] + output_ids = {} + for kind in ("daily_xlsx", "result_json", "structured_result_json"): + output_ids[kind] = connection.execute("""INSERT INTO ingestion.artifacts + (artifact_kind,storage_provider,bucket_alias,object_key,original_filename,sha256,byte_size) + VALUES (%s,'local_fixture','fixture',%s,%s,%s,0) RETURNING id""", + (kind, "old/" + kind, kind, "d" * 64)).fetchone()[0] + run = connection.execute("""INSERT INTO ingestion.processing_runs + (run_key,pipeline_type,source_artifact_id,result_artifact_id,run_status,result_delivery_mode,business_date, + delivered_processor_version,delivered_rule_set_sha256,result_schema_version, + delivery_sha256,validated_at,finished_at) + VALUES ('old-cancelled','opera_daily',%s,%s,'accepted','artifact_callback','2026-07-27', + '4.3.0',%s,'4.0',%s,now(),now()) RETURNING id""", + (artifact, output_ids["result_json"], "b" * 64, "c" * 64)).fetchone()[0] + version = connection.execute("""INSERT INTO finance.daily_versions + (business_date,version_no,processing_run_id,source_artifact_id,daily_report_artifact_id, + result_json_artifact_id,structured_result_artifact_id,version_status, + processor_version,rule_set_sha256,result_schema_version,result_sha256,source_rows, + retained_rows,excluded_rate_code_rows,duplicate_rows,validation_failed_rows, + price_unmatched_rows,excluded_cancelled_rows,validated_at,result_delivery_mode) + VALUES ('2026-07-27',1,%s,%s,%s,%s,%s,'validated','4.3.0',%s,'4.0',%s, + 2,1,0,0,0,0,1,now(),'artifact_callback') RETURNING id""", + (run, artifact, output_ids["daily_xlsx"], output_ids["result_json"], + output_ids["structured_result_json"], "b" * 64, "c" * 64)).fetchone()[0] + connection.execute("""INSERT INTO finance.daily_records + (daily_version_id,source_sequence,source_location,outcome,decision_codes, + booking_source_match_status) + VALUES (%s,1,'reservation[1]','excluded_cancelled', + ARRAY['RESERVATION_CANCELLED_EXCLUDED'],'missing_group_code')""", (version,)) + # Processor 4.3 included this PM row. A schema upgrade must preserve it. + connection.execute("""INSERT INTO finance.daily_records + (daily_version_id,source_sequence,source_location,outcome,decision_codes,block_code, + adults,children,company_name,company_key,confirmation_no,disp_room_no, + effective_rate_amount,full_name,no_of_rooms,products,rate_code,room_category_label, + arrival,departure,nights,real_price,total_price,channel_key,pricing_method, + booking_source_match_status) + VALUES (%s,2,'reservation[2]','retained',ARRAY['PRICE_REFERENCE_EXACT'],'',2,0, + 'SYNTHETIC COMPANY','SYNTHETIC COMPANY','SYNTHETIC CONF','SYNTHETIC ROOM', + 900,'SYNTHETIC GUEST',1,'SYNTHETIC','GRPA1','PM','2026-07-27','2026-07-28', + 1,900,900,'Group','price_reference_exact','missing_group_code')""", (version,)) + before = connection.execute("SELECT to_jsonb(v) FROM finance.daily_versions v WHERE id=%s", (version,)).fetchone()[0] + records_before = connection.execute("SELECT to_jsonb(r) FROM finance.daily_records r ORDER BY source_sequence").fetchall() + guards = connection.execute("SELECT tgname,pg_get_triggerdef(oid) FROM pg_trigger WHERE NOT tgisinternal ORDER BY tgname").fetchall() + connection.execute("CREATE ROLE arr_pm_fixture") + connection.execute("CREATE ROLE arr_pm_column_fixture") + connection.execute("GRANT USAGE ON SCHEMA finance TO arr_pm_fixture,arr_pm_column_fixture") + connection.execute("GRANT SELECT,INSERT ON finance.daily_versions TO arr_pm_fixture") + connection.execute("GRANT INSERT (excluded_cancelled_rows) ON finance.daily_versions TO arr_pm_column_fixture") + connection.execute((PROJECT / "database/021_daily_pm_exclusion.sql").read_text(), prepare=False) + repository.assert_data_source_schema() + after = connection.execute("SELECT to_jsonb(v) FROM finance.daily_versions v WHERE id=%s", (version,)).fetchone()[0] + self.assertEqual(after.pop("excluded_pm_rows"), 0) + self.assertEqual(after, before) + self.assertEqual(connection.execute("SELECT to_jsonb(r) FROM finance.daily_records r ORDER BY source_sequence").fetchall(), records_before) + self.assertEqual(connection.execute("SELECT tgname,pg_get_triggerdef(oid) FROM pg_trigger WHERE NOT tgisinternal ORDER BY tgname").fetchall(), guards) + self.assertEqual(connection.execute("SELECT has_column_privilege('arr_pm_fixture','finance.daily_versions','excluded_pm_rows','INSERT'),has_table_privilege('arr_pm_fixture','finance.daily_versions','UPDATE'),has_column_privilege('arr_pm_column_fixture','finance.daily_versions','excluded_pm_rows','INSERT')").fetchone(), (True, False, False)) + for statement in ( + "UPDATE finance.daily_versions SET excluded_pm_rows=-1 WHERE id=%s", + "UPDATE finance.daily_versions SET excluded_pm_rows=1 WHERE id=%s", + ): + with self.assertRaises(psycopg.errors.CheckViolation): + connection.execute(statement, (version,)) + connection.execute("UPDATE finance.daily_versions SET excluded_cancelled_rows=0,excluded_pm_rows=1 WHERE id=%s", (version,)) + with self.assertRaisesRegex(psycopg.errors.RaiseException, "PM-exclusion facts exist"): + connection.execute((PROJECT / "database/021_daily_pm_exclusion.down.sql").read_text(), prepare=False) + connection.execute("ROLLBACK") + connection.execute("SET ROLE arr_pm_fixture") + with self.assertRaises(psycopg.errors.InsufficientPrivilege): + connection.execute("UPDATE finance.daily_versions SET excluded_pm_rows=0 WHERE id=%s", (version,)) + connection.execute("RESET ROLE") + + def test_empty_rollback_preserves_020_and_allows_reapply(self): + self.database.reset_database() + repository = PostgresIngestionRepository(DatabaseConfig("owned-fixture"), connect=self.database.connect) + repository.assert_data_source_schema() + with self.database.connect(autocommit=True) as connection: + connection.execute((PROJECT / "database/021_daily_pm_exclusion.down.sql").read_text(), prepare=False) + repository.assert_cancelled_scope_schema() + with self.assertRaises(IngestionError) as missing: + repository.assert_pm_scope_schema() + self.assertEqual(missing.exception.code, "DATABASE_MIGRATION_MISSING") + with self.database.connect(autocommit=True) as connection: + connection.execute((PROJECT / "database/021_daily_pm_exclusion.sql").read_text(), prepare=False) + repository.assert_data_source_schema() + + +@unittest.skipUnless(os.environ.get("ARR_TEST_LOCAL_POSTGRES") == "1", "owned PostgreSQL opt-in required") +class PMFinanceProcessingTests(unittest.TestCase): + @classmethod + def setUpClass(cls): + cls.database = TemporaryPostgres().__enter__() + cls.addClassCleanup(cls.database.__exit__, None, None, None) + cls.policy = load_processor_policy(PROJECT) + + setUp = direct_helpers.DirectDataPostgresTests.setUp + configure = direct_helpers.DirectDataTests.configure + execute = direct_helpers.DirectDataTests.execute + sql = direct_helpers.DirectDataPostgresTests.sql + count = direct_helpers.DirectDataPostgresTests.count + monthly_worker = direct_helpers.DirectDataPostgresTests.monthly_worker + + def make_first_pm(self): + row = self.transport.rows[0] + row["roomStay"]["roomType"] = "PM" + row["roomStay"]["currentRoomInfo"]["roomType"] = "PM" + for rate in row["roomStay"]["roomRates"]: + rate["roomType"] = "PM" + + def test_direct_pm_is_audited_and_daily_monthly_exclude_it_without_refetch(self): + self.make_first_pm() + self.assertEqual(self.execute().status, "succeeded") + self.assertEqual(self.sql("SELECT result_schema_version,source_rows,retained_rows,excluded_pm_rows FROM finance.daily_versions"), [("5.0", 6, 5, 1)]) + self.assertEqual(self.sql("SELECT outcome,decision_codes,real_price,channel_key FROM finance.daily_records WHERE source_sequence=1"), [("excluded_pm", ["ROOM_TYPE_PM_EXCLUDED"], None, None)]) + self.assertEqual(self.count("finance.v_active_daily_facts"), 5) + self.assertEqual(self.monthly_worker().process_next().status, "published") + key, size = self.sql("SELECT a.object_key,a.byte_size FROM reporting.monthly_runs r JOIN ingestion.artifacts a ON a.id=r.workbook_artifact_id")[0] + output = self.files / "monthly.xlsx" + self.store.materialize(key, output, size) + workbook = load_workbook(output, data_only=False) + try: + self.assertEqual(sum(cell.data_type == "f" for sheet in workbook for row in sheet for cell in row), 5) + finally: + workbook.close() + calls = len(self.transport.calls) + self.assertEqual(self.execute().status, "succeeded") + self.assertEqual(len(self.transport.calls), calls) + self.assertEqual(self.count("finance.daily_versions"), 1) + + def test_xml_pm_is_audited_without_required_field_or_price_review(self): + outcome = self.coordinator.submit("source.xml", xml_document(pm_row(), reservation(2)).encode()) + self.assertEqual(outcome["status"], "succeeded") + self.assertEqual(self.sql("SELECT result_schema_version,source_rows,retained_rows,excluded_pm_rows FROM finance.daily_versions"), [("4.0", 2, 1, 1)]) + self.assertEqual(self.sql("SELECT outcome FROM finance.daily_records ORDER BY source_sequence"), [("excluded_pm",), ("retained",)]) + self.assertEqual(self.count("finance.v_active_daily_facts"), 1) + self.assertEqual(self.monthly_worker().process_next().status, "published") + + def test_xml_failed_batch_keeps_pm_audit_without_monthly_commit(self): + outcome = self.coordinator.submit("source.xml", xml_document(pm_row(), reservation(2, departure="2026-07-26")).encode()) + self.assertEqual(outcome["status"], "failed") + self.assertEqual(self.sql("SELECT version_status,source_rows,excluded_pm_rows,validation_failed_rows FROM finance.daily_versions"), [("rejected", 2, 1, 1)]) + self.assertEqual(self.count("finance.current_daily_versions"), 0) + self.assertEqual(self.monthly_worker().process_next().status, "idle") + + def test_database_pm_record_classification_guard_rejects_wrong_room_or_price(self): + import psycopg + self.make_first_pm() + self.assertEqual(self.execute().status, "succeeded") + with self.database.connect(autocommit=True) as connection: + for statement in ( + "UPDATE finance.daily_records SET room_category_label='PM-SUITE' WHERE source_sequence=1", + "UPDATE finance.daily_records SET real_price=0 WHERE source_sequence=1", + "UPDATE finance.daily_records SET channel_key='Group' WHERE source_sequence=1", + "UPDATE finance.daily_records SET decision_codes=ARRAY['RATE_CODE_EXCLUDED'] WHERE source_sequence=1", + ): + with self.subTest(statement=statement), self.assertRaises(psycopg.errors.CheckViolation): + connection.execute(statement) + + +if __name__ == "__main__": + unittest.main() diff --git a/tests/test_arr_pm_review.py b/tests/test_arr_pm_review.py new file mode 100644 index 0000000..3e9b5d5 --- /dev/null +++ b/tests/test_arr_pm_review.py @@ -0,0 +1,98 @@ +"""PM eligibility is shared with processing, before source-field completion.""" +import json +from pathlib import Path +import tempfile +import unittest + +from arr_processing.policy import load_processor_policy +from arr_web.arr_data_review import DataFieldReviews +from arr_web.contracts import PortalError +from tests.test_arr_data_review import source_document, raw, gap, CONTEXT, DAY, REQUEST, ACTOR, SOURCE_MANIFEST + + +class PMReviewTests(unittest.TestCase): + def setUp(self): + temporary = tempfile.TemporaryDirectory(prefix="arr-pm-review-") + self.addCleanup(temporary.cleanup) + self.root = Path(temporary.name) / "reviews" + self.policy = load_processor_policy(Path(__file__).resolve().parents[1]) + self.service = DataFieldReviews(root=self.root, policy=self.policy, context=CONTEXT) + self.document = source_document(2) + + def prepare(self): + return self.service.prepare(REQUEST, raw(self.document), SOURCE_MANIFEST, DAY) + + def test_explicit_pm_needs_no_fields_and_does_not_hide_other_rows(self): + self.document["records"][0]["fields"]["ROOM_CATEGORY_LABEL"] = {"state": "available", "value": " pm "} + for field in ("DISP_ROOM_NO", "RATE_CODE", "BLOCK_CODE", "ADULTS"): + gap(self.document, field) + gap(self.document, "DISP_ROOM_NO", sequence=2) + review = self.prepare() + self.assertEqual([item["item_id"] for item in review["items"]], ["2:DISP_ROOM_NO"]) + self.assertEqual(review["excluded_pm_count"], 1) + self.assertEqual(review["excluded_cancelled_count"], 0) + with self.assertRaisesRegex(PortalError, "PM"): + self.service.update(REQUEST, "1:BLOCK_CODE", review["revision"], "IGNORED", ACTOR) + + def test_zero_price_or_nine_thousand_room_number_does_not_identify_pm(self): + for row in self.document["records"]: + row["fields"]["EFFECTIVE_RATE_AMOUNT"] = {"state": "available", "value": "0"} + row["fields"]["DISP_ROOM_NO"] = {"state": "available", "value": "9002"} + row["fields"]["ROOM_CATEGORY_LABEL"] = {"state": "available", "value": "PMX"} + gap(self.document, "ADULTS") + review = self.prepare() + self.assertEqual(review["excluded_pm_count"], 0) + self.assertIn("1:ADULTS", [item["item_id"] for item in review["items"]]) + + def test_cancelled_pm_is_counted_once_as_cancelled(self): + row = self.document["records"][0] + row["reservation_status"] = "Cancelled" + row["fields"]["ROOM_CATEGORY_LABEL"] = {"state": "available", "value": "PM"} + gap(self.document, "BLOCK_CODE", sequence=2) + review = self.prepare() + self.assertEqual((review["excluded_cancelled_count"], review["excluded_pm_count"]), (1, 0)) + + def test_prior_decisions_remain_audited_when_completed_room_type_is_pm(self): + gap(self.document, "BLOCK_CODE") + gap(self.document, "ROOM_CATEGORY_LABEL") + review = self.prepare() + original = self.service.original(REQUEST) + review = self.service.update(REQUEST, "1:BLOCK_CODE", review["revision"], "VERIFIED", ACTOR) + review = self.service.update(REQUEST, "1:ROOM_CATEGORY_LABEL", review["revision"], "PM", ACTOR) + self.assertEqual([item["item_id"] for item in review["items"]], ["1:ROOM_CATEGORY_LABEL"]) + self.assertTrue(review["items"][0]["confirmed"]) + self.assertEqual(review["excluded_pm_count"], 1) + self.assertTrue(review["can_finalize"]) + with self.assertRaisesRegex(PortalError, "PM"): + self.service.update(REQUEST, "1:BLOCK_CODE", review["revision"], "CHANGED", ACTOR) + self.service.finalize(REQUEST, review["revision"], ACTOR) + derived = json.loads(self.service.payload(REQUEST)[0]) + self.assertEqual(self.service.original(REQUEST), original) + changes = derived["manual_data_review"]["manifest"]["changes"] + self.assertEqual({item["field"]: item["value"] for item in changes}, + {"BLOCK_CODE": "VERIFIED", "ROOM_CATEGORY_LABEL": "PM"}) + + def test_existing_room_type_normalization_is_shared_by_exclusion_count_and_edit_guard(self): + self.document["records"][0]["fields"]["ROOM_CATEGORY_LABEL"] = {"state": "available", "value": "PM😀"} + gap(self.document, "BLOCK_CODE") + gap(self.document, "DISP_ROOM_NO", sequence=2) + review = self.prepare() + self.assertEqual(review["excluded_pm_count"], 1) + self.assertEqual([item["item_id"] for item in review["items"]], ["2:DISP_ROOM_NO"]) + with self.assertRaisesRegex(PortalError, "PM"): + self.service.update(REQUEST, "1:BLOCK_CODE", review["revision"], "IGNORED", ACTOR) + + def test_manually_completed_room_type_can_be_corrected_before_finalization(self): + gap(self.document, "ROOM_CATEGORY_LABEL") + gap(self.document, "BLOCK_CODE") + review = self.prepare() + review = self.service.update(REQUEST, "1:ROOM_CATEGORY_LABEL", review["revision"], "PM", ACTOR) + self.assertEqual(review["pending_count"], 0) + review = self.service.update(REQUEST, "1:ROOM_CATEGORY_LABEL", review["revision"], "SU6", ACTOR) + self.assertEqual(review["excluded_pm_count"], 0) + self.assertEqual(review["pending_count"], 1) + self.assertIn("1:BLOCK_CODE", [item["item_id"] for item in review["items"]]) + + +if __name__ == "__main__": + unittest.main() diff --git a/tests/test_arr_pm_scope.py b/tests/test_arr_pm_scope.py new file mode 100644 index 0000000..00e471d --- /dev/null +++ b/tests/test_arr_pm_scope.py @@ -0,0 +1,228 @@ +"""Offline PM scope checks for both daily inputs and the frozen legacy replay.""" +from __future__ import annotations + +import argparse +import contextlib +import copy +import io +import json +from pathlib import Path +import tempfile +import unittest +import xml.etree.ElementTree as ET + +from tests.test_arr_opera_daily_ingest import ( + core, reservation, run_processor, validator, xml_document, +) +from tests.test_arr_data_review import source_document + + +def pm_xml_row(sequence, *, label="PM", room=None, status=None, incomplete=False, + rate_amount="900"): + node = ET.fromstring(reservation(sequence, room=room, rate_amount=rate_amount)) + node.find("ROOM_CATEGORY_LABEL").text = label + if status is not None: + ET.SubElement(node, "SHORT_RESV_STATUS").text = status + if incomplete: + for field, value in (("RATE_CODE", ""), ("DISP_ROOM_NO", ""), + ("COMPANY_NAME", ""), ("FULL_NAME", ""), + ("ADULTS", "-1"), ("NO_OF_ROOMS", "0"), + ("EFFECTIVE_RATE_AMOUNT", "INVALID"), + ("TRUNC_END", "2026-07-26")): + node.find(field).text = value + return ET.tostring(node, encoding="unicode") + + +class PMScopeTests(unittest.TestCase): + def setUp(self): + temporary = tempfile.TemporaryDirectory(prefix="arr-pm-scope-") + self.addCleanup(temporary.cleanup) + self.root = Path(temporary.name) + + def classify_xml(self, *rows, apply_scope=True): + path = self.root / "source.xml" + path.write_text(xml_document(*rows)) + business_date, nodes = core.read_xml(path) + return core.classify_input_records(nodes, business_date, apply_scope=apply_scope) + + def run_data(self, document, name="output"): + path = self.root / (name + ".json") + path.write_text(json.dumps(document)) + output = self.root / name + args = argparse.Namespace(xml=None, data_json=str(path), output_dir=str(output), + result_json=str(output / "result.json"), + structured_result_json=str(output / "structured-result.json")) + before = path.read_bytes() + with contextlib.redirect_stdout(io.StringIO()): + exit_code = core.process(args) + self.assertEqual(path.read_bytes(), before) + return exit_code, json.loads((output / "structured-result.json").read_text()) + + def test_xml_pm_precedes_rate_and_required_fields_but_cancelled_takes_precedence(self): + rows, eligible, removed_rate, duplicates, errors = self.classify_xml( + pm_xml_row(1, label=" pm ", incomplete=True), + pm_xml_row(2, status="CXL", incomplete=True), reservation(3)) + self.assertEqual(errors, []) + self.assertEqual((removed_rate, duplicates), (0, 0)) + self.assertEqual([row["_SOURCE_INDEX"] for row in eligible], [3]) + self.assertEqual([row["_OUTCOME"] for row in rows], + ["excluded_pm", "excluded_cancelled", "pending"]) + self.assertEqual(rows[0]["_DECISION_CODES"], ["ROOM_TYPE_PM_EXCLUDED"]) + self.assertEqual(rows[1]["_DECISION_CODES"], ["RESERVATION_CANCELLED_EXCLUDED"]) + self.assertEqual(rows[0]["ROOM_CATEGORY_LABEL"], "pm") + self.assertEqual(rows[0]["CONFIRMATION_NO"], "SYNTHETIC-CONF-1") + self.assertEqual(rows[0]["_SOURCE_LOCATION"], "reservation[1]") + + def test_only_exact_explicit_pm_room_type_is_excluded(self): + for label in ("PM", "pm", " pM ", "\tPm\n"): + with self.subTest(label=label): + rows, _, _, _, errors = self.classify_xml( + pm_xml_row(1, label=label, incomplete=True), reservation(2)) + self.assertEqual(errors, []) + self.assertTrue(core.is_pm_record(rows[0])) + for label in (None, "", "PM1", "PM ROOM", "P M", "SU6"): + with self.subTest(label=label): + rows, _, _, _, errors = self.classify_xml( + pm_xml_row(1, label=label, room="PM", rate_amount="0"), reservation(2)) + self.assertEqual(errors, []) + self.assertFalse(core.is_pm_record(rows[0])) + self.assertEqual(rows[0]["_OUTCOME"], "pending") + + def test_pm_does_not_consume_a_real_room_duplicate_key_or_create_price_issue(self): + rows, eligible, _, duplicates, errors = self.classify_xml( + pm_xml_row(1, room="SAME-ROOM", rate_amount="0"), + reservation(2, room="SAME-ROOM"), reservation(3, room="SAME-ROOM")) + self.assertEqual(errors, []) + self.assertEqual([row["_SOURCE_INDEX"] for row in eligible], [2]) + self.assertEqual(duplicates, 1) + self.assertEqual([row["_OUTCOME"] for row in rows], + ["excluded_pm", "pending", "duplicate"]) + self.assertEqual(rows[2]["_DUPLICATE_OF_SOURCE_SEQUENCE"], 2) + prices = core.load_price_map(core.PRICE_REFERENCE) + self.assertEqual(core.apply_prices_classified(eligible, prices), []) + self.assertEqual(core.review_issues(eligible, prices), []) + + def test_xml_success_and_independent_replay_count_pm_and_cancelled_separately(self): + code, source, output, _, payload = run_processor(xml_document( + pm_xml_row(1, label=" pm ", incomplete=True), + pm_xml_row(2, status="CXL", incomplete=True), reservation(3)), self.root) + self.assertEqual(code, 0, payload["errors"]) + self.assertEqual(payload["processor_version"], "4.4.0") + self.assertEqual(payload["outcome_counts"]["excluded_pm"], 1) + self.assertEqual(payload["outcome_counts"]["excluded_cancelled"], 1) + self.assertEqual(sum(payload["outcome_counts"].values()), 3) + self.assertEqual((payload["source_rows"], payload["output_rows"]), (3, 1)) + self.assertEqual(payload["artifacts"]["source_xml"]["sha256"], core.sha256_file(source)) + self.assertEqual(payload["records"][0]["room_category_label"], "pm") + for field in ("real_price", "total_price", "kb_amount", "channel_key", "pricing_method"): + self.assertIsNone(payload["records"][0][field]) + + # A structurally valid cancellation reclassification cannot replace PM evidence. + forged = copy.deepcopy(payload) + forged["records"][0]["outcome"] = "excluded_cancelled" + forged["records"][0]["decision_codes"] = ["RESERVATION_CANCELLED_EXCLUDED"] + forged["outcome_counts"]["excluded_cancelled"] += 1 + forged["outcome_counts"]["excluded_pm"] -= 1 + core.validate_structured_completeness(forged) + structured = output / "structured-result.json" + structured.write_text(json.dumps(forged)) + errors = validator.validate(argparse.Namespace(xml=str(source), + daily=str(next(output.glob("*.xlsx"))), result_json=str(output / "result.json"), + structured_result_json=str(structured), price_reference=str(core.PRICE_REFERENCE))) + self.assertIn("OUTPUT_STRUCTURED_OUTCOME_MISMATCH", {error.code for error in errors}) + self.assertIn("OUTPUT_STRUCTURED_RECORD_MISMATCH", {error.code for error in errors}) + + def test_pm_self_validation_and_schemas_require_explicit_type_reason_and_null_facts(self): + code, _, _, _, payload = run_processor(xml_document( + pm_xml_row(1, label="pM"), reservation(2)), self.root) + self.assertEqual(code, 0, payload["errors"]) + for field, value in (("room_category_label", "SU6"), + ("decision_codes", ["RATE_CODE_NOT_WHITELISTED"]), + ("real_price", 0), ("total_price", 0), ("kb_amount", 0), + ("channel_key", "QBD"), ("pricing_method", "manual_review")): + with self.subTest(field=field): + forged = copy.deepcopy(payload) + forged["records"][0][field] = value + with self.assertRaises(core.ProcessingFailure): + core.validate_structured_completeness(forged) + forged = copy.deepcopy(payload) + del forged["outcome_counts"]["excluded_pm"] + with self.assertRaises(core.ProcessingFailure): + core.validate_structured_completeness(forged) + for name in ("structured-result.schema.json", "data-structured-result.schema.json"): + schema = json.loads((core.SKILL_ROOT / "references" / name).read_text()) + self.assertEqual(schema["properties"]["processor_version"]["const"], "4.4.0") + self.assertIn("excluded_pm", schema["properties"]["outcome_counts"]["required"]) + rule = next(item for item in schema["$defs"]["record"]["allOf"] + if item["if"]["properties"]["outcome"].get("const") == "excluded_pm") + self.assertEqual(rule["then"]["properties"]["decision_codes"]["const"], + ["ROOM_TYPE_PM_EXCLUDED"]) + self.assertEqual(rule["then"]["properties"]["real_price"]["type"], "null") + + def test_xml_review_and_failure_keep_pm_outside_pricing_and_other_validation(self): + code, _, _, _, payload = run_processor(xml_document( + pm_xml_row(1, incomplete=True), reservation(2, rate_amount="8765")), + self.root / "review") + self.assertEqual(code, 0, payload["errors"]) + self.assertEqual(payload["status"], "review_required") + self.assertEqual(payload["outcome_counts"]["excluded_pm"], 1) + self.assertEqual(payload["review_required_rows"], 1) + self.assertEqual(payload["review_issues"][0]["affected_records"], 1) + invalid = ET.fromstring(reservation(2)) + invalid.find("DISP_ROOM_NO").text = "" + code, _, _, _, payload = run_processor(xml_document( + pm_xml_row(1, incomplete=True), ET.tostring(invalid, encoding="unicode")), + self.root / "failure") + self.assertNotEqual(code, 0) + self.assertEqual(payload["status"], "failed") + self.assertEqual(payload["outcome_counts"]["excluded_pm"], 1) + self.assertEqual(payload["outcome_counts"]["validation_failed"], 1) + + def test_data_success_review_and_failure_keep_pm_outside_business_rules(self): + baseline = source_document(2) + for field in baseline["records"][0]["fields"]: + baseline["records"][0]["fields"][field] = {"state": "missing", "value": None} + baseline["records"][0]["fields"]["ROOM_CATEGORY_LABEL"] = {"state": "available", "value": " pm "} + baseline["input_complete"] = False + baseline["status"] = "collected_with_gaps" + code, payload = self.run_data(baseline) + self.assertEqual(code, 0, payload["errors"]) + self.assertEqual(payload["outcome_counts"]["excluded_pm"], 1) + self.assertEqual(payload["output_rows"], 1) + self.assertEqual(payload["removed_by_rate_code"], 0) + self.assertEqual(payload["records"][0]["room_category_label"], "pm") + review = copy.deepcopy(baseline) + review["records"][1]["fields"]["EFFECTIVE_RATE_AMOUNT"]["value"] = "8765" + code, payload = self.run_data(review, "review") + self.assertEqual(code, 0, payload["errors"]) + self.assertEqual(payload["status"], "review_required") + self.assertEqual(payload["outcome_counts"]["excluded_pm"], 1) + self.assertEqual(payload["review_required_rows"], 1) + failed = copy.deepcopy(baseline) + failed["records"][1]["fields"]["DISP_ROOM_NO"] = {"state": "missing", "value": None} + code, payload = self.run_data(failed, "failure") + self.assertNotEqual(code, 0) + self.assertEqual(payload["status"], "failed") + self.assertEqual(payload["outcome_counts"]["excluded_pm"], 1) + self.assertEqual(payload["outcome_counts"]["validation_failed"], 1) + + def test_frozen_legacy_v3_replay_keeps_pm_and_never_projects_new_outcomes(self): + code, _, _, _, payload = run_processor(xml_document( + pm_xml_row(1), reservation(2)), self.root, legacy_v3_output=True) + self.assertEqual(code, 0, payload["errors"]) + self.assertEqual(payload["result_schema_version"], "3.0") + self.assertEqual(payload["output_rows"], 2) + self.assertEqual(set(payload["outcome_counts"]), core.LEGACY_DIRECT_FINAL_OUTCOMES) + self.assertEqual([row["outcome"] for row in payload["records"]], ["retained", "retained"]) + rows, _, _, _, _ = self.classify_xml(pm_xml_row(1), reservation(2)) + for function in (core.build_legacy_direct_structured_result, + core.build_legacy_direct_failed_structured_result): + with self.subTest(function=function.__name__), self.assertRaises(core.ProcessingFailure): + if function is core.build_legacy_direct_structured_result: + function(None, rows[:1], [], self.root / "source.xml", None, None) + else: + function(None, rows[:1], self.root / "source.xml", None, None, []) + + +if __name__ == "__main__": + unittest.main()