fix: support bilingual Booking Excel headers

This commit is contained in:
Wyndham ARR
2026-08-11 15:29:42 +08:00
parent ca3e8e18fa
commit c947230471
15 changed files with 366 additions and 30 deletions

View File

@@ -49,8 +49,13 @@
- The company-report Booking allocation model consists of normalized Group Code, room type and quantity. A raw intake
adapter may derive these fields from a source workbook, but raw workbook columns and normalized result dimensions are
separate contracts; worksheet, physical row, artifact hash and parse version remain provenance.
- A raw Booking workbook is recognized only on a worksheet containing one Tour Code/Group Code header and the exact
Thai `โรงแรม` header. Tour Codes are Unicode-normalized and all whitespace is removed before matching.
- A raw Booking workbook is recognized only on a worksheet containing exactly one approved Tour Code/Group Code header
and exactly one approved hotel-detail header on the same row. Approved Tour Code labels are `Tour Code`, `Group Code`,
`Gourp Code`, `团号`, `团队代码` and `Tour Code / 主团号`; approved hotel-detail labels are `โรงแรม`,
`วางข้อมูลที่นี่ / 酒店明细` and `Raw Hotel Detail / วางข้อมูลที่นี่ / 酒店明细`. Header cells are
Unicode/case/whitespace/punctuation-normalized before whole-cell exact comparison; substring, fuzzy, filename,
month and worksheet-name matching are forbidden. Tour Codes are Unicode-normalized and all whitespace is removed
before matching.
- For repeated Tour Codes, the physically last source row replaces earlier rows. A final row with an explicit textual
cancellation removes the Tour Code; cell color or other formatting alone never means cancellation.
- Room extraction reads parenthesized hotel segments. A `【label】` token takes the following integer as quantity and
@@ -79,4 +84,4 @@
## Last Reviewed
2026-08-06
2026-08-11