Wednesday, 25 November 2015

Purchase Order through Code:


static void CON_PO(Args _args)
{
    NumberSeq   numberseq;
    PurchTable  purchtable;
    PurchLine   purchline;
    PurchFormLetter purchformletter;
    InventDim   inventdim;
    NumberSequence  numbersequence;
    SysLastValue    syslastvalue;
    ;
    NumberSeq =NumberSeq::newGetNum(purchparameters::numRefPurchId(),true);
    ttsBegin;  
    purchtable.initValue();
    purchtable.PurchId = numberseq.num();
    purchtable.OrderAccount = 'us-106';
    purchtable.initFromVendTable();
    if(!purchtable.validateWrite())
        {
            throw Exception::Error;
        }
    purchtable.insert();
    purchline.PurchId = purchtable.PurchId;
    purchline.ItemId = '1000';
    purchline.initFromInventTable(InventTable::find(purchLine.ItemId));
    purchline.PurchQty = 2;
    purchline.PurchPrice = 200;
    purchline.LineAmount = purchline.PurchQty*purchline.PurchPrice;
    inventDim.InventSiteId = '1';
    inventdim.InventLocationId = '11';
    purchline.PurchStatus = PurchStatus::None;
    purchline.PurchaseType = PurchaseType::Purch;
    purchline.InventDimId = inventdim::findOrCreate(inventdim).inventDimId;
    purchline.insert();
    info(strFmt("purchase order %1 has been created",purchtable.PurchId));
    ttsCommit;
}

------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------

static void CON_POAutoConfirmAndInvoice(Args _args)
{
PurchTable purchTable;
PurchLine purchLine;
VendTable vendTable = VendTable::find("US_TX_007");
AxPurchTable axPurchTable;
AxPurchLine axPurchLine;
PurchFormLetter purchFormLetter;
;

//Create Purchase order
purchTable.initFromVendTable(vendTable);

axPurchTable = axPurchTable::newPurchTable(purchTable);
axPurchTable.parmPurchaseType(PurchaseType::Purch);
axPurchTable.parmDocumentStatus(DocumentStatus::PurchaseOrder);


axPurchTable.parmDeliveryDate(str2date("08/18/2014",213));
axPurchTable.parmAccountingDate(str2date("08/18/2014",213));
axPurchTable.parmPurchStatus(PurchStatus::Backorder);

axPurchTable.doSave();


purchLine.initFromPurchTable(purchTable);

axPurchLine = AxPurchLine::newPurchLine(purchLine);
axpurchLine.parmItemId("D0003");
axpurchLine.parmInventDimId('000458');
axPurchLine.parmPurchQty(10);
axPurchLine.parmPurchPrice(100);
axPurchLine.doSave();

//PO confirmation
purchTable = axPurchTable.purchTable();
purchFormLetter = PurchFormLetter::construct(DocumentStatus::PurchaseOrder);
purchFormLetter.update(purchTable, strFmt("Inv_%1", purchTable.PurchId));

// PO invoicing
purchFormLetter = PurchFormLetter::construct(DocumentStatus::Invoice);
purchFormLetter.update(purchTable, strFmt("Inv_%1", purchTable.PurchId));
info(strFmt("purchase order %1 invoiced",purchTable.PurchId));

}

No comments:

Post a Comment