bcquality/microsoft/knowledge/data-modeling
Kilian Seizinger a2685b9c86
knowledge(data-modeling): Prices Including VAT decides the basis of sales/purchase/service line amounts (#203)
* Frist draft for Prices Incl. VAT Data Modelling

* knowledge(data-modeling): cover prepayment, service line and ExclTax helper in Prices Including VAT article

Extend the community article on sales/purchase line prices following the
header's Prices Including VAT:

- Group the line fields: fields that follow the header flag (Unit Price,
  Direct Unit Cost, Line Amount, discounts, Prepmt. Line Amount,
  Prepmt. Amt. Inv., Prepmt Amt to Deduct, Prepmt Amt Deducted) versus
  fields with a fixed basis (Amount, VAT Base Amount, Prepayment Amount
  are net; Amount Including VAT, Prepmt. Amt. Incl. VAT,
  Prepmt. Amount Inv. Incl. VAT are gross).
- Add the rule to combine only fields of the same group, with BaseApp's
  UpdatePrepmtAmounts as the correct example.
- Add the misleading-name case: CalculateOutstandingAmountExclTax on
  Sales Line and Purchase Line is based on Line Amount and includes VAT
  on a Prices Including VAT document. BaseApp pairs it only with
  Prepmt. Line Amount (same basis); extension code that treats it as net
  is wrong.
- Mention that Service Line uses the same caption switch and
  UpdateVATAmounts split for Unit Price and Line Amount.
- Samples: add GetOutstandingNetAmount (bad: trusts the helper's name;
  good: takes the uninvoiced share of Amount).
- al-data-modeling-review: widen the scope and the worklist rule to
  service lines, the extra prepayment fields and
  CalculateOutstandingAmountExclTax, and exclude code that only combines
  fields of the same group.

Verified against BCApps W1 BaseApp (SalesLine, PurchaseLine, ServiceLine,
SalesHeader, Sales Line CaptionClass Mgmt).

Refs #151

* knowledge(data-modeling): move Prices Including VAT article to Microsoft layer

data-modeling is a Microsoft-owned review domain consumed by
microsoft/skills/review/al-data-modeling-review.md, and
docs/contributing.md does not allow Community as a staging layer for
such domains. Move the article and its .good.al/.bad.al samples to
microsoft/knowledge/data-modeling/. Content is unchanged; the slug-based
evaluation entry stays as is.
2026-10-02 09:51:34 +02:00
..
activate-new-price-calculation-handler-via-onfindsupportedsetup.bad.al 9 AL/BC patterns: document distribution, price calculation & barcode extensibility (#175) 2026-09-30 13:22:38 +02:00
activate-new-price-calculation-handler-via-onfindsupportedsetup.good.al 9 AL/BC patterns: document distribution, price calculation & barcode extensibility (#175) 2026-09-30 13:22:38 +02:00
activate-new-price-calculation-handler-via-onfindsupportedsetup.md 9 AL/BC patterns: document distribution, price calculation & barcode extensibility (#175) 2026-09-30 13:22:38 +02:00
check-blocked-in-referencing-code-not-in-master.bad.al Add data-modeling and appsource knowledge articles (MICROSOFT layer) (#65) 2026-07-13 10:35:31 +02:00
check-blocked-in-referencing-code-not-in-master.good.al Add data-modeling and appsource knowledge articles (MICROSOFT layer) (#65) 2026-07-13 10:35:31 +02:00
check-blocked-in-referencing-code-not-in-master.md Improve partner onboarding and documentation navigation (#174) 2026-09-09 17:31:03 +02:00
check-post-line-batch-pattern.bad.al 18 AL/BC patterns: style, data-modeling, web-services, appsource, breaking-changes, performance, testing (#156) 2026-09-29 12:48:17 +02:00
check-post-line-batch-pattern.good.al 18 AL/BC patterns: style, data-modeling, web-services, appsource, breaking-changes, performance, testing (#156) 2026-09-29 12:48:17 +02:00
check-post-line-batch-pattern.md 18 AL/BC patterns: style, data-modeling, web-services, appsource, breaking-changes, performance, testing (#156) 2026-09-29 12:48:17 +02:00
code-must-not-change-workdate.bad.al 18 more AL/BC patterns: data-modeling, testing, style, security, error-handling, ui, upgrade, web-services, appsource (#157) 2026-09-29 17:12:51 +02:00
code-must-not-change-workdate.good.al 18 more AL/BC patterns: data-modeling, testing, style, security, error-handling, ui, upgrade, web-services, appsource (#157) 2026-09-29 17:12:51 +02:00
code-must-not-change-workdate.md 18 more AL/BC patterns: data-modeling, testing, style, security, error-handling, ui, upgrade, web-services, appsource (#157) 2026-09-29 17:12:51 +02:00
custom-document-dispatch-must-not-bypass-report-selections.bad.al 9 AL/BC patterns: document distribution, price calculation & barcode extensibility (#175) 2026-09-30 13:22:38 +02:00
custom-document-dispatch-must-not-bypass-report-selections.good.al 9 AL/BC patterns: document distribution, price calculation & barcode extensibility (#175) 2026-09-30 13:22:38 +02:00
custom-document-dispatch-must-not-bypass-report-selections.md 9 AL/BC patterns: document distribution, price calculation & barcode extensibility (#175) 2026-09-30 13:22:38 +02:00
dimension-management-wiring.bad.al 18 AL/BC patterns: style, data-modeling, web-services, appsource, breaking-changes, performance, testing (#156) 2026-09-29 12:48:17 +02:00
dimension-management-wiring.good.al 18 AL/BC patterns: style, data-modeling, web-services, appsource, breaking-changes, performance, testing (#156) 2026-09-29 12:48:17 +02:00
dimension-management-wiring.md 18 AL/BC patterns: style, data-modeling, web-services, appsource, breaking-changes, performance, testing (#156) 2026-09-29 12:48:17 +02:00
do-not-change-primary-key.bad.al 18 AL/BC patterns: style, data-modeling, web-services, appsource, breaking-changes, performance, testing (#156) 2026-09-29 12:48:17 +02:00
do-not-change-primary-key.good.al 18 AL/BC patterns: style, data-modeling, web-services, appsource, breaking-changes, performance, testing (#156) 2026-09-29 12:48:17 +02:00
do-not-change-primary-key.md 18 AL/BC patterns: style, data-modeling, web-services, appsource, breaking-changes, performance, testing (#156) 2026-09-29 12:48:17 +02:00
document-line-prices-follow-prices-including-vat.bad.al knowledge(data-modeling): Prices Including VAT decides the basis of sales/purchase/service line amounts (#203) 2026-10-02 09:51:34 +02:00
document-line-prices-follow-prices-including-vat.good.al knowledge(data-modeling): Prices Including VAT decides the basis of sales/purchase/service line amounts (#203) 2026-10-02 09:51:34 +02:00
document-line-prices-follow-prices-including-vat.md knowledge(data-modeling): Prices Including VAT decides the basis of sales/purchase/service line amounts (#203) 2026-10-02 09:51:34 +02:00
document-print-and-email-actions-call-report-selections-directly.bad.al 9 AL/BC patterns: document distribution, price calculation & barcode extensibility (#175) 2026-09-30 13:22:38 +02:00
document-print-and-email-actions-call-report-selections-directly.good.al 9 AL/BC patterns: document distribution, price calculation & barcode extensibility (#175) 2026-09-30 13:22:38 +02:00
document-print-and-email-actions-call-report-selections-directly.md 9 AL/BC patterns: document distribution, price calculation & barcode extensibility (#175) 2026-09-30 13:22:38 +02:00
extend-find-entries-navigate-for-new-document-types.bad.al 9 AL/BC patterns: document distribution, price calculation & barcode extensibility (#175) 2026-09-30 13:22:38 +02:00
extend-find-entries-navigate-for-new-document-types.good.al 9 AL/BC patterns: document distribution, price calculation & barcode extensibility (#175) 2026-09-30 13:22:38 +02:00
extend-find-entries-navigate-for-new-document-types.md 9 AL/BC patterns: document distribution, price calculation & barcode extensibility (#175) 2026-09-30 13:22:38 +02:00
extend-price-source-type-must-sync-document-subset-enum.bad.al 9 AL/BC patterns: document distribution, price calculation & barcode extensibility (#175) 2026-09-30 13:22:38 +02:00
extend-price-source-type-must-sync-document-subset-enum.good.al 9 AL/BC patterns: document distribution, price calculation & barcode extensibility (#175) 2026-09-30 13:22:38 +02:00
extend-price-source-type-must-sync-document-subset-enum.md 9 AL/BC patterns: document distribution, price calculation & barcode extensibility (#175) 2026-09-30 13:22:38 +02:00
extend-report-selection-usage-for-new-document-types.bad.al 9 AL/BC patterns: document distribution, price calculation & barcode extensibility (#175) 2026-09-30 13:22:38 +02:00
extend-report-selection-usage-for-new-document-types.good.al 9 AL/BC patterns: document distribution, price calculation & barcode extensibility (#175) 2026-09-30 13:22:38 +02:00
extend-report-selection-usage-for-new-document-types.md 9 AL/BC patterns: document distribution, price calculation & barcode extensibility (#175) 2026-09-30 13:22:38 +02:00
initialize-document-defaults-in-initrecord.bad.al Add foundational AL developer knowledge (#195) 2026-09-21 10:15:39 +02:00
initialize-document-defaults-in-initrecord.good.al Add foundational AL developer knowledge (#195) 2026-09-21 10:15:39 +02:00
initialize-document-defaults-in-initrecord.md Add foundational AL developer knowledge (#195) 2026-09-21 10:15:39 +02:00
insert-only-transfer-may-rely-on-caller-cleanup.md knowledge: three false-positive guards from BCApps PR 10277, 10278 and 10346 (#146) 2026-09-02 11:25:19 +02:00
item-ledger-entry-document-no-follows-last-shipping-no.bad.al 3 AL/BC patterns from CURABIS's internal automated-testing training material (#158) 2026-09-29 12:49:11 +02:00
item-ledger-entry-document-no-follows-last-shipping-no.good.al 3 AL/BC patterns from CURABIS's internal automated-testing training material (#158) 2026-09-29 12:49:11 +02:00
item-ledger-entry-document-no-follows-last-shipping-no.md 3 AL/BC patterns from CURABIS's internal automated-testing training material (#158) 2026-09-29 12:49:11 +02:00
master-table-no-from-number-series-in-oninsert.bad.al Add data-modeling and appsource knowledge articles (MICROSOFT layer) (#65) 2026-07-13 10:35:31 +02:00
master-table-no-from-number-series-in-oninsert.good.al Add data-modeling and appsource knowledge articles (MICROSOFT layer) (#65) 2026-07-13 10:35:31 +02:00
master-table-no-from-number-series-in-oninsert.md Improve partner onboarding and documentation navigation (#174) 2026-09-09 17:31:03 +02:00
new-price-source-must-add-candidate-and-trigger-recalculation.bad.al 9 AL/BC patterns: document distribution, price calculation & barcode extensibility (#175) 2026-09-30 13:22:38 +02:00
new-price-source-must-add-candidate-and-trigger-recalculation.good.al 9 AL/BC patterns: document distribution, price calculation & barcode extensibility (#175) 2026-09-30 13:22:38 +02:00
new-price-source-must-add-candidate-and-trigger-recalculation.md 9 AL/BC patterns: document distribution, price calculation & barcode extensibility (#175) 2026-09-30 13:22:38 +02:00
owning-table-must-delete-dependents-in-ondelete.bad.al Promote knowledge for Microsoft review skills (#153) 2026-09-03 15:06:01 +02:00
owning-table-must-delete-dependents-in-ondelete.good.al Promote knowledge for Microsoft review skills (#153) 2026-09-03 15:06:01 +02:00
owning-table-must-delete-dependents-in-ondelete.md Improve partner onboarding and documentation navigation (#174) 2026-09-09 17:31:03 +02:00
pictures-must-use-media-not-blob.bad.al 18 more AL/BC patterns: data-modeling, testing, style, security, error-handling, ui, upgrade, web-services, appsource (#157) 2026-09-29 17:12:51 +02:00
pictures-must-use-media-not-blob.good.al 18 more AL/BC patterns: data-modeling, testing, style, security, error-handling, ui, upgrade, web-services, appsource (#157) 2026-09-29 17:12:51 +02:00
pictures-must-use-media-not-blob.md 18 more AL/BC patterns: data-modeling, testing, style, security, error-handling, ui, upgrade, web-services, appsource (#157) 2026-09-29 17:12:51 +02:00
report-barcodes-must-use-barcode-module-and-production-font-name.bad.al 9 AL/BC patterns: document distribution, price calculation & barcode extensibility (#175) 2026-09-30 13:22:38 +02:00
report-barcodes-must-use-barcode-module-and-production-font-name.good.al 9 AL/BC patterns: document distribution, price calculation & barcode extensibility (#175) 2026-09-30 13:22:38 +02:00
report-barcodes-must-use-barcode-module-and-production-font-name.md 9 AL/BC patterns: document distribution, price calculation & barcode extensibility (#175) 2026-09-30 13:22:38 +02:00
round-direction-symbols-use-magnitude.bad.al Add foundational AL developer knowledge (#195) 2026-09-21 10:15:39 +02:00
round-direction-symbols-use-magnitude.good.al Add foundational AL developer knowledge (#195) 2026-09-21 10:15:39 +02:00
round-direction-symbols-use-magnitude.md Add foundational AL developer knowledge (#195) 2026-09-21 10:15:39 +02:00
set-last-date-modified-in-onmodify-and-onrename.bad.al Add data-modeling and appsource knowledge articles (MICROSOFT layer) (#65) 2026-07-13 10:35:31 +02:00
set-last-date-modified-in-onmodify-and-onrename.good.al Add data-modeling and appsource knowledge articles (MICROSOFT layer) (#65) 2026-07-13 10:35:31 +02:00
set-last-date-modified-in-onmodify-and-onrename.md Improve partner onboarding and documentation navigation (#174) 2026-09-09 17:31:03 +02:00
setup-table-is-a-singleton.bad.al Add data-modeling and appsource knowledge articles (MICROSOFT layer) (#65) 2026-07-13 10:35:31 +02:00
setup-table-is-a-singleton.good.al Add data-modeling and appsource knowledge articles (MICROSOFT layer) (#65) 2026-07-13 10:35:31 +02:00
setup-table-is-a-singleton.md Improve partner onboarding and documentation navigation (#174) 2026-09-09 17:31:03 +02:00
share-mediaset-items-with-insert-not-field-assignment.bad.al Complete AL review knowledge readiness (#108) 2026-07-15 10:55:25 +02:00
share-mediaset-items-with-insert-not-field-assignment.good.al Complete AL review knowledge readiness (#108) 2026-07-15 10:55:25 +02:00
share-mediaset-items-with-insert-not-field-assignment.md Improve partner onboarding and documentation navigation (#174) 2026-09-09 17:31:03 +02:00
table-design-must-match-bc-table-type-conventions.bad.al 18 more AL/BC patterns: data-modeling, testing, style, security, error-handling, ui, upgrade, web-services, appsource (#157) 2026-09-29 17:12:51 +02:00
table-design-must-match-bc-table-type-conventions.good.al 18 more AL/BC patterns: data-modeling, testing, style, security, error-handling, ui, upgrade, web-services, appsource (#157) 2026-09-29 17:12:51 +02:00
table-design-must-match-bc-table-type-conventions.md 18 more AL/BC patterns: data-modeling, testing, style, security, error-handling, ui, upgrade, web-services, appsource (#157) 2026-09-29 17:12:51 +02:00
table-relation-extensions-are-additive-and-top-down.bad.al Complete AL review knowledge readiness (#108) 2026-07-15 10:55:25 +02:00
table-relation-extensions-are-additive-and-top-down.good.al Complete AL review knowledge readiness (#108) 2026-07-15 10:55:25 +02:00
table-relation-extensions-are-additive-and-top-down.md Improve partner onboarding and documentation navigation (#174) 2026-09-09 17:31:03 +02:00
testfield-required-setup-field.bad.al 18 AL/BC patterns: style, data-modeling, web-services, appsource, breaking-changes, performance, testing (#156) 2026-09-29 12:48:17 +02:00
testfield-required-setup-field.good.al 18 AL/BC patterns: style, data-modeling, web-services, appsource, breaking-changes, performance, testing (#156) 2026-09-29 12:48:17 +02:00
testfield-required-setup-field.md 18 AL/BC patterns: style, data-modeling, web-services, appsource, breaking-changes, performance, testing (#156) 2026-09-29 12:48:17 +02:00
transferfields-mirrored-fields-must-match-type-and-length.bad.al 9 AL/BC patterns: document distribution, price calculation & barcode extensibility (#175) 2026-09-30 13:22:38 +02:00
transferfields-mirrored-fields-must-match-type-and-length.good.al 9 AL/BC patterns: document distribution, price calculation & barcode extensibility (#175) 2026-09-30 13:22:38 +02:00
transferfields-mirrored-fields-must-match-type-and-length.md 9 AL/BC patterns: document distribution, price calculation & barcode extensibility (#175) 2026-09-30 13:22:38 +02:00
transferfields-skip-type-mismatch-can-drop-data.bad.al Promote knowledge for Microsoft review skills (#153) 2026-09-03 15:06:01 +02:00
transferfields-skip-type-mismatch-can-drop-data.good.al Promote knowledge for Microsoft review skills (#153) 2026-09-03 15:06:01 +02:00
transferfields-skip-type-mismatch-can-drop-data.md Improve partner onboarding and documentation navigation (#174) 2026-09-09 17:31:03 +02:00
use-no-series-codeunit-not-noseriesmanagement.bad.al Add data-modeling and appsource knowledge articles (MICROSOFT layer) (#65) 2026-07-13 10:35:31 +02:00
use-no-series-codeunit-not-noseriesmanagement.good.al Add data-modeling and appsource knowledge articles (MICROSOFT layer) (#65) 2026-07-13 10:35:31 +02:00
use-no-series-codeunit-not-noseriesmanagement.md Improve partner onboarding and documentation navigation (#174) 2026-09-09 17:31:03 +02:00
validate-table-relation-false-suppresses-rename-propagation.bad.al Promote knowledge for Microsoft review skills (#153) 2026-09-03 15:06:01 +02:00
validate-table-relation-false-suppresses-rename-propagation.good.al Promote knowledge for Microsoft review skills (#153) 2026-09-03 15:06:01 +02:00
validate-table-relation-false-suppresses-rename-propagation.md Improve partner onboarding and documentation navigation (#174) 2026-09-09 17:31:03 +02:00
xrec-is-a-before-image-only-in-some-triggers.bad.al Promote knowledge for Microsoft review skills (#153) 2026-09-03 15:06:01 +02:00
xrec-is-a-before-image-only-in-some-triggers.good.al Promote knowledge for Microsoft review skills (#153) 2026-09-03 15:06:01 +02:00
xrec-is-a-before-image-only-in-some-triggers.md Improve partner onboarding and documentation navigation (#174) 2026-09-09 17:31:03 +02:00