public virtual void EditDocumentDialog(DialogViewModelBase master, OperationToDocumentReference reference)
        {
            var page = EditDocumentDialog(master, reference.DocumentType.Value, reference.DocumentId.Value);

            if (page.ViewModel is ISelectItem select && reference.ItemId.HasValue)
            {
                select.SelectItem(reference.ItemId.Value);
            }
        }
Пример #2
0
        public IList <OperationToDocumentReference> GetReferencedDocuments(params int[] operationsIds)
        {
            OperationToDocumentReference docAlias = null;
            EmployeeIssueOperation       employeeIssueOperationAlias = null;
            ExpenseItem           expenseItemAlias           = null;
            IncomeItem            incomeItemAlias            = null;
            CollectiveExpenseItem collectiveExpenseItemAlias = null;
            WriteoffItem          writeoffItemAlias          = null;

            var result = RepoUow.Session.QueryOver <EmployeeIssueOperation>(() => employeeIssueOperationAlias)
                         .JoinEntityAlias(() => expenseItemAlias, () => expenseItemAlias.EmployeeIssueOperation.Id == employeeIssueOperationAlias.Id, JoinType.LeftOuterJoin)
                         .JoinEntityAlias(() => collectiveExpenseItemAlias, () => collectiveExpenseItemAlias.EmployeeIssueOperation.Id == employeeIssueOperationAlias.Id, JoinType.LeftOuterJoin)
                         .JoinEntityAlias(() => incomeItemAlias, () => incomeItemAlias.ReturnFromEmployeeOperation.Id == employeeIssueOperationAlias.Id, JoinType.LeftOuterJoin)
                         .JoinEntityAlias(() => writeoffItemAlias, () => writeoffItemAlias.EmployeeWriteoffOperation.Id == employeeIssueOperationAlias.Id, JoinType.LeftOuterJoin)
                         .Where(x => x.Id.IsIn(operationsIds))
                         .SelectList(list => list
                                     .Select(i => i.Id).WithAlias(() => docAlias.OperationId)
                                     .Select(() => expenseItemAlias.Id).WithAlias(() => docAlias.ExpenceItemId)
                                     .Select(() => expenseItemAlias.ExpenseDoc.Id).WithAlias(() => docAlias.ExpenceId)
                                     .Select(() => collectiveExpenseItemAlias.Id).WithAlias(() => docAlias.CollectiveExpenseItemId)
                                     .Select(() => collectiveExpenseItemAlias.Document.Id).WithAlias(() => docAlias.CollectiveExpenseId)
                                     .Select(() => incomeItemAlias.Id).WithAlias(() => docAlias.IncomeItemId)
                                     .Select(() => incomeItemAlias.Document.Id).WithAlias(() => docAlias.IncomeId)
                                     .Select(() => writeoffItemAlias.Id).WithAlias(() => docAlias.WriteoffItemId)
                                     .Select(() => writeoffItemAlias.Document.Id).WithAlias(() => docAlias.WriteoffId)
                                     )
                         .TransformUsing(Transformers.AliasToBean <OperationToDocumentReference>())
                         .List <OperationToDocumentReference>();

            foreach (var item in result)
            {
                item.OperationType = OperationType.EmployeeIssue;
            }

            return(result);
        }