Codeunit 104057 Upgrade Custom Report Impl.
- App
- Base Application
- Namespace
- Microsoft.Upgrade
- Versions
- 23-28
Versions171819202122232425262728
Source29
Source in 29
src/Layers/W1/BaseApp/OtherCapabilities/Upgrade/UpgradeCustomReportImpl.Codeunit.al160 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.Upgrade;
using Microsoft.Foundation.Reporting;
using System.Environment.Configuration;
using System.Reflection;
using System.Upgrade;
codeunit 104057 "Upgrade Custom Report Impl."
{
// to allow test or manual upgrade
trigger OnRun()
begin
UpgradeCompany();
end;
local procedure UpgradeCompany()
var
CustomReportLayout: Record "Custom Report Layout";
ReportLayout: Record "Report Layout";
ReportLayoutList: Record "Report Layout List";
UpgradeTag: Codeunit "Upgrade Tag";
UpgradeTagDefinations: Codeunit "Upgrade Tag Definitions";
CustomReportLayoutName: Text[250];
begin
if not UpgradeTag.HasUpgradeTag(UpgradeTagDefinations.GetCustomReportLayoutUpgradeTag()) then begin
CustomReportLayout.SetRange("Built-In", true);
if CustomReportLayout.FindSet(true) then
repeat
if not ReportLayout.Get(CustomReportLayout.Code) then begin
CustomReportLayoutName := GetCustomLayoutToName(CustomReportLayout.Code);
if CustomReportLayoutName = '' then begin
ReportLayoutList.SetRange("Report ID", CustomReportLayout."Report ID");
if ReportLayoutList.FindFirst() then
CustomReportLayoutName := ReportLayoutList.Name;
end;
UpdateReportSelections(CustomReportLayout.Code, CustomReportLayoutName);
UpdateReportLayoutSelection(CustomReportLayout.Code, CustomReportLayoutName);
UpdateCustomReportSelection(CustomReportLayout.Code, CustomReportLayoutName);
end;
until CustomReportLayout.Next() = 0;
UpgradeTag.SetUpgradeTag(UpgradeTagDefinations.GetCustomReportLayoutUpgradeTag());
end;
end;
local procedure UpdateReportSelections(CustomReportLayoutCode: Code[20]; CustomReportLayoutName: Text[250])
var
ReportSelections: Record "Report Selections";
begin
if CustomReportLayoutName = '' then
exit;
ReportSelections.SetRange("Custom Report Layout Code", CustomReportLayoutCode);
ReportSelections.ModifyAll("Custom Report Layout Code", '');
ReportSelections.SetRange("Custom Report Layout Code");
ReportSelections.SetRange("Email Body Layout Code", CustomReportLayoutCode);
ReportSelections.ModifyAll("Email Body Layout Name", CustomReportLayoutName);
ReportSelections.ModifyAll("Email Body Layout Code", '');
end;
local procedure UpdateReportLayoutSelection(CustomReportLayoutCode: Code[20]; CustomReportLayoutName: Text[250])
var
ReportLayoutSelection: Record "Report Layout Selection";
TenantReportLayoutSelection: Record "Tenant Report Layout Selection";
ReportLayoutList: Record "Report Layout List";
EmptyGuid: Guid;
begin
if CustomReportLayoutName = '' then
exit;
ReportLayoutList.SetRange(Name, CustomReportLayoutName);
if not ReportLayoutList.FindFirst() then
exit;
ReportLayoutSelection.SetRange("Custom Report Layout Code", CustomReportLayoutCode);
if ReportLayoutSelection.FindSet(true) then
repeat
TenantReportLayoutSelection."App ID" := ReportLayoutList."Application ID";
TenantReportLayoutSelection."Company Name" := CopyStr(CompanyName(), 1, MaxStrLen(TenantReportLayoutSelection."Company Name"));
TenantReportLayoutSelection."Layout Name" := ReportLayoutList.Name;
TenantReportLayoutSelection."Report ID" := ReportLayoutSelection."Report ID";
TenantReportLayoutSelection."User ID" := EmptyGuid;
if not TenantReportLayoutSelection.Insert(true) then;
until ReportLayoutSelection.Next() = 0;
ReportLayoutSelection.ModifyAll("Custom Report Layout Code", '');
end;
local procedure UpdateCustomReportSelection(CustomReportLayoutCode: Code[20]; CustomReportLayoutName: Text[250])
var
CustomReportSelection: Record "Custom Report Selection";
begin
if CustomReportLayoutName = '' then
exit;
CustomReportSelection.SetRange("Custom Report Layout Code", CustomReportLayoutCode);
CustomReportSelection.ModifyAll("Email Attachment Layout Name", CustomReportLayoutName);
CustomReportSelection.ModifyAll("Custom Report Layout Code", '');
CustomReportSelection.SetRange("Custom Report Layout Code");
CustomReportSelection.SetRange("Email Body Layout Code", CustomReportLayoutCode);
CustomReportSelection.ModifyAll("Email Body Layout Name", CustomReportLayoutName);
CustomReportSelection.ModifyAll("Email Body Layout Code", '');
end;
local procedure GetCustomLayoutToName(CustomReportLayoutCode: Code[20]): Text[250]
begin
case CustomReportLayoutCode of
Uppercase('MS-1016-DEFAULT'):
exit('JobQuote.docx');
Uppercase('MS-117-EMAIL_DEF'):
exit('DefaultReminderEmail.docx');
Uppercase('MS-1302-DEFAULT'):
exit('StandardSalesProFormaInv.docx');
Uppercase('MS-1303-BLUESIMPLE'):
exit('StandardDraftSalesInvoiceBlue.docx');
Uppercase('MS-1303-S_EMAIL_DEF'), Uppercase('MS-1303-EMAIL_INV'), Uppercase('MS-1303-S_EMAIL_SMPL'):
exit('StandardDraftSalesInvoiceEmail.docx');
Uppercase('MS-1303-INVOICING'):
exit('StandardDraftSalesInvoiceBlue.docx');
Uppercase('MS-1304-EMAIL_BLUE'):
exit('StandardSalesEstimateBlueEmail.docx');
Uppercase('MS-1304-BLUEESTIMATE'), Uppercase('MS-1304-BLUESIMPLE'):
exit('StandardSalesQuoteBlue.docx');
Uppercase('MS-1304-EMAIL_DEF'), Uppercase('MS-1304-EMAIL_INV'):
exit('StandardSalesQuoteEmail.docx');
Uppercase('MS-1304-INVOICING'):
exit('StandardSalesQuote.docx');
Uppercase('MS-1305-EMAIL_DEF'):
exit('StandardOrderConfirmationEmail.docx');
Uppercase('MS-1306-BLUESIMPLE'), Uppercase('MS-1306-INVOICING'),
Uppercase('MS-1306-MODERN'), Uppercase('MS-1306-RED'),
Uppercase('MS-1306-TIMELESS'):
exit('StandardSalesInvoiceBlueSimple.docx');
Uppercase('MS-1306-BLUE-VATSPEC'):
exit('StandardSalesInvoiceVatSpec.docx');
Uppercase('MS-1306-EMAIL_DEF'), Uppercase('MS-1306-S_EMAIL_SMPL'),
Uppercase('MS-1306-EMAIL_INV'), Uppercase('MS-1306-EMAIL_MODERN'),
Uppercase('MS-1306-EMAIL_RED'), Uppercase('MS-1306-EMAIL_TIM'):
exit('StandardSalesInvoiceDefEmail.docx');
Uppercase('MS-1307-EMAIL_DEF'):
exit('StandardSalesCreditMemoEmail.docx');
Uppercase('MS-1308-BLUESIMPLE'):
exit('StandardSalesShipmentBlue.docx');
Uppercase('MS-1309-BLUESIMPLE'):
exit('StandardSalesReturnRcptBlue.docx');
Uppercase('MS-1316-EMAIL_DEF'):
exit('StandardCustomerStatementEmail.docx');
Uppercase('MS-1322-EMAIL_DEF'):
exit('StandardPurchaseOrderEmail.docx');
Uppercase('MS-5084-EMAIL_DEFMRG'):
exit('DefaultEmailMergeDoc.docx');
else
exit('');
end;
end;
}