Page 7024 Prices Overview
- App
- Base Application
- Namespace
- Microsoft.Pricing.PriceList
- Versions
- 18-28
- Source table
- 7001
Versions171819202122232425262728
Source29
Source in 29
src/Layers/W1/BaseApp/Pricing/PriceList/PricesOverview.Page.al915 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.PriceList;
using Microsoft.CRM.Campaign;
using Microsoft.CRM.Contact;
using Microsoft.Finance.Currency;
using Microsoft.Pricing.Asset;
using Microsoft.Pricing.Calculation;
using Microsoft.Pricing.Source;
using Microsoft.Pricing.Worksheet;
using Microsoft.Sales.Customer;
using Microsoft.Sales.Pricing;
using System.Globalization;
using System.Text;
page 7024 "Prices Overview"
{
Caption = 'Prices Overview';
DataCaptionExpression = PageCaptionText;
InsertAllowed = false;
PageType = Worksheet;
SaveValues = true;
RefreshOnActivate = true;
SourceTable = "Price List Line";
ApplicationArea = Basic, Suite;
UsageCategory = Tasks;
layout
{
area(content)
{
group(General)
{
Caption = 'General';
field(PriceType; PriceSource."Price Type")
{
ApplicationArea = Basic, Suite;
Caption = 'Price Type Filter';
ToolTip = 'Specifies a filter for which prices to display: sale, purchase or both.';
trigger OnValidate()
begin
PriceSource.Validate("Price Type");
SetRecFilters();
SetCaption();
end;
}
group(SourceFilters)
{
ShowCaption = false;
field(SourceType; PriceSource."Source Type")
{
ApplicationArea = Basic, Suite;
Caption = 'Assign-to Type Filter';
ToolTip = 'Specifies a filter for which prices to display.';
trigger OnValidate()
begin
PriceSource.Validate("Source Type");
ParentSourceNoFilter := '';
SourceNoFilter := '';
SetRecFilters();
SetCaption();
end;
}
field(ParentSourceNo; ParentSourceNoFilter)
{
ApplicationArea = Basic, Suite;
Caption = 'Assign-to Parent No. Filter';
Visible = ParentSourceNoFilterEditable;
ToolTip = 'Specifies a filter for which prices to display.';
trigger OnLookup(var Text: Text): Boolean
var
JobPriceSource: Record "Price Source";
begin
if not PriceSource.IsParentSourceAllowed() then
exit;
JobPriceSource."Source Group" := JobPriceSource."Source Group"::Job;
JobPriceSource."Source Type" := "Price Source Type"::Job;
if JobPriceSource.LookupNo() then begin
ParentSourceNoFilter := JobPriceSource."Source No.";
SourceNoFilter := '';
end;
end;
trigger OnValidate()
begin
PriceSource.Validate("Parent Source No.");
end;
}
field(SourceNo; SourceNoFilter)
{
ApplicationArea = Basic, Suite;
Caption = 'Assign-to Filter';
Enabled = SourceNoFilterEditable;
ToolTip = 'Specifies a filter for which prices to display.';
trigger OnLookup(var Text: Text): Boolean
begin
if PriceSource.LookupNo() then begin
Text := PriceSource."Source No.";
exit(true);
end;
end;
trigger OnValidate()
begin
SetRecFilters();
SetCaption();
end;
}
}
group(AssetFilters)
{
ShowCaption = false;
field(AssetType; PriceAsset."Asset Type")
{
ApplicationArea = Basic, Suite;
Caption = 'Product Type Filter';
ToolTip = 'Specifies a filter for which prices to display.';
trigger OnValidate()
begin
PriceAsset.Validate("Asset Type");
AssetNoFilter := '';
SetRecFilters();
SetCaption();
end;
}
field(AssetNo; AssetNoFilter)
{
ApplicationArea = Basic, Suite;
Caption = 'Product No. Filter';
Enabled = AssetNoFilterEditable;
ToolTip = 'Specifies a filter for which prices to display.';
trigger OnLookup(var Text: Text): Boolean
begin
if PriceAsset.LookupNo() then begin
Text := PriceAsset."Asset No.";
exit(true);
end;
end;
trigger OnValidate()
begin
SetRecFilters();
SetCaption();
end;
}
}
field(AmountType; AmountTypeFilter)
{
ApplicationArea = Basic, Suite;
Caption = 'Defines Filter';
ToolTip = 'Specifies whether the price list line defines prices, discounts, or both.';
trigger OnValidate()
begin
SetRecFilters();
SetCaption();
end;
}
group(DateFilters)
{
ShowCaption = false;
field(StartingDateFilter; StartingDateFilter)
{
ApplicationArea = Basic, Suite;
Caption = 'Starting Date Filter';
ToolTip = 'Specifies a filter for which prices to display.';
trigger OnValidate()
var
FilterTokens: Codeunit "Filter Tokens";
begin
FilterTokens.MakeDateFilter(StartingDateFilter);
SetRecFilters();
end;
}
field(EndingDateFilter; EndingDateFilter)
{
ApplicationArea = Basic, Suite;
Caption = 'Ending Date Filter';
ToolTip = 'Specifies a filter for which prices to display.';
trigger OnValidate()
var
FilterTokens: Codeunit "Filter Tokens";
begin
FilterTokens.MakeDateFilter(EndingDateFilter);
SetRecFilters();
end;
}
}
field(CurrencyCodeFilterCtrl; CurrencyCodeFilter)
{
ApplicationArea = Suite;
Caption = 'Currency Code Filter';
ToolTip = 'Specifies a filter for which prices to display.';
trigger OnLookup(var Text: Text): Boolean
var
CurrencyList: Page Currencies;
begin
CurrencyList.LookupMode := true;
if CurrencyList.RunModal() = ACTION::LookupOK then
Text := CurrencyList.GetSelectionFilter()
else
exit(false);
exit(true);
end;
trigger OnValidate()
begin
SetRecFilters();
end;
}
}
repeater(Lines)
{
ShowCaption = false;
field("Price List Code"; Rec."Price List Code")
{
ApplicationArea = Basic, Suite;
Editable = false;
Style = Attention;
StyleExpr = LineToVerify;
trigger OnDrillDown()
begin
PriceUXManagement.EditPriceList(Rec."Price List Code");
end;
}
field(Status; Rec.Status)
{
ApplicationArea = Basic, Suite;
Editable = false;
Style = Attention;
StyleExpr = LineToVerify;
}
field("Price Type"; Rec."Price Type")
{
ApplicationArea = Basic, Suite;
Visible = PriceTypeVisible;
Editable = AllowUpdatingDefaults;
}
field("Source Type"; Rec."Source Type")
{
ApplicationArea = Basic, Suite;
Editable = SourceTypeEditable;
ToolTip = 'Specifies the source of the price on the price list line. For example, the price can come from the customer or customer price group.';
trigger OnValidate()
begin
CalcSourceNoEditable()
end;
}
field("Parent Source No."; Rec."Parent Source No.")
{
ApplicationArea = Basic, Suite;
Editable = AssignToParentNoEditable;
ShowMandatory = AssignToParentNoEditable;
ToolTip = 'Specifies the unique identifier of the project on the price list line.';
Visible = UseCustomLookup;
}
field("Source No."; Rec."Source No.")
{
ApplicationArea = Basic, Suite;
Editable = AssignToNoEditable;
ShowMandatory = AssignToNoEditable;
ToolTip = 'Specifies the unique identifier of the source of the price on the price list line.';
Visible = UseCustomLookup;
}
field("Assign-to Parent No."; Rec."Assign-to Parent No.")
{
ApplicationArea = Basic, Suite;
Editable = AssignToParentNoEditable;
ShowMandatory = AssignToParentNoEditable;
ToolTip = 'Specifies the unique identifier of the project on the price list line.';
Visible = not UseCustomLookup;
}
field("Assign-to No."; Rec."Assign-to No.")
{
ApplicationArea = Basic, Suite;
Editable = AssignToNoEditable;
ShowMandatory = AssignToNoEditable;
ToolTip = 'Specifies the unique identifier of the source of the price on the price list line.';
Visible = not UseCustomLookup;
}
field("Asset Type"; Rec."Asset Type")
{
ApplicationArea = Basic, Suite;
Editable = AssetTypeEditable;
Style = Attention;
StyleExpr = LineToVerify;
}
field("Asset No."; Rec."Asset No.")
{
ApplicationArea = Basic, Suite;
Editable = PriceLineEditable;
ShowMandatory = PriceLineEditable;
Style = Attention;
StyleExpr = LineToVerify;
ToolTip = 'Specifies the number of the product.';
Visible = UseCustomLookup;
}
field("Product No."; Rec."Product No.")
{
ApplicationArea = Basic, Suite;
Editable = PriceLineEditable;
ShowMandatory = PriceLineEditable;
Style = Attention;
StyleExpr = LineToVerify;
ToolTip = 'Specifies the number of the product.';
Visible = not UseCustomLookup;
}
field("Variant Code"; Rec."Variant Code")
{
ApplicationArea = Basic, Suite;
Visible = VariantCodeVisible;
Editable = VariantCodeEditable;
ToolTip = 'Specifies the variant of the item on the line.';
}
field("Variant Code Lookup"; Rec."Variant Code Lookup")
{
ApplicationArea = Basic, Suite;
Visible = VariantCodeLookupVisible;
Editable = VariantCodeEditable;
ToolTip = 'Specifies the variant of the item on the line.';
}
field("Work Type Code"; Rec."Work Type Code")
{
ApplicationArea = Jobs;
Visible = ResourceAssetVisible;
Editable = WorkTypeCodeEditable;
}
field("Currency Code"; Rec."Currency Code")
{
ApplicationArea = Suite;
Editable = DateEditable;
ToolTip = 'Specifies the currency code of the price list line.';
}
field("Unit of Measure Code"; Rec."Unit of Measure Code")
{
ApplicationArea = Basic, Suite;
Visible = UoMVisible;
Editable = PriceLineEditable;
ToolTip = 'Specifies the unit price of the product.';
}
field("Unit of Measure Code Lookup"; Rec."Unit of Measure Code Lookup")
{
ApplicationArea = Basic, Suite;
Visible = UoMLookupVisible;
Editable = PriceLineEditable;
ToolTip = 'Specifies the unit price of the product.';
}
field("Minimum Quantity"; Rec."Minimum Quantity")
{
ApplicationArea = Basic, Suite;
Editable = PriceLineEditable;
}
field("Amount Type"; Rec."Amount Type")
{
ApplicationArea = Basic, Suite;
Visible = AmountTypeIsVisible;
Editable = AmountTypeIsEditable;
}
field("Unit Price"; Rec."Unit Price")
{
ApplicationArea = Basic, Suite;
Visible = SalesPriceVisible;
Editable = UnitPriceEditable;
Style = Attention;
StyleExpr = LineToVerify and SalesPriceLine and PriceEditable;
}
field("Cost Factor"; Rec."Cost Factor")
{
ApplicationArea = Basic, Suite;
Visible = SalesPriceVisible;
Editable = UnitPriceEditable;
Style = Attention;
StyleExpr = LineToVerify and SalesPriceLine and PriceEditable;
}
field("Direct Unit Cost"; Rec."Direct Unit Cost")
{
ApplicationArea = Basic, Suite;
Visible = PurchPriceVisible;
Editable = UnitPriceEditable;
Style = Attention;
StyleExpr = LineToVerify and PurchPriceLine and PriceEditable;
}
field("Unit Cost"; Rec."Unit Cost")
{
ApplicationArea = Basic, Suite;
Visible = PurchPriceVisible;
Editable = UnitPriceEditable;
Style = Attention;
StyleExpr = LineToVerify and PurchPriceLine and PriceEditable;
}
field("Line Discount %"; Rec."Line Discount %")
{
ApplicationArea = Basic, Suite;
Visible = DiscountVisible;
Editable = LineDiscPctEditable;
Style = Attention;
StyleExpr = LineToVerify and DiscountEditable;
}
field("Starting Date"; Rec."Starting Date")
{
ApplicationArea = Basic, Suite;
Editable = DateEditable;
}
field("Ending Date"; Rec."Ending Date")
{
ApplicationArea = Basic, Suite;
Editable = DateEditable;
}
field("Allow Line Disc."; Rec."Allow Line Disc.")
{
ApplicationArea = Basic, Suite;
Visible = AllowDiscVisible;
Editable = PriceLineEditable;
}
field("Allow Invoice Disc."; Rec."Allow Invoice Disc.")
{
ApplicationArea = Basic, Suite;
Visible = AllowDiscVisible;
Editable = PriceLineEditable;
}
field("VAT Bus. Posting Gr. (Price)"; Rec."VAT Bus. Posting Gr. (Price)")
{
ApplicationArea = Basic, Suite;
Visible = false;
Editable = PriceLineEditable;
ToolTip = 'Specifies the VAT business posting group for customers for whom you want the price (which includes VAT) to apply.';
}
field("Price Includes VAT"; Rec."Price Includes VAT")
{
ApplicationArea = Basic, Suite;
Visible = false;
Editable = PriceLineEditable;
ToolTip = 'Specifies if the price includes VAT.';
}
}
}
area(factboxes)
{
systempart(Control1900383207; Links)
{
ApplicationArea = RecordLinks;
Visible = false;
}
systempart(Control1905767507; Notes)
{
ApplicationArea = Notes;
Visible = false;
}
}
}
actions
{
area(Navigation)
{
action(OpenPriceList)
{
ApplicationArea = All;
Caption = 'Open Price List';
Image = EditLines;
Visible = LineExists;
ToolTip = 'View or edit the price list.';
trigger OnAction()
begin
PriceUXManagement.EditPriceList(Rec."Price List Code");
end;
}
}
area(processing)
{
group("F&unctions")
{
Caption = 'F&unctions';
Image = "Action";
action(VerifyLines)
{
ApplicationArea = Basic, Suite;
Ellipsis = true;
Image = CheckDuplicates;
Caption = 'Verify Lines';
ToolTip = 'Checks data consistency in the new and modified price list lines. Finds the duplicate price lines and suggests the resolution of the line conflicts.';
trigger OnAction()
var
PriceListLine: Record "Price List Line";
begin
PriceListLine.Copy(Rec);
PriceListManagement.ActivateDraftLines(PriceListLine);
CurrPage.Update(false);
end;
}
action(AddLines)
{
ApplicationArea = Basic, Suite;
Ellipsis = true;
Image = NewRow;
Caption = 'Add New Lines';
ToolTip = 'Opens the page where you can add new lines manually or copy them from the existing price lists or suggest new lines based on data in the product cards.';
trigger OnAction()
var
PriceWorksheet: Page "Price Worksheet";
begin
CurrPage.SaveRecord();
PriceWorksheet.SetPriceType(PriceSource."Price Type");
PriceWorksheet.RunModal();
CurrPage.Update(false);
end;
}
}
}
area(Promoted)
{
group(Category_Process)
{
Caption = 'Process';
actionref(VerifyLines_Promoted; VerifyLines)
{
}
actionref(AddLines_Promoted; AddLines)
{
}
actionref(OpenPriceList_Promoted; OpenPriceList)
{
}
}
}
}
trigger OnInit()
var
FeaturePriceCalculation: Codeunit "Feature - Price Calculation";
begin
OnBeforeOnInit();
FeaturePriceCalculation.FailIfFeatureDisabled();
end;
trigger OnAfterGetCurrRecord()
begin
SetEditableFields();
LineExists := Rec."Price List Code" <> '';
end;
trigger OnAfterGetRecord()
begin
CalcSourceNoEditable();
SetFieldsStyle();
end;
trigger OnOpenPage()
begin
OnBeforeOpenPage(PriceSource);
UseCustomLookup := Rec.UseCustomizedLookup();
GetRecFilters();
SetRecFilters();
SetCaption();
end;
var
PriceSource: Record "Price Source";
CurrPriceListHeader: Record "Price List Header";
PriceListManagement: Codeunit "Price List Management";
PriceUXManagement: Codeunit "Price UX Management";
FilterRecordRef: RecordRef;
AmountTypeFilter: Enum "Price Amount Type";
ParentSourceNoEditable: Boolean;
SourceTypeEditable: Boolean;
SourceNoEditable: Boolean;
ParentSourceNoFilter: Text;
ParentSourceNoFilterEditable: Boolean;
SourceNoFilter: Text;
SourceNoFilterEditable: Boolean;
CurrencyCodeFilter: Text;
StartingDateFilter: Text;
EndingDateFilter: Text;
PageCaptionText: Text;
AssetNoFilterEditable: Boolean;
LineExists: Boolean;
UseCustomLookup: Boolean;
Description3Lbl: Label '%1 %2 %3', Locked = true;
Description5Lbl: Label '%1 %2 %3 %4 %5', Locked = true;
WithinFilterLbl: Label 'No %1 within the filter %2.', Comment = '%1 - the unique entity id, %2 - the filter string ';
protected var
PriceAsset: Record "Price Asset";
AssetNoFilter: Text;
AssignToNoEditable: Boolean;
AssignToParentNoEditable: Boolean;
PriceTypeVisible: Boolean;
AmountTypeIsEditable: Boolean;
AmountTypeIsVisible: Boolean;
PriceVisible: Boolean;
DiscountVisible: Boolean;
DiscountOnlyVisible: Boolean;
SalesVisible: Boolean;
PurchVisible: Boolean;
ItemAssetVisible: Boolean;
ResourceAssetVisible: Boolean;
ItemAsset: Boolean;
ResourceAsset: Boolean;
PriceLineEditable: Boolean;
AssetTypeEditable: Boolean;
DiscountEditable: Boolean;
PriceEditable: Boolean;
LineToVerify: Boolean;
SalesPriceLine: Boolean;
SalesPriceVisible: Boolean;
PurchPriceLine: Boolean;
PurchPriceVisible: Boolean;
AllowDiscVisible: Boolean;
AllowUpdatingDefaults: Boolean;
DateEditable: Boolean;
VariantCodeEditable: Boolean;
UnitPriceEditable: Boolean;
LineDiscPctEditable: Boolean;
VariantCodeVisible: Boolean;
VariantCodeLookupVisible: Boolean;
UoMVisible: Boolean;
UoMLookupVisible: Boolean;
WorkTypeCodeEditable: Boolean;
procedure SetRecFilters()
begin
CurrPage.SaveRecord();
RefreshSourceNoFilter();
RefreshAssetNoFilter();
SetFilters();
CheckRecFilters();
SetVisibleFields();
CurrPage.Update(false);
end;
local procedure CalcSourceNoEditable()
begin
SourceNoEditable := Rec.IsSourceNoAllowed();
ParentSourceNoEditable := PriceSource.IsParentSourceAllowed();
end;
local procedure CheckFilters(TableNo: Integer; FilterTxt: Text)
var
FilterFieldRef: FieldRef;
begin
if (FilterTxt = '') or (TableNo = 0) then
exit;
Clear(FilterFieldRef);
if FilterRecordRef.Number <> TableNo then begin
Clear(FilterRecordRef);
FilterRecordRef.Open(TableNo);
end;
FilterFieldRef := FilterRecordRef.Field(1);
FilterFieldRef.SetFilter(FilterTxt);
if FilterRecordRef.IsEmpty() then
Error(WithinFilterLbl, FilterRecordRef.Caption, FilterTxt);
end;
local procedure CheckRecFilters()
begin
case PriceSource."Source Type" of
PriceSource."Source Type"::Customer:
CheckFilters(Database::Customer, SourceNoFilter);
PriceSource."Source Type"::"Customer Price Group":
CheckFilters(Database::"Customer Price Group", SourceNoFilter);
PriceSource."Source Type"::Campaign:
CheckFilters(Database::Campaign, SourceNoFilter);
PriceSource."Source Type"::Contact:
CheckFilters(Database::Contact, SourceNoFilter);
end;
CheckFilters(PriceAsset."Table Id", AssetNoFilter);
CheckFilters(Database::Currency, CurrencyCodeFilter);
end;
local procedure GetFilterDescription(): Text
var
Cust: Record Customer;
CustPriceGr: Record "Customer Price Group";
Campaign: Record Campaign;
ObjTranslation: Record "Object Translation";
SourceTableName: Text;
SalesSrcTableName: Text;
Description: Text;
begin
GetRecFilters();
SourceTableName := '';
if PriceAsset."Table Id" <> 0 then
SourceTableName :=
ObjTranslation.TranslateObject(ObjTranslation."Object Type"::Table, PriceAsset."Table Id");
SalesSrcTableName := '';
Description := '';
case PriceSource."Source Type" of
PriceSource."Source Type"::Customer:
begin
SalesSrcTableName := ObjTranslation.TranslateObject(ObjTranslation."Object Type"::Table, 18);
Cust."No." := CopyStr(SourceNoFilter, 1, MaxStrLen(Cust."No."));
if Cust.FindFirst() then
Description := Cust.Name;
end;
PriceSource."Source Type"::"Customer Price Group":
begin
SalesSrcTableName := ObjTranslation.TranslateObject(ObjTranslation."Object Type"::Table, 6);
CustPriceGr.Code := CopyStr(SourceNoFilter, 1, MaxStrLen(CustPriceGr.Code));
if CustPriceGr.FindFirst() then
Description := CustPriceGr.Description;
end;
PriceSource."Source Type"::Campaign:
begin
SalesSrcTableName := ObjTranslation.TranslateObject(ObjTranslation."Object Type"::Table, 5071);
Campaign."No." := CopyStr(SourceNoFilter, 1, MaxStrLen(Campaign."No."));
if Campaign.FindFirst() then
Description := Campaign.Description;
end;
PriceSource."Source Type"::"All Customers":
begin
SalesSrcTableName := Format(PriceSource."Source Type");
exit(StrSubstNo(Description3Lbl, SalesSrcTableName, SourceTableName, AssetNoFilter));
end;
end;
exit(StrSubstNo(Description5Lbl, SalesSrcTableName, SourceNoFilter, Description, SourceTableName, PriceAsset."Asset No."));
end;
local procedure GetRecFilters()
begin
Rec.FilterGroup(2);
if Rec.GetFilters() <> '' then
UpdateBasicRecFilters();
Evaluate(StartingDateFilter, Rec.GetFilter("Starting Date"));
Rec.FilterGroup(0);
end;
local procedure RefreshAssetNoFilter()
begin
AssetNoFilterEditable := PriceAsset.IsAssetNoRequired();
if not AssetNoFilterEditable then
AssetNoFilter := '';
end;
local procedure RefreshSourceNoFilter()
begin
SourceNoFilterEditable := PriceSource.IsSourceNoAllowed();
ParentSourceNoFilterEditable := PriceSource.IsParentSourceAllowed();
if not SourceNoFilterEditable then begin
ParentSourceNoFilter := '';
SourceNoFilter := '';
end;
end;
local procedure SetCaption()
begin
PageCaptionText := GetFilterDescription();
end;
local procedure SetEditableFields()
begin
if Rec."Price List Code" <> CurrPriceListHeader.Code then begin
AllowUpdatingDefaults := true;
if CurrPriceListHeader.Get(Rec."Price List Code") then
AllowUpdatingDefaults := CurrPriceListHeader."Allow Updating Defaults";
end;
ItemAsset := Rec.IsAssetItem();
ResourceAsset := Rec.IsAssetResource();
PriceLineEditable := Rec.IsEditable();
SourceTypeEditable :=
(PriceSource."Source Type" = PriceSource."Source Type"::All) and PriceLineEditable and AllowUpdatingDefaults;
AssetTypeEditable := (PriceAsset."Asset Type" = PriceAsset."Asset Type"::" ") and PriceLineEditable;
AmountTypeIsEditable := (Rec."Asset Type" <> Rec."Asset Type"::"Item Discount Group") and PriceLineEditable;
CalcSourceNoEditable();
SetFieldsStyle();
VariantCodeEditable := PriceLineEditable and ItemAsset;
UnitPriceEditable := PriceLineEditable and PriceEditable;
DateEditable := PriceLineEditable and AllowUpdatingDefaults;
LineDiscPctEditable := PriceLineEditable and DiscountEditable;
AssignToNoEditable := SourceNoEditable and PriceLineEditable and AllowUpdatingDefaults;
AssignToParentNoEditable := PriceLineEditable and ParentSourceNoEditable and AllowUpdatingDefaults;
WorkTypeCodeEditable := PriceLineEditable and ResourceAsset;
end;
local procedure SetFieldsStyle()
begin
LineToVerify := Rec.IsLineToVerify();
SalesPriceLine := Rec."Price Type" = Rec."Price Type"::Sale;
PurchPriceLine := Rec."Price Type" = Rec."Price Type"::Purchase;
PriceEditable := Rec."Amount Type" in [Rec."Amount Type"::Any, Rec."Amount Type"::Price];
DiscountEditable := Rec."Amount Type" in [Rec."Amount Type"::Any, Rec."Amount Type"::Discount];
end;
local procedure SetFilters()
begin
Rec.FilterGroup(2);
if PriceSource."Price Type" <> PriceSource."Price Type"::Any then
Rec.SetRange("Price Type", PriceSource."Price Type")
else
Rec.SetRange("Price Type");
if PriceSource."Source Type" <> PriceSource."Source Type"::All then
Rec.SetRange("Source Type", PriceSource."Source Type")
else
Rec.SetRange("Source Type");
if SourceNoFilter <> '' then
Rec.SetFilter("Source No.", SourceNoFilter)
else
Rec.SetRange("Source No.");
if PriceAsset."Asset Type" <> PriceAsset."Asset Type"::" " then
Rec.SetRange("Asset Type", PriceAsset."Asset Type")
else
Rec.SetRange("Asset Type");
if AssetNoFilter <> '' then
Rec.SetFilter("Asset No.", AssetNoFilter)
else
Rec.SetRange("Asset No.");
if AmountTypeFilter <> AmountTypeFilter::Any then
Rec.SetRange("Amount Type", AmountTypeFilter)
else
Rec.SetRange("Amount Type");
if CurrencyCodeFilter <> '' then
Rec.SetFilter("Currency Code", CurrencyCodeFilter)
else
Rec.SetRange("Currency Code");
if StartingDateFilter <> '' then
Rec.SetFilter("Starting Date", StartingDateFilter)
else
Rec.SetRange("Starting Date");
if EndingDateFilter <> '' then
Rec.SetFilter("Ending Date", EndingDateFilter)
else
Rec.SetRange("Ending Date");
Rec.FilterGroup(0);
OnAfterSetFilters(Rec, StartingDateFilter, EndingDateFilter);
end;
local procedure SetVisibleFields()
var
PriceListLine: Record "Price List Line";
begin
PriceTypeVisible := PriceSource."Price Type" = PriceSource."Price Type"::Any;
AmountTypeIsVisible := AmountTypeFilter = AmountTypeFilter::Any;
PriceVisible := AmountTypeFilter in [AmountTypeFilter::Any, AmountTypeFilter::Price];
DiscountVisible := AmountTypeFilter in [AmountTypeFilter::Any, AmountTypeFilter::Discount];
DiscountOnlyVisible := PriceAsset."Asset Type" = PriceAsset."Asset Type"::"Item Discount Group";
SalesVisible := PriceSource."Price Type" in [PriceSource."Price Type"::Any, PriceSource."Price Type"::Sale];
PurchVisible := PriceSource."Price Type" in [PriceSource."Price Type"::Any, PriceSource."Price Type"::Purchase];
PriceListLine."Asset Type" := PriceAsset."Asset Type";
ItemAssetVisible := (PriceAsset."Asset Type" = PriceAsset."Asset Type"::" ") or PriceListLine.IsAssetItem();
ResourceAssetVisible := (PriceAsset."Asset Type" = PriceAsset."Asset Type"::" ") or PriceListLine.IsAssetResource();
SalesPriceVisible := PriceVisible and SalesVisible and not DiscountOnlyVisible;
PurchPriceVisible := PriceVisible and PurchVisible and not DiscountOnlyVisible;
AllowDiscVisible := PriceVisible and not DiscountOnlyVisible;
VariantCodeVisible := ItemAssetVisible and UseCustomLookup;
VariantCodeLookupVisible := ItemAssetVisible and not UseCustomLookup;
UoMVisible := (ItemAssetVisible or ResourceAssetVisible) and UseCustomLookup;
UoMLookupVisible := (ItemAssetVisible or ResourceAssetVisible) and not UseCustomLookup;
end;
local procedure UpdateBasicRecFilters()
begin
if Rec.GetFilter("Source Type") <> '' then
Evaluate(PriceSource."Source Type", Rec.GetFilter("Source Type"))
else
PriceSource."Source Type" := PriceSource."Source Type"::All;
SourceNoFilter := Rec.GetFilter("Source No.");
AssetNoFilter := Rec.GetFilter("Asset No.");
CurrencyCodeFilter := Rec.GetFilter("Currency Code");
end;
[IntegrationEvent(false, false)]
local procedure OnAfterSetFilters(var PriceListLine: record "Price List Line"; var StartingDateFilter: Text; var EndingDateFilter: Text)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnBeforeOnInit()
begin
end;
[IntegrationEvent(false, false)]
local procedure OnBeforeOpenPage(var PriceSource: record "Price Source")
begin
end;
}