EmployeeAssignmentsReportHandlers.cs
3.46 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
using System;
using System.Collections.Generic;
using System.Linq;
using Sungero.Core;
using Sungero.CoreEntities;
namespace Sungero.Docflow
{
partial class EmployeeAssignmentsReportServerHandlers
{
public override void BeforeExecute(Sungero.Reporting.Server.BeforeExecuteEventArgs e)
{
var reportSessionId = System.Guid.NewGuid().ToString();
EmployeeAssignmentsReport.ReportSessionId = reportSessionId;
EmployeeAssignmentsReport.ReportDate = Calendar.Now;
EmployeeAssignmentsReport.AssignmentHyperlink = Hyperlinks.Get(Sungero.Workflow.AssignmentBases.Info, int.MaxValue);
if (EmployeeAssignmentsReport.Employee != null)
{
var employeeBusinessUnit = EmployeeAssignmentsReport.Employee.Department.BusinessUnit != null ? string.Format("({0})", EmployeeAssignmentsReport.Employee.Department.BusinessUnit) : string.Empty;
EmployeeAssignmentsReport.ParamsDescription += string.Format(Sungero.Docflow.Reports.Resources.EmployeeAssignmentsReport.ReportDepartment,
EmployeeAssignmentsReport.Employee.Department.Name,
employeeBusinessUnit,
System.Environment.NewLine);
var employeeJobTitle = EmployeeAssignmentsReport.Employee.JobTitle != null ? string.Format("({0})", EmployeeAssignmentsReport.Employee.JobTitle.Name) : string.Empty;
EmployeeAssignmentsReport.ParamsDescription += string.Format(Sungero.Docflow.Reports.Resources.EmployeeAssignmentsReport.ReportEmployee,
EmployeeAssignmentsReport.Employee.Name,
employeeJobTitle,
System.Environment.NewLine);
}
var lightAssignments = Functions.Module.GetPerformerLightAssignments(EmployeeAssignmentsReport.Employee,
EmployeeAssignmentsReport.PeriodBegin.Value, EmployeeAssignmentsReport.PeriodEnd.Value.EndOfDay());
var tableData = Functions.Module.GetPerformerAssignmentCompletionReportData(lightAssignments);
foreach (var item in tableData)
item.ReportSessionId = reportSessionId;
Functions.Module.WriteStructuresToTable(Constants.EmployeeAssignmentsReport.SourceTableName, tableData);
var statistic = Functions.Module.GetAssignmentStatistic(lightAssignments);
EmployeeAssignmentsReport.AssignmentCompletion = Functions.Module.GetAssignmentCompletion(statistic.TotalAssignmentCount, statistic.CompletedInTimeCount, statistic.OverdueCount)?.ToString();
EmployeeAssignmentsReport.AssignmentCount = statistic.TotalAssignmentCount;
EmployeeAssignmentsReport.AffectDisciplineCount = statistic.AffectAssignmentCount;
EmployeeAssignmentsReport.OverdueAssignmentsCount = statistic.OverdueCount;
EmployeeAssignmentsReport.CompletedInTimeCount = statistic.CompletedInTimeCount;
EmployeeAssignmentsReport.RealPerformerCount = tableData.Count(x => x.RealPerformerName != null);
}
public override void AfterExecute(Sungero.Reporting.Server.AfterExecuteEventArgs e)
{
Functions.Module.DeleteReportData(Constants.EmployeeAssignmentsReport.SourceTableName, EmployeeAssignmentsReport.ReportSessionId);
}
}
}