Codeunit 1304 Sales-Quote to Invoice Yes/No, source in 29
Source29
src/Layers/W1/BaseApp/Sales/Document/SalesQuotetoInvoiceYesNo.Codeunit.al99 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.CRM.Outlook;
/// <summary>
/// Prompts for confirmation before converting a sales quote to a sales invoice.
/// </summary>
codeunit 1304 "Sales-Quote to Invoice Yes/No"
{
TableNo = "Sales Header";
trigger OnRun()
var
InvoiceSalesHeader: Record "Sales Header";
SalesQuoteToInvoice: Codeunit "Sales-Quote to Invoice";
OfficeManagement: Codeunit "Office Management";
begin
Rec.TestField("Document Type", "Sales Document Type"::Quote);
if not ConfirmConvertToInvoice(Rec) then
exit;
SalesQuoteToInvoice.Run(Rec);
SalesQuoteToInvoice.GetSalesInvoiceHeader(InvoiceSalesHeader);
Commit();
if GuiAllowed then
if OfficeManagement.AttachAvailable() then
ShowInvoice(InvoiceSalesHeader)
else
if ConfirmOpenNewInvoice(Rec, InvoiceSalesHeader) then
ShowInvoice(InvoiceSalesHeader);
end;
var
ConfirmConvertToInvoiceQst: Label 'Do you want to convert the quote to an invoice?';
OpenNewInvoiceQst: Label 'The quote has been converted to invoice %1. Do you want to open the new invoice?', Comment = '%1 - invoice number';
local procedure ShowInvoice(var InvoiceSalesHeader: Record "Sales Header")
var
IsHandled: Boolean;
begin
IsHandled := false;
OnBeforeShowInvoice(InvoiceSalesHeader, IsHandled);
if IsHandled then
exit;
PAGE.Run(PAGE::"Sales Invoice", InvoiceSalesHeader);
end;
local procedure ConfirmOpenNewInvoice(var SalesHeader: Record "Sales Header"; var InvoiceSalesHeader: Record "Sales Header") Result: Boolean
var
IsHandled: Boolean;
begin
IsHandled := false;
OnBeforeConfirmOpenNewInvoice(SalesHeader, Result, IsHandled);
if IsHandled then
exit(Result);
exit(Confirm(StrSubstNo(OpenNewInvoiceQst, InvoiceSalesHeader."No."), true));
end;
local procedure ConfirmConvertToInvoice(SalesHeader: Record "Sales Header") Result: Boolean
var
IsHandled: Boolean;
begin
IsHandled := false;
OnBeforeConfirmConvertToInvoice(SalesHeader, Result, IsHandled);
if IsHandled then
exit(Result);
if GuiAllowed() then
if not Confirm(ConfirmConvertToInvoiceQst, false) then
exit(false);
exit(true);
end;
[IntegrationEvent(false, false)]
local procedure OnBeforeShowInvoice(var InvoiceSalesHeader: Record "Sales Header"; var IsHandled: Boolean)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnBeforeConfirmOpenNewInvoice(var SalesHeader: Record "Sales Header"; var Result: Boolean; var IsHandled: Boolean)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnBeforeConfirmConvertToInvoice(SalesHeader: Record "Sales Header"; var Result: Boolean; var IsHandled: Boolean)
begin
end;
}