Create Purchase Order Line Through Code AX X++ D365 Finance & Operations

    public void createPurchLine(ItemId _ItemId, InventDimId _InventDimId, Qty _qty SalesId _salesId)
    {
        PurchLine                               purchLine;
        InventTable                             inventTable;
        InventDim                               inventDim;
        InventLocation                          inventLocation;     
        InventItemBarcode                       inventBarCode;
        PurchTable                              purchTable = PurchTable::find(_purchId);

        try
        {
            inventTable.clear();
            select inventBarCode
            where inventBarCode.itemId  == _ItemId &&
                    inventBarCode.inventDimId   == _InventDim;
                 
            inventLocation                      = InventLocation::find(purchTable.InventLocationId);
            inventDim.clear();
            inventDim                           = inventBarCode.inventDim();
            inventDim.InventLocationId          = purchTable.InventLocationId;
            inventDim.InventSiteId              = purchTable.InventSiteId;
         
            inventDim                           = InventDim::findOrCreate(inventDim);
            purchLine.clear();
            purchLine.initFromPurchTable(purchTable);
            purchLine.PurchId                   = _purchId;
            purchLine.ItemId                    = inventTable.ItemId;
            purchLine.itemIdChanged();
            //Initializing the sales line from inventory
            purchLine.initFromInventTable(inventTable);
            purchLine.InventDimId               = inventDim.inventDimId;
            purchLine.LineNumber                = PurchLine::lastLineNum(_purchId) + 1;
            purchLine.BarCode                   = inventBarCode.itemBarCode;
            purchLine.CurrencyCode              = purchTable.CurrencyCode;
            if (purchTable.PurchaseType         == PurchaseType::Purch)
            {
                purchLine.PurchQty                  = abs(_qty);
            }
            else
            {
                purchLine.PurchQty                  = -abs(_qty);
            }
            purchLine.ShippingDateRequested     = purchTable.ShippingDateRequested;
            purchLine.VariantId                 = inventBarCode.RetailVariantId;
            purchLine.createLine(NoYes::Yes, // Validate
                                NoYes::Yes, // initFromPurchTable
                                NoYes::Yes, // initFromInventTable
                                NoYes::Yes, // calcInventQty
                                NoYes::Yes, // searchMarkup
                                NoYes::Yes); //
                     
        }
        catch(Exception::Error)
        {
            Error("@SYS305921");
        }
    }

Comments

Popular posts from this blog

On clicked event of form button in D365 X++

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

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