/// <summary> /// replace specific financial dimension value in DefaultDimension based on the LedgerParameters setup /// </summary> /// <param name = "_defaultDimensionFrom">DefaultDimension recId the value should be taken from</param> /// <param name = "_defaultDimensionTo">DefaultDimension recId the value should be assigned to</param> /// <returns>returns new DefaultDimension recId if conditions are met</returns> public static DimensionDefault replaceDefaultDim(DimensionDefault _defaultDimensionFrom, DimensionDefault _defaultDimensionTo) { if(!_defaultDimensionFrom) { return _defaultDimensionTo; } LedgerParameters ledgerParameters = LedgerParameters::find(); if (ledgerParameters.DepartmentSetFinancialDimension && ledgerParameters.DepartmentDimensionAttribute) { DimensionAttribute dimAttr; DimensionAttributeValue dimAttrValue; DimensionAttributeValueSetStorage davss; davss = DimensionAttributeValueSetStorage::find(_defaultDimensionTo); dimAttr = DimensionAttribute::find(ledgerParameters.DepartmentDimensionAttribute); DimensionAttributeValueSetStorage dimStorage = DimensionAttributeValueSetStorage::find(_defaultDimensionFrom); DimensionValue dimValue = dimStorage.getDisplayValueByDimensionAttribute(dimAttr.RecId); dimAttrValue = DimensionAttributeValue::findByDimensionAttributeAndValue(dimAttr, dimValue); if(dimAttrValue && !davss.containsDimensionAttributeValue(dimAttrValue.RecId)) { davss.addItem(dimAttrValue); return davss.save(); } } return _defaultDimensionTo; }
This blog is contains coding reference related to Microsoft AX 2012 and D365 finance and operations and Power platform
Showing posts with label SalesLine. Show all posts
Showing posts with label SalesLine. Show all posts
Tuesday, May 25, 2021
Set Financial Dimensions by X++ code in AX 2012/Setting one Dimension value in the combination
Sunday, April 11, 2021
Create charges on sales order line in AX
salesLine = source; salesCurrency = salesLine.CurrencyCode; moduleCategory = HeadingLine::Line; itemCode = TableGroupAll::Table; while select markupAutoLine index hint TableIdx where markupAutoLine.TableTableId == markupAutoTable.TableId && markupAutoLine.TableRecId == markupAutoTable.RecId && markupAutoLine.CurrencyCode == salesCurrency { markupTrans.clear(); markupTrans.initFromMarkupTable(markupAutoLine.markupTable()); markupTrans.initFromMarkupAutoLine(markupAutoLine); switch (source.TableId) { case tableNum(SalesTable) : markupTrans.initFromSalesTable(source); break; case tableNum(SalesLine) : markupTrans.initFromSalesLine(source); if (salesLine.ReturnDispositionCodeId) { markupTrans.IsAutoCharge = true; } break; } // Preserve original set up currency if (markupTrans.markupTable().CustType != MarkupType::CustVend && markupTrans.markupTable().VendType != MarkupType::CustVend) { markupTrans.CurrencyCode = markupAutoLine.MarkupCurrencyCode; } markupTrans.TransTableId = source.TableId; markupTrans.TransRecId = source.RecId; markupTrans.LineNum = MarkupTrans::lastLineNum(source.TableId, source.RecId) + 1; if (languageId) markupTrans.Txt = LanguageTxt::languageId(tableNum(MarkupAutoTable), markupAutoLine.RecId, languageId); if (! markupTrans.Txt) markupTrans.Txt = MarkupTable::find(markupAutoLine.ModuleType, markupAutoLine.MarkupCode).Txt; markupTrans.insert(); }
Subscribe to:
Posts (Atom)