Page 516 Sales Lines
- App
- Base Application
- Namespace
- Microsoft.Sales.Document
- Versions
- 17-28
- Source table
- 37
Versions171819202122232425262728
Source29
Source in 29
src/Layers/W1/BaseApp/Sales/Document/SalesLines.Page.al368 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.Sales.Document;
using Microsoft.Finance.AllocationAccount;
using Microsoft.Finance.AllocationAccount.Sales;
using Microsoft.Finance.Dimension;
using Microsoft.Inventory.Item;
using Microsoft.Utilities;
/// <summary>
/// Displays a list of sales lines across all documents for searching and analysis.
/// </summary>
page 516 "Sales Lines"
{
ApplicationArea = Basic, Suite;
Caption = 'Sales Lines';
Editable = false;
LinksAllowed = false;
PageType = List;
AboutTitle = 'About Sales Lines';
AboutText = 'View and manage individual sales document lines, including details such as items or services, quantities, prices, discounts, and shipment information, with access to related posted and unposted entries for orders, invoices, shipments, returns, and credit memos.';
SourceTable = "Sales Line";
UsageCategory = Lists;
layout
{
area(content)
{
repeater(Control1)
{
ShowCaption = false;
field("Document Type"; Rec."Document Type")
{
ApplicationArea = Basic, Suite;
}
field("Document No."; Rec."Document No.")
{
ApplicationArea = Basic, Suite;
}
field("Sell-to Customer No."; Rec."Sell-to Customer No.")
{
ApplicationArea = Basic, Suite;
}
field("Sell-to Customer Name"; Rec."Sell-to Customer Name")
{
ApplicationArea = Basic, Suite;
}
field("Line No."; Rec."Line No.")
{
ApplicationArea = Basic, Suite;
Visible = false;
}
field(Type; Rec.Type)
{
ApplicationArea = Basic, Suite;
}
field("No."; Rec."No.")
{
ApplicationArea = Basic, Suite;
}
field("Variant Code"; Rec."Variant Code")
{
ApplicationArea = Planning;
Visible = false;
}
field(Description; Rec.Description)
{
ApplicationArea = Basic, Suite;
}
field("Description 2"; Rec."Description 2")
{
ApplicationArea = Basic, Suite;
Importance = Additional;
Visible = false;
}
field("Location Code"; Rec."Location Code")
{
ApplicationArea = Location;
Visible = true;
}
field(Reserve; Rec.Reserve)
{
ApplicationArea = Reservation;
}
field(Quantity; Rec.Quantity)
{
ApplicationArea = Basic, Suite;
}
field("Qty. to Ship"; Rec."Qty. to Ship")
{
ApplicationArea = Basic, Suite;
Visible = false;
}
field("Reserved Qty. (Base)"; Rec."Reserved Qty. (Base)")
{
ApplicationArea = Reservation;
}
field("Unit of Measure Code"; Rec."Unit of Measure Code")
{
ApplicationArea = Basic, Suite;
}
field("Line Amount"; Rec."Line Amount")
{
ApplicationArea = Basic, Suite;
BlankZero = true;
}
field("Allocation Account No."; Rec."Selected Alloc. Account No.")
{
ApplicationArea = All;
Caption = 'Allocation Account No.';
Visible = UseAllocationAccountNumber;
trigger OnValidate()
var
SalesAllocAccMgt: Codeunit "Sales Alloc. Acc. Mgt.";
begin
SalesAllocAccMgt.VerifySelectedAllocationAccountNo(Rec);
end;
}
field("Job No."; Rec."Job No.")
{
ApplicationArea = Jobs;
Visible = false;
}
field("Work Type Code"; Rec."Work Type Code")
{
ApplicationArea = Jobs;
Visible = false;
}
field("Shortcut Dimension 1 Code"; Rec."Shortcut Dimension 1 Code")
{
ApplicationArea = Dimensions;
Visible = false;
}
field("Shortcut Dimension 2 Code"; Rec."Shortcut Dimension 2 Code")
{
ApplicationArea = Dimensions;
Visible = false;
}
field("ShortcutDimCode[3]"; ShortcutDimCode[3])
{
ApplicationArea = Dimensions;
CaptionClass = '1,2,3';
TableRelation = "Dimension Value".Code where("Global Dimension No." = const(3),
"Dimension Value Type" = const(Standard),
Blocked = const(false));
Visible = false;
}
field("ShortcutDimCode[4]"; ShortcutDimCode[4])
{
ApplicationArea = Dimensions;
CaptionClass = '1,2,4';
TableRelation = "Dimension Value".Code where("Global Dimension No." = const(4),
"Dimension Value Type" = const(Standard),
Blocked = const(false));
Visible = false;
}
field("ShortcutDimCode[5]"; ShortcutDimCode[5])
{
ApplicationArea = Dimensions;
CaptionClass = '1,2,5';
TableRelation = "Dimension Value".Code where("Global Dimension No." = const(5),
"Dimension Value Type" = const(Standard),
Blocked = const(false));
Visible = false;
}
field("ShortcutDimCode[6]"; ShortcutDimCode[6])
{
ApplicationArea = Dimensions;
CaptionClass = '1,2,6';
TableRelation = "Dimension Value".Code where("Global Dimension No." = const(6),
"Dimension Value Type" = const(Standard),
Blocked = const(false));
Visible = false;
}
field("ShortcutDimCode[7]"; ShortcutDimCode[7])
{
ApplicationArea = Dimensions;
CaptionClass = '1,2,7';
TableRelation = "Dimension Value".Code where("Global Dimension No." = const(7),
"Dimension Value Type" = const(Standard),
Blocked = const(false));
Visible = false;
}
field("ShortcutDimCode[8]"; ShortcutDimCode[8])
{
ApplicationArea = Dimensions;
CaptionClass = '1,2,8';
TableRelation = "Dimension Value".Code where("Global Dimension No." = const(8),
"Dimension Value Type" = const(Standard),
Blocked = const(false));
Visible = false;
}
field("Shipment Date"; Rec."Shipment Date")
{
ApplicationArea = Basic, Suite;
}
field("Outstanding Quantity"; Rec."Outstanding Quantity")
{
ApplicationArea = Basic, Suite;
}
}
}
}
actions
{
area(navigation)
{
group("&Line")
{
Caption = '&Line';
Image = Line;
action("Show Document")
{
ApplicationArea = Basic, Suite;
Caption = 'Show Document';
Image = View;
ShortCutKey = 'Shift+F7';
ToolTip = 'Open the document that the selected line exists on.';
trigger OnAction()
var
PageManagement: Codeunit "Page Management";
begin
SalesHeader.Get(Rec."Document Type", Rec."Document No.");
PageManagement.PageRun(SalesHeader);
end;
}
action("Reservation Entries")
{
AccessByPermission = TableData Item = R;
ApplicationArea = Reservation;
Caption = 'Reservation Entries';
Image = ReservationLedger;
ToolTip = 'View the entries for every reservation that is made, either manually or automatically.';
trigger OnAction()
begin
Rec.ShowReservationEntries(true);
end;
}
action("Item &Tracking Lines")
{
ApplicationArea = ItemTracking;
Caption = 'Item &Tracking Lines';
Image = ItemTrackingLines;
ShortCutKey = 'Ctrl+Alt+I';
ToolTip = 'View or edit serial, lot and package numbers that are assigned to the item on the document or journal line.';
trigger OnAction()
begin
Rec.OpenItemTrackingLines();
end;
}
action("Detach Lines")
{
ApplicationArea = Basic, Suite;
Caption = 'Detach Lines';
Image = CancelAllLines;
Visible = DetachLinesVisible;
ToolTip = 'Detach the selected non-inventory product lines from the inventory item line.';
trigger OnAction()
var
SalesLine: Record "Sales Line";
begin
CurrPage.SetSelectionFilter(SalesLine);
SalesLine.ModifyAll("Attached to Line No.", 0);
end;
}
action(RedistributeAccAllocations)
{
ApplicationArea = All;
Caption = 'Redistribute Account Allocations';
Image = EditList;
#pragma warning disable AA0219
ToolTip = 'Use this action to redistribute the account allocations for this line.';
#pragma warning restore AA0219
trigger OnAction()
var
AllocAccManualOverride: Page "Redistribute Acc. Allocations";
begin
if ((Rec."Type" <> Rec."Type"::"Allocation Account") and (Rec."Selected Alloc. Account No." = '')) then
Error(ActionOnlyAllowedForAllocationAccountsErr);
AllocAccManualOverride.SetParentSystemId(Rec.SystemId);
AllocAccManualOverride.SetParentTableId(Database::"Sales Line");
AllocAccManualOverride.RunModal();
end;
}
action(ReplaceAllocationAccountWithLines)
{
ApplicationArea = All;
Caption = 'Generate lines from Allocation Account Line';
Image = CreateLinesFromJob;
#pragma warning disable AA0219
ToolTip = 'Use this action to replace the Allocation Account line with the actual lines that would be generated from the line itself.';
#pragma warning restore AA0219
trigger OnAction()
var
SalesAllocAccMgt: Codeunit "Sales Alloc. Acc. Mgt.";
begin
if ((Rec."Type" <> Rec."Type"::"Allocation Account") and (Rec."Selected Alloc. Account No." = '')) then
Error(ActionOnlyAllowedForAllocationAccountsErr);
SalesAllocAccMgt.CreateLinesFromAllocationAccountLine(Rec);
Rec.Delete();
CurrPage.Update(false);
end;
}
}
}
area(Promoted)
{
group(Category_Process)
{
Caption = 'Process', Comment = 'Generated from the PromotedActionCategories property index 1.';
actionref("Show Document_Promoted"; "Show Document")
{
}
actionref("Item &Tracking Lines_Promoted"; "Item &Tracking Lines")
{
}
actionref("Reservation Entries_Promoted"; "Reservation Entries")
{
}
actionref("Detach Lines_Promoted"; "Detach Lines")
{
}
}
}
}
trigger OnAfterGetRecord()
begin
Rec.ShowShortcutDimCode(ShortcutDimCode);
end;
trigger OnNewRecord(BelowxRec: Boolean)
begin
Clear(ShortcutDimCode);
end;
trigger OnOpenPage()
var
AllocationAccountMgt: Codeunit "Allocation Account Mgt.";
begin
UseAllocationAccountNumber := AllocationAccountMgt.UseAllocationAccountNoField();
DetachLinesVisible := Rec.GetFilter("Attached to Line No.") <> '';
end;
var
SalesHeader: Record "Sales Header";
DetachLinesVisible: Boolean;
UseAllocationAccountNumber: Boolean;
ActionOnlyAllowedForAllocationAccountsErr: Label 'This action is only available for lines that have Allocation Account set as Type.';
protected var
ShortcutDimCode: array[8] of Code[20];
}