Files
BeWoPlaner/ReportImp/FizHof/Abwesenheiten.cs

75 lines
2.3 KiB
C#

using System;
using BeWo.Report.ReportObjects;
using BeWo.Report;
using DevExpress.XtraReports.UI;
using System.Data;
using BeWo.Data.Entities;
using BeWo.Data.Access;
using FizHof.Service;
using System.Linq;
namespace FizHof
{
public partial class Abwesenheiten : DevExpress.XtraReports.UI.XtraReport, IBeWoReport<QueryRO>
{
public Abwesenheiten()
{
InitializeComponent();
}
public void SetReportDataSource(QueryRO pRO)
{
InitTable(pRO);
this.bindingSource1.DataSource = pRO;
}
private void InitTable(QueryRO ro)
{
var vs = new CustomVacationService();
ro.Rows = ro.Rows.Where(r => r.Field3.ToString().ToLower().Contains("krank") || r.Field3.ToString().ToLower().Contains("reha")).ToList();
ro.Rows = ro.Rows.OrderBy(r => r.Field2).ThenBy(r => r.Field1).ThenBy(r => r.Field4).ToList();
if (ro.Rows != null && ro.Rows.Count > 0)
{
foreach (var row in ro.Rows)
{
if (!row.Field3.ToString().ToLower().Contains("krank") && !row.Field3.ToString().ToLower().Contains("reha"))
continue;
DateTime start = DateTime.Now;
DateTime end = DateTime.Now;
try
{
if (row.Field4 != null)
{
start = DateTime.Parse(row.Field4.ToString());
}
if (row.Field5 != null)
{
end = DateTime.Parse(row.Field5.ToString());
}
}
catch
{
//mach einfach weiter
}
double tage = 0;
while (start <= end)
{
if (start.DayOfWeek != DayOfWeek.Sunday && start.DayOfWeek != DayOfWeek.Saturday && !vs.IstFeiertag(start))
{
tage++;
}
start = start.AddDays(1);
}
row.Field7 = String.Format("{0:0.##}", tage);
}
}
}
}
}