Присоединить учетную запись к дополнительной учетной записи - PullRequest
2 голосов
/ 07 марта 2020

Я пытаюсь создать GI для получения списка учетных записей GL с каждым соответствующим значением дополнительной учетной записи. Я просмотрел базу данных и нашел столбец GroupMask, который связывает таблицы Account и Sub вместе с небольшим соотношением, но я не знаю, как объединить их в GI. Есть ли другая таблица разрешений, которую я могу использовать, чтобы связать две сущности?

Ответы [ 2 ]

0 голосов
/ 10 марта 2020

Счета и Субсчета являются отдельными объектами без взаимосвязи между собой. GroupMask поле не об их отношении , оно об ограничении доступа. Пожалуйста, исправьте свой вопрос и объясните, что вам действительно нужно? Обратите внимание, что Account и Subaccount связаны только в рамках некоторых транзакционных или исторических объектов, таких как транзакции GL (GLTran), AR / AP Documents (ARRegister, APRegister) и многие другие.

0 голосов
/ 10 марта 2020

Единственное, что я нахожу в стандартном Acumatica - это экран GL403000 (Account by Subaccount). Этот экран представляет собой запрос исторических данных GL. Несмотря на то, что я могу ошибаться, я считаю, что учетные записи и субсчета определяются как отдельные объекты и затем становятся законной комбинацией при совместном использовании. Например, дополнительная учетная запись может быть сопоставлена ​​с отделом, а учетная запись инвентаризации - с товаром. Материал, выданный департаменту, приведет к отчетной комбинации счета и субсчета. Это означает, что вам придется искать историческое использование учетной записи / субсчета, чтобы получить список. Это то, что делает GL403000.

Не могу точно сказать, что это правильно, но посмотрим, сможете ли вы найти то, что вам нужно:

GL.Account -> GL .GLHistory -> GL.Sub

Присоединить учетную запись к GLHistory через AccountID и GLHistory к Sub через SubID. Вам нужно объединить результаты в уникальные комбинации или отфильтровать по периоду.

Фактический код GL403000:

PXSelectBase<GLHistoryByPeriod> cmd = new PXSelectJoinGroupBy<GLHistoryByPeriod,
                InnerJoin<Account,
                        On<GLHistoryByPeriod.accountID, Equal<Account.accountID>, And<Match<Account, Current<AccessInfo.userName>>>>,
                InnerJoin<Sub,
                        On<GLHistoryByPeriod.subID, Equal<Sub.subID>, And<Match<Sub, Current<AccessInfo.userName>>>>,
                LeftJoin<GLHistory, On<GLHistoryByPeriod.accountID, Equal<GLHistory.accountID>,
                        And<GLHistoryByPeriod.ledgerID, Equal<GLHistory.ledgerID>,
                        And<GLHistoryByPeriod.branchID, Equal<GLHistory.branchID>,
                        And<GLHistoryByPeriod.subID, Equal<GLHistory.subID>,
                        And<GLHistoryByPeriod.finPeriodID, Equal<GLHistory.finPeriodID>>>>>>,
                LeftJoin<AH, On<GLHistoryByPeriod.ledgerID, Equal<AH.ledgerID>,
                        And<GLHistoryByPeriod.branchID, Equal<AH.branchID>,
                        And<GLHistoryByPeriod.accountID, Equal<AH.accountID>,
                        And<GLHistoryByPeriod.subID, Equal<AH.subID>,
                        And<GLHistoryByPeriod.lastActivityPeriod, Equal<AH.finPeriodID>>>>>>>>>>,
                Where<GLHistoryByPeriod.ledgerID, Equal<Current<GLHistoryEnqFilter.ledgerID>>,
                        And<GLHistoryByPeriod.accountID, Equal<Current<GLHistoryEnqFilter.accountID>>,
                        And<GLHistoryByPeriod.finPeriodID, Equal<Current<GLHistoryEnqFilter.finPeriodID>>,
                        And<
                            Where2<
                                    Where<Account.accountID,NotEqual<Current<GLSetup.ytdNetIncAccountID>>,And<Where<Account.type, Equal<AccountType.asset>, 
                                        Or<Account.type, Equal<AccountType.liability>>>>>,
                            Or<Where<GLHistoryByPeriod.lastActivityPeriod, GreaterEqual<Required<GLHistoryByPeriod.lastActivityPeriod>>,
                                And<Where<Account.type, Equal<AccountType.expense>, 
                                Or<Account.type, Equal<AccountType.income>,
                                Or<Account.accountID,Equal<Current<GLSetup.ytdNetIncAccountID>>>>>>>>>>>>>,
                Aggregate<
                        Sum<AH.finYtdBalance,
                        Sum<AH.tranYtdBalance,
                        Sum<AH.curyFinYtdBalance,
                        Sum<AH.curyTranYtdBalance,
                        Sum<GLHistory.finPtdDebit,
                        Sum<GLHistory.tranPtdDebit,
                        Sum<GLHistory.finPtdCredit,
                        Sum<GLHistory.tranPtdCredit,
                        Sum<GLHistory.finBegBalance,
                        Sum<GLHistory.tranBegBalance,
                        Sum<GLHistory.finYtdBalance,
                        Sum<GLHistory.tranYtdBalance,
                        Sum<GLHistory.curyFinBegBalance,
                        Sum<GLHistory.curyTranBegBalance,
                        Sum<GLHistory.curyFinYtdBalance,
                        Sum<GLHistory.curyTranYtdBalance,
                        Sum<GLHistory.curyFinPtdCredit,
                        Sum<GLHistory.curyTranPtdCredit,
                        Sum<GLHistory.curyFinPtdDebit,
                        Sum<GLHistory.curyTranPtdDebit,
                        GroupBy<GLHistoryByPeriod.ledgerID,
                        GroupBy<GLHistoryByPeriod.accountID,
                        GroupBy<GLHistoryByPeriod.subID>>>>>>>>>>>>>>>>>>>>>>>>>(this);

Как видите, он присоединяет Account к GLHistoryByPeriod, а затем Sub в GLHistoryByPeriod. АХ наследует от GLHistory.

...