Table 7008 Dtld. Price Calculation Setup
- App
- Base Application
- Namespace
- Microsoft.Pricing.Calculation
- Versions
- 17-28
Fields, 14Keys, 2Procedures, 2
Versions171819202122232425262728
Source29
Source in 29
src/Layers/W1/BaseApp/Pricing/Calculation/DtldPriceCalculationSetup.Table.al260 lines, Copyright (c) Microsoft Corporation. MIT
// ------------------------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.
// ------------------------------------------------------------------------------------------------
namespace Microsoft.Pricing.Calculation;
using Microsoft.Finance.GeneralLedger.Account;
using Microsoft.Inventory.Item;
using Microsoft.Pricing.Asset;
using Microsoft.Pricing.PriceList;
using Microsoft.Pricing.Source;
using Microsoft.Projects.Project.Job;
using Microsoft.Projects.Resources.Resource;
using Microsoft.Purchases.Vendor;
using Microsoft.Sales.Customer;
table 7008 "Dtld. Price Calculation Setup"
{
Caption = 'Detailed Price Calculation Setup';
DrillDownPageID = "Dtld. Price Calculation Setup";
LookupPageID = "Dtld. Price Calculation Setup";
DataClassification = CustomerContent;
fields
{
field(1; "Line No."; Integer)
{
AutoIncrement = true;
}
field(2; "Setup Code"; Code[100])
{
ToolTip = 'Specifies a price calculation setup code.';
TableRelation = "Price Calculation Setup".Code where(Enabled = const(true));
trigger OnValidate()
var
PriceCalculationSetup: Record "Price Calculation Setup";
begin
PriceCalculationSetup.Get("Setup Code");
Type := PriceCalculationSetup.Type;
Method := PriceCalculationSetup.Method;
Implementation := PriceCalculationSetup.Implementation;
"Group Id" := PriceCalculationSetup."Group Id";
Validate("Asset Type", PriceCalculationSetup."Asset Type");
Enabled := true;
end;
}
field(3; Method; Enum "Price Calculation Method")
{
ToolTip = 'Specifies a price calculation method.';
Editable = false;
}
field(4; Type; Enum "Price Type")
{
ToolTip = 'Specifies what type of amount to calculate - sale or purchase.';
Editable = false;
}
field(5; "Asset Type"; Enum "Price Asset Type")
{
Caption = 'Product Type';
ToolTip = 'Specifies a product type.';
Editable = false;
trigger OnValidate()
begin
if "Asset Type" <> xRec."Asset Type" then
SetAssetNo('');
end;
}
field(6; "Asset No."; Code[20])
{
Caption = 'Product No.';
ToolTip = 'Specifies a product number.';
DataClassification = CustomerContent;
trigger OnValidate()
begin
xRec.CopyTo(PriceAsset);
PriceAsset.Validate("Asset No.", "Asset No.");
CopyFrom(PriceAsset);
"Product No." := "Asset No.";
end;
trigger OnLookup()
begin
CopyTo(PriceAsset);
if PriceAsset.LookupNo() then
CopyFrom(PriceAsset);
end;
}
field(7; "Source Group"; Enum "Price Source Group")
{
Caption = 'Assign-to Group';
ToolTip = 'Specifies whether the prices come from groups of customers, vendors or projects.';
DataClassification = CustomerContent;
trigger OnValidate()
begin
if "Source Group" <> xRec."Source Group" then begin
Validate("Source Type", "Source Group".AsInteger());
SetSourceNo('');
end;
end;
}
field(8; "Source Type"; Enum "Price Source Type")
{
DataClassification = CustomerContent;
Caption = 'Assign-to Type';
Editable = false;
trigger OnValidate()
begin
VerifySourceType();
xRec.CopyTo(PriceSource);
PriceSource.Validate("Source Type", "Source Type");
CopyFrom(PriceSource);
end;
}
field(9; "Source No."; Code[20])
{
DataClassification = CustomerContent;
Caption = 'Assign-to No.';
ToolTip = 'Specifies the unique identifier of the source of the price on the price list line.';
trigger OnValidate()
begin
xRec.CopyTo(PriceSource);
PriceSource.Validate("Source No.", "Source No.");
CopyFrom(PriceSource);
"Assign-to No." := "Source No.";
end;
trigger OnLookup()
begin
CopyTo(PriceSource);
PriceSource.LookupNo();
CopyFrom(PriceSource);
end;
}
field(10; Implementation; Enum "Price Calculation Handler")
{
ToolTip = 'Specifies a price calculation implementation name.';
Editable = false;
}
field(11; "Group Id"; Code[100])
{
DataClassification = SystemMetadata;
}
field(12; Enabled; Boolean)
{
ToolTip = 'Specifies whether the implementation codeunit is enabled.';
}
field(13; "Product No."; Code[20])
{
Caption = 'Product No.';
ToolTip = 'Specifies a product number.';
DataClassification = CustomerContent;
TableRelation = if ("Asset Type" = const(Item)) Item where("No." = field("Product No."))
else
if ("Asset Type" = const("G/L Account")) "G/L Account"
else
if ("Asset Type" = const(Resource)) Resource
else
if ("Asset Type" = const("Resource Group")) "Resource Group"
else
if ("Asset Type" = const("Item Discount Group")) "Item Discount Group";
ValidateTableRelation = false;
trigger OnValidate()
begin
Validate("Asset No.", "Product No.");
end;
}
field(14; "Assign-to No."; Code[20])
{
ToolTip = 'Specifies the unique identifier of the source of the price on the price list line.';
DataClassification = CustomerContent;
TableRelation = if ("Source Type" = const(Customer)) Customer
else
if ("Source Type" = const(Job)) Job
else
if ("Source Type" = const(Vendor)) Vendor;
ValidateTableRelation = false;
trigger OnValidate()
begin
Validate("Source No.", "Assign-to No.");
end;
}
}
keys
{
key(PK; "Line No.")
{
Clustered = true;
}
key(Key2; "Group Id", Enabled)
{
}
}
trigger OnInsert()
begin
Enabled := true;
end;
protected var
PriceAsset: Record "Price Asset";
PriceSource: Record "Price Source";
var
NotSupportedSourceTypeErr: label 'Not supported source type %1 for the source group %2.',
Comment = '%1 - source type value, %2 - source group value';
local procedure CopyFrom(PriceAsset: Record "Price Asset")
begin
"Asset Type" := PriceAsset."Asset Type";
SetAssetNo(PriceAsset."Asset No.");
end;
local procedure CopyFrom(PriceSource: Record "Price Source")
begin
"Source Type" := PriceSource."Source Type";
SetSourceNo(PriceSource."Source No.");
end;
procedure CopyTo(var PriceAsset: Record "Price Asset")
begin
PriceAsset."Asset Type" := "Asset Type";
PriceAsset."Asset No." := "Asset No.";
end;
procedure CopyTo(var PriceSource: Record "Price Source")
begin
PriceSource."Source Type" := "Source Type";
PriceSource."Source No." := "Source No.";
end;
local procedure SetAssetNo(AssetNo: Code[20])
begin
"Asset No." := AssetNo;
"Product No." := AssetNo;
end;
local procedure SetSourceNo(SourceNo: Code[20])
begin
"Source No." := SourceNo;
"Assign-to No." := SourceNo;
end;
local procedure VerifySourceType()
var
PriceSourceGroup: Interface "Price Source Group";
begin
PriceSourceGroup := "Source Group";
if not PriceSourceGroup.IsSourceTypeSupported("Source Type") then
Error(NotSupportedSourceTypeErr, "Source Type", "Source Group");
end;
}