Files
BeWoPlaner/BeWoPlanerMobil/Models/ReportViewerModel.cs
Lyndon Jetten 88fd24f3a9 MoK:
- Bug beim Übernehmen eines Termins in die Zeiterfassung, wenn man Stunden als Zeiteinheit ausgewählt hatte, behoben.
- Berichte und Mitarbeiterstundenkonto eingebaut
- Node-Module optimiert (sehr viele gelöscht)
2023-05-15 11:54:13 +02:00

162 lines
4.4 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web.Mvc;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
using DevExpress.XtraReports.UI;
namespace BeWoPlanerMobil.Models
{
public class ReportViewerModel : AbstractModel
{
public List<CompactEmployeeDC> AllEmployees { get; set; }
public List<CompactTeamDC> AllTeams { get; set; }
public List<QueryDC> Queries { get; set; }
[Display(Name = "Monat")]
public int? SelectedMonth { get; set; }
public List<SelectListItem> Months
{
get
{
var result = new List<SelectListItem>();
for(var i = 1; i < 13; i++)
{
result.Add(new SelectListItem
{
Value = i.ToString(),
Text = new DateTime(DateTime.Now.Year, i, 1).ToString("MMMM")
});
}
return result;
}
}
[Display(Name = "Jahr")]
public int? SelectedYear { get; set; }
public List<SelectListItem> Years
{
get
{
var result = new List<SelectListItem>();
for(var i = DateTime.Today.Year; i > DateTime.Today.Year - 11; i--)
{
result.Add(new SelectListItem
{
Value = i.ToString(),
Text = i.ToString()
});
}
return result;
}
}
[Display(Name="Bericht")]
public ReportType SelectedReportType { get; set; }
public List<SelectListItem> ReportTypes { get; set; }
[Display(Name = "Bericht")]
public long? SelectedCustomReport { get; set; }
public List<SelectListItem> CustomReports
{
get
{
var result = new List<SelectListItem>();
if(Queries is null)
{
return result;
}
result.Add(new SelectListItem { Text = "", Value = "0" });
foreach(var query in Queries)
{
result.Add(new SelectListItem { Text = query.Title, Value = query.Oid.ToString() });
}
return result;
}
}
[Display(Name="Mitarbeiter")]
public long? SelectedEmployeeOid { get; set; }
public List<SelectListItem> Employees
{
get
{
var result = new List<SelectListItem>();
if(AllEmployees is null)
{
return result;
}
if(HasRightMitarbeiterstundenkontoViewSelf && !HasRightMitarbeiterstundenkontoViewAll)
{
result.Add(new SelectListItem{ Text = Employee.LastNameFirstName, Value = Employee.EmployeeOid.ToString()});
return result;
}
result.Add(new SelectListItem { Text = string.Empty, Value = "0" });
foreach(var employee in AllEmployees.OrderBy(e => e.SimpleDescription))
{
result.Add(new SelectListItem { Text = employee.SimpleDescription, Value = employee.EmployeeOid.ToString() });
}
return result;
}
}
[Display(Name = "Team")]
public long? SelectedTeamOid { get; set; }
public List<SelectListItem> Teams
{
get
{
var result = new List<SelectListItem>();
if(AllTeams is null)
{
return result;
}
result.Add(new SelectListItem { Text = string.Empty, Value = "0" });
foreach(var team in AllTeams.OrderBy(t => t.Name))
{
result.Add(new SelectListItem { Text = team.Name, Value = team.TeamOid.ToString() });
}
return result;
}
}
public List<CompactEmployeeDC> SelectedEmployees { get; set; }
public List<CompactTeamDC> SelectedTeams { get; set; }
public XtraReport Report { get; set; }
}
public enum ReportType
{
Berichte = 0,
Mitarbeiterstundenkonto = 1
}
}