Report 5912 Service - Credit Memo
- App
- Base Application
- Namespace
- Microsoft.Service.History
- Versions
- 17-28
Versions171819202122232425262728
Source29
Source in 29
src/Layers/W1/BaseApp/Service/History/ServiceCreditMemo.Report.al963 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.History;
using Microsoft.Bank.BankAccount;
using Microsoft.CRM.Team;
using Microsoft.Finance.Dimension;
using Microsoft.Finance.GeneralLedger.Setup;
using Microsoft.Finance.VAT.Calculation;
using Microsoft.Finance.VAT.Clause;
using Microsoft.Foundation.Address;
using Microsoft.Foundation.Company;
using Microsoft.Inventory.Ledger;
using Microsoft.Inventory.Location;
using Microsoft.Sales.History;
using Microsoft.Service.Setup;
using Microsoft.Utilities;
using System.Email;
using System.Globalization;
using System.Utilities;
report 5912 "Service - Credit Memo"
{
DefaultLayout = RDLC;
RDLCLayout = './Service/History/ServiceCreditMemo.rdlc';
Caption = 'Service - Credit Memo';
Permissions = TableData "Sales Shipment Buffer" = rimd;
WordMergeDataItem = "Service Cr.Memo Header";
dataset
{
dataitem("Service Cr.Memo Header"; "Service Cr.Memo Header")
{
DataItemTableView = sorting("No.");
RequestFilterFields = "No.", "Customer No.", "No. Printed";
RequestFilterHeading = 'Posted Service Credit Memo';
column(VATAmtLineVATAmtText; TempVATAmountLine.VATAmountText())
{
}
column(TotalAmountInclVAT; TotalAmountInclVAT)
{
}
column(TotalInclVATText; TotalInclVATText)
{
}
column(TotalExclVATText; TotalExclVATText)
{
}
column(TotalInvDiscAmount; TotalInvDiscAmount)
{
}
column(TotalAmount; TotalAmount)
{
}
column(TotalText; TotalText)
{
}
column(SubtotalCaption; SubtotalCaptionLbl)
{
}
column(PaymentDiscountonVATCaption; PaymentDiscountonVATCaptionLbl)
{
}
column(UnitPriceCaption; UnitPriceCaptionLbl)
{
}
column(AmountCaption; AmountCaptionLbl)
{
}
column(PostedReceiptDateCaption; PostedReceiptDateCaptionLbl)
{
}
column(ServiceCrMemoLineLineDiscountCaption; ServiceCrMemoLineLineDiscountCaptionLbl)
{
}
column(InvDiscountAmountCaption; InvDiscountAmountCaptionLbl)
{
}
dataitem(CopyLoop; "Integer")
{
DataItemTableView = sorting(Number);
dataitem(PageLoop; "Integer")
{
DataItemTableView = sorting(Number) where(Number = const(1));
column(CompanyInfoPicture; CompanyInfo.Picture)
{
}
column(CompanyInfo1Picture; CompanyInfo1.Picture)
{
}
column(CompanyInfo2Picture; CompanyInfo2.Picture)
{
}
column(ReportTitleCopyText; StrSubstNo(Text005, CopyText))
{
}
column(CustAddr1; CustAddr[1])
{
}
column(CompanyAddr1; CompanyAddr[1])
{
}
column(CustAddr2; CustAddr[2])
{
}
column(CompanyAddr2; CompanyAddr[2])
{
}
column(CustAddr3; CustAddr[3])
{
}
column(CompanyAddr3; CompanyAddr[3])
{
}
column(CustAddr4; CustAddr[4])
{
}
column(CompanyAddr4; CompanyAddr[4])
{
}
column(CustAddr5; CustAddr[5])
{
}
column(CompanyInfoPhoneNo; CompanyInfo."Phone No.")
{
}
column(CustAddr6; CustAddr[6])
{
}
column(CompanyInfoFaxNo; CompanyInfo."Fax No.")
{
}
column(CompanyInfoVATRegNo; CompanyInfo."VAT Registration No.")
{
}
column(CompanyInfoGiroNo; CompanyInfo."Giro No.")
{
}
column(CompanyInfoBankName; CompanyBankAccount.Name)
{
}
column(CompanyInfoBankAccountNo; CompanyBankAccount."Bank Account No.")
{
}
column(BillToCustNo_ServiceCrMemoHeader; "Service Cr.Memo Header"."Bill-to Customer No.")
{
}
column(PostingDate_ServiceCrMemoHeader; Format("Service Cr.Memo Header"."Posting Date"))
{
}
column(VATNoText; VATNoText)
{
}
column(VATRegNo_ServiceCrMemoHeader; "Service Cr.Memo Header"."VAT Registration No.")
{
}
column(No1_ServiceCrMemoHeader; "Service Cr.Memo Header"."No.")
{
}
column(SalesPersonText; SalesPersonText)
{
}
column(SalesPurchPersonName; SalesPurchPerson.Name)
{
}
column(AppliedToText; AppliedToText)
{
}
column(ReferenceText; ReferenceText)
{
}
column(YourRef_ServiceCrMemoHeader; "Service Cr.Memo Header"."Your Reference")
{
}
column(CustAddr7; CustAddr[7])
{
}
column(CustAddr8; CustAddr[8])
{
}
column(CompanyAddr5; CompanyAddr[5])
{
}
column(CompanyAddr6; CompanyAddr[6])
{
}
column(CompanyAddr7; CompanyAddr[7])
{
}
column(CompanyAddr8; CompanyAddr[8])
{
}
column(DocDate_ServiceCrMemoHeader; Format("Service Cr.Memo Header"."Document Date", 0, 4))
{
}
column(PricesInclVAT_ServiceCrMemoHeader; "Service Cr.Memo Header"."Prices Including VAT")
{
}
column(PageCaption; StrSubstNo(Text006, ''))
{
}
column(OutputNo; OutputNo)
{
}
column(PricesInclVAT1_ServiceCrMemoHeader; Format("Service Cr.Memo Header"."Prices Including VAT"))
{
}
column(CompanyInfoPhoneNoCaption; CompanyInfoPhoneNoCaptionLbl)
{
}
column(CompanyInfoFaxNoCaption; CompanyInfoFaxNoCaptionLbl)
{
}
column(CompanyInfoVATRegistrationNoCaption; CompanyInfoVATRegistrationNoCaptionLbl)
{
}
column(CompanyInfoGiroNoCaption; CompanyInfoGiroNoCaptionLbl)
{
}
column(CompanyInfoBankNameCaption; CompanyInfoBankNameCaptionLbl)
{
}
column(CompanyInfoBankAccountNoCaption; CompanyInfoBankAccountNoCaptionLbl)
{
}
column(ServiceCrMemoHeaderNoCaption; ServiceCrMemoHeaderNoCaptionLbl)
{
}
column(ServiceCrMemoHeaderPostingDateCaption; ServiceCrMemoHeaderPostingDateCaptionLbl)
{
}
column(BillToCustNo_ServiceCrMemoHeaderCaption; "Service Cr.Memo Header".FieldCaption("Bill-to Customer No."))
{
}
column(PricesInclVAT_ServiceCrMemoHeaderCaption; "Service Cr.Memo Header".FieldCaption("Prices Including VAT"))
{
}
dataitem(DimensionLoop1; "Integer")
{
DataItemLinkReference = "Service Cr.Memo Header";
DataItemTableView = sorting(Number);
column(DimText; DimText)
{
}
column(Number_IntegerLine; Number)
{
}
column(HeaderDimensionsCaption; HeaderDimensionsCaptionLbl)
{
}
trigger OnAfterGetRecord()
begin
DimText := DimTxtArr[Number];
end;
trigger OnPreDataItem()
begin
if not ShowInternalInfo then
CurrReport.Break();
FindDimTxt("Service Cr.Memo Header"."Dimension Set ID");
SetRange(Number, 1, DimTxtArrLength);
end;
}
dataitem("Service Cr.Memo Line"; "Service Cr.Memo Line")
{
DataItemLink = "Document No." = field("No.");
DataItemLinkReference = "Service Cr.Memo Header";
DataItemTableView = sorting("Document No.", "Line No.");
column(TypeInt; TypeInt)
{
}
column(LineNo_ServCrMemoLine; "Line No.")
{
}
column(VAtBaseDisc_ServiceCrMemoHeader; "Service Cr.Memo Header"."VAT Base Discount %")
{
}
column(TotalLineAmount; TotalLineAmount)
{
}
column(LineAmt_ServCrMemoLine; "Line Amount")
{
AutoFormatExpression = GetCurrencyCode();
AutoFormatType = 1;
}
column(Desc_ServCrMemoLine; Description)
{
}
column(No_ServCrMemoLine; "No.")
{
}
column(Quantity_ServCrMemoLine; Quantity)
{
}
column(UOM_ServCrMemoLine; "Unit of Measure")
{
}
column(UnitPrice_ServCrMemoLine; "Unit Price")
{
AutoFormatExpression = GetCurrencyCode();
AutoFormatType = 2;
}
column(LineDisc_ServCrMemoLine; "Line Discount %")
{
}
column(VATIdentifier_ServCrMemoLine; "VAT Identifier")
{
}
column(PostedRcptDate; Format(PostedReceiptDate))
{
}
column(Amt_ServCrMemoLine; Amount)
{
AutoFormatExpression = GetCurrencyCode();
AutoFormatType = 1;
}
column(InvDiscountAmount; -"Inv. Discount Amount")
{
AutoFormatExpression = GetCurrencyCode();
AutoFormatType = 1;
}
column(AmtInclVAT_ServCrMemoLine; "Amount Including VAT")
{
AutoFormatExpression = GetCurrencyCode();
AutoFormatType = 1;
}
column(AmtInclVATAmt; "Amount Including VAT" - Amount)
{
AutoFormatExpression = GetCurrencyCode();
AutoFormatType = 1;
}
column(LineAmtInvDiscAmtInclVAT; -("Line Amount" - "Inv. Discount Amount" - "Amount Including VAT"))
{
AutoFormatExpression = "Service Cr.Memo Header"."Currency Code";
AutoFormatType = 1;
}
column(Desc_ServCrMemoLineCaption; FieldCaption(Description))
{
}
column(No_ServCrMemoLineCaption; FieldCaption("No."))
{
}
column(Quantity_ServCrMemoLineCaption; FieldCaption(Quantity))
{
}
column(UOM_ServCrMemoLineCaption; FieldCaption("Unit of Measure"))
{
}
column(VATIdentifier_ServCrMemoLineCaption; FieldCaption("VAT Identifier"))
{
}
dataitem("Service Shipment Buffer"; "Integer")
{
DataItemTableView = sorting(Number);
column(ServShptBuffPostingDate; Format(TempServiceShipmentBuffer."Posting Date"))
{
}
column(ServShptBuffQty; TempServiceShipmentBuffer.Quantity)
{
DecimalPlaces = 0 : 5;
}
column(ReturnReceiptCaption; ReturnReceiptCaptionLbl)
{
}
trigger OnAfterGetRecord()
begin
if Number = 1 then
TempServiceShipmentBuffer.Find('-')
else
TempServiceShipmentBuffer.Next();
end;
trigger OnPreDataItem()
begin
SetRange(Number, 1, TempServiceShipmentBuffer.Count);
end;
}
dataitem(DimensionLoop2; "Integer")
{
DataItemTableView = sorting(Number);
column(DimText1; DimText)
{
}
column(LineDimensionsCaption; LineDimensionsCaptionLbl)
{
}
trigger OnAfterGetRecord()
begin
DimText := DimTxtArr[Number];
end;
trigger OnPreDataItem()
begin
if not ShowInternalInfo then
CurrReport.Break();
FindDimTxt("Service Cr.Memo Line"."Dimension Set ID");
SetRange(Number, 1, DimTxtArrLength);
end;
}
trigger OnAfterGetRecord()
begin
TempServiceShipmentBuffer.DeleteAll();
PostedReceiptDate := 0D;
if Quantity <> 0 then
PostedReceiptDate := FindPostedShipmentDate();
if (Type = Type::"G/L Account") and not ShowInternalInfo then
"No." := '';
TempVATAmountLine.Init();
TempVATAmountLine."VAT Identifier" := "VAT Identifier";
TempVATAmountLine."VAT Calculation Type" := "VAT Calculation Type";
TempVATAmountLine."Tax Group Code" := "Tax Group Code";
TempVATAmountLine."VAT %" := "VAT %";
TempVATAmountLine."VAT Base" := Amount;
TempVATAmountLine."Amount Including VAT" := "Amount Including VAT";
TempVATAmountLine."Line Amount" := "Line Amount";
if "Allow Invoice Disc." then
TempVATAmountLine."Inv. Disc. Base Amount" := "Line Amount";
TempVATAmountLine."Invoice Discount Amount" := "Inv. Discount Amount";
TempVATAmountLine."VAT Clause Code" := "VAT Clause Code";
TempVATAmountLine.InsertLine();
TotalAmount += Amount;
TotalAmountInclVAT += "Amount Including VAT";
TotalInvDiscAmount += "Inv. Discount Amount";
TotalLineAmount += "Line Amount";
TypeInt := Type.AsInteger();
end;
trigger OnPreDataItem()
begin
TempVATAmountLine.DeleteAll();
TempServiceShipmentBuffer.Reset();
TempServiceShipmentBuffer.DeleteAll();
FirstValueEntryNo := 0;
MoreLines := Find('+');
while MoreLines and (Description = '') and ("No." = '') and (Quantity = 0) and (Amount = 0) do
MoreLines := Next(-1) <> 0;
if not MoreLines then
CurrReport.Break();
SetFilter("Line No.", '<=%1', "Line No.");
TotalAmount := 0;
TotalAmountInclVAT := 0;
TotalInvDiscAmount := 0;
TotalLineAmount := 0;
end;
}
dataitem(VATCounter; "Integer")
{
DataItemTableView = sorting(Number);
column(VATAmtLineVATBase; TempVATAmountLine."VAT Base")
{
AutoFormatExpression = "Service Cr.Memo Header"."Currency Code";
AutoFormatType = 1;
}
column(VATAmtLineVATAmt; TempVATAmountLine."VAT Amount")
{
AutoFormatExpression = "Service Cr.Memo Header"."Currency Code";
AutoFormatType = 1;
}
column(VATAmtLineLineAmt; TempVATAmountLine."Line Amount")
{
AutoFormatExpression = "Service Cr.Memo Header"."Currency Code";
AutoFormatType = 1;
}
column(VATAmtLineInvDiscBaseAmt; TempVATAmountLine."Inv. Disc. Base Amount")
{
AutoFormatExpression = "Service Cr.Memo Header"."Currency Code";
AutoFormatType = 1;
}
column(VATAmtLineInvoiceDisctAmt; TempVATAmountLine."Invoice Discount Amount")
{
AutoFormatExpression = "Service Cr.Memo Header"."Currency Code";
AutoFormatType = 1;
}
column(VATAmtLineVAT; TempVATAmountLine."VAT %")
{
DecimalPlaces = 0 : 5;
}
column(VATAmtLineVATIdentifier; TempVATAmountLine."VAT Identifier")
{
}
column(VATAmountLineVATCaption; VATAmountLineVATCaptionLbl)
{
}
column(VATBaseCaption; VATBaseCaptionLbl)
{
}
column(VATAmountLineVATAmnCaption; VATAmountLineVATAmnCaptionLbl)
{
}
column(VATAmountSpecificationCaption; VATAmountSpecificationCaptionLbl)
{
}
column(VATAmountLineVATIdentifierCaption; VATAmountLineVATIdentifierCaptionLbl)
{
}
column(VATAmountLineInvDiscBaseAmtCaption; VATAmountLineInvDiscBaseAmtCaptionLbl)
{
}
column(VATAmountLineLineAmntCaption; VATAmountLineLineAmntCaptionLbl)
{
}
trigger OnAfterGetRecord()
begin
TempVATAmountLine.GetLine(Number);
end;
trigger OnPreDataItem()
begin
if TempVATAmountLine.GetTotalVATAmount() = 0 then
CurrReport.Break();
SetRange(Number, 1, TempVATAmountLine.Count);
end;
}
dataitem(VATClauseEntryCounter; "Integer")
{
DataItemTableView = sorting(Number);
column(VATClauseVATIdentifier; TempVATAmountLine."VAT Identifier")
{
}
column(VATClauseCode; TempVATAmountLine."VAT Clause Code")
{
}
column(VATClauseDescription; VATClauseText)
{
}
column(VATClauseDescription2; VATClause."Description 2")
{
}
column(VATClauseAmount; TempVATAmountLine."VAT Amount")
{
AutoFormatExpression = "Service Cr.Memo Header"."Currency Code";
AutoFormatType = 1;
}
column(VATClausesCaption; VATClausesCap)
{
}
column(VATClauseVATIdentifierCaption; VATAmountLineVATIdentifierCaptionLbl)
{
}
column(VATClauseVATAmtCaption; VATAmountLineVATAmnCaptionLbl)
{
}
column(TotalCaption; TotalCaptionLbl)
{
}
trigger OnAfterGetRecord()
begin
TempVATAmountLine.GetLine(Number);
if not VATClause.Get(TempVATAmountLine."VAT Clause Code") then
CurrReport.Skip();
VATClauseText := VATClause.GetDescriptionText("Service Cr.Memo Header");
end;
trigger OnPreDataItem()
begin
Clear(VATClause);
SetRange(Number, 1, TempVATAmountLine.Count);
end;
}
dataitem(Total; "Integer")
{
DataItemTableView = sorting(Number) where(Number = const(1));
}
dataitem(Total2; "Integer")
{
DataItemTableView = sorting(Number) where(Number = const(1));
column(Cust_ServCrMemoHeader; "Service Cr.Memo Header"."Customer No.")
{
}
column(ShipToAddr1; ShipToAddr[1])
{
}
column(ShipToAddr2; ShipToAddr[2])
{
}
column(ShipToAddr3; ShipToAddr[3])
{
}
column(ShipToAddr4; ShipToAddr[4])
{
}
column(ShipToAddr5; ShipToAddr[5])
{
}
column(ShipToAddr6; ShipToAddr[6])
{
}
column(ShipToAddr7; ShipToAddr[7])
{
}
column(ShipToAddr8; ShipToAddr[8])
{
}
column(ShiptoAddressCaption; ShiptoAddressCaptionLbl)
{
}
column(ShipToPhoneNo; "Service Cr.Memo Header"."Ship-to Phone")
{
}
column(Cust_ServCrMemoHeaderCaption; "Service Cr.Memo Header".FieldCaption("Customer No."))
{
}
trigger OnPreDataItem()
begin
if not ShowShippingAddr then
CurrReport.Break();
end;
}
}
trigger OnAfterGetRecord()
begin
if Number > 1 then begin
CopyText := Text004;
OutputNo += 1;
end;
end;
trigger OnPostDataItem()
begin
if not IsReportInPreviewMode() then
CODEUNIT.Run(CODEUNIT::"Service Cr. Memo-Printed", "Service Cr.Memo Header");
end;
trigger OnPreDataItem()
begin
NoOfLoops := Abs(NoOfCopies) + 1;
CopyText := '';
SetRange(Number, 1, NoOfLoops);
OutputNo := 1;
end;
}
trigger OnAfterGetRecord()
begin
CurrReport.Language := LanguageMgt.GetLanguageIdOrDefault("Language Code");
CurrReport.FormatRegion := LanguageMgt.GetFormatRegionOrDefault("Format Region");
FormatAddr.SetLanguageCode("Language Code");
FormatAddressFields("Service Cr.Memo Header");
FormatDocumentFields("Service Cr.Memo Header");
if not CompanyBankAccount.Get("Service Cr.Memo Header"."Company Bank Account Code") then
CompanyBankAccount.CopyBankFieldsFromCompanyInfo(CompanyInfo);
end;
}
}
requestpage
{
AboutTitle = 'About Service - Credit Memo';
AboutText = 'Generate a service credit memo that you can send to your customer.';
SaveValues = true;
layout
{
area(content)
{
group(Options)
{
Caption = 'Options';
field(NoOfCopies; NoOfCopies)
{
ApplicationArea = Service;
Caption = 'No. of Copies';
ToolTip = 'Specifies how many copies of the document to print.';
}
field(ShowInternalInfo; ShowInternalInfo)
{
ApplicationArea = Service;
Caption = 'Show Internal Information';
ToolTip = 'Specifies if you want the printed report to show information that is only for internal use.';
}
}
}
}
actions
{
}
}
labels
{
}
trigger OnInitReport()
begin
GLSetup.Get();
CompanyInfo.Get();
ServiceSetup.Get();
case ServiceSetup."Logo Position on Documents" of
ServiceSetup."Logo Position on Documents"::"No Logo":
;
ServiceSetup."Logo Position on Documents"::Left:
CompanyInfo.CalcFields(Picture);
ServiceSetup."Logo Position on Documents"::Center:
begin
CompanyInfo1.Get();
CompanyInfo1.CalcFields(Picture);
end;
ServiceSetup."Logo Position on Documents"::Right:
begin
CompanyInfo2.Get();
CompanyInfo2.CalcFields(Picture);
end;
end;
end;
var
GLSetup: Record "General Ledger Setup";
SalesPurchPerson: Record "Salesperson/Purchaser";
CompanyBankAccount: Record "Bank Account";
ServiceSetup: Record "Service Mgt. Setup";
TempVATAmountLine: Record "VAT Amount Line" temporary;
VATClause: Record "VAT Clause";
DimSetEntry: Record "Dimension Set Entry";
TempServiceShipmentBuffer: Record "Service Shipment Buffer" temporary;
RespCenter: Record "Responsibility Center";
LanguageMgt: Codeunit Language;
FormatAddr: Codeunit "Format Address";
FormatDocument: Codeunit "Format Document";
CustAddr: array[8] of Text[100];
ShipToAddr: array[8] of Text[100];
CompanyAddr: array[8] of Text[100];
SalesPersonText: Text[50];
VATNoText: Text[80];
ReferenceText: Text[80];
AppliedToText: Text;
TotalText: Text[50];
TotalExclVATText: Text[50];
TotalInclVATText: Text[50];
VATClauseText: Text;
MoreLines: Boolean;
NoOfCopies: Integer;
NoOfLoops: Integer;
OutputNo: Integer;
TypeInt: Integer;
CopyText: Text[30];
ShowShippingAddr: Boolean;
DimText: Text[120];
ShowInternalInfo: Boolean;
FirstValueEntryNo: Integer;
PostedReceiptDate: Date;
NextEntryNo: Integer;
TotalAmount: Decimal;
TotalAmountInclVAT: Decimal;
TotalInvDiscAmount: Decimal;
TotalLineAmount: Decimal;
DimTxtArrLength: Integer;
DimTxtArr: array[500] of Text[50];
#pragma warning disable AA0074
#pragma warning disable AA0470
Text003: Label '(Applies to %1 %2)';
#pragma warning restore AA0470
Text004: Label 'COPY';
#pragma warning disable AA0470
Text005: Label 'Service - Credit Memo %1';
Text006: Label 'Page %1';
#pragma warning restore AA0470
#pragma warning restore AA0074
PaymentDiscountonVATCaptionLbl: Label 'Payment Discount on VAT';
UnitPriceCaptionLbl: Label 'Unit Price';
AmountCaptionLbl: Label 'Amount';
PostedReceiptDateCaptionLbl: Label 'Posted Return Receipt Date';
ServiceCrMemoLineLineDiscountCaptionLbl: Label 'Disc. %';
CompanyInfoPhoneNoCaptionLbl: Label 'Phone No.';
CompanyInfoFaxNoCaptionLbl: Label 'Fax No.';
CompanyInfoVATRegistrationNoCaptionLbl: Label 'VAT Reg. No.';
CompanyInfoGiroNoCaptionLbl: Label 'Giro No.';
CompanyInfoBankNameCaptionLbl: Label 'Bank';
CompanyInfoBankAccountNoCaptionLbl: Label 'Account No.';
ServiceCrMemoHeaderNoCaptionLbl: Label 'Credit Memo No.';
ServiceCrMemoHeaderPostingDateCaptionLbl: Label 'Posting Date';
HeaderDimensionsCaptionLbl: Label 'Header Dimensions';
ReturnReceiptCaptionLbl: Label 'Return Receipt';
LineDimensionsCaptionLbl: Label 'Line Dimensions';
#pragma warning disable AA0074
VATClausesCap: Label 'VAT Clause';
#pragma warning restore AA0074
VATAmountLineVATCaptionLbl: Label 'VAT %';
VATBaseCaptionLbl: Label 'VAT Base';
VATAmountLineVATAmnCaptionLbl: Label 'VAT Amount';
VATAmountSpecificationCaptionLbl: Label 'VAT Amount Specification';
VATAmountLineVATIdentifierCaptionLbl: Label 'VAT Identifier';
VATAmountLineInvDiscBaseAmtCaptionLbl: Label 'Inv. Disc. Base Amount';
VATAmountLineLineAmntCaptionLbl: Label 'Line Amount';
TotalCaptionLbl: Label 'Total';
ShiptoAddressCaptionLbl: Label 'Ship-to Address';
InvDiscountAmountCaptionLbl: Label 'Invoice Discount Amount';
SubtotalCaptionLbl: Label 'Subtotal';
protected var
CompanyInfo: Record "Company Information";
CompanyInfo1: Record "Company Information";
CompanyInfo2: Record "Company Information";
procedure FindPostedShipmentDate(): Date
var
TempServiceShipmentBuffer2: Record "Service Shipment Buffer" temporary;
begin
NextEntryNo := 1;
case "Service Cr.Memo Line".Type of
"Service Cr.Memo Line".Type::Item:
GenerateBufferFromValueEntry("Service Cr.Memo Line");
"Service Cr.Memo Line".Type::" ":
exit(0D);
end;
TempServiceShipmentBuffer.Reset();
TempServiceShipmentBuffer.SetRange("Document No.", "Service Cr.Memo Line"."Document No.");
TempServiceShipmentBuffer.SetRange("Line No.", "Service Cr.Memo Line"."Line No.");
if TempServiceShipmentBuffer.Find('-') then begin
TempServiceShipmentBuffer2 := TempServiceShipmentBuffer;
if TempServiceShipmentBuffer.Next() = 0 then begin
TempServiceShipmentBuffer.Get(
TempServiceShipmentBuffer2."Document No.", TempServiceShipmentBuffer2."Line No.", TempServiceShipmentBuffer2."Entry No.");
TempServiceShipmentBuffer.Delete();
exit(TempServiceShipmentBuffer2."Posting Date");
end;
TempServiceShipmentBuffer.CalcSums(Quantity);
if TempServiceShipmentBuffer.Quantity <> "Service Cr.Memo Line".Quantity then begin
TempServiceShipmentBuffer.DeleteAll();
exit("Service Cr.Memo Header"."Posting Date");
end;
end else
exit("Service Cr.Memo Header"."Posting Date");
end;
procedure GenerateBufferFromValueEntry(ServiceCrMemoLine2: Record "Service Cr.Memo Line")
var
ValueEntry: Record "Value Entry";
ItemLedgerEntry: Record "Item Ledger Entry";
TotalQuantity: Decimal;
Quantity: Decimal;
begin
TotalQuantity := ServiceCrMemoLine2."Quantity (Base)";
ValueEntry.SetCurrentKey("Document No.");
ValueEntry.SetRange("Document No.", ServiceCrMemoLine2."Document No.");
ValueEntry.SetRange("Posting Date", "Service Cr.Memo Header"."Posting Date");
ValueEntry.SetRange("Item Charge No.", '');
ValueEntry.SetFilter("Entry No.", '%1..', FirstValueEntryNo);
if ValueEntry.Find('-') then
repeat
if ItemLedgerEntry.Get(ValueEntry."Item Ledger Entry No.") then begin
if ServiceCrMemoLine2."Qty. per Unit of Measure" <> 0 then
Quantity := ValueEntry."Invoiced Quantity" / ServiceCrMemoLine2."Qty. per Unit of Measure"
else
Quantity := ValueEntry."Invoiced Quantity";
AddBufferEntry(
ServiceCrMemoLine2,
-Quantity,
ItemLedgerEntry."Posting Date");
TotalQuantity := TotalQuantity - ValueEntry."Invoiced Quantity";
end;
FirstValueEntryNo := ValueEntry."Entry No." + 1;
until (ValueEntry.Next() = 0) or (TotalQuantity = 0);
end;
procedure AddBufferEntry(ServiceCrMemoLine: Record "Service Cr.Memo Line"; QtyOnShipment: Decimal; PostingDate: Date)
begin
TempServiceShipmentBuffer.SetRange("Document No.", ServiceCrMemoLine."Document No.");
TempServiceShipmentBuffer.SetRange("Line No.", ServiceCrMemoLine."Line No.");
TempServiceShipmentBuffer.SetRange("Posting Date", PostingDate);
if TempServiceShipmentBuffer.Find('-') then begin
TempServiceShipmentBuffer.Quantity := TempServiceShipmentBuffer.Quantity - QtyOnShipment;
TempServiceShipmentBuffer.Modify();
exit;
end;
TempServiceShipmentBuffer.Init();
TempServiceShipmentBuffer."Document No." := ServiceCrMemoLine."Document No.";
TempServiceShipmentBuffer."Line No." := ServiceCrMemoLine."Line No.";
TempServiceShipmentBuffer."Entry No." := NextEntryNo;
TempServiceShipmentBuffer.Type := ServiceCrMemoLine.Type;
TempServiceShipmentBuffer."No." := ServiceCrMemoLine."No.";
TempServiceShipmentBuffer.Quantity := -QtyOnShipment;
TempServiceShipmentBuffer."Posting Date" := PostingDate;
TempServiceShipmentBuffer.Insert();
NextEntryNo := NextEntryNo + 1
end;
procedure FindDimTxt(DimSetID: Integer)
var
Separation: Text[5];
i: Integer;
TxtToAdd: Text[120];
StartNewLine: Boolean;
begin
DimSetEntry.SetRange("Dimension Set ID", DimSetID);
DimTxtArrLength := 0;
for i := 1 to ArrayLen(DimTxtArr) do
DimTxtArr[i] := '';
if not DimSetEntry.FindSet() then
exit;
Separation := '; ';
repeat
TxtToAdd := DimSetEntry."Dimension Code" + ' - ' + DimSetEntry."Dimension Value Code";
if DimTxtArrLength = 0 then
StartNewLine := true
else
StartNewLine := StrLen(DimTxtArr[DimTxtArrLength]) + StrLen(Separation) + StrLen(TxtToAdd) > MaxStrLen(DimTxtArr[1]);
if StartNewLine then begin
DimTxtArrLength += 1;
DimTxtArr[DimTxtArrLength] := TxtToAdd
end else
DimTxtArr[DimTxtArrLength] := DimTxtArr[DimTxtArrLength] + Separation + TxtToAdd;
until DimSetEntry.Next() = 0;
end;
procedure InitializeRequest(NewShowInternalInfo: Boolean)
begin
ShowInternalInfo := NewShowInternalInfo;
end;
local procedure IsReportInPreviewMode(): Boolean
var
MailManagement: Codeunit "Mail Management";
begin
exit(CurrReport.Preview or MailManagement.IsHandlingGetEmailBody());
end;
local procedure FormatAddressFields(var ServiceCrMemoHeader: Record "Service Cr.Memo Header")
var
ServiceFormatAddress: Codeunit "Service Format Address";
begin
FormatAddr.GetCompanyAddr(ServiceCrMemoHeader."Responsibility Center", RespCenter, CompanyInfo, CompanyAddr);
ServiceFormatAddress.ServiceCrMemoBillTo(CustAddr, ServiceCrMemoHeader);
ShowShippingAddr := ServiceFormatAddress.ServiceCrMemoShipTo(ShipToAddr, CustAddr, ServiceCrMemoHeader);
end;
local procedure FormatDocumentFields(ServiceCrMemoHeader: Record "Service Cr.Memo Header")
begin
FormatDocument.SetTotalLabels(ServiceCrMemoHeader."Currency Code", TotalText, TotalInclVATText, TotalExclVATText);
FormatDocument.SetSalesPerson(SalesPurchPerson, ServiceCrMemoHeader."Salesperson Code", SalesPersonText);
ReferenceText := FormatDocument.SetText(ServiceCrMemoHeader."Your Reference" <> '', ServiceCrMemoHeader.FieldCaption("Your Reference"));
VATNoText := FormatDocument.SetText(ServiceCrMemoHeader."VAT Registration No." <> '', ServiceCrMemoHeader.FieldCaption("VAT Registration No."));
AppliedToText :=
FormatDocument.SetText(
ServiceCrMemoHeader."Applies-to Doc. No." <> '', Format(StrSubstNo(Text003, Format(ServiceCrMemoHeader."Applies-to Doc. Type"), ServiceCrMemoHeader."Applies-to Doc. No.")));
end;
}