Create Transfer Order Programmatically

souravb
Member Posts: 135
I have an Indent Form(Header Line). On pressing a 'Create TO' button a Transfer order will be automatically created. I have written the following code:
{
NoSeries.Code:='TRKOL';
NoSeriesLine.RESET;
NoSeriesLine.SETRANGE("Series Code",NoSeries.Code);
IF NoSeriesLine.FIND('-') THEN
LastNoUsed:=NoSeriesLine."Last No. Used";
MESSAGE(FORMAT(LastNoUsed));
}
TransferHeader.INIT;
{TransferHeader."No.":=
NoSeriesMgt.GetNextNo(TransferHeader."No. Series",TransferHeader."Posting Date",TRUE);
TransferHeader.VALIDATE("No.");}
//TransferHeader."No.":=INCSTR(LastNoUsed);
//TransferHeader.VALIDATE("No.");
TransferHeader."Indent No.":="Indent No.";
TransferHeader."Shortcut Dimension 1 Code":="Shortcut Dimension 1 Code";
TransferHeader.VALIDATE("Shortcut Dimension 1 Code");
TransferHeader."Transfer-from Code":="From Location";
TransferHeader.VALIDATE("Transfer-from Code");
TransferHeader."Transfer-to Code":="Location Code";
TransferHeader."Shipping Agent Code":=TransferHeader."Shipping Agent Code";
TransferHeader.VALIDATE("Shipping Agent Code");
TransferHeader.Status:=Status::Open;
TransferHeader.INSERT;
RESET;
SETRANGE("Indent No.",TransferHeader."Indent No.");
IF FIND('-') THEN BEGIN
IndentLine.RESET;
IndentLine.SETRANGE("Indent No.","Indent No.");
IF IndentLine.FIND('-') THEN BEGIN
REPEAT
TransferLine.INIT;
TransferLine."Line No.":=IndentLine."Line No.";
TransferLine."Item No.":=IndentLine."Item No.";
TransferLine.VALIDATE("Item No.");
TransferLine.Description:=IndentLine."Item Description";
TransferLine."Qty. to Ship":=IndentLine."Oty. To Transfer";
TransferLine.VALIDATE("Qty. to Ship");
TransferLine."Quantity Shipped":=IndentLine."Qty. Transferred";
TransferLine.VALIDATE("Quantity Shipped");
TransferLine.INSERT;
UNTIL(IndentLine.NEXT = 0);
END;
END;
Problem is i cannot generate the next Transfer order number from number series programmatically. Also if the Quanity in Indent line is equal to the Quantity Transferred in Indent line, the Indent should be deleted. How do i acheive that. Plz help urgently.
{
NoSeries.Code:='TRKOL';
NoSeriesLine.RESET;
NoSeriesLine.SETRANGE("Series Code",NoSeries.Code);
IF NoSeriesLine.FIND('-') THEN
LastNoUsed:=NoSeriesLine."Last No. Used";
MESSAGE(FORMAT(LastNoUsed));
}
TransferHeader.INIT;
{TransferHeader."No.":=
NoSeriesMgt.GetNextNo(TransferHeader."No. Series",TransferHeader."Posting Date",TRUE);
TransferHeader.VALIDATE("No.");}
//TransferHeader."No.":=INCSTR(LastNoUsed);
//TransferHeader.VALIDATE("No.");
TransferHeader."Indent No.":="Indent No.";
TransferHeader."Shortcut Dimension 1 Code":="Shortcut Dimension 1 Code";
TransferHeader.VALIDATE("Shortcut Dimension 1 Code");
TransferHeader."Transfer-from Code":="From Location";
TransferHeader.VALIDATE("Transfer-from Code");
TransferHeader."Transfer-to Code":="Location Code";
TransferHeader."Shipping Agent Code":=TransferHeader."Shipping Agent Code";
TransferHeader.VALIDATE("Shipping Agent Code");
TransferHeader.Status:=Status::Open;
TransferHeader.INSERT;
RESET;
SETRANGE("Indent No.",TransferHeader."Indent No.");
IF FIND('-') THEN BEGIN
IndentLine.RESET;
IndentLine.SETRANGE("Indent No.","Indent No.");
IF IndentLine.FIND('-') THEN BEGIN
REPEAT
TransferLine.INIT;
TransferLine."Line No.":=IndentLine."Line No.";
TransferLine."Item No.":=IndentLine."Item No.";
TransferLine.VALIDATE("Item No.");
TransferLine.Description:=IndentLine."Item Description";
TransferLine."Qty. to Ship":=IndentLine."Oty. To Transfer";
TransferLine.VALIDATE("Qty. to Ship");
TransferLine."Quantity Shipped":=IndentLine."Qty. Transferred";
TransferLine.VALIDATE("Quantity Shipped");
TransferLine.INSERT;
UNTIL(IndentLine.NEXT = 0);
END;
END;
Problem is i cannot generate the next Transfer order number from number series programmatically. Also if the Quanity in Indent line is equal to the Quantity Transferred in Indent line, the Indent should be deleted. How do i acheive that. Plz help urgently.
0
Comments
-
to create new header you can use something like:
TransferHeader.INIT; TransferHeader.VALIDATE("No.",''); TransferHeader.INSERT(TRUE); TransferHeader.VALIDATE("Transfer-from Code",FromLoc); TransferHeader.VALIDATE("Transfer-to Code",ToLoc); TransferHeader.VALIDATE("Posting Date",WORKDATE); ... TransferHeader.MODIFY(TRUE);
This will generate new header with no. from no. series.0 -
Or even better:
CLEAR(TransferHeader); TransferHeader.INSERT(TRUE);
Regards,Alain Krikilion
No PM,please use the forum. || May the <SOLVED>-attribute be in your title!0
Categories
- All Categories
- 73 General
- 73 Announcements
- 66.6K Microsoft Dynamics NAV
- 18.7K NAV Three Tier
- 38.4K NAV/Navision Classic Client
- 3.6K Navision Attain
- 2.4K Navision Financials
- 116 Navision DOS
- 851 Navision e-Commerce
- 1K NAV Tips & Tricks
- 772 NAV Dutch speaking only
- 617 NAV Courses, Exams & Certification
- 2K Microsoft Dynamics-Other
- 1.5K Dynamics AX
- 320 Dynamics CRM
- 111 Dynamics GP
- 10 Dynamics SL
- 1.5K Other
- 990 SQL General
- 383 SQL Performance
- 34 SQL Tips & Tricks
- 35 Design Patterns (General & Best Practices)
- 1 Architectural Patterns
- 10 Design Patterns
- 5 Implementation Patterns
- 53 3rd Party Products, Services & Events
- 1.6K General
- 1.1K General Chat
- 1.6K Website
- 83 Testing
- 1.2K Download section
- 23 How Tos section
- 252 Feedback
- 12 NAV TechDays 2013 Sessions
- 13 NAV TechDays 2012 Sessions