---
id: object/table/31008-cz
type: object
title: Table 31008 "Purch. Adv. Letter Header CZZ" (CZ)
summary: Table 31008 "Purch. Adv. Letter Header CZZ" (CZ) in the CZ country layer (Microsoft.Finance.AdvancePayments). 66 fields, 29 public procedures, 36 events. Introduced in BC29, still in BC30.
tier: official
language: en
tags:
  - table
  - cz layer
versions:
  introduced: "29"
  last_changed: null
  deprecated: null
review:
  state: derived
  by: null
  at: null
  flags: []
generated:
  at: "2026-10-11T00:31:51.816Z"
  pipeline: 0.2.0
  prompts: {}
  input_hash: 28b8ac5f9f42cfdae199cae45a297df08544783d529198f3074273fd6da4ce23
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Apps/CZ/AdvancePaymentsLocalization/app/Src/Tables/PurchAdvLetterHeaderCZZ.Table.al
    title: src/Apps/CZ/AdvancePaymentsLocalization/app/Src/Tables/PurchAdvLetterHeaderCZZ.Table.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations:
    - localization/cz
  videos: []
  posts: []
  guidelines: []
  changes:
    - change/bcapps/9719
object_type: table
object_id: 31008
name: Purch. Adv. Letter Header CZZ
caption: Purchase Advance Letter Header
namespace: Microsoft.Finance.AdvancePayments
app: AdvancePaymentsLocalization
extends: null
first_version: "29"
last_version: "30"
present_in:
  - "29"
  - "30"
changed_in: []
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
country: CZ
counts:
  fields: 66
  procedures: 89
  events: 36
  subscribers: 0
relations:
  out: 0
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 0
---

# Table 31008 "Purch. Adv. Letter Header CZZ" (CZ)

> Table 31008 "Purch. Adv. Letter Header CZZ" (CZ) in the CZ country layer (Microsoft.Finance.AdvancePayments). 66 fields, 29 public procedures, 36 events. Introduced in BC29, still in BC30.

CZ country layer · Microsoft.Finance.AdvancePayments · captioned "Purchase Advance Letter Header" · BC29-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Apps/CZ/AdvancePaymentsLocalization/app/Src/Tables/PurchAdvLetterHeaderCZZ.Table.al) · facts from BC29

An object of the [CZ localization](../../localizations/cz.md), not part of W1.

## Properties

| Property | Value |
|---|---|
| Caption | Purchase Advance Letter Header |
| DataClassification | CustomerContent |
| LookupPageId | Purch. Advance Letters CZZ |

## Fields

Explanation: the field's ToolTip in the code; without one, the ToolTip of a page control bound to the field (marked via the page); without that, its Caption (marked caption) when that differs from the name.

| No. | Name | Type | Explanation | Notes |
|---|---|---|---|---|
| 1 | No. | Code[20] | — |  |
| 5 | Advance Letter Code | Code[20] | — | TableRelation "Advance Letter Template CZZ" where("Sales/Purchase" = const(Purchase)); not editable; NotBlank |
| 10 | Pay-to Vendor No. | Code[20] | — | TableRelation Vendor; NotBlank |
| 11 | Pay-to Name | Text[100] | — | TableRelation Vendor.Name |
| 12 | Pay-to Name 2 | Text[50] | — |  |
| 13 | Pay-to Address | Text[100] | — |  |
| 14 | Pay-to Address 2 | Text[50] | — |  |
| 15 | Pay-to City | Text[30] | — | TableRelation if ("Pay-to Country/Region Code" = const('')) "Post Code".City else if ("Pay-to Country/Region Code" = filter(<> '')) "Post Code".City where("Country/Region Code" = field("Pay-to Country/Region Code")) |
| 16 | Pay-to Post Code | Code[20] | — | TableRelation Post Code |
| 17 | Pay-to County | Text[30] | — |  |
| 18 | Pay-to Country/Region Code | Code[10] | — | TableRelation Country/Region |
| 19 | Language Code | Code[10] | — | TableRelation Language |
| 20 | Pay-to Contact | Text[100] | — |  |
| 21 | Pay-to Contact No. | Code[20] | — | TableRelation Contact |
| 23 | Purchaser Code | Code[20] | — | TableRelation Salesperson/Purchaser |
| 25 | Shortcut Dimension 1 Code | Code[20] | — | TableRelation "Dimension Value".Code where("Global Dimension No." = const(1), Blocked = const(false)) |
| 26 | Shortcut Dimension 2 Code | Code[20] | — | TableRelation "Dimension Value".Code where("Global Dimension No." = const(2), Blocked = const(false)) |
| 30 | VAT Bus. Posting Group | Code[20] | — | TableRelation VAT Business Posting Group |
| 33 | Posting Date | Date | — |  |
| 34 | Advance Due Date | Date | — |  |
| 35 | Document Date | Date | — |  |
| 36 | VAT Date | Date | — |  |
| 38 | Posting Description | Text[100] | — |  |
| 39 | Payment Method Code | Code[10] | — | TableRelation Payment Method |
| 40 | Payment Terms Code | Code[10] | — | TableRelation Payment Terms |
| 43 | Registration No. | Text[20] | — |  |
| 44 | Tax Registration No. | Text[20] | — |  |
| 45 | VAT Registration No. | Text[20] | — |  |
| 48 | No. Printed | Integer | — | not editable |
| 50 | Vendor Adv. Letter No. | Code[35] | Vendor Advance Letter No. <small>caption</small> |  |
| 53 | No. Series | Code[20] | — | TableRelation No. Series; not editable |
| 55 | Bank Account Code | Code[20] | — | TableRelation "Vendor Bank Account".Code where("Vendor No." = field("Pay-to Vendor No.")) |
| 56 | Bank Account No. | Text[30] | — | not editable |
| 57 | Bank Branch No. | Text[20] | — |  |
| 58 | Specific Symbol | Code[10] | — |  |
| 59 | Variable Symbol | Code[10] | — |  |
| 60 | Constant Symbol | Code[10] | — | TableRelation Constant Symbol CZL |
| 61 | IBAN | Code[50] | — |  |
| 62 | SWIFT Code | Code[20] | — | not editable |
| 63 | Bank Name | Text[100] | — |  |
| 64 | Transit No. | Text[20] | — | not editable |
| 68 | Responsibility Center | Code[10] | — | TableRelation Responsibility Center |
| 70 | Currency Code | Code[10] | — | TableRelation Currency |
| 71 | Currency Factor | Decimal | — | not editable |
| 75 | VAT Country/Region Code | Code[10] | — | TableRelation Country/Region |
| 80 | Status | Enum "Advance Letter Doc. Status CZZ" | — | enum Advance Letter Doc. Status CZZ; not editable |
| 85 | On Hold | Code[3] | — |  |
| 90 | Automatic Post VAT Usage | Boolean | — |  |
| 95 | Order No. | Code[20] | — | TableRelation "Purchase Header"."No." where("Document Type" = const(Order)) |
| 96 | Format Region | Text[80] | — | TableRelation "Language Selection"."Language Tag" |
| 110 | Date Filter | Date | — | FlowFilter |
| 111 | VAT Date Filter | Date | — | FlowFilter |
| 200 | Amount Including VAT | Decimal | — | FlowField: sum("Purch. Adv. Letter Line CZZ"."Amount Including VAT" where("Document No." = field("No."))); not editable |
| 201 | Amount Including VAT (LCY) | Decimal | — | FlowField: sum("Purch. Adv. Letter Line CZZ"."Amount Including VAT (LCY)" where("Document No." = field("No."))); not editable |
| 202 | Amount | Decimal | — | FlowField: sum("Purch. Adv. Letter Line CZZ"."Amount" where("Document No." = field("No."))); not editable |
| 205 | To Pay | Decimal | To Pay Amount <small>caption</small> | FlowField: - sum("Purch. Adv. Letter Entry CZZ".Amount where("Purch. Adv. Letter No." = field("No."), "Entry Type" = filter("Initial Entry" \| Payment \| Close), "VAT Date" = field("VAT Date Filter"), "Posting Date" = field("Date Filter"))); not editable |
| 206 | To Pay (LCY) | Decimal | To Pay Amount (LCY) <small>caption</small> | FlowField: - sum("Purch. Adv. Letter Entry CZZ"."Amount (LCY)" where("Purch. Adv. Letter No." = field("No."), "Entry Type" = filter("Initial Entry" \| Payment \| Close), "VAT Date" = field("VAT Date Filter"), "Posting Date" = field("Date Filter"))); not editable |
| 210 | To Use | Decimal | To Use Amount <small>caption</small> | FlowField: sum("Purch. Adv. Letter Entry CZZ".Amount where("Purch. Adv. Letter No." = field("No."), "Entry Type" = filter(Payment \| Usage \| Close), "VAT Date" = field("VAT Date Filter"), "Posting Date" = field("Date Filter"))); not editable |
| 211 | To Use (LCY) | Decimal | To Use Amount (LCY) <small>caption</small> | FlowField: sum("Purch. Adv. Letter Entry CZZ"."Amount (LCY)" where("Purch. Adv. Letter No." = field("No."), "Entry Type" = filter(Payment \| Usage \| Close \| "VAT Adjustment"), "VAT Date" = field("VAT Date Filter"), "Posting Date" = field("Date Filter"))); not editable |
| 215 | VAT Amount | Decimal | — | FlowField: sum("Purch. Adv. Letter Entry CZZ"."VAT Amount" where("Purch. Adv. Letter No." = field("No."), "Entry Type" = filter("VAT Payment" \| "VAT Usage" \| "VAT Close"), "VAT Date" = field("VAT Date Filter"), "Posting Date" = field("Date Filter"))); not editable |
| 216 | VAT Amount (LCY) | Decimal | — | FlowField: sum("Purch. Adv. Letter Entry CZZ"."VAT Amount (LCY)" where("Purch. Adv. Letter No." = field("No."), "Entry Type" = filter("VAT Payment" \| "VAT Usage" \| "VAT Close" \| "VAT Adjustment" \| "VAT Rate"), "VAT Date" = field("VAT Date Filter"), "Posting Date" = field("Date Filter"))); not editable |
| 220 | Doc. Amount Incl. VAT | Decimal | Specifies the total amount (including VAT) of the purchase advance letter as specified in the external document. |  |
| 221 | Doc. Amount VAT | Decimal | Specifies the VAT amount of the purchase advance letter as specified in the external document. |  |
| 480 | Dimension Set ID | Integer | — | TableRelation Dimension Set Entry; not editable |
| 500 | Incoming Document Entry No. | Integer | — | TableRelation Incoming Document |
| 31112 | Original Document VAT Date | Date | — |  |

## Keys

- PK: No. (clustered)
- SK1: Pay-to Vendor No., Status
- SK2: Order No.
- SK3: Advance Due Date

## Events published

- `OnValidatePaymentTermsCodeOnBeforeCalcDueDate(var PurchAdvLetterHeaderCZZ: Record "Purch. Adv. Letter Header CZZ"; var xPurchAdvLetterHeaderCZZ: Record "Purch. Adv. Letter Header CZZ"; CalledByFieldNo: Integer; CallingFieldNo: Integer; var IsHandled: Boolean)` (integration)
- `OnValidatePaymentTermsCodeOnBeforeValidateDueDateWhenBlank(var PurchAdvLetterHeaderCZZ: Record "Purch. Adv. Letter Header CZZ"; xPurchAdvLetterHeaderCZZ: Record "Purch. Adv. Letter Header CZZ"; CurrentFieldNo: Integer; var IsHandled: Boolean)` (integration)
- `OnBeforeInitInsert(var PurchAdvLetterHeaderCZZ: Record "Purch. Adv. Letter Header CZZ"; var xPurchAdvLetterHeaderCZZ: Record "Purch. Adv. Letter Header CZZ"; var IsHandled: Boolean)` (integration)
- `OnInitInsertOnBeforeInitRecord(var PurchAdvLetterHeaderCZZ: Record "Purch. Adv. Letter Header CZZ"; var xPurchAdvLetterHeaderCZZ: Record "Purch. Adv. Letter Header CZZ")` (integration)
- `OnAfterInitRecord(var PurchAdvLetterHeaderCZZ: Record "Purch. Adv. Letter Header CZZ")` (integration)
- `OnBeforeTestStatusOpen(var PurchAdvLetterHeaderCZZ: Record "Purch. Adv. Letter Header CZZ")` (integration)
- `OnAfterTestStatusOpen(var PurchAdvLetterHeaderCZZ: Record "Purch. Adv. Letter Header CZZ")` (integration)
- `OnAfterCopyPayToVendorAddressFieldsFromVendor(var PurchAdvLetterHeaderCZZ: Record "Purch. Adv. Letter Header CZZ"; PayToVendor: Record Vendor)` (integration)
- `OnBeforeCreateDim(var PurchAdvLetterHeaderCZZ: Record "Purch. Adv. Letter Header CZZ"; var IsHandled: Boolean)` (integration)
- `OnAfterCreateDim(var PurchAdvLetterHeaderCZZ: Record "Purch. Adv. Letter Header CZZ"; xPurchAdvLetterHeaderCZZ: Record "Purch. Adv. Letter Header CZZ"; CurrentFieldNo: Integer; OldDimSetID: Integer)` (integration)
- `OnAfterUpdatePayToCont(var PurchAdvLetterHeaderCZZ: Record "Purch. Adv. Letter Header CZZ"; Vendor: Record Vendor; Contact: Record Contact)` (integration)
- `OnInitFromContactOnBeforeInitRecord(var PurchAdvLetterHeaderCZZ: Record "Purch. Adv. Letter Header CZZ"; xPurchAdvLetterHeaderCZZ: Record "Purch. Adv. Letter Header CZZ")` (integration)
- `OnAfterUpdatePayToVend(var PurchAdvLetterHeaderCZZ: Record "Purch. Adv. Letter Header CZZ"; Contact: Record Contact)` (integration)
- `OnBeforeValidateShortcutDimCode(var PurchAdvLetterHeaderCZZ: Record "Purch. Adv. Letter Header CZZ"; xPurchAdvLetterHeaderCZZ: Record "Purch. Adv. Letter Header CZZ"; FieldNumber: Integer; var ShortcutDimCode: Code[20])` (integration)
- `OnAfterValidateShortcutDimCode(var PurchAdvLetterHeaderCZZ: Record "Purch. Adv. Letter Header CZZ"; xPurchAdvLetterHeaderCZZ: Record "Purch. Adv. Letter Header CZZ"; FieldNumber: Integer; var ShortcutDimCode: Code[20])` (integration)
- `OnBeforeRecreateLinesHandler(var PurchAdvLetterHeaderCZZ: Record "Purch. Adv. Letter Header CZZ"; xPurchAdvLetterHeaderCZZ: Record "Purch. Adv. Letter Header CZZ"; ChangedFieldName: Text; var IsHandled: Boolean)` (integration)
- `OnBeforeUpdateCurrencyFactor(var PurchAdvLetterHeaderCZZ: Record "Purch. Adv. Letter Header CZZ"; var Updated: Boolean)` (integration)
- `OnAfterUpdateCurrencyFactor(var PurchAdvLetterHeaderCZZ: Record "Purch. Adv. Letter Header CZZ"; HideValidationDialog: Boolean)` (integration)
- `OnBeforeConfirmUpdateCurrencyFactor(PurchAdvLetterHeaderCZZ: Record "Purch. Adv. Letter Header CZZ"; var HideValidationDialog: Boolean)` (integration)
- `OnBeforeShowDocDim(var PurchAdvLetterHeaderCZZ: Record "Purch. Adv. Letter Header CZZ"; xPurchAdvLetterHeaderCZZ: Record "Purch. Adv. Letter Header CZZ"; var IsHandled: Boolean)` (integration)
- `OnAfterUpdateBankInfo(var PurchAdvLetterHeaderCZZ: Record "Purch. Adv. Letter Header CZZ")` (integration)
- `OnCheckPurchaseAdvanceLetterReleaseRestrictions()` (integration)
- `OnCheckPurchaseAdvanceLetterPostRestrictions()` (integration)
- `OnBeforeDeleteRecordInApprovalRequest(var PurchAdvLetterHeaderCZZ: Record "Purch. Adv. Letter Header CZZ"; var IsHandled: Boolean)` (integration)
- `OnBeforePrintRecords(var PurchAdvLetterHeaderCZZ: Record "Purch. Adv. Letter Header CZZ"; ShowRequestPage: Boolean; var IsHandled: Boolean)` (integration)
- `OnAfterInitDefaultDimensionSources(var PurchAdvLetterHeaderCZZ: Record "Purch. Adv. Letter Header CZZ"; var DefaultDimSource: List of [Dictionary of [Integer, Code[20]]])` (integration)
- `OnBeforeUpdateLinesByFieldNo(var PurchAdvLetterHeaderCZZ: Record "Purch. Adv. Letter Header CZZ"; ChangedFieldNo: Integer; xPurchAdvLetterHeaderCZZ: Record "Purch. Adv. Letter Header CZZ"; var IsHandled: Boolean)` (integration)
- `OnBeforeLineByChangedFieldNo(var PurchAdvLetterHeaderCZZ: Record "Purch. Adv. Letter Header CZZ"; var PurchAdvLetterLineCZZ: Record "Purch. Adv. Letter Line CZZ"; ChangedFieldNo: Integer; xPurchAdvLetterHeaderCZZ: Record "Purch. Adv. Letter Header CZZ"; var IsHandled: Boolean)` (integration)
- `OnUpdateLineByChangedFieldName(PurchAdvLetterHeaderCZZ: Record "Purch. Adv. Letter Header CZZ"; var PurchAdvLetterLineCZZ: Record "Purch. Adv. Letter Line CZZ"; ChangedFieldName: Text[100]; ChangedFieldNo: Integer)` (integration)
- `OnUpdateLinesByFieldNoOnBeforeLineModify(var PurchAdvLetterLineCZZ: Record "Purch. Adv. Letter Line CZZ"; ChangedFieldNo: Integer; CurrentFieldNo: Integer)` (integration)
- `OnAfterUpdateLinesByFieldNo(var PurchAdvLetterHeaderCZZ: Record "Purch. Adv. Letter Header CZZ"; xPurchAdvLetterHeaderCZZ: Record "Purch. Adv. Letter Header CZZ"; ChangedFieldNo: Integer)` (integration)
- `OnBeforeDoPrintToDocumentAttachment(var PurchAdvLetterHeaderCZZ: Record "Purch. Adv. Letter Header CZZ"; var IsHandled: Boolean)` (integration)
- `OnValidatePostingDateOnBeforeAssignDocumentDate(var Rec: Record "Purch. Adv. Letter Header CZZ"; var xRec: Record "Purch. Adv. Letter Header CZZ"; var IsHandled: Boolean)` (integration)
- `OnBeforeSetSecurityFilterOnRespCenter(var PurchAdvLetterHeaderCZZ: Record "Purch. Adv. Letter Header CZZ"; var IsHandled: Boolean)` (integration)
- `OnBeforeValidateDocumentDateWithPostingDate(var PurchAdvLetterHeaderCZZ: Record "Purch. Adv. Letter Header CZZ"; CurrFieldNo: Integer; var IsHandled: Boolean; xPurchAdvLetterHeaderCZZ: Record "Purch. Adv. Letter Header CZZ")` (integration)
- `OnBeforeCopyDocument(var PurchAdvLetterHeaderCZZ: Record "Purch. Adv. Letter Header CZZ"; var IsHandled: Boolean)` (integration)

## Procedures

- `AssistEdit(): Boolean`
- `InitInsert()`
- `SetSecurityFilterOnRespCenter()`
- `TestStatusOpen()`
- `SetHideValidationDialog(NewHideValidationDialog: Boolean)`
- `UpdateBankInfo(BankAccountCode: Code[20]; BankAccountNo: Text[30]; BankBranchNo: Text[20]; BankName: Text[100]; TransitNo: Text[20]; IBANCode: Code[50]; SWIFTCode: Code[20])`
- `CreateDimFromDefaultDim(FieldNo: Integer)`
- `CreateDim(DefaultDimSource: List of [Dictionary of [Integer, Code[20]]])`
- `HasPayToAddress(): Boolean`
- `ShouldSearchForVendorByName(VendorNo: Code[20]): Boolean`
- `ValidateShortcutDimCode(FieldNumber: Integer; var ShortcutDimCode: Code[20])`
- `RecreateLines(ChangedFieldName: Text)`
- `UpdateLinesByFieldNo(ChangedFieldNo: Integer)`
- `LinesExist(): Boolean`
- `ShowDocDim()`
- `GetVATAmounts(var VATBaseAmount: Decimal; var VATAmount: Decimal; var VATBaseAmountLCY: Decimal; var VATAmountLCY: Decimal)`
- `PrintRecords(ShowRequestPage: Boolean)`
- `PrintToDocumentAttachment()`
- `CheckPurchaseAdvanceLetterReleaseRestrictions()`
- `CheckPurchaseAdvanceLetterPostRestrictions()`
- `CollectSuggestedApplication(var CrossApplicationBufferCZL: Record "Cross Application Buffer CZL"): Boolean`
- `CollectSuggestedApplication(CalledFrom: Variant; var CrossApplicationBufferCZL: Record "Cross Application Buffer CZL"): Boolean`
- `CalcSuggestedAmountToApply(): Decimal`
- `DrillDownSuggestedAmountToApply()`
- `PerformManualRelease(var PurchAdvLetterHeaderCZZ: Record "Purch. Adv. Letter Header CZZ")` (internal)
- `PerformManualReopen(var PurchAdvLetterHeaderCZZ: Record "Purch. Adv. Letter Header CZZ")` (internal)
- `UpdateStatus(AdvanceLetterDocStatus: Enum "Advance Letter Doc. Status CZZ")`
- `CopyDocument()`
- `CalcDocAmountVAT(DocAmountInclVAT: Decimal; TotalVATAmount: Decimal; TotalAmountInclVAT: Decimal): Decimal`

Plus 24 local procedures.

## Triggers

OnInsert, OnDelete

## Recent changes

- 2026-07-28 [#9719 [main] bug 643971 - Implement checks for blocked customers and vendors in advance letters](../../changes/bcapps/9719.md) (main, BC30, fix)

## Across versions

- Present in: BC29-30
- Changed (declaration) in: none

Source: AL metadata extracted from the code (names, ids, signatures, properties); no code bodies (D10).

## Ask your agent

Procedure bodies are not stored here (D10). For a procedure body or the calls of one procedure, ask bc-code-atlas (external, by Stefan Maron, MIT; default corpus w1-28), which the bc-observatory plugin connects: `bcatlas_resolve_node(object_type: "table", object_name: "Purch. Adv. Letter Header CZZ")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.

A CZ country object, not part of W1: the default corpus does not have it; `bcatlas_list_countries` shows which countries the atlas has.
