public static AdvanceReport CreateAdvanceReport(string dataAreaId, string advanceReportId, global::System.DateTimeOffset transactionDate, global::System.DateTimeOffset checkingDate, global::System.DateTimeOffset firmingDate, decimal amount) { AdvanceReport advanceReport = new AdvanceReport(); advanceReport.dataAreaId = dataAreaId; advanceReport.AdvanceReportId = advanceReportId; advanceReport.TransactionDate = transactionDate; advanceReport.CheckingDate = checkingDate; advanceReport.FirmingDate = firmingDate; advanceReport.Amount = amount; return(advanceReport); }
public override void UpdateNodes() { AccountableDebtsVMNode resultAlias = null; Expense operationAddAlias = null; Income operationReturnAlias = null; AdvanceReport operationRemoveAlias = null; Employee employeeAlias = null; var subqueryAdd = QueryOver.Of <Expense>(() => operationAddAlias) .Where(() => operationAddAlias.Employee.Id == employeeAlias.Id && operationAddAlias.TypeOperation == ExpenseType.Advance) .Select(Projections.Sum <Expense> (o => o.Money)); var subqueryReturn = QueryOver.Of <Income>(() => operationReturnAlias) .Where(() => operationReturnAlias.Employee.Id == employeeAlias.Id && operationReturnAlias.TypeOperation == IncomeType.Return) .Select(Projections.Sum <Income> (o => o.Money)); var subqueryRemove = QueryOver.Of <AdvanceReport>(() => operationRemoveAlias) .Where(() => operationRemoveAlias.Accountable.Id == employeeAlias.Id) .Select(Projections.Sum <AdvanceReport> (o => o.Money)); if (Filter.RestrictExpenseCategory != null) { subqueryAdd.Where(e => e.ExpenseCategory == Filter.RestrictExpenseCategory); subqueryReturn.Where(e => e.ExpenseCategory == Filter.RestrictExpenseCategory); subqueryRemove.Where(e => e.ExpenseCategory == Filter.RestrictExpenseCategory); } var stocklist = UoW.Session.QueryOver <Employee> (() => employeeAlias) .SelectList(list => list .SelectGroup(() => employeeAlias.Id).WithAlias(() => resultAlias.Id) .Select(() => employeeAlias.Name).WithAlias(() => resultAlias.EmployeeName) .Select(() => employeeAlias.LastName).WithAlias(() => resultAlias.EmployeeSurname) .Select(() => employeeAlias.Patronymic).WithAlias(() => resultAlias.EmployeePatronymic) .SelectSubQuery(subqueryAdd).WithAlias(() => resultAlias.Append) .SelectSubQuery(subqueryRemove).WithAlias(() => resultAlias.Removed) .SelectSubQuery(subqueryReturn).WithAlias(() => resultAlias.Returned) ) .TransformUsing(Transformers.AliasToBean <AccountableDebtsVMNode>()) .List <AccountableDebtsVMNode>().Where(r => r.Debt != 0).ToList(); SetItemsSource(stocklist); }
public override void UpdateNodes() { AccountableSlipsVMNode resultAlias = null; Expense operationRecivedAlias = null; Income operationReturnedAlias = null; AdvanceReport operationReportedAlias = null; List <AccountableSlipsVMNode> result = new List <AccountableSlipsVMNode> (); var recived = UoW.Session.QueryOver <Expense> (() => operationRecivedAlias) .Where(e => e.Employee == Filter.RestrictAccountable && e.TypeOperation == ExpenseType.Advance); var returned = UoW.Session.QueryOver <Income> (() => operationReturnedAlias) .Where(e => e.Employee == Filter.RestrictAccountable && e.TypeOperation == IncomeType.Return); var reported = UoW.Session.QueryOver <AdvanceReport> (() => operationReportedAlias) .Where(e => e.Accountable == Filter.RestrictAccountable); //Добавляем условия по фильтру if (Filter.RestrictExpenseCategory != null) { recived.Where(o => o.ExpenseCategory == Filter.RestrictExpenseCategory); returned.Where(o => o.ExpenseCategory == Filter.RestrictExpenseCategory); reported.Where(o => o.ExpenseCategory == Filter.RestrictExpenseCategory); } if (Filter.RestrictStartDate.HasValue) { recived.Where(o => o.Date >= Filter.RestrictStartDate.Value); returned.Where(o => o.Date >= Filter.RestrictStartDate.Value); reported.Where(o => o.Date >= Filter.RestrictStartDate.Value); } if (Filter.RestrictEndDate.HasValue) { recived.Where(o => o.Date <= Filter.RestrictEndDate.Value); returned.Where(o => o.Date <= Filter.RestrictEndDate.Value); reported.Where(o => o.Date <= Filter.RestrictEndDate.Value); } if (!Filter.RestrictEndDate.HasValue && !Filter.RestrictEndDate.HasValue) { recived.OrderBy(e => e.Date).Desc.Take(20); returned.OrderBy(e => e.Date).Desc.Take(20); reported.OrderBy(e => e.Date).Desc.Take(20); } var recivedList = recived.SelectList(list => list .Select(e => e.Id).WithAlias(() => resultAlias.Id) .Select(e => e.Date).WithAlias(() => resultAlias.Date) .Select(e => e.Money).WithAlias(() => resultAlias.Append) .Select(e => e.Description).WithAlias(() => resultAlias.Description) ) .TransformUsing(Transformers.AliasToBean <AccountableSlipsVMNode>()) .List <AccountableSlipsVMNode>(); recivedList.ToList().ForEach(i => i.DocType = CashDocumentType.Expense); result.AddRange(recivedList); var returnedList = returned.SelectList(list => list .Select(e => e.Id).WithAlias(() => resultAlias.Id) .Select(e => e.Date).WithAlias(() => resultAlias.Date) .Select(e => e.Money).WithAlias(() => resultAlias.Removed) .Select(e => e.Description).WithAlias(() => resultAlias.Description) ) .TransformUsing(Transformers.AliasToBean <AccountableSlipsVMNode>()) .List <AccountableSlipsVMNode>(); returnedList.ToList().ForEach(i => i.DocType = CashDocumentType.Income); result.AddRange(returnedList); var reportedList = reported.SelectList(list => list .Select(e => e.Id).WithAlias(() => resultAlias.Id) .Select(e => e.Date).WithAlias(() => resultAlias.Date) .Select(e => e.Money).WithAlias(() => resultAlias.Removed) .Select(e => e.Description).WithAlias(() => resultAlias.Description) ) .TransformUsing(Transformers.AliasToBean <AccountableSlipsVMNode>()) .List <AccountableSlipsVMNode>(); reportedList.ToList().ForEach(i => i.DocType = CashDocumentType.AdvanceReport); result.AddRange(reportedList); result.Sort((x, y) => { if (x.Date > y.Date) { return(1); } if (x.Date == y.Date) { return(0); } return(-1); }); SetItemsSource(result); }