ModuleHandlers.cs
2.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
using System;
using System.Collections.Generic;
using System.Linq;
using Sungero.Core;
using Sungero.CoreEntities;
namespace Sungero.Projects.Server
{
partial class ProjectDocumentsFolderHandlers
{
public virtual IQueryable<Sungero.Docflow.IOfficialDocument> ProjectDocumentsDataQuery(IQueryable<Sungero.Docflow.IOfficialDocument> query)
{
query = query.Where(d => d.Project != null);
if (_filter == null)
return query;
if (_filter.Project != null)
query = query.Where(d => Equals(d.Project, _filter.Project));
if (_filter.DocumentKind != null)
query = query.Where(d => Equals(d.DocumentKind, _filter.DocumentKind));
if (_filter.Author != null)
query = query.Where(d => Equals(d.Author, _filter.Author));
// Фильтр по интервалу времени.
var periodBegin = Calendar.SqlMinValue;
var periodEnd = Calendar.UserToday.EndOfDay().FromUserTime();
if (_filter.LastWeek)
periodBegin = Docflow.PublicFunctions.Module.Remote.GetTenantDateTimeFromUserDay(Calendar.UserToday.AddDays(-7));
if (_filter.LastMonth)
periodBegin = Docflow.PublicFunctions.Module.Remote.GetTenantDateTimeFromUserDay(Calendar.UserToday.AddDays(-30));
if (_filter.Last90Days)
periodBegin = Docflow.PublicFunctions.Module.Remote.GetTenantDateTimeFromUserDay(Calendar.UserToday.AddDays(-90));
if (_filter.ManualPeriod)
{
if (_filter.ChangedFrom != null)
periodBegin = Docflow.PublicFunctions.Module.Remote.GetTenantDateTimeFromUserDay(_filter.ChangedFrom.Value);
periodEnd = _filter.ChangedTo != null ? _filter.ChangedTo.Value.EndOfDay().FromUserTime() : Calendar.SqlMaxValue;
}
return query.Where(d => d.Modified.Between(periodBegin, periodEnd));
}
public virtual IQueryable<Sungero.Docflow.IDocumentKind> ProjectDocumentsDocumentKindFiltering(IQueryable<Sungero.Docflow.IDocumentKind> query)
{
query = query.Where(dk => dk.Status == CoreEntities.DatabookEntry.Status.Active && dk.ProjectsAccounting == true);
return query;
}
}
partial class ProjectsHandlers
{
}
}