Hello..
I need to get purch price agreement so.
first I create purch price agreement for testing and applied it in purch price
First I created it from Trade agreement journals


and this applied in PurchLine without problems..
now I need to don't allow PurchPrice to be greater than the price on journal
SO I created a class as below
class BT_PurchTable_Table_VaildatePriceAggrement
{
///
///
///
///
[PostHandlerFor(tableStr(PurchLine), tableMethodStr(PurchLine, validateField))]
public static void PurchLine_Post_validateField(XppPrePostArgs args)
{
PurchLine purchLine = args.getThis();
InventDim inventDim;
inventDim = InventDim::find(purchLine.InventDimId);
PriceDiscParameters parameters = PriceDiscParameters::construct();
parameters.parmModuleType(ModuleInventPurchSales::Purch);
parameters.parmItemId(purchLine.ItemId);
parameters.parmInventDim(inventDim);
parameters.parmUnitID(purchLine.PurchUnit);
parameters.parmPriceDiscDate(systemDateGet());
parameters.parmQty(purchLine.PurchQty);
parameters.parmAccountNum(purchLine.VendAccount);
parameters.parmCurrencyCode(purchLine.CurrencyCode);
PriceDisc priceDisc = PriceDisc::newFromPriceDiscParameters(parameters);
FieldId fieldId = args.getArg("fieldId");
boolean ret = args.getReturnValue();
switch(fieldId)
{
case fieldNum(purchLine, PurchPrice):
if (purchLine.PurchPrice > priceDisc.priceUnit())
{
ret = ret && checkFailed("Line per cent is to high!");
}
break;
}
args.setReturnValue(ret);
}
}
but priceDisc.priceUnit() or priceDisc.price() always return 0
when I tested my code in Runable class
class getPrice
{
///
/// Runs the class with the specified arguments.
/// ☻
/// The specified arguments.
public static void main(Args _args)
{
PurchLine purchLine =PurchLine::find("00000126",2);
InventDim inventDim;
inventDim = InventDim::find(purchLine.InventDimId);
PriceDiscParameters parameters = PriceDiscParameters::construct();
parameters.parmModuleType(ModuleInventPurchSales::Purch);
parameters.parmItemId(purchLine.ItemId);
parameters.parmInventDim(inventDim);
parameters.parmUnitID(purchLine.PurchUnit);
parameters.parmPriceDiscDate(systemDateGet());
parameters.parmQty(purchLine.PurchQty);
parameters.parmAccountNum(purchLine.VendAccount);
parameters.parmCurrencyCode(purchLine.CurrencyCode);
PriceDisc priceDisc = PriceDisc::newFromPriceDiscParameters(parameters);
info(strFmt("%1",priceDisc.price()));
info(strFmt("%1",priceDisc.priceUnit()));
info(strFmt("%1",priceDisc.findItemPrice()));
}
}
when debug the Runable class
parameters returns the PurchLine

PriceDisc return nothing

So how I can return the PurchPrice agreement ?
Thank you ..