614 lines
17 KiB
JSON
614 lines
17 KiB
JSON
{
|
|
"audit": "runtime-payload",
|
|
"overallStatus": "PASS",
|
|
"staticLabelsStatus": "PASS",
|
|
"quotationCode": "CRA2606-1121",
|
|
"templateName": "ALLA Demo Organization Quotation Standard",
|
|
"templateVersion": "1.0",
|
|
"findingCount": 86,
|
|
"findings": [
|
|
{
|
|
"field": "documentData.company.id",
|
|
"source": "documentData",
|
|
"status": "PASS",
|
|
"value": "daf796fc-4588-5240-a27e-9bfef0739658",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "documentData.company.name",
|
|
"source": "documentData",
|
|
"status": "PASS",
|
|
"value": "ALLA Demo Organization",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "documentData.customer.id",
|
|
"source": "documentData",
|
|
"status": "PASS",
|
|
"value": "a6d9dec1-ff9d-4749-9542-f16d8efcf761",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "documentData.customer.name",
|
|
"source": "documentData",
|
|
"status": "PASS",
|
|
"value": "บริษัท แอดวานซ์ โปรเจค คอนซัลแทนท์ จำกัด",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "documentData.customer.address",
|
|
"source": "documentData",
|
|
"status": "PASS",
|
|
"value": "Bang Pakong, Chachoengsao",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "documentData.customer.phone",
|
|
"source": "documentData",
|
|
"status": "PASS",
|
|
"value": "02-600832",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "documentData.customer.email",
|
|
"source": "documentData",
|
|
"status": "PASS",
|
|
"value": "@example.co.th",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "documentData.contact.id",
|
|
"source": "documentData",
|
|
"status": "PASS",
|
|
"value": "df4b3f5f-a4e0-42d7-9181-d56319b23275",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "documentData.contact.name",
|
|
"source": "documentData",
|
|
"status": "PASS",
|
|
"value": "คุณวราภรณ์ จิรโรจน์",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "documentData.contact.email",
|
|
"source": "documentData",
|
|
"status": "PASS",
|
|
"value": "@.co.th",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "documentData.contact.mobile",
|
|
"source": "documentData",
|
|
"status": "PASS",
|
|
"value": "0810000303",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "documentData.contact.position",
|
|
"source": "documentData",
|
|
"status": "PASS",
|
|
"value": "Maintenance Supervisor",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "documentData.quotation.id",
|
|
"source": "documentData",
|
|
"status": "PASS",
|
|
"value": "16ea6fca-ef77-4cb9-8079-0b8dbcdbff57",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "documentData.quotation.code",
|
|
"source": "documentData",
|
|
"status": "PASS",
|
|
"value": "CRA2606-1121",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "documentData.quotation.projectName",
|
|
"source": "documentData",
|
|
"status": "PASS",
|
|
"value": "บริษัท แอดวานซ์ โปรเจค คอนซัลแทนท์ จำกัด - Phase 2",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "documentData.quotation.projectLocation",
|
|
"source": "documentData",
|
|
"status": "PASS",
|
|
"value": "Bang Pakong, Chachoengsao",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "documentData.quotation.attention",
|
|
"source": "documentData",
|
|
"status": "PASS",
|
|
"value": "Attention",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "documentData.quotation.reference",
|
|
"source": "documentData",
|
|
"status": "PASS",
|
|
"value": "Reference",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "documentData.quotation.currency",
|
|
"source": "documentData",
|
|
"status": "PASS",
|
|
"value": "THB",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "documentData.quotation.currencyCode",
|
|
"source": "documentData",
|
|
"status": "PASS",
|
|
"value": "THB",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "documentData.quotation.subtotal",
|
|
"source": "documentData",
|
|
"status": "PASS",
|
|
"value": 0,
|
|
"message": "Scalar value is populated"
|
|
},
|
|
{
|
|
"field": "documentData.quotation.totalAmount",
|
|
"source": "documentData",
|
|
"status": "PASS",
|
|
"value": 0,
|
|
"message": "Scalar value is populated"
|
|
},
|
|
{
|
|
"field": "documentData.items",
|
|
"source": "documentData",
|
|
"status": "PASS",
|
|
"value": "rows:0",
|
|
"message": "Array shape is valid"
|
|
},
|
|
{
|
|
"field": "documentData.quotationCustomers",
|
|
"source": "documentData",
|
|
"status": "PASS",
|
|
"value": "rows:2",
|
|
"message": "Collection payload is populated"
|
|
},
|
|
{
|
|
"field": "documentData.quotationCustomers[0].id",
|
|
"source": "documentData",
|
|
"status": "PASS",
|
|
"value": "8eac2230-5fc4-4e14-9fa4-b7457efe5660",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "documentData.quotationCustomers[0].customerId",
|
|
"source": "documentData",
|
|
"status": "PASS",
|
|
"value": "05ae3d52-1157-499e-b6b2-d7e5ab509e4e",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "documentData.quotationCustomers[0].role",
|
|
"source": "documentData",
|
|
"status": "PASS",
|
|
"value": "a3b51c9b-e1e6-48b9-95ba-f6e35ba5406e",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "documentData.quotationCustomers[0].isPrimary",
|
|
"source": "documentData",
|
|
"status": "PASS",
|
|
"value": false,
|
|
"message": "Scalar value is populated"
|
|
},
|
|
{
|
|
"field": "documentData.quotationCustomers[1].id",
|
|
"source": "documentData",
|
|
"status": "PASS",
|
|
"value": "a8a589b5-5de5-403a-a6bb-a6d9c55efe71",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "documentData.quotationCustomers[1].customerId",
|
|
"source": "documentData",
|
|
"status": "PASS",
|
|
"value": "a6d9dec1-ff9d-4749-9542-f16d8efcf761",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "documentData.quotationCustomers[1].role",
|
|
"source": "documentData",
|
|
"status": "PASS",
|
|
"value": "cfaf96fd-39a2-4074-b295-a4798cf23253",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "documentData.quotationCustomers[1].isPrimary",
|
|
"source": "documentData",
|
|
"status": "PASS",
|
|
"value": true,
|
|
"message": "Scalar value is populated"
|
|
},
|
|
{
|
|
"field": "documentData.topics.all",
|
|
"source": "documentData",
|
|
"status": "PASS",
|
|
"value": "rows:0",
|
|
"message": "Array shape is valid"
|
|
},
|
|
{
|
|
"field": "documentData.topics.exclusion",
|
|
"source": "documentData",
|
|
"status": "PASS",
|
|
"value": "rows:0",
|
|
"message": "Array shape is valid"
|
|
},
|
|
{
|
|
"field": "documentData.pdfme.labels.tel",
|
|
"source": "documentData",
|
|
"status": "PASS",
|
|
"value": "Tel",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "documentData.pdfme.labels.email",
|
|
"source": "documentData",
|
|
"status": "PASS",
|
|
"value": "Email",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "documentData.pdfme.labels.att",
|
|
"source": "documentData",
|
|
"status": "PASS",
|
|
"value": "Att",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "documentData.pdfme.labels.project",
|
|
"source": "documentData",
|
|
"status": "PASS",
|
|
"value": "Project",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "documentData.pdfme.labels.location",
|
|
"source": "documentData",
|
|
"status": "PASS",
|
|
"value": "Location",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "documentData.pdfme.quotation_date",
|
|
"source": "documentData",
|
|
"status": "PASS",
|
|
"value": "Jun 30, 2026",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "documentData.pdfme.quotation_price",
|
|
"source": "documentData",
|
|
"status": "PASS",
|
|
"value": "THB 0.00",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "documentData.pdfme.quotation_price_data",
|
|
"source": "documentData",
|
|
"status": "PASS",
|
|
"value": "rows:1",
|
|
"message": "Array shape is valid"
|
|
},
|
|
{
|
|
"field": "documentData.pdfme.exclusion_data",
|
|
"source": "documentData",
|
|
"status": "PASS",
|
|
"value": "rows:1",
|
|
"message": "Array shape is valid"
|
|
},
|
|
{
|
|
"field": "documentData.signatures.preparedBy.name",
|
|
"source": "documentData",
|
|
"status": "PASS",
|
|
"value": "Sales Crane UAT",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "documentData.signatures.preparedBy.position",
|
|
"source": "documentData",
|
|
"status": "PASS",
|
|
"value": "Sales Engineer",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "documentData.signatures.preparedBy.actedAt",
|
|
"source": "documentData",
|
|
"status": "PASS",
|
|
"value": "2026-06-30T11:21:06.000Z",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "documentData.signatures.approvedBy.name",
|
|
"source": "documentData",
|
|
"status": "PASS",
|
|
"value": "-",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "documentData.signatures.approvedBy.position",
|
|
"source": "documentData",
|
|
"status": "PASS",
|
|
"value": "-",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "documentData.signatures.approvedBy.actedAt",
|
|
"source": "documentData",
|
|
"status": "WARNING",
|
|
"value": null,
|
|
"message": "Value is null"
|
|
},
|
|
{
|
|
"field": "documentData.signatures.authorizedBy.name",
|
|
"source": "documentData",
|
|
"status": "PASS",
|
|
"value": "-",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "documentData.signatures.authorizedBy.position",
|
|
"source": "documentData",
|
|
"status": "PASS",
|
|
"value": "-",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "documentData.signatures.authorizedBy.actedAt",
|
|
"source": "documentData",
|
|
"status": "WARNING",
|
|
"value": null,
|
|
"message": "Value is null"
|
|
},
|
|
{
|
|
"field": "templateInput.customer_name",
|
|
"source": "templateInput",
|
|
"status": "PASS",
|
|
"value": "บริษัท แอดวานซ์ โปรเจค คอนซัลแทนท์ จำกัด",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "templateInput.customer_addr",
|
|
"source": "templateInput",
|
|
"status": "PASS",
|
|
"value": "Bang Pakong, Chachoengsao",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "templateInput.customer_tel",
|
|
"source": "templateInput",
|
|
"status": "PASS",
|
|
"value": "02-600832",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "templateInput.customer_email",
|
|
"source": "templateInput",
|
|
"status": "PASS",
|
|
"value": "@example.co.th",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "templateInput.customer_att",
|
|
"source": "templateInput",
|
|
"status": "PASS",
|
|
"value": "Attention",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "templateInput.project_name",
|
|
"source": "templateInput",
|
|
"status": "PASS",
|
|
"value": "บริษัท แอดวานซ์ โปรเจค คอนซัลแทนท์ จำกัด - Phase 2",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "templateInput.site_location",
|
|
"source": "templateInput",
|
|
"status": "PASS",
|
|
"value": "Bang Pakong, Chachoengsao",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "templateInput.quotation_date_data",
|
|
"source": "templateInput",
|
|
"status": "PASS",
|
|
"value": "Jun 30, 2026",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "templateInput.quotation_code_data",
|
|
"source": "templateInput",
|
|
"status": "PASS",
|
|
"value": "CRA2606-1121",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "templateInput.quotation_price_data",
|
|
"source": "templateInput",
|
|
"status": "PASS",
|
|
"value": "rows:1",
|
|
"message": "Array shape is valid"
|
|
},
|
|
{
|
|
"field": "templateInput.quotation_price",
|
|
"source": "templateInput",
|
|
"status": "PASS",
|
|
"value": "THB 0.00",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "templateInput.currency",
|
|
"source": "templateInput",
|
|
"status": "PASS",
|
|
"value": "THB",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "templateInput.tel_label",
|
|
"source": "templateInput",
|
|
"status": "PASS",
|
|
"value": "Tel",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "templateInput.email_label",
|
|
"source": "templateInput",
|
|
"status": "PASS",
|
|
"value": "Email",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "templateInput.att_label",
|
|
"source": "templateInput",
|
|
"status": "PASS",
|
|
"value": "Att",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "templateInput.project_label",
|
|
"source": "templateInput",
|
|
"status": "PASS",
|
|
"value": "Project",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "templateInput.site_label",
|
|
"source": "templateInput",
|
|
"status": "PASS",
|
|
"value": "Location",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "templateInput.app1",
|
|
"source": "templateInput",
|
|
"status": "PASS",
|
|
"value": "Sales Crane UAT",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "templateInput.app1_position",
|
|
"source": "templateInput",
|
|
"status": "PASS",
|
|
"value": "Sales Engineer",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "templateInput.app2",
|
|
"source": "templateInput",
|
|
"status": "PASS",
|
|
"value": "-",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "templateInput.app2_position",
|
|
"source": "templateInput",
|
|
"status": "PASS",
|
|
"value": "-",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "templateInput.app3",
|
|
"source": "templateInput",
|
|
"status": "PASS",
|
|
"value": "-",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "templateInput.app3_position",
|
|
"source": "templateInput",
|
|
"status": "PASS",
|
|
"value": "-",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "templateInput.quotation_date",
|
|
"source": "templateInput",
|
|
"status": "PASS",
|
|
"value": "Jun 30, 2026",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "templateInput.quotation_code",
|
|
"source": "templateInput",
|
|
"status": "PASS",
|
|
"value": "CRA2606-1121",
|
|
"message": "String is populated"
|
|
},
|
|
{
|
|
"field": "templateInput.quotation_price_data",
|
|
"source": "templateInput",
|
|
"status": "PASS",
|
|
"value": "rows:1",
|
|
"message": "Price table input is present"
|
|
},
|
|
{
|
|
"field": "templateInput.quotation_price_data[0][0]",
|
|
"source": "templateInput",
|
|
"status": "PASS",
|
|
"value": "Price (Exclude VAT)",
|
|
"message": "Price table label matches canonical text"
|
|
},
|
|
{
|
|
"field": "templateInput.quotation_price_data[0][1]",
|
|
"source": "templateInput",
|
|
"status": "PASS",
|
|
"value": "฿0.00",
|
|
"message": "Price table amount cell is formatted"
|
|
},
|
|
{
|
|
"field": "templateInput.quotation_price_data[0][3]",
|
|
"source": "templateInput",
|
|
"status": "PASS",
|
|
"value": "THB",
|
|
"message": "Price table currency code cell is populated"
|
|
},
|
|
{
|
|
"field": "templateInput.tel_label",
|
|
"source": "templateInput",
|
|
"status": "PASS",
|
|
"value": "Tel",
|
|
"message": "Static label is populated"
|
|
},
|
|
{
|
|
"field": "templateInput.email_label",
|
|
"source": "templateInput",
|
|
"status": "PASS",
|
|
"value": "Email",
|
|
"message": "Static label is populated"
|
|
},
|
|
{
|
|
"field": "templateInput.att_label",
|
|
"source": "templateInput",
|
|
"status": "PASS",
|
|
"value": "Att",
|
|
"message": "Static label is populated"
|
|
},
|
|
{
|
|
"field": "templateInput.project_label",
|
|
"source": "templateInput",
|
|
"status": "PASS",
|
|
"value": "Project",
|
|
"message": "Static label is populated"
|
|
},
|
|
{
|
|
"field": "templateInput.site_label",
|
|
"source": "templateInput",
|
|
"status": "PASS",
|
|
"value": "Location",
|
|
"message": "Static label is populated"
|
|
}
|
|
]
|
|
}
|