To display mainacc and posting profile account in General ledger

To display 
 mainaccount(10037-COM-ADMIN-G-CR 3…CRANE-Iran) and Accountnumber(10037) of Ledger  
Customeraccount(CUST0009) and posting profile of Customer(10501) of Customer   Vendoraccount(F0003) and posting profile of vendor(20201) of Vendor
 BankAccounnt(Loan) and posting profile of Bank(10023) of Bank
 Fixed assets(COMHRD-00006) and posting profile of Fixed assets(12410) of Fixed assets

display str 20  mainAccDisplay()
{
    Name                nameFind;
    MainAccountNum      mainaccountdisplay;

    switch(this.AccountType)
    {
        case LedgerJournalACType::Cust :
            mainaccountdisplay = this.mainAccFind(this.AccountType,this.LedgerDimension);
            break;
        case LedgerJournalACType::Vend :
            mainaccountdisplay = this.mainAccFind(this.AccountType,this.LedgerDimension);
            break;
        case LedgerJournalACType::Bank :
            mainaccountdisplay = this.mainAccFind(this.AccountType,this.LedgerDimension);
            break;
        case LedgerJournalACType::FixedAssets :
            mainaccountdisplay = this.mainAccFind(this.AccountType,this.LedgerDimension);
            break;
        case LedgerJournalACType::Ledger :
            mainaccountdisplay = this.mainAccFind(this.AccountType,this.LedgerDimension);
            break;
    }

    return  mainaccountdisplay;
}


-------------------------

public MainAccountNum mainAccFind(LedgerJournalACType _accountType,DimensionDynamicAccount _dimensionDynamicAccount)
{
    DimensionAttributeValueCombination  ledgerDimension,ledgerDimensionmainacc;
    CustTable                           custtable;
    VendTable                           vendTable;
    AssetTable                          assetTable;
    CustLedgerAccounts                  custledgeraccounts;
    VendLedgerAccounts                  vendledgeraccounts;
    AssetLedgerAccounts                 assetledgeraccounts;
    MainAccount                         mainaccount;
    MainAccountNum                      mainaccountnum;
    VendParameters                      vendParameters;
    CustParameters                      custParameters;
    AssetParameters                     assetParameters;


    select ledgerDimension where ledgerDimension.RecId == _dimensionDynamicAccount;
    if(_dimensionDynamicAccount != 0)
    {
    switch(_accountType)
    {
        case LedgerJournalACType::Cust:
            //customer posting profile - start
            select custParameters;
            select custtable where custtable.AccountNum ==  ledgerDimension.DisplayValue;
            while select custledgeraccounts
                where custledgeraccounts.PostingProfile == CustLedger::find(custParameters.PostingProfile).PostingProfile
            {
                if(custledgeraccounts.AccountCode == TableGroupAll::Table)
                {
                    if(custledgeraccounts.Num == custtable.AccountNum)
                    {
                        select ledgerDimensionmainacc join mainaccount
                            where ledgerDimensionmainacc.RecId == custledgeraccounts.SummaryLedgerDimension
                            && ledgerDimensionmainacc.MainAccount == mainaccount.RecId;
                        mainaccountnum = mainaccount.MainAccountId;
                        //info(strFmt("%1",mainaccount.MainAccountId));
                        break;
                    }
                }
                else if(custledgeraccounts.AccountCode == TableGroupAll::GroupId)
                {
                    if(custledgeraccounts.Num == custtable.CustGroup)
                    {
                        select ledgerDimensionmainacc join mainaccount
                            where ledgerDimensionmainacc.RecId == custledgeraccounts.SummaryLedgerDimension
                            && ledgerDimensionmainacc.MainAccount == mainaccount.RecId;
                        mainaccountnum = mainaccount.MainAccountId;
                        //info(strFmt("%1",mainaccount.MainAccountId));
                        break;
                    }
                }
                else if(custledgeraccounts.AccountCode == TableGroupAll::All)
                {
                    select ledgerDimensionmainacc join mainaccount
                        where ledgerDimensionmainacc.RecId == custledgeraccounts.SummaryLedgerDimension
                        && ledgerDimensionmainacc.MainAccount == mainaccount.RecId;
                    mainaccountnum = mainaccount.MainAccountId;
                    //info(strFmt("%1",mainaccount.MainAccountId));
                }
            }
            break;
            //customer posting profile - end

        case LedgerJournalACType::Vend:
            //Vend posting profile - start
            select vendParameters;
            select vendTable where vendTable.AccountNum ==  ledgerDimension.DisplayValue;
            while select vendledgeraccounts
                where vendledgeraccounts.PostingProfile == VendLedger::find(vendParameters.PostingProfile).PostingProfile
            {
                if(vendledgeraccounts.AccountCode == TableGroupAll::Table)
                {
                    if(vendledgeraccounts.Num == vendTable.AccountNum)
                    {
                        select ledgerDimensionmainacc join mainaccount
                            where ledgerDimensionmainacc.RecId == vendledgeraccounts.SummaryLedgerDimension
                            && ledgerDimensionmainacc.MainAccount == mainaccount.RecId;
                        mainaccountnum = mainaccount.MainAccountId;
                        //info(strFmt("%1",mainaccount.MainAccountId));
                        break;
                    }
                }
                else if(vendledgeraccounts.AccountCode == TableGroupAll::GroupId)
                {
                    if(vendledgeraccounts.Num == vendTable.VendGroup)
                    {
                        select ledgerDimensionmainacc join mainaccount
                            where ledgerDimensionmainacc.RecId == vendledgeraccounts.SummaryLedgerDimension
                            && ledgerDimensionmainacc.MainAccount == mainaccount.RecId;
                        mainaccountnum = mainaccount.MainAccountId;
                        //info(strFmt("%1",mainaccount.MainAccountId));
                        break;
                    }
                }
                else if(vendledgeraccounts.AccountCode == TableGroupAll::All)
                {
                    select ledgerDimensionmainacc join mainaccount
                        where ledgerDimensionmainacc.RecId == vendledgeraccounts.SummaryLedgerDimension
                        && ledgerDimensionmainacc.MainAccount == mainaccount.RecId;
                    mainaccountnum = mainaccount.MainAccountId;
                    //info(strFmt("%1",mainaccount.MainAccountId));
                }
            }
            break;
            //Vend posting profile - end
        case LedgerJournalACType::Bank:
            //Bank posting profile - start
            select ledgerDimensionmainacc join mainaccount
            where ledgerDimensionmainacc.RecId == BankAccountTable::find(DimensionStorage::ledgerDimension2AccountNum(_dimensionDynamicAccount)).LedgerDimension
            && ledgerDimensionmainacc.MainAccount == mainaccount.RecId;
            mainaccountnum = mainaccount.MainAccountId;
            break;
            //Bank posting profile - end

        case LedgerJournalACType::FixedAssets:
            //FixedAsset posting profile - start
            select assetParameters;
            select assetTable where assetTable.AssetId ==  ledgerDimension.DisplayValue;
            while select assetledgeraccounts
                where assetledgeraccounts.PostingProfile == AssetLedger::find(assetParameters.PostingProfile).PostingProfile
            {
                if(assetledgeraccounts.AccountCode == TableGroupAll::Table)
                {
                    if(assetledgeraccounts.AccountRelation == assetTable.AssetId)
                    {
                        select ledgerDimensionmainacc join mainaccount
                            where ledgerDimensionmainacc.RecId == assetledgeraccounts.LedgerDimension
                            && ledgerDimensionmainacc.MainAccount == mainaccount.RecId;
                        mainaccountnum = mainaccount.MainAccountId;
                        //info(strFmt("%1",mainaccount.MainAccountId));
                        break;
                    }
                }
                else if(assetledgeraccounts.AccountCode == TableGroupAll::GroupId)
                {
                    if(assetledgeraccounts.AccountRelation == assetTable.AssetGroup)
                    {
                        select ledgerDimensionmainacc join mainaccount
                            where ledgerDimensionmainacc.RecId == assetledgeraccounts.LedgerDimension
                            && ledgerDimensionmainacc.MainAccount == mainaccount.RecId;
                        mainaccountnum = mainaccount.MainAccountId;
                        //info(strFmt("%1",mainaccount.MainAccountId));
                        break;
                    }
                }
                else if(assetledgeraccounts.AccountCode == TableGroupAll::All)
                {
                    select ledgerDimensionmainacc join mainaccount
                        where ledgerDimensionmainacc.RecId == assetledgeraccounts.LedgerDimension
                        && ledgerDimensionmainacc.MainAccount == mainaccount.RecId;
                    mainaccountnum = mainaccount.MainAccountId;
                    //info(strFmt("%1",mainaccount.MainAccountId));
                }
            }
            break;
            //FixedAsset posting profile - end

            case LedgerJournalACType::Ledger:
                //Ledger posting profile - start

                select ledgerDimensionmainacc join mainaccount
                        where ledgerDimensionmainacc.RecId == _dimensionDynamicAccount
                        && ledgerDimensionmainacc.MainAccount == mainaccount.RecId;
                    mainaccountnum = mainaccount.MainAccountId;

                //Ledger posting profile - end


    }
    }

    return mainaccountnum;
}

Comments

Popular posts from this blog

Getting Workflow Approvers In Dynamics AX (AX 2012)

Creating a numbersequence in form level in ax 2012

AX 2012 R3 Line by line invoicing the sales order using X++ code