Codeunit 5444 Sales Cr.Memo PDF Doc.Handler
- App
- Base Application
- Namespace
- Microsoft.EServices.EDocument
- Versions
- 17-22, 28
- Name by version
- Graph Business Setting from 17, Sales Cr.Memo PDF Doc.Handler from 28
Versions171819202122232425262728
Source29
Source in 29
src/Layers/W1/BaseApp/Sales/eServices/EDocument/SalesCrMemoPDFDocHandler.Codeunit.al52 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.EServices.EDocument;
using Microsoft.Foundation.Reporting;
using Microsoft.Integration.Graph;
using Microsoft.Sales.Document;
using Microsoft.Sales.History;
using System.EMail;
using System.Utilities;
codeunit 5444 "Sales Cr.Memo PDF Doc.Handler" implements IPdfDocumentHandler
{
var
UnpostedSalesCreditMemoErr: Label 'You must post sales credit memo %1 before generating the PDF document.', Comment = '%1 - sales credit memo id';
CreditMemoLbl: Label 'Credit Memo';
/// <summary>
/// Generates a PDF blob for Sales Credit Memo
/// </summary>
/// <param name="DocumentId">Document ID</param>
/// <param name="DocumentType">Document Type</param>
/// <param name="TempAttachmentEntityBuffer">The buffer to store successfully generated report</param>
/// <returns>True if the generated report successfully added to the buffer, otherwise false.</returns>
procedure GeneratePdfBlobWithDocumentType(DocumentId: Guid; DocumentType: Enum "Attachment Entity Buffer Document Type"; var TempAttachmentEntityBuffer: Record "Attachment Entity Buffer" temporary): Boolean
var
SalesHeader: Record "Sales Header";
SalesCrMemoHeader: Record "Sales Cr.Memo Header";
ReportSelections: Record "Report Selections";
DocumentMailing: Codeunit "Document-Mailing";
GraphMgtSalCrMemoBuf: Codeunit "Graph Mgt - Sal. Cr. Memo Buf.";
PDFDocumentManagement: Codeunit "PDF Document Management";
TempBlob: Codeunit "Temp Blob";
Name: Text[250];
ReportUsage: Enum "Report Selection Usage";
begin
if SalesHeader.GetBySystemId(DocumentId) then
if SalesHeader."Document Type" = SalesHeader."Document Type"::"Credit Memo" then
Error(UnpostedSalesCreditMemoErr, DocumentId);
if not GraphMgtSalCrMemoBuf.GetSalesCrMemoHeaderFromId(DocumentId, SalesCrMemoHeader) then
exit(false);
SalesCrMemoHeader.SetRange("No.", SalesCrMemoHeader."No.");
ReportUsage := "Report Selection Usage"::"S.Cr.Memo";
ReportSelections.GetPdfReportForCust(TempBlob, ReportUsage, SalesCrMemoHeader, SalesCrMemoHeader."Sell-to Customer No.");
DocumentMailing.GetAttachmentFileName(Name, SalesCrMemoHeader."No.", CreditMemoLbl, ReportUsage.AsInteger());
exit(PDFDocumentManagement.AddToTempAttachmentEntityBuffer(DocumentId, DocumentType, TempBlob, Name, TempAttachmentEntityBuffer));
end;
}