X++ code to create and post trade agreement journal for sales
OnClikced():-
class BAS_TradeAgreementJournals
{
public static void main(Args _args)
{
//BAS_TradeAgreementJournalTable tradeAgreement = _args.record();
BAS_TradeAgreementJournalTable tradeAgreement;
MultiSelectionHelper selectHelper = MultiSelectionHelper::createFromCaller(_args.caller());
InventTrans inventTrans;
InventDim inventDim;
InventDimId inventDimId;
PriceDiscAdmTable priceDiscAdmTable;
PriceDiscAdmTrans priceDiscAdmTrans;
PriceDiscAdmCheckPost priceDiscAdmCheckPost = new PriceDiscAdmCheckPost(false);
PriceDiscAdmName priceDiscAdmName = PriceDiscAdmName::find('Retail');
try
{
// Create Journal number
ttsbegin;
priceDiscAdmTable.clear();
priceDiscAdmTable.initFromPriceDiscAdmName(priceDiscAdmName);
priceDiscAdmTable.insert();
ttscommit;
tradeAgreement = selectHelper.getFirst();
while(tradeAgreement)
{
// Create Journal line
ttsbegin;
priceDiscAdmTrans.clear();
priceDiscAdmTrans.JournalNum = priceDiscAdmTable.JournalNum;
priceDiscAdmTrans.AccountCode = PriceDiscPartyCodeType::All;
priceDiscAdmTrans.ItemCode = PriceDiscProductCodeType::Table;
priceDiscAdmTrans.ItemRelation = tradeAgreement.ItemId;
select firstonly inventDimId from inventTrans
join InventDim
where inventDim.inventDimId == inventTrans.inventDimId
&& inventTrans.ItemId == tradeAgreement.ItemId
&& inventDim.InventSiteId == tradeAgreement.InventSiteId
&& inventDim.InventLocationId == tradeAgreement.InventLocationId;
priceDiscAdmTrans.LineNum = 1;
priceDiscAdmTrans.Currency = "USD";
priceDiscAdmTrans.UnitId = tradeAgreement.UnitId;
priceDiscAdmTrans.InventDimId = inventTrans.inventDimId;
priceDiscAdmTrans.Amount = tradeAgreement.Price;
priceDiscAdmTrans.PriceUnit = 1;
priceDiscAdmTrans.relation = PriceType::PriceSales;
priceDiscAdmTrans.FromDate = tradeAgreement.FromDate;
priceDiscAdmTrans.ToDate = tradeAgreement.ToDate;
priceDiscAdmTrans.insert();
ttscommit;
tradeAgreement = selectHelper.getNext();
}
//Check if journal created
if(priceDiscAdmTable && priceDiscAdmTrans)
{
Info(strFmt('Created Journal number %1', priceDiscAdmTable.JournalNum));
if(!priceDiscAdmCheckPost.checkJournal()) //Determines whether the price and discount agreement journal contains warnings.
{
priceDiscAdmCheckPost.initJournalNum(priceDiscAdmTrans.JournalNum);
priceDiscAdmCheckPost.run(); //Checks and posts the price and discount agreement journal.
Info(strFmt('Posted Journal number %1', priceDiscAdmTable.JournalNum));
}
}
}
catch(Exception::CLRError)
{
error(enum2Str(Exception::CLRError));
}
}
}
Comments
Post a Comment