Finding unit price of item from trade agreement through code AX X++

Step 1 : Prepare paramters for finding the unit price

  protected PriceDiscParameters createAndInitPriceDiscParameters()

    {

        PurchLine purchLine = this.getPurchLine();

        PurchTable purchTable = purchLine.purchTable();


        PriceDiscParameters parameters = PriceDiscParameters::construct();


        parameters.parmModuleType(ModuleInventPurchSales::Sales);

        parameters.parmItemId(purchLine.Itemid);

        parameters.parmInventDim(purchLine.inventDim());

        parameters.parmUnitID(purchLine.PurchUnit);

        parameters.parmPriceDiscDate(today());

        parameters.parmQty(1);

        parameters.parmAccountNum(purchTable.OrderAccount);

        parameters.parmCurrencyCode(purchLine.CurrencyCode);


        return parameters;

    }


Step 2 : Use priceDisc class with parametrs to get the unit price 

public void initByPriceDisc()

{

        PurchLine purchLine = this.getPurchLine();

        PriceDiscParameters parameters = this.createAndInitPriceDiscParameters();

        PriceDisc priceDisc = PriceDisc::newFromPriceDiscParameters(parameters);

        if (priceDisc)

        {

            if (!priceDisc.findPrice(purchLine.purchTable().PriceGroupId))

            {

                 priceDisc.findItemPrice();

            }

            this.Price= priceDisc.price();

            this.Currency = priceDisc.priceTable().Currency;

        }

}

Comments

Popular posts from this blog

On clicked event of form button in D365 X++

Create Sales Line Through Code AX X++ D365 Finance & Operations