---
id: object/table/7023
type: object
title: Table 7023 "Sales Price Worksheet"
summary: Table 7023 "Sales Price Worksheet" in Base Application (Microsoft.Sales.Pricing). 17 fields, 2 public procedures, 3 events. Present since at least BC23, still in BC30, changed in BC24-26, BC28.
tier: official
language: en
tags:
  - table
  - base application
versions:
  introduced: null
  last_changed: "28"
  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: 352abe39b1b494c85e4cb8754467d0cbe97df3aebf94e511da6d02a0d8130710
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Sales/Pricing/SalesPriceWorksheet.Table.al
    title: src/Layers/W1/BaseApp/Sales/Pricing/SalesPriceWorksheet.Table.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
object_type: table
object_id: 7023
name: Sales Price Worksheet
namespace: Microsoft.Sales.Pricing
app: Base Application
extends: null
first_version: "23"
last_version: "30"
present_in:
  - "23"
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in:
  - "24"
  - "25"
  - "26"
  - "28"
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 17
  procedures: 5
  events: 3
  subscribers: 0
relations:
  out: 9
  referenced_by: 0
  pages: 1
  extended_by: 0
  event_subscribers: 0
  calls: 0
  called_by: 0
  implements: 0
---

# Table 7023 "Sales Price Worksheet"

> Table 7023 "Sales Price Worksheet" in Base Application (Microsoft.Sales.Pricing). 17 fields, 2 public procedures, 3 events. Present since at least BC23, still in BC30, changed in BC24-26, BC28.

Base Application · Microsoft.Sales.Pricing · BC23-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Sales/Pricing/SalesPriceWorksheet.Table.al) · facts from BC29

## Properties

| Property | Value |
|---|---|
| Caption | Sales Price Worksheet |
| DataClassification | CustomerContent |

## 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 | Item No. | Code[20] | Specifies the number of the item for which sales prices are being changed or set up. | TableRelation [Table 27 "Item"](../table/27.md); NotBlank |
| 2 | Sales Code | Code[20] | Specifies the Sales Type code. | TableRelation [Table 18 "Customer"](../table/18.md), [Table 5071 "Campaign"](../table/5071.md), [Table 6 "Customer Price Group"](../table/6.md) (if ("Sales Type" = const("Customer Price Group")) "Customer Price Group" else if ("Sales Type" = const(Customer)) Customer else if ("Sales Type" = const(Campaign)) Campaign) |
| 3 | Currency Code | Code[10] | Specifies the currency code of the sales price. | TableRelation [Table 4 "Currency"](../table/4.md) |
| 4 | Starting Date | Date | Specifies the earliest date on which the item can be sold at the sales price. |  |
| 5 | Current Unit Price | Decimal | Specifies the unit price of the item. | not editable |
| 6 | New Unit Price | Decimal | Specifies the new unit price that is valid for the selected combination of Sales Code, Currency Code and/or Starting Date. |  |
| 7 | Price Includes VAT | Boolean | Specifies if the sales price includes VAT. |  |
| 10 | Allow Invoice Disc. | Boolean | Specifies if an invoice discount will be calculated when the sales price is offered. |  |
| 11 | VAT Bus. Posting Gr. (Price) | Code[20] | Specifies the code for the VAT business posting group of customers for whom the sales prices will apply. <small>via [Page 7023 "Sales Price Worksheet"](../page/7023.md)</small> | TableRelation [Table 323 "VAT Business Posting Group"](../table/323.md) (VAT Business Posting Group) |
| 13 | Sales Type | Enum "Sales Price Type" | Specifies the type of sale that the price is based on, such as All Customers or Campaign. | enum [Enum 7023 "Sales Price Type"](../enum/7023.md) |
| 14 | Minimum Quantity | Decimal | Specifies the minimum sales quantity that must be met to warrant the sales price. |  |
| 15 | Ending Date | Date | Specifies the date on which the sales price agreement ends. |  |
| 20 | Item Description | Text[100] | Specifies the description of the item on the worksheet line. | FlowField: lookup(Item.Description where("No." = field("Item No."))) |
| 21 | Sales Description | Text[100] | Specifies the description of the sales type, such as Campaign, on the worksheet line. |  |
| 5400 | Unit of Measure Code | Code[10] | Specifies how each unit of the item or resource is measured, such as in pieces or hours. By default, the value in the Base Unit of Measure field on the item or resource card is inserted. | TableRelation [Table 5404 "Item Unit of Measure"](../table/5404.md) ("Item Unit of Measure".Code where("Item No." = field("Item No."))) |
| 5700 | Variant Code | Code[10] | Specifies the variant of the item on the line. | TableRelation [Table 5401 "Item Variant"](../table/5401.md) ("Item Variant".Code where("Item No." = field("Item No."))) |
| 7001 | Allow Line Disc. | Boolean | Specifies if a line discount will be calculated when the sales price is offered. |  |

## Keys

- Key1: Starting Date, Ending Date, Sales Type, Sales Code, Currency Code, Item No., Variant Code, Unit of Measure Code, Minimum Quantity (clustered)
- Key2: Item No., Variant Code, Unit of Measure Code, Minimum Quantity, Starting Date, Ending Date, Sales Type, Sales Code, Currency Code

## Events published

- `OnAfterCalcCurrentPriceFound(var SalesPriceWorksheet: Record "Sales Price Worksheet"; SalesPrice: Record "Sales Price")` (integration)
- `OnCalcCurrentPriceOnAfterSetFilters(var SalesPrice: Record "Sales Price"; SalesPriceWorksheet: Record "Sales Price Worksheet")` (integration)
- `OnCalcCurrentPriceOnPriceNotFound(var SalesPriceWorksheet: Record "Sales Price Worksheet")` (integration)

## Procedures

- `CalcCurrentPrice(var PriceAlreadyExists: Boolean)`: Calculates and retrieves the current price for the worksheet item based on matching sales price records.
- `SetSalesDescription()`: Sets the Sales Description field based on the sales type and code.

## Triggers

OnInsert, OnRename

## Relations

- Sales Code: TableRelation [Table 18 "Customer"](../table/18.md) (conditional)
- Item Description: CalcFormula [Table 27 "Item"](../table/27.md)
- Item No.: TableRelation [Table 27 "Item"](../table/27.md)
- VAT Bus. Posting Gr. (Price): TableRelation [Table 323 "VAT Business Posting Group"](../table/323.md)
- Currency Code: TableRelation [Table 4 "Currency"](../table/4.md)
- Sales Code: TableRelation [Table 5071 "Campaign"](../table/5071.md) (conditional)
- Variant Code: TableRelation [Table 5401 "Item Variant"](../table/5401.md)
- Unit of Measure Code: TableRelation [Table 5404 "Item Unit of Measure"](../table/5404.md)
- Sales Code: TableRelation [Table 6 "Customer Price Group"](../table/6.md) (conditional)

## Pages and codeunits on this table

- [Page 7023 "Sales Price Worksheet"](../page/7023.md) (source table)

## Across versions

- Present in: BC23-30
- Changed (declaration) in: BC24-26, BC28

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: "Sales Price Worksheet")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
