Files
alla-allaos-fullstack/docs/business/pdf-mapping-registry.md
phaichayon fd01ebf7c7 pdf task-h
2026-06-19 15:09:58 +07:00

2.3 KiB

PDF Mapping Registry

This document is the source of truth for current quotation PDF field ownership.

PDF Field Source Path Transform Example Value
customer_name customer.name direct ALLA Demo Customer
customer_addr customer.address direct multiline 99/9 Rama IX Road, Bangkok 10310
customer_tel customer.phone direct 02-000-1000
customer_email customer.email direct demo-customer@local.test
customer_att quotation.attention direct Task H.1 Contact
project_name quotation.projectName direct Task H.5 Audit Fixture
site_location quotation.projectLocation direct multiline Bangkok HQ
quotation_date pdfme.quotation_date formatPdfDate() 16 Jun 2026
quotation_code quotation.code direct QT-H5-AUDIT
quotation_price pdfme.quotation_price formatPdfCurrency() THB 128,400.00
currency quotation.currency direct THB
exclusion_data pdfme.exclusion_data formatTopicItems() [["Civil work by customer"]]
items_table items normalizePdfmeTable() with table columns item rows
app1 signatures.preparedBy.name direct Task H.1 Admin
app1_position signatures.preparedBy.position position resolver Sales Manager
app2 signatures.approvedBy.name direct Task H.1 Admin
app2_position signatures.approvedBy.position position resolver Sales Manager
app3 signatures.authorizedBy.name direct Task H.1 Admin
app3_position signatures.authorizedBy.position position resolver Sales Manager
topic dynamic topic engine runtime schema clone topic label table
data_topic dynamic topic engine runtime schema clone topic item table
topic_* documentData.topics.all[*].topicType runtime generated Scope
item_topic_* documentData.topics.all[*].items formatTopicItems() topic rows

Alias Notes

  • current PDFME schema still uses field containers named quotation_date_data and quotation_code_data
  • runtime normalization now publishes both the canonical placeholder keys (quotation_date, quotation_code) and the container keys so preview/audit/render stay aligned during the freeze window