codeunit 12064002 "LTC Customs Invoice Layout" { TableNo = "LTC Consignment Header"; trigger OnRun() var CompanyInfo: Record "Company Information"; SenderAddress: Record "LTC Consignment Address"; RecipientAddress: Record "LTC Consignment Address"; PrintLayout: Record "LTC Custom Print Layout"; RespCenter: Record "Responsibility Center"; TempItemLineBuffer: Record "LTC Consignment Item Line" temporary; TempConsText: Record "LTC Consignment Text2" temporary; CustomLayoutConstant: Record "LTC Custom Print Constant"; TenantMedia: Record "Tenant Media"; Package: Record "LTC Package"; CustomLayoutHelper: Codeunit "LTC Custom Layout Helper"; FormatHelper: Codeunit "LTC Format Helper"; FormatAddr: Codeunit "Format Address"; CreateCustInvNode: Codeunit "LTC ConsHeadCustInvNode2"; Base64Convert: Codeunit "Base64 Convert"; Font: Enum "LTC Font"; CurrNode: XmlNode; InStr: InStream; CopyCount: Integer; i: Integer; TotalLineCount: Integer; PageCounter: Integer; TotalPageCount: Integer; NextLineNo: Integer; xLineNo: Integer; LinesPerPage: Integer; LinesStartXpos: Integer; LineCounter: Integer; FooterStartXpos: Integer; SenderEori: Text[100]; SenderEoriGB: Text[100]; RecipientEori: Text[100]; RecipientEoriGB: Text[100]; SenderVoec: Text[100]; CompanyAddr: array[8] of Text[100]; SenderAddr: array[8] of Text[100]; RecipientAddr: array[8] of Text[100]; DocTitleLbl: Label 'Invoice', Locked = true; PageCountLbl: Label 'Page %1 (%2)', Locked = true; begin //>> Get data if Rec."Customs Invoice No." = '' then exit; CreateCustInvNode.BufferItemLines(Rec, TempItemLineBuffer); if TempItemLineBuffer.IsEmpty() then exit; CreateCustInvNode.FillTempInvText(Rec, TempConsText); if TempConsText.FindSet() then begin TempItemLineBuffer.FindLast(); NextLineNo := TempItemLineBuffer."Line No." + 10000; TempItemLineBuffer.Init(); TempItemLineBuffer."Line No." := NextLineNo; TempItemLineBuffer.Insert(); NextLineNo += 10000; repeat TempItemLineBuffer.Init(); TempItemLineBuffer."Line No." := NextLineNo; TempItemLineBuffer.Description := TempConsText.Description; TempItemLineBuffer.Insert(); NextLineNo += 10000; until TempConsText.Next() = 0; end; TotalLineCount := TempItemLineBuffer.Count(); CustomLayoutHelper.GetPrintLayout(PrintLayout); CompanyInfo.Get(); FormatAddr.SetLanguageCode('ENU'); FormatAddr.GetCompanyAddr('', RespCenter, CompanyInfo, CompanyAddr); if not SenderAddress.Get(Rec."No.", SenderAddress.Type::Sender) then SenderAddress.Init(); FormatAddr.FormatAddr(SenderAddr, SenderAddress.Name, '', SenderAddress."Contact Person", SenderAddress.Address, SenderAddress."Address 2", SenderAddress.City, SenderAddress."Post Code", SenderAddress.County, SenderAddress."Country/Region Code"); if not RecipientAddress.Get(Rec."No.", RecipientAddress.Type::Recipient) then RecipientAddress.Init(); FormatAddr.FormatAddr(RecipientAddr, RecipientAddress.Name, '', RecipientAddress."Contact Person", RecipientAddress.Address, RecipientAddress."Address 2", RecipientAddress.City, RecipientAddress."Post Code", RecipientAddress.County, RecipientAddress."Country/Region Code"); SetEoriVoec(RecipientAddress, SenderEori, SenderEoriGB, RecipientEori, RecipientEoriGB, SenderVoec); //<< Get data //>> Layout definition TotalLineCount += 10; //Make room for signature and totals Font := Font::"Segoe UI"; LinesPerPage := 39; LinesStartXpos := 100; TotalPageCount := Round(TotalLineCount / LinesPerPage, 1, '>'); FooterStartXpos := 265; for CopyCount := 1 to PrintLayout."No. of Copies" do begin TempItemLineBuffer.FindSet(); for PageCounter := 1 to TotalPageCount do begin CustomLayoutHelper.AddPage(CurrNode); CustomLayoutHelper.AddText(CurrNode, DocTitleLbl, 110, 8, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 14, true, false); CustomLayoutHelper.AddLine(CurrNode, 20, 17, 190, 17, Enum::"LTC Color"::LightGray, Enum::"LTC Color"::Transparent, 0.2); CustomLayoutHelper.AddLine(CurrNode, 105, 17, 105, 73, Enum::"LTC Color"::LightGray, Enum::"LTC Color"::Transparent, 0.2); CustomLayoutHelper.AddLine(CurrNode, 20, 73, 190, 73, Enum::"LTC Color"::LightGray, Enum::"LTC Color"::Transparent, 0.2); CustomLayoutHelper.AddLine(CurrNode, 20, 24, 190, 24, Enum::"LTC Color"::LightGray, Enum::"LTC Color"::Transparent, 0.2); CustomLayoutHelper.AddLine(CurrNode, 20, 92, 190, 92, Enum::"LTC Color"::LightGray, Enum::"LTC Color"::Transparent, 0.2); CustomLayoutHelper.AddText(CurrNode, 'Sender', 20, 18.5, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, true, false); for i := 1 to 8 do if SenderAddr[i] <> '' then begin CustomLayoutHelper.AddText(CurrNode, SenderAddr[i], 20, 25 + ((i - 1) * 4), 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); end; CustomLayoutHelper.AddText(CurrNode, 'Phone No.', 20, 55, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, SenderAddress."Phone No.", 60, 55, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, 'VAT Reg. No.', 20, 59, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, SenderAddress."VAT Registration No.", 60, 59, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); case true of SenderEori <> '': begin CustomLayoutHelper.AddText(CurrNode, 'Eori', 20, 63, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, SenderEori, 60, 63, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); end; SenderEoriGB <> '': begin CustomLayoutHelper.AddText(CurrNode, 'Eori GB', 20, 63, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, SenderEoriGB, 60, 63, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); end; SenderVoec <> '': begin CustomLayoutHelper.AddText(CurrNode, 'Voec', 20, 63, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, SenderVoec, 60, 63, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); end; end; CustomLayoutHelper.AddText(CurrNode, 'Reference', 20, 67, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, SenderAddress.Reference, 60, 67, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, 'Consignment No.', 20, 74, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, Rec."No.", 60, 74, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, 'Invoice No.', 20, 78, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, Rec."Customs Invoice No.", 60, 78, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, 'Invoice Date', 20, 82, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, Format(Rec."Shipment Date"), 60, 82, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, 'Invoice Declaration', 20, 86, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, Rec."Customs Invoice Declaration", 60, 86, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, 'Recipient', 110, 18.5, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, true, false); for i := 1 to 8 do if RecipientAddr[i] <> '' then begin CustomLayoutHelper.AddText(CurrNode, RecipientAddr[i], 110, 25 + ((i - 1) * 4), 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); end; CustomLayoutHelper.AddText(CurrNode, 'Phone No.', 110, 55, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, RecipientAddress."Phone No.", 150, 55, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, 'VAT Reg. No.', 110, 59, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, RecipientAddress."VAT Registration No.", 150, 59, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); case true of RecipientEori <> '': begin CustomLayoutHelper.AddText(CurrNode, 'Eori', 110, 63, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, RecipientEori, 150, 63, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); end; RecipientEoriGB <> '': begin CustomLayoutHelper.AddText(CurrNode, 'Eori GB', 110, 63, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, RecipientEoriGB, 150, 63, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); end; end; CustomLayoutHelper.AddText(CurrNode, 'Reference', 110, 67, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, RecipientAddress.Reference, 150, 67, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, 'Terms of Payment', 110, 74, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, GetTermsOfPaymentDescription(Rec), 150, 74, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, 'Shipment Method', 110, 78, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, GetShipmentMethodDescription(Rec), 150, 78, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, 'Export Type', 110, 82, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); case Rec."Customs Inv. Export Type" of Rec."Customs Inv. Export Type"::Permanent: CustomLayoutHelper.AddText(CurrNode, 'Permanent', 150, 82, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); Rec."Customs Inv. Export Type"::"Re-Export": CustomLayoutHelper.AddText(CurrNode, 'Re-Export', 150, 82, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); Rec."Customs Inv. Export Type"::Temporary: CustomLayoutHelper.AddText(CurrNode, 'Temporary', 150, 82, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); end; CustomLayoutHelper.AddText(CurrNode, 'Reason for Export', 110, 86, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, Rec."Customs Inv. Reason for Export", 150, 86, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, 'Description', 20, 97, 69, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, true, false); CustomLayoutHelper.AddText(CurrNode, 'Quantity', 70, 97, 15, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Right, Font, 8, true, false); CustomLayoutHelper.AddText(CurrNode, 'Unit Price', 86, 97, 15, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Right, Font, 8, true, false); CustomLayoutHelper.AddText(CurrNode, 'Amount', 102, 97, 20, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Right, Font, 8, true, false); CustomLayoutHelper.AddText(CurrNode, 'Net Weight', 123, 93, 15, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Right, Font, 8, true, false); CustomLayoutHelper.AddText(CurrNode, 'Gross Weight', 139, 93, 15, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Right, Font, 8, true, false); CustomLayoutHelper.AddText(CurrNode, 'Tariff No.', 155, 97, 20, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, true, false); CustomLayoutHelper.AddText(CurrNode, 'Country of Origin', 176, 93, 14, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, true, false); CustomLayoutHelper.AddLine(CurrNode, 20, 102, 190, 102, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, 0.3); Clear(LineCounter); if TempItemLineBuffer."Line No." <> xLineNo then repeat LineCounter += 1; CustomLayoutHelper.AddText(CurrNode, TempItemLineBuffer.Description, 20, LinesStartXpos + (LineCounter * 4), 69, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); if TempItemLineBuffer.Quantity <> 0 then CustomLayoutHelper.AddText(CurrNode, Format(TempItemLineBuffer.Quantity), 70, LinesStartXpos + (LineCounter * 4), 15, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Right, Font, 8, false, false); if TempItemLineBuffer."Unit Price" <> 0 then CustomLayoutHelper.AddText(CurrNode, Format(TempItemLineBuffer."Unit Price"), 86, LinesStartXpos + (LineCounter * 4), 15, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Right, Font, 8, false, false); if TempItemLineBuffer.Amount <> 0 then CustomLayoutHelper.AddText(CurrNode, Format(TempItemLineBuffer.Amount), 102, LinesStartXpos + (LineCounter * 4), 20, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Right, Font, 8, false, false); if TempItemLineBuffer."Net Weight" <> 0 then CustomLayoutHelper.AddText(CurrNode, Format(FormatHelper.ConvertInternalWeight(TempItemLineBuffer."Net Weight")), 123, LinesStartXpos + (LineCounter * 4), 15, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Right, Font, 8, false, false); if TempItemLineBuffer."Gross Weight" <> 0 then CustomLayoutHelper.AddText(CurrNode, Format(FormatHelper.ConvertInternalWeight(TempItemLineBuffer."Gross Weight")), 139, LinesStartXpos + (LineCounter * 4), 15, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Right, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, TempItemLineBuffer."Tariff No.", 155, LinesStartXpos + (LineCounter * 4), 20, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, TempItemLineBuffer."Country/Region of Origin Code", 176, LinesStartXpos + (LineCounter * 4), 14, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); xLineNo := TempItemLineBuffer."Line No."; until (TempItemLineBuffer.Next() = 0) or (LineCounter = LinesPerPage); if PageCounter = TotalPageCount then begin CustomLayoutHelper.AddLine(CurrNode, 20, 223, 190, 223, Enum::"LTC Color"::LightGray, Enum::"LTC Color"::Transparent, 0.3); CustomLayoutHelper.AddLine(CurrNode, 105, 223, 105, FooterStartXpos - 2, Enum::"LTC Color"::LightGray, Enum::"LTC Color"::Transparent, 0.2); CustomLayoutHelper.AddLine(CurrNode, 20, FooterStartXpos - 2, 190, FooterStartXpos - 2, Enum::"LTC Color"::LightGray, Enum::"LTC Color"::Transparent, 0.3); CustomLayoutHelper.AddText(CurrNode, 'We hereby certify that the information on this invoice is correct and that the contents of this shipment are as stated above.', 20, 225, 80, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, 'Signature', 20, 248, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); CustomLayoutConstant.Get(PrintLayout.Code, 'SIGNEEPICTURE'); if CustomLayoutConstant.Picture.Count > 0 then begin TenantMedia.Get(CustomLayoutConstant.Picture.Item(1)); TenantMedia.CalcFields(Content); TenantMedia.Content.CreateInStream(InStr); CustomLayoutHelper.AddBitmap(CurrNode, Base64Convert.ToBase64(InStr), Enum::"LTC Bitmap Source Type"::Embedded, 60, 232, 40, 20, 0, Enum::"LTC Alignment"::Left, Enum::"LTC Vertical Alignment2"::Bottom); end else CustomLayoutHelper.AddText(CurrNode, '____________________________', 60, 248, 40, 20, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, 'Signee', 20, 252, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, Rec."Customs Invoice Signee", 60, 252, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, 'Signee Position', 20, 256, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, Rec."Customs Inv. Signee position", 60, 256, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); TempItemLineBuffer.CalcSums(Amount, "Net Weight", "Gross Weight"); Rec.CalcFields(Weight); Package.SetCurrentKey("Consignment No."); Package.SetRange("Consignment No.", Rec."No."); CustomLayoutHelper.AddText(CurrNode, StrSubstNo('Declared Value %1', Rec."Currency Code"), 130, 225, 40, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Right, Font, 8, true, false); CustomLayoutHelper.AddText(CurrNode, Format(TempItemLineBuffer.Amount), 162, 225, 28, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Right, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, 'Net Weight', 130, 229, 40, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Right, Font, 8, true, false); CustomLayoutHelper.AddText(CurrNode, Format(FormatHelper.ConvertInternalWeight(TempItemLineBuffer."Net Weight")), 162, 229, 28, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Right, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, 'Gross Weight', 130, 233, 40, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Right, Font, 8, true, false); CustomLayoutHelper.AddText(CurrNode, Format(FormatHelper.ConvertInternalWeight(TempItemLineBuffer."Gross Weight")), 162, 233, 28, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Right, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, 'Consignment Weight', 130, 237, 40, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Right, Font, 8, true, false); CustomLayoutHelper.AddText(CurrNode, Format(FormatHelper.ConvertInternalWeight(Rec.Weight)), 162, 237, 28, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Right, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, 'Consignment Units', 130, 241, 40, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Right, Font, 8, true, false); CustomLayoutHelper.AddText(CurrNode, Format(Package.Count()), 162, 241, 28, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Right, Font, 8, false, false); end; CustomLayoutHelper.AddLine(CurrNode, 20, FooterStartXpos, 190, FooterStartXpos, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, 0.2); FooterStartXpos += 1; for i := 1 to 8 do if CompanyAddr[i] <> '' then begin CustomLayoutHelper.AddText(CurrNode, CompanyAddr[i], 20, FooterStartXpos + ((i - 1) * 4), 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, i = 1, false); end; CustomLayoutHelper.AddText(CurrNode, 'Phone No.', 60, FooterStartXpos, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, CompanyInfo."Phone No.", 80, FooterStartXpos, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, 'Home Page', 60, FooterStartXpos + 4, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, CompanyInfo."Home Page", 80, FooterStartXpos + 4, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, 'E-mail', 60, FooterStartXpos + 8, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, CompanyInfo."E-Mail", 80, FooterStartXpos + 8, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, 'VAT Reg. No.', 60, FooterStartXpos + 12, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, CompanyInfo."VAT Registration No.", 80, FooterStartXpos + 12, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, 'Bank Giro No.', 120, FooterStartXpos, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, CompanyInfo."Giro No.", 140, FooterStartXpos, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, 'IBAN', 120, FooterStartXpos + 4, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, CompanyInfo.IBAN, 140, FooterStartXpos + 4, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, 'SWIFT', 120, FooterStartXpos + 8, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, CompanyInfo."SWIFT Code", 140, FooterStartXpos + 8, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Font, 8, false, false); CustomLayoutHelper.AddText(CurrNode, StrSubstNo(PageCountLbl, PageCounter, TotalPageCount), 170, FooterStartXpos + 12, 20, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Right, Font, 8, false, false); //<< Layout definition end; end; // Return XML-node CustomLayoutHelper.SetNode(CurrNode); end; local procedure GetTermsOfPaymentDescription(var ConsHead: Record "LTC Consignment Header"): Text var SalesHeader: Record "Sales Header"; SalesShipHeader: Record "Sales Shipment Header"; ServiceHeader: Record "Service Header"; ServiceShipHeader: Record "Service Shipment Header"; begin case ConsHead."Source Document Type" of ConsHead."Source Document Type"::"Sales Order": if SalesHeader.Get(SalesHeader."Document Type"::Order, ConsHead."Source Document No.") then exit(GetTermsOfPaymentTranslation(SalesHeader."Payment Terms Code", SalesHeader."Language Code")); ConsHead."Source Document Type"::"Sales Shipment": if SalesShipHeader.Get(ConsHead."Source Document No.") then exit(GetTermsOfPaymentTranslation(SalesShipHeader."Payment Terms Code", SalesShipHeader."Language Code")); ConsHead."Source Document Type"::"Service Order": if ServiceHeader.Get(ServiceHeader."Document Type"::Order, ConsHead."Source Document No.") then exit(GetTermsOfPaymentTranslation(ServiceHeader."Payment Terms Code", ServiceHeader."Language Code")); ConsHead."Source Document Type"::"Service Shipment": if ServiceShipHeader.Get(ConsHead."Source Document No.") then exit(GetTermsOfPaymentTranslation(ServiceShipHeader."Payment Terms Code", ServiceShipHeader."Language Code")); end; end; local procedure GetTermsOfPaymentTranslation(TermsOfPaymentCode: Code[10]; LanguageCode: Code[10]): Text var PaymentTermTrans: Record "Payment Term Translation"; PaymentTerms: Record "Payment Terms"; WindowsLanguage: Record "Windows Language"; begin case true of WindowsLanguage.Get(1033) and PaymentTermTrans.Get(TermsOfPaymentCode, WindowsLanguage."Abbreviated Name"): exit(PaymentTermTrans.Description); PaymentTermTrans.Get(TermsOfPaymentCode, LanguageCode): exit(PaymentTermTrans.Description) else if PaymentTerms.Get(TermsOfPaymentCode) then exit(PaymentTerms.Description) end; end; local procedure GetShipmentMethodDescription(var ConsHead: Record "LTC Consignment Header"): Text var SalesHeader: Record "Sales Header"; SalesShipHeader: Record "Sales Shipment Header"; ServiceHeader: Record "Service Header"; ServiceShipHeader: Record "Service Shipment Header"; begin case ConsHead."Source Document Type" of ConsHead."Source Document Type"::"Sales Order": if SalesHeader.Get(SalesHeader."Document Type"::Order, ConsHead."Source Document No.") then exit(GetShipmentMethodTranslation(SalesHeader."Shipment Method Code", SalesHeader."Language Code")); ConsHead."Source Document Type"::"Sales Shipment": if SalesShipHeader.Get(ConsHead."Source Document No.") then exit(GetShipmentMethodTranslation(SalesShipHeader."Shipment Method Code", SalesShipHeader."Language Code")); ConsHead."Source Document Type"::"Service Order": if ServiceHeader.Get(ServiceHeader."Document Type"::Order, ConsHead."Source Document No.") then exit(GetShipmentMethodTranslation(ServiceHeader."Shipment Method Code", ServiceHeader."Language Code")); ConsHead."Source Document Type"::"Service Shipment": if ServiceShipHeader.Get(ConsHead."Source Document No.") then exit(GetShipmentMethodTranslation(ServiceShipHeader."Shipment Method Code", ServiceShipHeader."Language Code")); end; end; local procedure GetShipmentMethodTranslation(ShipmentMethodCode: Code[10]; LanguageCode: Code[10]): Text var ShipMethodTrans: Record "Shipment Method Translation"; ShipMethod: Record "Shipment Method"; WindowsLanguage: Record "Windows Language"; begin case true of WindowsLanguage.Get(1033) and ShipMethodTrans.Get(ShipmentMethodCode, WindowsLanguage."Abbreviated Name"): exit(ShipMethodTrans.Description); ShipMethodTrans.Get(ShipmentMethodCode, LanguageCode): exit(ShipMethodTrans.Description) else if ShipMethod.Get(ShipmentMethodCode) then exit(ShipMethod.Description) end; end; local procedure SetEoriVoec(var ConsAddress: Record "LTC Consignment Address"; var SenderEori: Text[100]; var SenderEoriGB: Text[100]; var RecipientEori: Text[100]; var RecipientEoriGB: Text[100]; var SenderVoec: Text[100]) var AddressIdentifier: Record "LTC Address Identifier"; CountryRegion: Record "Country/Region"; begin case ConsAddress."Country/Region Code" of //ConsAddress is recipient 'GB': begin if AddressIdentifier.Get(ConsAddress."Consignment No.", ConsAddress.Type::Sender, 'EoriGB') then SenderEoriGB := AddressIdentifier.Value; if AddressIdentifier.Get(ConsAddress."Consignment No.", ConsAddress.Type::Recipient, 'EoriGB') then RecipientEoriGB := AddressIdentifier.Value; end; 'NO': if AddressIdentifier.Get(ConsAddress."Consignment No.", ConsAddress.Type::Sender, 'VoecIdNumber') then SenderVoec := AddressIdentifier.Value; else if ConsAddress."Country/Region Code" <> '' then if CountryRegion.IsEUCountry(ConsAddress."Country/Region Code") then begin if AddressIdentifier.Get(ConsAddress."Consignment No.", ConsAddress.Type::Sender, 'Eori') then SenderEori := AddressIdentifier.Value; if AddressIdentifier.Get(ConsAddress."Consignment No.", ConsAddress.Type::Recipient, 'Eori') then RecipientEori := AddressIdentifier.Value; end; end; end; [EventSubscriber(ObjectType::Table, Database::"LTC Custom Print Layout", 'OnAfterValidateEvent', 'Codeunit No.', false, false)] local procedure OnAfterValidateCodeunitNo(var Rec: Record "LTC Custom Print Layout") var CustomPrintLayoutConstant: Record "LTC Custom Print Constant"; begin Rec."Top Margin" := 0; if not CustomPrintLayoutConstant.Get(Rec.Code, 'SIGNEEPICTURE') then begin CustomPrintLayoutConstant.Init(); CustomPrintLayoutConstant.Type := CustomPrintLayoutConstant.Type::Picture; CustomPrintLayoutConstant."Custom Print Layout Code" := Rec.Code; CustomPrintLayoutConstant.Code := 'SIGNEEPICTURE'; CustomPrintLayoutConstant.Insert(); end; end; }