codeunit 12063955 "LTC SSCC Label Layout" { TableNo = "LTC Package"; trigger OnRun() var CompanyInfo: Record "Company Information"; PackageItemLine: Record "LTC Package Item Line"; Item: Record Item; CountryRegion: Record "Country/Region"; ConsAddress: Record "LTC Consignment Address"; PrintLayout: Record "LTC Custom Print Layout"; CustomLayoutHelper: Codeunit "LTC Custom Layout Helper"; FormatHelper: Codeunit "LTC Format Helper"; CurrNode: XmlNode; xItemNo: Code[20]; xLotNo: Code[50]; MixedLot: Boolean; xExpDate: Date; TotalItemQty: Decimal; MixedExpDate: Boolean; BarcodeData1Lbl: Label '(02)%1(15)%2(37)%3', Locked = true; BarcodeData1NoBBDLbl: Label '(02)%1(37)%2', Locked = true; BarcodeData2NoLotLbl: Label '(00)%1', Locked = true; BarcodeData2Lbl: Label '(00)%1(10)%2', Locked = true; BarcodeData1: Text; BarcodeData2: Text; LotNoText: Text; ExpDateBarcodeText: Text; ExpDateLabelText: Text; CopyCount: Integer; ItemCountErr: Label 'An error occured while printing a custom layout for package %1.\\The package must include one single item number for usage with this label.'; NoItemsErr: Label 'An error occured while printing a custom layout for package %1.\\The package has no item lines'; FromLbl: label 'From:'; ToLbl: label 'To:'; SSCCLbl: Label 'SSCC', Locked = true; GTINLbl: Label 'GTIN', Locked = true; QtyLbl: Label 'Quantity'; LotLbl: Label 'Lot number'; BestBeforeLbl: Label 'Best before date'; GTINLengthErr: Label 'The GTIN of item %1 must be 14 characters long.'; begin //>> Get data CustomLayoutHelper.GetPrintLayout(PrintLayout); Rec.TestField(SSCC, true); CompanyInfo.Get(); if Rec."Consignment No." <> '' then ConsAddress.Get(Rec."Consignment No.", ConsAddress.Type::Delivery); PackageItemLine.SetRange("Package ID", Rec.ID); if PackageItemLine.FindSet() then repeat if (xItemNo <> '') and (PackageItemLine."Item No." <> xItemNo) then Error(ItemCountErr, Rec.ID); if (xLotNo <> '') and (PackageItemLine."Lot No." <> xLotNo) then MixedLot := true; if (xExpDate <> 0D) and (PackageItemLine."Expiration Date" <> xExpDate) then MixedExpDate := true; xItemNo := PackageItemLine."Item No."; xLotNo := PackageItemLine."Lot No."; xExpDate := PackageItemLine."Expiration Date"; TotalItemQty += PackageItemLine.Quantity; until PackageItemLine.Next() = 0 else Error(NoItemsErr, Rec.ID); if not (MixedLot or (PackageItemLine."Lot No." = '')) then LotNoText := PackageItemLine."Lot No."; if not (MixedExpDate or (PackageItemLine."Expiration Date" = 0D)) then begin ExpDateBarcodeText := Format(PackageItemLine."Expiration Date", 0, ''); ExpDateLabelText := Format(PackageItemLine."Expiration Date", 0, '') end; Item.Get(PackageItemLine."Item No."); Item.TestField(GTIN); If StrLen(Item.GTIN) <> 14 then Error(GTINLengthErr, Item."No."); if ExpDateBarcodeText <> '' then BarcodeData1 := StrSubstNo(BarcodeData1Lbl, Item.GTIN, ExpDateBarcodeText, FormatHelper.FormatDecimal(TotalItemQty)) else BarcodeData1 := StrSubstNo(BarcodeData1NoBBDLbl, Item.GTIN, FormatHelper.FormatDecimal(TotalItemQty)); if LotNoText <> '' then BarcodeData2 := StrSubstNo(BarcodeData2Lbl, Rec."Package No.", LotNoText) else BarcodeData2 := StrSubstNo(BarcodeData2NoLotLbl, Rec."Package No."); //<< Get data for CopyCount := 1 to PrintLayout."No. of Copies" do begin CustomLayoutHelper.AddPage(CurrNode); //Adds a page and returns the XML Node to add information to the page //>> Layout definition if Rec."Consignment No." = '' then begin CustomLayoutHelper.AddText(CurrNode, CompanyInfo.Name, 50, 10, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Center, Enum::"LTC Font"::Arial, 14, true, false); CustomLayoutHelper.AddText(CurrNode, CompanyInfo."Ship-to Address", 50, 16, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Center, Enum::"LTC Font"::Arial, 8, false, false); CustomLayoutHelper.AddText(CurrNode, CompanyInfo."Ship-to Post Code" + ' ' + CompanyInfo."Ship-to City", 50, 20, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Center, Enum::"LTC Font"::Arial, 8, false, false); if CompanyInfo."Ship-to Country/Region Code" <> '' then begin CountryRegion.Get(CompanyInfo."Ship-to Country/Region Code"); CustomLayoutHelper.AddText(CurrNode, UpperCase(CountryRegion.Name), 50, 24, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Center, Enum::"LTC Font"::Arial, 8, false, false); end; end else begin CustomLayoutHelper.AddText(CurrNode, FromLbl, 10, 10, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Enum::"LTC Font"::Arial, 8, true, false); CustomLayoutHelper.AddText(CurrNode, CompanyInfo.Name, 10, 15, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Enum::"LTC Font"::Arial, 8, true, false); CustomLayoutHelper.AddText(CurrNode, CompanyInfo."Ship-to Address", 10, 19, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Enum::"LTC Font"::Arial, 8, false, false); CustomLayoutHelper.AddText(CurrNode, CompanyInfo."Ship-to Post Code" + ' ' + CompanyInfo."Ship-to City", 10, 23, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Enum::"LTC Font"::Arial, 8, false, false); if CompanyInfo."Ship-to Country/Region Code" <> '' then begin CountryRegion.Get(CompanyInfo."Ship-to Country/Region Code"); CustomLayoutHelper.AddText(CurrNode, UpperCase(CountryRegion.Name), 10, 27, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Enum::"LTC Font"::Arial, 8, false, false); end; CustomLayoutHelper.AddLine(CurrNode, 50, 10, 50, 34, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, 0.4); CustomLayoutHelper.AddText(CurrNode, ToLbl, 51, 10, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Enum::"LTC Font"::Arial, 8, true, false); CustomLayoutHelper.AddText(CurrNode, ConsAddress.Name, 51, 15, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Enum::"LTC Font"::Arial, 8, true, false); CustomLayoutHelper.AddText(CurrNode, ConsAddress.Address, 51, 19, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Enum::"LTC Font"::Arial, 8, false, false); CustomLayoutHelper.AddText(CurrNode, ConsAddress."Post Code" + ' ' + ConsAddress.City, 51, 23, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Enum::"LTC Font"::Arial, 8, false, false); if ConsAddress."Country/Region Code" <> '' then begin CountryRegion.Get(ConsAddress."Country/Region Code"); CustomLayoutHelper.AddText(CurrNode, UpperCase(CountryRegion.Name), 51, 27, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Enum::"LTC Font"::Arial, 8, false, false); end; end; CustomLayoutHelper.AddLine(CurrNode, 10, 34, 94, 34, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, 0.4); CustomLayoutHelper.AddText(CurrNode, SSCCLbl, 10, 37, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Enum::"LTC Font"::Arial, 12, true, false); CustomLayoutHelper.AddText(CurrNode, Rec."Package No.", 10, 42, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Enum::"LTC Font"::Arial, 12, true, false); CustomLayoutHelper.AddText(CurrNode, GTINLbl, 10, 57, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Enum::"LTC Font"::Arial, 12, true, false); CustomLayoutHelper.AddText(CurrNode, Item.GTIN, 10, 62, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Enum::"LTC Font"::Arial, 12, true, false); CustomLayoutHelper.AddText(CurrNode, QtyLbl, 65, 57, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Enum::"LTC Font"::Arial, 12, true, false); CustomLayoutHelper.AddText(CurrNode, FormatHelper.FormatDecimal(TotalItemQty), 65, 62, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Enum::"LTC Font"::Arial, 12, true, false); CustomLayoutHelper.AddText(CurrNode, BestBeforeLbl, 10, 77, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Enum::"LTC Font"::Arial, 12, true, false); CustomLayoutHelper.AddText(CurrNode, ExpDateLabelText, 10, 82, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Enum::"LTC Font"::Arial, 12, true, false); CustomLayoutHelper.AddText(CurrNode, LotLbl, 65, 77, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Enum::"LTC Font"::Arial, 12, true, false); CustomLayoutHelper.AddText(CurrNode, LotNoText, 65, 82, 0, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Left, Enum::"LTC Font"::Arial, 12, true, false); CustomLayoutHelper.AddLine(CurrNode, 10, 92, 94, 92, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, 0.4); CustomLayoutHelper.AddEAN128Barcode(CurrNode, BarcodeData1, 7, 96, 90, 30, 0, Enum::"LTC Alignment"::Center, false, '', '', false, 0.5, Enum::"LTC String Encoding"::None, Enum::"LTC Font"::"Microsoft Sans Serif", 10, false, false, false); CustomLayoutHelper.AddText(CurrNode, BarcodeData1, 5, 128, 99, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Center, Enum::"LTC Font"::Arial, 9, true, false); CustomLayoutHelper.AddEAN128Barcode(CurrNode, BarcodeData2, 7, 135, 90, 30, 0, Enum::"LTC Alignment"::Center, false, '', '', false, 0.5, Enum::"LTC String Encoding"::None, Enum::"LTC Font"::"Microsoft Sans Serif", 10, false, false, false); CustomLayoutHelper.AddText(CurrNode, BarcodeData2, 5, 167, 99, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Center, Enum::"LTC Font"::Arial, 9, true, false); CustomLayoutHelper.AddText(CurrNode, 'Logtrade Connect for Microsoft Dynamics 365 Business Central', 5, 172, 99, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Center, Enum::"LTC Font"::Arial, 7, false, false); CustomLayoutHelper.AddText(CurrNode, 'Copyright© ' + Format(WorkDate(), 0, '') + ' Logtrade Technology AB', 5, 175, 99, 0, 0, Enum::"LTC Color"::Black, Enum::"LTC Color"::Transparent, Enum::"LTC Alignment"::Center, Enum::"LTC Font"::Arial, 7, false, false); //<< Layout definition end; // Return XML-node CustomLayoutHelper.SetNode(CurrNode); end; }