Page 9037 Accountant Activities
- App
- Base Application
- Namespace
- Microsoft.Finance.RoleCenters
- Versions
- 17-28
- Source table
- 9054
Versions171819202122232425262728
Source29
Source in 29
src/Layers/W1/BaseApp/Finance/RoleCenters/AccountantActivities.Page.al404 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.Finance.RoleCenters;
using Microsoft.Bank.Reconciliation;
using Microsoft.EServices.EDocument;
using Microsoft.Finance.GeneralLedger.Account;
using Microsoft.Finance.GeneralLedger.Journal;
using Microsoft.Purchases.Document;
using Microsoft.Purchases.Payables;
using Microsoft.RoleCenters;
using Microsoft.Sales.Document;
using Microsoft.Sales.FinanceCharge;
using Microsoft.Sales.Reminder;
using System;
using System.Environment;
using System.Environment.Configuration;
#if not CLEAN28
using System.Feedback;
#endif
using System.Media;
using System.Visualization;
page 9037 "Accountant Activities"
{
Caption = 'Activities';
PageType = CardPart;
RefreshOnActivate = true;
SourceTable = "Finance Cue";
layout
{
area(content)
{
cuegroup(Control36)
{
CueGroupLayout = Wide;
ShowCaption = false;
field("Overdue Purchase Documents"; Rec."Overdue Purchase Documents")
{
ApplicationArea = Basic, Suite;
DrillDownPageID = "Vendor Ledger Entries";
}
field("Cash Accounts Balance"; Rec."Cash Accounts Balance")
{
ApplicationArea = Basic, Suite;
DrillDownPageID = "Chart of Accounts";
Image = Cash;
trigger OnDrillDown()
var
ActivitiesMgt: Codeunit "Activities Mgt.";
begin
ActivitiesMgt.DrillDownCalcCashAccountsBalances();
end;
}
field("New Incoming Documents"; Rec."New Incoming Documents")
{
ApplicationArea = Basic, Suite;
DrillDownPageID = "Incoming Documents";
}
}
cuegroup(Payments)
{
Caption = 'Payments';
field("Purchase Documents Due Today"; Rec."Purchase Documents Due Today")
{
ApplicationArea = Basic, Suite;
DrillDownPageID = "Vendor Ledger Entries";
ToolTip = 'Specifies the number of purchase invoices that are due for payment today.';
}
field("Purch. Invoices Due Next Week"; Rec."Purch. Invoices Due Next Week")
{
ApplicationArea = Basic, Suite;
}
field("Purchase Discounts Next Week"; Rec."Purchase Discounts Next Week")
{
ApplicationArea = Basic, Suite;
}
actions
{
action("Edit Cash Receipt Journal")
{
ApplicationArea = Basic, Suite;
Caption = 'Edit Cash Receipt Journal';
RunObject = Page "Cash Receipt Journal";
ToolTip = 'Register received payments in a cash receipt journal that may already contain journal lines.';
}
action("New Sales Credit Memo")
{
ApplicationArea = Basic, Suite;
Caption = 'New Sales Credit Memo';
RunObject = Page "Sales Credit Memo";
RunPageMode = Create;
ToolTip = 'Process a return or refund by creating a new sales credit memo.';
}
action("Edit Payment Journal")
{
ApplicationArea = Basic, Suite;
Caption = 'Edit Payment Journal';
RunObject = Page "Payment Journal";
ToolTip = 'Pay your vendors by filling the payment journal automatically according to payments due, and potentially export all payment to your bank for automatic processing.';
}
action("New Purchase Credit Memo")
{
ApplicationArea = Basic, Suite;
Caption = 'New Purchase Credit Memo';
RunObject = Page "Purchase Credit Memo";
RunPageMode = Create;
ToolTip = 'Create a new purchase credit memo so you can manage returned items to a vendor.';
}
}
}
cuegroup("Document Approvals")
{
Caption = 'Document Approvals';
field("POs Pending Approval"; Rec."POs Pending Approval")
{
ApplicationArea = Suite;
DrillDownPageID = "Purchase Order List";
}
field("SOs Pending Approval"; Rec."SOs Pending Approval")
{
ApplicationArea = Suite;
DrillDownPageID = "Sales Order List";
}
actions
{
action("Create Reminders...")
{
ApplicationArea = Suite;
Caption = 'Create Reminders...';
RunObject = Report "Create Reminders";
}
action("Create Finance Charge Memos...")
{
ApplicationArea = Suite;
Caption = 'Create Finance Charge Memos...';
RunObject = Report "Create Finance Charge Memos";
}
}
}
cuegroup(Financials)
{
Caption = 'Financials';
field("Non-Applied Payments"; Rec."Non-Applied Payments")
{
ApplicationArea = Basic, Suite;
Caption = 'Unprocessed Payments';
DrillDownPageID = "Pmt. Reconciliation Journals";
Image = Cash;
}
actions
{
action("New Payment Reconciliation Journal")
{
ApplicationArea = Basic, Suite;
Caption = 'New Payment Reconciliation Journal';
ToolTip = 'Reconcile unpaid documents automatically with their related bank transactions by importing bank a bank statement feed or file.';
trigger OnAction()
var
BankAccReconciliation: Record "Bank Acc. Reconciliation";
begin
BankAccReconciliation.OpenNewWorksheet();
end;
}
}
}
cuegroup("Incoming Documents")
{
Caption = 'Incoming Documents';
field("Approved Incoming Documents"; Rec."Approved Incoming Documents")
{
ApplicationArea = Basic, Suite;
DrillDownPageID = "Incoming Documents";
}
field("OCR Completed"; Rec."OCR Completed")
{
ApplicationArea = Basic, Suite;
DrillDownPageID = "Incoming Documents";
}
actions
{
action(CheckForOCR)
{
ApplicationArea = Basic, Suite;
Caption = 'Receive from OCR Service';
RunObject = Codeunit "OCR - Receive from Service";
RunPageMode = View;
ToolTip = 'Process new incoming electronic documents that have been created by the OCR service and that you can convert to, for example, purchase invoices in Dynamics 365.';
Visible = ShowCheckForOCR;
}
}
}
cuegroup("Product Videos")
{
Caption = 'Product Videos';
Visible = ShowProductVideosActivities;
actions
{
action(Action32)
{
ApplicationArea = Basic, Suite;
Caption = 'Product Videos';
Image = TileVideo;
RunObject = Page "Product Videos";
ToolTip = 'Open a list of videos that showcase some of the product capabilities.';
}
}
}
cuegroup("Get started")
{
Caption = 'Get started';
Visible = ReplayGettingStartedVisible;
actions
{
action(ShowStartInMyCompany)
{
ApplicationArea = Basic, Suite;
Caption = 'Try with my own data';
Image = TileSettings;
ToolTip = 'Set up My Company with the settings you choose. We''ll show you how, it''s easy.';
Visible = false;
trigger OnAction()
begin
if UserTours.IsAvailable() and O365GettingStartedMgt.AreUserToursEnabled() then
UserTours.StartUserTour(O365GettingStartedMgt.GetChangeCompanyTourID());
end;
}
action(ReplayGettingStarted)
{
ApplicationArea = Basic, Suite;
Caption = 'Play Getting Started';
Image = TileVideo;
ToolTip = 'Show the Getting Started guide again.';
trigger OnAction()
var
O365GettingStarted: Record "O365 Getting Started";
begin
if O365GettingStarted.Get(UserId, ClientTypeManagement.GetCurrentClientType()) then begin
O365GettingStarted."Tour in Progress" := false;
O365GettingStarted."Current Page" := 1;
O365GettingStarted.Modify();
Commit();
end;
O365GettingStartedMgt.LaunchWizard(true, false);
end;
}
}
}
#if not CLEAN28
usercontrol(SATAsyncLoader; SatisfactionSurveyAsync)
{
ApplicationArea = Basic, Suite;
Visible = false;
ObsoleteReason = 'The Satisfaction Survey feature will be removed in a future release.';
ObsoleteState = Pending;
ObsoleteTag = '28.0';
}
#endif
}
}
actions
{
area(processing)
{
action("Set Up Cues")
{
ApplicationArea = Basic, Suite;
Caption = 'Set Up Cues';
Image = Setup;
ToolTip = 'Set up the cues (status tiles) related to the role.';
trigger OnAction()
var
CuesAndKpis: Codeunit "Cues And KPIs";
CueRecordRef: RecordRef;
begin
CueRecordRef.GetTable(Rec);
CuesAndKpis.OpenCustomizePageForCurrentUser(CueRecordRef.Number);
end;
}
}
}
trigger OnAfterGetCurrRecord()
begin
ReplayGettingStartedVisible := false;
if EnvironmentInfo.IsSaaS() then
ReplayGettingStartedVisible := true;
end;
trigger OnAfterGetRecord()
begin
CalculateCueFieldValues();
end;
trigger OnInit()
begin
ReplayGettingStartedVisible := false;
if EnvironmentInfo.IsSaaS() then
ReplayGettingStartedVisible := true;
end;
trigger OnOpenPage()
var
RoleCenterNotificationMgt: Codeunit "Role Center Notification Mgt.";
ConfPersonalizationMgt: Codeunit "Conf./Personalization Mgt.";
begin
Rec.Reset();
if not Rec.Get() then begin
Rec.Init();
Rec.Insert();
end;
Rec.SetFilter("Due Date Filter", '<=%1', WorkDate());
Rec.SetFilter("Overdue Date Filter", '<%1', WorkDate());
Rec.SetFilter("Due Next Week Filter", '%1..%2', CalcDate('<1D>', WorkDate()), CalcDate('<1W>', WorkDate()));
ShowProductVideosActivities := ClientTypeManagement.GetCurrentClientType() <> CLIENTTYPE::Phone;
ShowCheckForOCR := OCRServiceMgt.OcrServiceIsEnable();
ShowIntelligentCloud := not EnvironmentInfo.IsSaaS();
RoleCenterNotificationMgt.ShowNotifications();
ConfPersonalizationMgt.RaiseOnOpenRoleCenterEvent();
if PageNotifier.IsAvailable() then begin
PageNotifier := PageNotifier.Create();
PageNotifier.NotifyPageReady();
end;
end;
var
O365GettingStartedMgt: Codeunit "O365 Getting Started Mgt.";
ClientTypeManagement: Codeunit "Client Type Management";
EnvironmentInfo: Codeunit "Environment Information";
OCRServiceMgt: Codeunit "OCR Service Mgt.";
[RunOnClient]
[WithEvents]
PageNotifier: DotNet PageNotifier;
[RunOnClient]
[WithEvents]
UserTours: DotNet UserTours;
ShowProductVideosActivities: Boolean;
ReplayGettingStartedVisible: Boolean;
WhatIsNewTourVisible: Boolean;
ShowCheckForOCR: Boolean;
ShowIntelligentCloud: Boolean;
local procedure CalculateCueFieldValues()
var
ActivitiesMgt: Codeunit "Activities Mgt.";
begin
if Rec.FieldActive("Cash Accounts Balance") then
Rec."Cash Accounts Balance" := ActivitiesMgt.CalcCashAccountsBalances();
end;
local procedure StartWhatIsNewTour(hasTourCompleted: Boolean): Boolean
var
O365UserTours: Record "User Tours";
TourID: Integer;
begin
TourID := O365GettingStartedMgt.GetWhatIsNewTourID();
if O365UserTours.AlreadyCompleted(TourID) then
exit(false);
if not hasTourCompleted then begin
UserTours.StartUserTour(TourID);
WhatIsNewTourVisible := true;
exit(true);
end;
if WhatIsNewTourVisible then begin
O365UserTours.MarkAsCompleted(TourID);
WhatIsNewTourVisible := false;
end;
exit(false);
end;
trigger UserTours::ShowTourWizard(hasTourCompleted: Boolean)
begin
if O365GettingStartedMgt.IsGettingStartedSupported() then
if O365GettingStartedMgt.LaunchWizard(false, hasTourCompleted) then
exit;
StartWhatIsNewTour(hasTourCompleted)
end;
}