protected override IQueryOver <IssuanceSheet> ItemsQuery(IUnitOfWork uow) { IssuanceSheetJournalNode resultAlias = null; IssuanceSheet issuanceSheetAlias = null; IssuanceSheetItem issuanceSheetItemAlias = null; Organization organizationAlias = null; Subdivision subdivisionAlias = null; EmployeeCard employeeCardAlias = null; var employeesSubquery = QueryOver.Of <IssuanceSheetItem>(() => issuanceSheetItemAlias) .Where(() => issuanceSheetItemAlias.IssuanceSheet.Id == issuanceSheetAlias.Id) .JoinQueryOver(x => x.Employee, () => employeeCardAlias) .Select(CustomProjections .GroupConcat(Projections .Property(() => employeeCardAlias.LastName), useDistinct: true, separator: ", ")); var query = uow.Session.QueryOver <IssuanceSheet>(() => issuanceSheetAlias); if (Filter.StartDate != null) { query.Where(x => x.Date >= Filter.StartDate); } if (Filter.EndDate != null) { query.Where(x => x.Date <= Filter.EndDate); } return(query .Where(GetSearchCriterion( () => issuanceSheetAlias.Id, () => issuanceSheetAlias.Expense.Id, () => issuanceSheetAlias.CollectiveExpense.Id, () => organizationAlias.Name, () => subdivisionAlias.Name, () => subdivisionAlias.Code )) .Left.JoinAlias(s => s.Organization, () => organizationAlias) .Left.JoinAlias(s => s.Subdivision, () => subdivisionAlias) .SelectList((list) => list .Select(x => x.Id).WithAlias(() => resultAlias.Id) .Select(x => x.Date).WithAlias(() => resultAlias.Date) .Select(() => organizationAlias.Name).WithAlias(() => resultAlias.Organigation) .Select(() => subdivisionAlias.Name).WithAlias(() => resultAlias.Subdivision) .Select(() => subdivisionAlias.Code).WithAlias(() => resultAlias.SubdivisionCode) .Select(x => x.Expense.Id).WithAlias(() => resultAlias.DocExpenseId) .Select(x => x.CollectiveExpense.Id).WithAlias(() => resultAlias.DocCollectiveExpenseId) .SelectSubQuery(employeesSubquery).WithAlias(() => resultAlias.Employees) ) .OrderBy(() => issuanceSheetAlias.Date).Desc .ThenBy(() => issuanceSheetAlias.Id).Desc .TransformUsing(Transformers.AliasToBean <IssuanceSheetJournalNode>())); }
void NomenclatureJournal_OnSelectResult(object sender, QS.Project.Journal.JournalSelectedEventArgs e) { var nomeclatures = UoW.GetById <Nomenclature>(e.SelectedObjects.Select(x => x.GetId())); foreach (var nomenclature in nomeclatures) { var item = new IssuanceSheetItem { IssuanceSheet = Entity, Nomenclature = nomenclature, StartOfUse = Entity.Date, Amount = 1, Lifetime = 12, }; Entity.ObservableItems.Add(item); } }