75 lines
2.3 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|