Convert Default Dim. to Ledger Dim. with main account

PHOTO EMBED

Mon Oct 28 2024 07:29:51 GMT+0000 (Coordinated Universal Time)

Saved by @MinaTimo

internal final class TI_TestProcu
{
    /// <summary>
    /// Class entry point. The system will call this method when a designated menu 
    /// is selected or when execution starts and this class is set as the startup class.
    /// </summary>
    /// <param name = "_args">The specified arguments.</param>
    public static void main(Args _args)
    {
      // 1st part is working fine
        AgreementLine   AgreementLine;
        select AgreementLine where AgreementLine.RecId == 5637407089;
        
        LedgerDimensionAccount LedgerDimensionAccount = LedgerDimensionFacade::serviceCreateLedgerDimension(
            LedgerDefaultAccountHelper::getDefaultAccountFromMainAccountRecId(
            MainAccount::findByMainAccountId('210106'/*'610101'*/).RecId),
            AgreementLine.DefaultDimension);
        LedgerJournalTrans  LedgerJournalTrans;
        select forupdate LedgerJournalTrans where LedgerJournalTrans.Voucher == 'GEN-005903';
        LedgerJournalTrans.LedgerDimension = LedgerDimensionAccount;
        ttsbegin;
        LedgerJournalTrans.update();
        ttscommit;
///---------------------------

        int hcount, hidx;
        RecId   dimAttrId_mainAcc;
        LedgerRecId ledgerRecId;
        MainAccount MainAccount;
        RefRecId    recValue;
        DimensionAttribute      DimensionAttribute;
        DimensionAttributeValue DimensionAttributeValue;
        DimensionSetSegmentName DimensionSetSegmentName;
        DimensionStorage        DimensionStorage;
        LedgerAccountContract   LedgerAccountContract = new LedgerAccountContract();
        DimensionAttributeValueContract DimensionAttributeValueContract;
        List valueContracts = new List(Types::Class);
        DimensionAttributeValueCombination  combina;

        MainAccount =  MainAccount::findByMainAccountId('210106');
        recValue = DimensionHierarchy::getAccountStructure(MainAccount.RecId, Ledger::current());
        hcount = DimensionHierarchy::getLevelCount(recValue);
        DimensionSetSegmentName = DimensionHierarchyLevel::getDimensionHierarchyLevelNames(recValue);
        info(strFmt("%1", hcount));
        str value;
        DimensionAttributeValueSetStorage dimStorage;
        dimStorage = DimensionAttributeValueSetStorage::find(AgreementLine.DefaultDimension);
        for(hidx=1; hidx<=hcount; hidx++)
        {
            DimensionAttribute = DimensionAttribute::findByLocalizedName(DimensionSetSegmentName[hidx]);
            value = dimStorage.getDisplayValueByDimensionAttribute(DimensionAttribute::findByName(DimensionAttribute.Name).RecId);

            //if(DimensionAttribute)
            //{
            //    DimensionAttributeValue = DimensionAttributeValue::findByDimensionAttributeAndValue(
            //        DimensionAttribute,
            //        conPeek(

            //}
        }
        //AgreementLine   AgreementLine;
        //select AgreementLine where AgreementLine.RecId == 5637407089;
        //DimensionAttributeValueSetStorage dimStorage;
        //dimStorage = DimensionAttributeValueSetStorage::find(AgreementLine.DefaultDimension);
        //str budget = dimStorage.getDisplayValueByDimensionAttribute(DimensionAttribute::findByName('BudgetCode').RecId);
        //str Department = dimStorage.getDisplayValueByDimensionAttribute(DimensionAttribute::findByName('Department').RecId);
        //str General = dimStorage.getDisplayValueByDimensionAttribute(DimensionAttribute::findByName('General').RecId);
        //str Vendor = dimStorage.getDisplayValueByDimensionAttribute(DimensionAttribute::findByName('Vendor').RecId);
        //str Worker = dimStorage.getDisplayValueByDimensionAttribute(DimensionAttribute::findByName('Worker').RecId);
        //info(strFmt("%1 %2 %3 %4 %5", budget, Department, General, Vendor, Worker));

        //MainAccount =  MainAccount::findByMainAccountId('610101');
        //recValue = DimensionHierarchy::getAccountStructure(MainAccount.RecId, Ledger::current());
        //hcount = DimensionHierarchy::getLevelCount(recValue);
        //DimensionSetSegmentName = DimensionHierarchyLevel::getDimensionHierarchyLevelNames(recValue);
        //info(strFmt("%1", hcount));

        //for(hidx=1; hidx<=hcount; hidx++)
        //{
        //    DimensionAttribute = DimensionAttribute::findByLocalizedName(DimensionSetSegmentName[hidx]);
        //    info(DimensionAttribute.Name);
        //}
    }

}
content_copyCOPY