Showing posts with label Purchase Line. Show all posts
Showing posts with label Purchase Line. Show all posts

Tuesday, June 27, 2017

X++ code to create Purchase Order Invoice

X++ Code to Post the Purchase Order Invoice.

 

Following Job post the invoice by using PurchFormLetter class.

static void CreatePOInvoice(Args _args)
{

    PurchFormLetter purchFormLetter;
    PurchTable          PurchTable;
    ttsbegin;
   PurchTable = PurchTable::find('PO-Demo');
   purchFormLetter = purchFormLetter::construct(DocumentStatus::Invoice);
   purchFormLetter.update(purchtable, // Purchase record Buffer
                           "Inv_"+purchTable.PurchId, // Invoice Number
                             systemdateget()); // Transaction date
ttscommit;
if (PurchTable::find(purchTable.PurchId).DocumentStatus ==           DocumentStatus::Invoice)
{
    info(strfmt("Posted invoiced journal for purchase order %1",purchTable.PurchId));
}
}

Now run the CreatePOInvoice job.

Create Purchase Order in x++

X++ Code to creating PO/Purchase Order

Here we use AXPURCHTABLE AND AXPURCHLINE class for creating purchase order and purchase line
static void createPO(Args _args)
{
PurchTable purchTable;
PurchLine purchLine;
InventDim inventDim;
NumberSeq numberSeq; //add by fanddy
AxPurchTable axPurchTable;
AxPurchLine axPurchLine;
//END //create PO Header
purchTable.clear();
purchTable.initFromVendTable(VendTable::find(TECPOGroupHeader.VendAccount ));
purchTable.DefaultDimension = InventTable::find(POGroupLine.ItemId).DefaultDimension; axPurchTable = axPurchTable::newPurchTable(purchTable);
axPurchTable.parmPurchId(NumberSeq::newGetNum(PurchParameters::numRefPurchId()).num());
axPurchTable.parmPurchaseType(PurchaseType::Purch);
axPurchTable.parmDocumentStatus(DocumentStatus::PurchaseOrder);
axPurchTable.parmAccountingDate(systemDateGet());
axPurchTable.parmDeliveryDate(systemDateGet());
axPurchTable.parmPurchStatus(PurchStatus::Backorder);
axPurchTable.save(); info(strFmt('Create PO %1', Purchtable.PurchId)); //create PO Line
purchLine.clear();
purchLine.initValue();
purchLine.initFromPurchTable(purchTable);
purchLine.initFromInventTable(InventTable::find(POGroupLine2.ItemId));
axPurchLine = AxPurchLine::newPurchLine(purchLine);
axpurchLine.parmItemId('YOUR ITEMID');
axPurchLine.parmPurchQty(YOUR QTY);
axPurchLine.parmPurchPrice(YOUR PRICE);
axPurchLine.parmInventDimId('YOUR INVENTDIMID');
axPurchLine.save(); }
Run this job now.