Page 6005 Resource Allocations
- App
- Base Application
- Namespace
- Microsoft.Service.Resources
- Versions
- 17-28
- Source table
- 5950
Versions171819202122232425262728
Source29
Source in 29
src/Layers/W1/BaseApp/Service/Resources/ResourceAllocations.Page.al250 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.Service.Resources;
using Microsoft.Projects.Resources.Resource;
using Microsoft.Service.Analysis;
using Microsoft.Service.Document;
page 6005 "Resource Allocations"
{
Caption = 'Resource Allocations';
DataCaptionFields = "Document No.";
DelayedInsert = true;
PageType = List;
PopulateAllFields = true;
SourceTable = "Service Order Allocation";
layout
{
area(content)
{
repeater(Control1)
{
ShowCaption = false;
field("Document Type"; Rec."Document Type")
{
ApplicationArea = Jobs;
Visible = false;
}
field("Document No."; Rec."Document No.")
{
ApplicationArea = Jobs;
Visible = false;
}
field(Status; Rec.Status)
{
ApplicationArea = Jobs;
}
field("Service Item No."; Rec."Service Item No.")
{
ApplicationArea = Jobs;
Visible = true;
}
field("Service Item Serial No."; Rec."Service Item Serial No.")
{
ApplicationArea = ItemTracking;
Visible = false;
}
field("Service Item Line No."; Rec."Service Item Line No.")
{
ApplicationArea = Jobs;
Visible = false;
}
field("Service Item Description"; Rec."Service Item Description")
{
ApplicationArea = Jobs;
DrillDown = false;
}
field("Resource No."; Rec."Resource No.")
{
ApplicationArea = Jobs;
trigger OnValidate()
begin
ResourceNoOnAfterValidate();
end;
}
field("Resource Group No."; Rec."Resource Group No.")
{
ApplicationArea = Jobs;
Visible = false;
}
field("Allocation Date"; Rec."Allocation Date")
{
ApplicationArea = Jobs;
}
field("Allocated Hours"; Rec."Allocated Hours")
{
ApplicationArea = Jobs;
DecimalPlaces = 1 : 2;
}
field("Starting Time"; Rec."Starting Time")
{
ApplicationArea = Jobs;
Visible = false;
}
field("Finishing Time"; Rec."Finishing Time")
{
ApplicationArea = Jobs;
Visible = false;
}
field(Description; Rec.Description)
{
ApplicationArea = Jobs;
Visible = false;
}
}
}
area(factboxes)
{
systempart(Control1900383207; Links)
{
ApplicationArea = RecordLinks;
Visible = false;
}
systempart(Control1905767507; Notes)
{
ApplicationArea = Notes;
Visible = false;
}
}
}
actions
{
area(navigation)
{
group("Pla&nning")
{
Caption = 'Pla&nning';
Image = Planning;
action(ResourceAvailability)
{
ApplicationArea = Basic, Suite;
Caption = '&Resource Availability';
Image = Calendar;
ToolTip = 'View the work calendar of the selected resource.';
trigger OnAction()
begin
Clear(ResAvailability);
ResAvailability.SetData(
Rec."Document Type".AsInteger(), Rec."Document No.", Rec."Service Item Line No.", Rec."Entry No.");
if Rec."Resource No." <> '' then begin
Res.Get(Rec."Resource No.");
ResAvailability.SetRecord(Res);
end;
ResAvailability.RunModal();
end;
}
action(ResGroupAvailability)
{
ApplicationArea = Basic, Suite;
Caption = 'Res. &Group Availability';
Image = Calendar;
ToolTip = 'View allocations per resource group, such as the entire capacity, the quantity allocated to projects on order, the quantity available after quotes, the quantity assigned to projects on quote, and the remaining capacity after all projects on quote or order.';
trigger OnAction()
begin
Clear(ResGrAvailability);
ResGrAvailability.SetData(Rec."Document Type".AsInteger(), Rec."Document No.", Rec."Entry No.");
if Rec."Resource Group No." <> '' then begin
ResGr.Get(Rec."Resource Group No.");
ResGrAvailability.SetRecord(ResGr);
end;
ResGrAvailability.RunModal();
end;
}
action("Canceled Allocation &Entries")
{
ApplicationArea = Basic, Suite;
Caption = 'Canceled Allocation &Entries';
Image = CancelledEntries;
ToolTip = 'View the list of service order allocation entries that have been canceled.';
trigger OnAction()
begin
Clear(CanceledAllocEntries);
ServOrderAlloc.Reset();
ServOrderAlloc.SetCurrentKey("Document Type", "Document No.", Status);
ServOrderAlloc.SetRange("Document Type", Rec."Document Type");
ServOrderAlloc.SetRange("Document No.", Rec."Document No.");
ServOrderAlloc.SetFilter(Status, '%1', ServOrderAlloc.Status::Canceled);
CanceledAllocEntries.SetTableView(ServOrderAlloc);
CanceledAllocEntries.SetRecord(ServOrderAlloc);
CanceledAllocEntries.Run();
end;
}
}
}
area(processing)
{
group("F&unctions")
{
Caption = 'F&unctions';
Image = "Action";
action("&Cancel Allocation")
{
ApplicationArea = Basic, Suite;
Caption = '&Cancel Allocation';
Image = Cancel;
ToolTip = 'Remove the current allocation of the resource.';
trigger OnAction()
var
ServOrderAllocMgt: Codeunit ServAllocationManagement;
begin
Clear(ServOrderAllocMgt);
ServOrderAllocMgt.CancelAllocation(Rec);
end;
}
action("Allocate to &all Service Items")
{
ApplicationArea = Service;
Caption = 'Allocate to &all Service Items';
Image = Allocate;
ToolTip = 'Allocate the same resource, for example, a technician, or resource group to all the service items in a service order.';
trigger OnAction()
begin
Clear(ServOrderAllocMgt);
ServOrderAllocMgt.SplitAllocation(Rec);
end;
}
}
}
}
trigger OnNewRecord(BelowxRec: Boolean)
begin
if Rec."Service Item Line No." = 0 then begin
ServItemLine.Reset();
ServItemLine.SetRange("Document Type", Rec."Document Type");
ServItemLine.SetRange("Document No.", Rec."Document No.");
if ServItemLine.Count = 1 then begin
ServItemLine.FindFirst();
Rec."Service Item Line No." := ServItemLine."Line No.";
end;
end;
end;
var
ServItemLine: Record "Service Item Line";
ServOrderAlloc: Record "Service Order Allocation";
Res: Record Resource;
ResGr: Record "Resource Group";
ServOrderAllocMgt: Codeunit ServAllocationManagement;
ResAvailability: Page "Res. Availability (Service)";
ResGrAvailability: Page "Res.Gr. Availability (Service)";
CanceledAllocEntries: Page "Cancelled Allocation Entries";
local procedure ResourceNoOnAfterValidate()
begin
CurrPage.Update();
end;
}