sir did you mean ,in presection() and post section();
i havent written any code in presection and posection,but i am sending the remaining code
Documentation()
Integer, Footer (3) - OnPreSection()
Integer, Footer (3) - OnPostSection()
InitLogInteraction()
LogInteraction := SegManagement.FindInteractTmplCode(4) <> ‘’;
FindPostedShipmentDate() : Date
NextEntryNo := 1;
IF “Sales Invoice Line”.“Shipment No.” <> ‘’ THEN
IF SalesShipmentHeader.GET(“Sales Invoice Line”.“Shipment No.”) THEN
EXIT(SalesShipmentHeader.“Posting Date”);
IF “Sales Invoice Header”.“Order No.”=’’ THEN
EXIT(“Sales Invoice Header”.“Posting Date”);
CASE “Sales Invoice Line”.Type OF
“Sales Invoice Line”.Type::Item:
GenerateBufferFromValueEntry(“Sales Invoice Line”);
“Sales Invoice Line”.Type::“G/L Account”,“Sales Invoice Line”.Type::Resource,
“Sales Invoice Line”.Type::“Charge (Item)”,“Sales Invoice Line”.Type::“Fixed Asset”:
GenerateBufferFromShipment(“Sales Invoice Line”);
“Sales Invoice Line”.Type::" ":
EXIT(0D);
END;
SalesShipmentBuffer.RESET;
SalesShipmentBuffer.SETRANGE(“Document No.”,“Sales Invoice Line”.“Document No.”);
SalesShipmentBuffer.SETRANGE(“Line No.” ,“Sales Invoice Line”.“Line No.”);
IF SalesShipmentBuffer.FIND(’-’) THEN BEGIN
SalesShipmentBuffer2 := SalesShipmentBuffer;
IF SalesShipmentBuffer.NEXT = 0 THEN BEGIN
SalesShipmentBuffer.GET(
SalesShipmentBuffer2.“Document No.”,SalesShipmentBuffer2.“Line No.”,SalesShipmentBuffer2.“Entry No.”);
SalesShipmentBuffer.DELETE;
EXIT(SalesShipmentBuffer2.“Posting Date”);
END ;
SalesShipmentBuffer.CALCSUMS(Quantity);
IF SalesShipmentBuffer.Quantity <> “Sales Invoice Line”.Quantity THEN BEGIN
SalesShipmentBuffer.DELETEALL;
EXIT(“Sales Invoice Header”.“Posting Date”);
END;
END ELSE
EXIT(“Sales Invoice Header”.“Posting Date”);
GenerateBufferFromValueEntry(SalesInvoiceLine2 : Record “Sales Invoice Line”)
TotalQuantity := SalesInvoiceLine2.“Quantity (Base)”;
ValueEntry.SETCURRENTKEY(“Document No.”);
ValueEntry.SETRANGE(“Document No.”,SalesInvoiceLine2.“Document No.”);
ValueEntry.SETRANGE(“Posting Date”,“Sales Invoice 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 SalesInvoiceLine2.“Qty. per Unit of Measure” <> 0 THEN
Quantity := ValueEntry.“Invoiced Quantity” / SalesInvoiceLine2.“Qty. per Unit of Measure”
ELSE
Quantity := ValueEntry.“Invoiced Quantity”;
AddBufferEntry(
SalesInvoiceLine2,
-Quantity,
ItemLedgerEntry.“Posting Date”);
TotalQuantity := TotalQuantity + ValueEntry.“Invoiced Quantity”;
END;
FirstValueEntryNo := ValueEntry.“Entry No.” + 1;
UNTIL (ValueEntry.NEXT = 0) OR (TotalQuantity = 0);
GenerateBufferFromShipment(SalesInvoiceLine : Record “Sales Invoice Line”)
TotalQuantity := 0;
SalesInvoiceHeader.SETCURRENTKEY(“Order No.”);
SalesInvoiceHeader.SETFILTER(“No.”,’…%1’,“Sales Invoice Header”.“No.”);
SalesInvoiceHeader.SETRANGE(“Order No.”,“Sales Invoice Header”.“Order No.”);
IF SalesInvoiceHeader.FIND(’-’) THEN
REPEAT
SalesInvoiceLine2.SETRANGE(“Document No.”,SalesInvoiceHeader.“No.”);
SalesInvoiceLine2.SETRANGE(“Line No.”,SalesInvoiceLine.“Line No.”);
SalesInvoiceLine2.SETRANGE(Type,SalesInvoiceLine.Type);
SalesInvoiceLine2.SETRANGE(“No.”,SalesInvoiceLine.“No.”);
SalesInvoiceLine2.SETRANGE(“Unit of Measure Code”,SalesInvoiceLine.“Unit of Measure Code”);
IF SalesInvoiceLine2.FIND(’-’) THEN
REPEAT
TotalQuantity := TotalQuantity + SalesInvoiceLine2.Quantity;
UNTIL SalesInvoiceLine2.NEXT = 0;
UNTIL SalesInvoiceHeader.NEXT = 0;
SalesShipmentLine.SETCURRENTKEY(“Order No.”,“Order Line No.”);
SalesShipmentLine.SETRANGE(“Order No.”,“Sales Invoice Header”.“Order No.”);
SalesShipmentLine.SETRANGE(“Order Line No.”,SalesInvoiceLine.“Line No.”);
SalesShipmentLine.SETRANGE(“Line No.”,SalesInvoiceLine.“Line No.”);
SalesShipmentLine.SETRANGE(Type,SalesInvoiceLine.Type);
SalesShipmentLine.SETRANGE(“No.”,SalesInvoiceLine.“No.”);
SalesShipmentLine.SETRANGE(“Unit of Measure Code”,SalesInvoiceLine.“Unit of Measure Code”);
SalesShipmentLine.SETFILTER(Quantity,’<>%1’,0);
IF SalesShipmentLine.FIND(’-’) THEN
REPEAT
IF “Sales Invoice Header”.“Get Shipment Used” THEN
CorrectShipment(SalesShipmentLine);
IF ABS(SalesShipmentLine.Quantity) <= ABS(TotalQuantity - SalesInvoiceLine.Quantity) THEN
TotalQuantity := TotalQuantity - SalesShipmentLine.Quantity
ELSE BEGIN
IF ABS(SalesShipmentLine.Quantity) > ABS(TotalQuantity) THEN
SalesShipmentLine.Quantity := TotalQuantity;
Quantity :=
SalesShipmentLine.Quantity - (TotalQuantity - SalesInvoiceLine.Quantity);
TotalQuantity := TotalQuantity - SalesShipmentLine.Quantity;
SalesInvoiceLine.Quantity := SalesInvoiceLine.Quantity - Quantity;
IF SalesShipmentHeader.GET(SalesShipmentLine.“Document No.”) THEN
BEGIN
AddBufferEntry(
SalesInvoiceLine,
Quantity,
SalesShipmentHeader.“Posting Date”);
END;
END;
UNTIL (SalesShipmentLine.NEXT = 0) OR (TotalQuantity = 0);
CorrectShipment(VAR SalesShipmentLine : Record “Sales Shipment Line”)
SalesInvoiceLine.SETCURRENTKEY(“Shipment No.”,“Shipment Line No.”);
SalesInvoiceLine.SETRANGE(“Shipment No.”,SalesShipmentLine.“Document No.”);
SalesInvoiceLine.SETRANGE(“Shipment Line No.”,SalesShipmentLine.“Line No.”);
IF SalesInvoiceLine.FIND(’-’) THEN
REPEAT
SalesShipmentLine.Quantity := SalesShipmentLine.Quantity - SalesInvoiceLine.Quantity;
UNTIL SalesInvoiceLine.NEXT = 0;
AddBufferEntry(SalesInvoiceLine : Record “Sales Invoice Line”;QtyOnShipment : Decimal;PostingDate : Date)
SalesShipmentBuffer.SETRANGE(“Document No.”,SalesInvoiceLine.“Document No.”);
SalesShipmentBuffer.SETRANGE(“Line No.”,SalesInvoiceLine.“Line No.”);
SalesShipmentBuffer.SETRANGE(“Posting Date”,PostingDate);
IF SalesShipmentBuffer.FIND(’-’) THEN BEGIN
SalesShipmentBuffer.Quantity := SalesShipmentBuffer.Quantity + QtyOnShipment;
SalesShipmentBuffer.MODIFY;
EXIT;
END;
WITH SalesShipmentBuffer DO BEGIN
“Document No.” := SalesInvoiceLine.“Document No.”;
“Line No.” := SalesInvoiceLine.“Line No.”;
“Entry No.” := NextEntryNo;
Type := SalesInvoiceLine.Type;
“No.” := SalesInvoiceLine.“No.”;
Quantity := QtyOnShipment;
“Posting Date” := PostingDate;
INSERT;
NextEntryNo := NextEntryNo + 1
END;
DocumentCaption() : Text[250]
IF “Sales Invoice Header”.“Prepayment Invoice” THEN
EXIT(Text010);
EXIT(Text004);