02.11.2017, 15:17 | #9 |
Banned
|
X++: journalTrans.initValue(); journalTrans.JournalNum = journalNum; ... journalTrans.AccountType = LedgerJournalACType::Project; journalTrans.LedgerDimension = this.getLedgerDim(LedgerJournalACType::Project, curExt(), projId); journalTrans.AmountCurDebit = costAmount; journalTrans.DefaultDimension = LedgerJournalEngine::initDefaultDimensionServer(journalTrans); ... public RefRecId getLedgerDim(LedgerJournalACType _accountType, DataAreaId _dataAreaId, DimensionValue _accountId) { RefRecId ledgerDimension; DictEnum dictEnum = new DictEnum(enumNum(LedgerJournalACType)); DimensionDynamicAccountServiceProvider dimensionDynamicAccountServiceProvider; DimensionDynamicAccountContract dimensionDynamicAccountContract = new DimensionDynamicAccountContract(); dimensionDynamicAccountContract.parmCompany(_dataAreaId); dimensionDynamicAccountContract.parmAccountType(_accountType); DimensionAttributeValueContract ledgerContract = DimensionAttributeValueContract::construct(dictEnum.value2Label(_accountType), _accountId); dimensionDynamicAccountContract.parmPrimaryDimensionAttributeValue(ledgerContract); dimensionDynamicAccountServiceProvider = DimensionDynamicAccountServiceProvider::newForDynamicAccountContract(dimensionDynamicAccountContract); DimensionStorageResult dimensionStorageResult = dimensionDynamicAccountServiceProvider.resolve(); switch(dimensionStorageResult.parmStatus()) { case DimensionStorageResultStatus::Valid: ledgerDimension = dimensionStorageResult.parmSavedRecId(); break; default: error(strFmt("blah-blah-blah-blah-bla", dimensionStorageResult.parmStatus())); break; } return ledgerDimension; } |
|
|
За это сообщение автора поблагодарили: Aquarius (1). |