X++ Code to Create Purchase Order and Post the Invoice

Following Job creates the Purchase order from code and post the invoice by making use of PurchFormLetter class.
If you don't have demo data , please test with your input values.

 1 static void Dev_CreatePO_and_Invoice(Args _args)
 2 {
 3   NumberSeq numberSeq;
 4   Purchtable Purchtable;
 5   PurchLine PurchLine;
 6   PurchFormLetter purchFormLetter;
 7   ;
 8  9 
10   ttsbegin;
11   numberSeq = NumberSeq::newGetNumFromCode(purchParameters::numRefPurchaseOrderId().NumberSequence,true);
12 
13   // Initialize Purchase order values
14   Purchtable.initValue();
15   Purchtable.PurchId = numberSeq.num();
16   Purchtable.OrderAccount = '3000';
17   Purchtable.initFromVendTable();
18 
19   if (!Purchtable.validateWrite())
20   {
21     throw Exception::Error;
22   }
23   Purchtable.insert();
24 
25   // Initialize Purchase Line items
26   PurchLine.PurchId = Purchtable.PurchId;
27   PurchLine.ItemId = 'B-R14';
28   PurchLine.createLine(true, true, true, true, true, false);
29   ttscommit;
30 
31   purchFormLetter = purchFormLetter::construct(DocumentStatus::Invoice);
32   purchFormLetter.update(purchtable, // Purchase record Buffer
33                 "Inv_"+purchTable.PurchId, // Invoice Number
34                systemdateget()); // Transaction date
35 
36 
37   if (PurchTable::find(purchTable.PurchId).DocumentStatus == DocumentStatus::Invoice)
38   {
39     info(strfmt("Posted invoiced journal for purchase order %1",purchTable.PurchId));
40   }
41 }
原文地址:https://www.cnblogs.com/Jinnchu/p/2658780.html