AutismusKoelnBonn, DiakonieKKKleve, Kette und PerspektivenEV

This commit is contained in:
Alexandra
2022-07-25 16:43:45 +02:00
parent e1314c17e7
commit d453af2402
8 changed files with 456 additions and 216 deletions

4
.gitignore vendored
View File

@@ -568,3 +568,7 @@ obj
/ReportImp/KundeArbeitszeit /ReportImp/KundeArbeitszeit
*.user *.user
/ReportImp/KundeMuster /ReportImp/KundeMuster
/ReportImp/DiakonieKKKleve/Mitarbeiterarbeitszeitkonto.designer.cs
/ReportImp/DiakonieKKKleve/Mitarbeiterarbeitszeitkonto.resx
/ReportImp/DiakonieKKKleve/Mitarbeiterarbeitszeitkonto.cs
/ReportImp/DiakonieKKKleve/CustomMitarbeiterstundenkontoBerechnungTagesansicht.cs

View File

@@ -11,9 +11,6 @@ namespace AutismusKoelnBonn.Invoicing
public class FactorInvoiceCreation : InvoiceCreation public class FactorInvoiceCreation : InvoiceCreation
{ {
private DateTime? accountingPeriodStart = null;
private DateTime? accountingPeriodEnd = null;
public override void SetInvoiceId(ServiceInvoice invoice) public override void SetInvoiceId(ServiceInvoice invoice)
{ {
invoice.InvoiceBase.InvoiceId = "Faktor"; invoice.InvoiceBase.InvoiceId = "Faktor";

View File

@@ -3,6 +3,8 @@ using System.Collections.Generic;
using System.Drawing; using System.Drawing;
using System.IO; using System.IO;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Report; using BeWo.Report;
using BeWo.Report.ReportObjects; using BeWo.Report.ReportObjects;
using BS.Shared.Core; using BS.Shared.Core;
@@ -49,8 +51,8 @@ namespace AutismusKoelnBonn
pRO.Services = servicesBillable; pRO.Services = servicesBillable;
} }
Customer c = DAOFactory.GenericDAO.LoadByID<Customer>(pRO.CustomerOid);
if (pRO.SupportConceptCostBearer.SupportConcept.Customer.Teams.Contains("Bonn")) if (c.Team2CustomerList.Count > 0 && c.Team2CustomerList[0].Team.Name.Contains("Bonn"))
{ {
lblBonn.Visible = true; lblBonn.Visible = true;
lblKoeln.Visible = false; lblKoeln.Visible = false;
@@ -110,7 +112,6 @@ namespace AutismusKoelnBonn
if (newRows > 0) if (newRows > 0)
{ {
lblUnterschriftKlient.Top += newRows * 20;
lblUnterschriftMitarbeiter.Top += newRows * 20; lblUnterschriftMitarbeiter.Top += newRows * 20;
} }
} }
@@ -119,9 +120,9 @@ namespace AutismusKoelnBonn
// TODO: Wie anzeigen? Alle? // TODO: Wie anzeigen? Alle?
private void EmployeeSignature_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e) private void EmployeeSignature_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e)
{ {
return; //return;
if(sender is XRPictureBox pictureBox) if (sender is XRPictureBox pictureBox)
{ {
var base64String = pictureBox.Tag as string; var base64String = pictureBox.Tag as string;
@@ -144,9 +145,9 @@ namespace AutismusKoelnBonn
// TODO: Visibile der Datumstextboxen auf true setzen! // TODO: Visibile der Datumstextboxen auf true setzen!
private void CustomerSignature_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e) private void CustomerSignature_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e)
{ {
return; //return;
if(sender is XRPictureBox pictureBox) if (sender is XRPictureBox pictureBox)
{ {
var base64String = pictureBox.Tag as string; var base64String = pictureBox.Tag as string;
@@ -174,7 +175,7 @@ namespace AutismusKoelnBonn
{ {
var base64Data = Regex.Match(base64String, @"data:image/(?<type>.+?),(?<data>.+)").Groups["data"].Value; var base64Data = Regex.Match(base64String, @"data:image/(?<type>.+?),(?<data>.+)").Groups["data"].Value;
var binData = Convert.FromBase64String(base64Data); var binData = Convert.FromBase64String(base64Data);
Image img = ByteArrayToImage(binData); System.Drawing.Image img = ByteArrayToImage(binData);
xrBox.Image = Utils.CropImage(img); xrBox.Image = Utils.CropImage(img);
} }
else else
@@ -183,11 +184,11 @@ namespace AutismusKoelnBonn
} }
} }
public Image ByteArrayToImage(byte[] byteArrayIn) public System.Drawing.Image ByteArrayToImage(byte[] byteArrayIn)
{ {
using(var memoryStream = new MemoryStream(byteArrayIn)) using(var memoryStream = new MemoryStream(byteArrayIn))
{ {
return Image.FromStream(memoryStream); return System.Drawing.Image.FromStream(memoryStream);
} }
} }
} }

View File

@@ -4,6 +4,7 @@ using System.Linq;
using System.Windows.Forms; using System.Windows.Forms;
using BeWo.Data.Entities; using BeWo.Data.Entities;
using BeWo.Report.ReportObjects; using BeWo.Report.ReportObjects;
using BS.Shared;
using BS.Shared.Core; using BS.Shared.Core;
using BS.Shared.Extensions; using BS.Shared.Extensions;
@@ -21,12 +22,12 @@ namespace DiakonieKKKleve
{ {
var details = CreateDayDetails2(berichtStart, berichtEnde, ed, recordsAll); var details = CreateDayDetails2(berichtStart, berichtEnde, ed, recordsAll);
foreach (var dd in details) foreach (var dd in details)
{ {
if (dd.Custom10 == null) if (dd.Custom10 == null)
dd.Custom10 = ""; dd.Custom10 = "";
if (dd.ZusammenhaengendeZeitraeume != null) if (dd.ZusammenhaengendeZeitraeume != null)
{ {
foreach (var dts in dd.ZusammenhaengendeZeitraeume) foreach (var dts in dd.ZusammenhaengendeZeitraeume)
{ {
@@ -34,15 +35,115 @@ namespace DiakonieKKKleve
{ {
dd.Custom10 += ", "; dd.Custom10 += ", ";
} }
dd.Custom10 += String.Format("{0:HH:mm} - {1:HH:mm}", dts.StartDateTime, dts.EndDateTime); dd.Custom10 += String.Format("{0:HH:mm} - {1:HH:mm}", dts.StartDateTime, dts.EndDateTime);
} }
} }
} }
return details; var arbeitstage = GetArbeitszeitTage(ed.Employee, berichtStart, berichtEnde);
if (arbeitstage > 0)
ed.ArbeitstageImBerichtszeitraum = arbeitstage ?? 0;
return details;
} }
public IList<MitarbeiterstundenkontoRO.DayDetail> CreateDayDetails2(DateTime berichtStart, DateTime berichtEnde, MitarbeiterstundenkontoRO.EmployeeDetail ed, IList<ServiceRecord> recordsAll) protected virtual decimal? GetArbeitszeitTage(Employee emp, DateTime start, DateTime ende)
{
if (emp.Arbeitszeiten != null && emp.Arbeitszeiten.Count > 0)
{
if (HatArbeitszeitImZeitraum(emp.Arbeitszeiten, start, ende))
{
decimal soll = 0;
DateTime startTemp = start;
while (startTemp < ende)
{
soll += GetArbeitszeitTag(emp, startTemp);
startTemp = startTemp.AddDays(1);
}
return soll;
}
}
return null;
}
protected virtual decimal GetArbeitszeitTag(Employee emp, DateTime tag)
{
decimal soll = 0;
var fak = GetFeiertagsFaktor(tag);
if (fak < 1)
{
if (emp.Arbeitszeiten != null)
{
foreach (var az in emp.Arbeitszeiten)
{
if ((!az.GueltigVon.HasValue || az.GueltigVon.Value <= tag) &&
(!az.GueltigBis.HasValue || az.GueltigBis.Value >= tag))
{
var tage = GetAnzahlArbeitszeitTage(az, tag);
soll += tage;
}
}
}
}
return soll;
}
private decimal GetAnzahlArbeitszeitTage(Arbeitszeit az, DateTime tag)
{
var day = tag.DayOfWeek;
decimal tage = 0;
foreach (var ae in az.ArbeitszeitEintraege)
{
if (SindAmGleichenWochentag(day, ae.Tag))
{
String dateStr1 = String.Format("{0:dd.MM.yyyy} {1}", tag, ae.UhrzeitVon);
String dateStr2 = String.Format("{0:dd.MM.yyyy} {1}", tag, ae.UhrzeitBis);
DateTime date1;
DateTime date2;
if (DateTime.TryParse(dateStr1, out date1) && DateTime.TryParse(dateStr2, out date2))
{
tage += 1;
}
}
}
return tage;
}
private bool SindAmGleichenWochentag(DayOfWeek day, AppointmentDayOfWeek aeTag)
{
if (day == DayOfWeek.Monday && aeTag == AppointmentDayOfWeek.Montag)
{
return true;
}
if (day == DayOfWeek.Tuesday && aeTag == AppointmentDayOfWeek.Dienstag)
{
return true;
}
if (day == DayOfWeek.Wednesday && aeTag == AppointmentDayOfWeek.Mittwoch)
{
return true;
}
if (day == DayOfWeek.Thursday && aeTag == AppointmentDayOfWeek.Donnerstag)
{
return true;
}
if (day == DayOfWeek.Friday && aeTag == AppointmentDayOfWeek.Freitag)
{
return true;
}
if (day == DayOfWeek.Saturday && aeTag == AppointmentDayOfWeek.Samstag)
{
return true;
}
return false;
}
public IList<MitarbeiterstundenkontoRO.DayDetail> CreateDayDetails2(DateTime berichtStart, DateTime berichtEnde, MitarbeiterstundenkontoRO.EmployeeDetail ed, IList<ServiceRecord> recordsAll)
{ {
IList<MitarbeiterstundenkontoRO.DayDetail> dayDetailList = base.CreateDayDetails(berichtStart, berichtEnde, ed, recordsAll); IList<MitarbeiterstundenkontoRO.DayDetail> dayDetailList = base.CreateDayDetails(berichtStart, berichtEnde, ed, recordsAll);
@@ -77,11 +178,9 @@ namespace DiakonieKKKleve
if (AddServiceRecordToDuration(sr)) if (AddServiceRecordToDuration(sr))
{ {
azTotal += duration; azTotal += duration;
} }
else else
{ {
if (sr.ServiceDescription.ServiceCategory.IsBillable) if (sr.ServiceDescription.ServiceCategory.IsBillable)
{ {
flmTotal += duration; flmTotal += duration;
@@ -95,15 +194,23 @@ namespace DiakonieKKKleve
} }
var sollProTag = ed.SollProTag; var sollProTag = ed.SollProTag;
var c = ed.Employee.GetValidContractForDate(berichtStart);
if (c != null)
{
if (c.MonthlyTotalHours.HasValue)
{
ed.Regelarbeitszeit = String.Format("{0:0.00} Stunden im Monat", c.MonthlyTotalHours);
}
else if (c.WeeklyTotalHours.HasValue)
{
ed.Regelarbeitszeit = String.Format("{0:0.00} Stunden pro Woche", c.WeeklyTotalHours);
}
}
if (ed.ArbeitstageProWoche != 5) for (int i = berichtStart.Day; i <= DateTime.DaysInMonth(berichtStart.Year, berichtStart.Month); i++)
{
sollProTag = (sollProTag * 5) / ed.ArbeitstageProWoche;
}
for (int i = berichtStart.Day; i <= DateTime.DaysInMonth(berichtStart.Year, berichtStart.Month); i++)
{ {
var start = new DateTime(berichtStart.Year, berichtStart.Month, i); var start = new DateTime(berichtStart.Year, berichtStart.Month, i);
var ah = GetAbsenceTimeDays(ed.Employee.AbsenceTimes, start, start.AddDays(1)); var ah = GetAbsenceTimeDays(ed.Employee.AbsenceTimes, start, start.AddDays(1));
if (ah.TageKrankheit.HasValue && ah.TageKrankheit > 0) if (ah.TageKrankheit.HasValue && ah.TageKrankheit > 0)
@@ -114,7 +221,6 @@ namespace DiakonieKKKleve
{ {
dayDetailList.Add(dd); dayDetailList.Add(dd);
} }
} }
if (ah.TageUrlaub.HasValue && ah.TageUrlaub > 0) if (ah.TageUrlaub.HasValue && ah.TageUrlaub > 0)
{ {
@@ -124,12 +230,9 @@ namespace DiakonieKKKleve
{ {
dayDetailList.Add(dd); dayDetailList.Add(dd);
} }
} }
} }
return dayDetailList.OrderBy(dd => dd.Date).ToList(); return dayDetailList.OrderBy(dd => dd.Date).ToList();
} }
@@ -138,243 +241,377 @@ namespace DiakonieKKKleve
MitarbeiterstundenkontoRO.DayDetail dd = null; MitarbeiterstundenkontoRO.DayDetail dd = null;
MitarbeiterstundenkontoRO.DayDetail returndd = null; MitarbeiterstundenkontoRO.DayDetail returndd = null;
if (!dayToDetail.ContainsKey(start.Day)) //BerechneArbeitstage(ed, start, start.AddMonths(1).AddDays(-1));
{
if (!dayToDetail.ContainsKey(start.Day))
{
dd = CreateDayDetail(start, ed); dd = CreateDayDetail(start, ed);
returndd = dd; returndd = dd;
} }
else else
{ {
dd = dayToDetail[start.Day]; dd = dayToDetail[start.Day];
} }
String ar = ""; String ar = "";
foreach (var at in ed.Employee.AbsenceTimes) foreach (var at in ed.Employee.AbsenceTimes)
{ {
if ((!at.Start.HasValue || at.Start.Value <= start) && if ((!at.Start.HasValue || at.Start.Value <= start) &&
(!at.End.HasValue || at.End.Value >= start)) (!at.End.HasValue || at.End.Value >= start))
{ {
ar = at.AbsenceReason.Description; ar = at.AbsenceReason.Description;
} DateTimeSpan span = new DateTimeSpan();
span.StartDate = dd.Date;
if (at.Start.HasValue && at.Start.Value > span.StartDate)
{
span.StartDate = at.Start.Value;
}
if (at.End.HasValue && at.End.Value.Date == span.StartDate.Date &&
at.End.Value.Hour > 0)
{
span.EndDate = at.End.Value;
}
else
{
span.EndDate = dd.Date.AddDays(1);
if (at.End.HasValue && at.End.Value.Date.AddDays(1) < span.EndDate)
{
span.EndDate = at.End.Value.Date.AddDays(1);
}
}
if (span.EndDate > dd.Date && span.StartDate < dd.Date.AddDays(1))
{
DateTime day = span.StartDate;
var faktor = GetFeiertagsFaktor(day);
if (faktor < 1 && day.DayOfWeek != DayOfWeek.Saturday && day.DayOfWeek != DayOfWeek.Sunday)
{
var sollDiesenTag = ed.SollProTag;
var c = ed.Employee.GetValidContractForDate(dd.Date);
if (c != null)
{
decimal wth = 0;
int apw = 5;
if (c.WeeklyTotalHours.HasValue)
{
wth = c.WeeklyTotalHours.Value;
}
if (c.WeeklyDays.HasValue && c.WeeklyDays.Value > 0)
{
apw = c.WeeklyDays.Value;
}
sollDiesenTag = wth / apw;
}
if (HatArbeitszeitImZeitraum(ed.Employee.Arbeitszeiten, dd.Date, dd.Date))
{
sollDiesenTag = BerechneAlleAbwesenheitsStundenFuerArbeitszeiten(ed.Employee, dd.Date);
}
if (span.StartDate.Hour > 0 && span.EndDate.Hour > 0)
{
var ts = span.EndDate.Subtract(span.StartDate);
sollDiesenTag -= ts.Hours;
if (sollDiesenTag < 0)
{
sollDiesenTag = 0;
}
faktor = 1; // Keine halben Feiertag berücksichtigen, wenn die Abwesenheit in Stunden angegeben wurde
}
if (ed.AbsenceTimeDays != null && ed.AbsenceTimeDays.TageProWocheDict != null)
{
if (ed.AbsenceTimeDays.RestStundenProWocheDict == null)
{
ed.AbsenceTimeDays.RestStundenProWocheDict = new Dictionary<DateTimeSpan, decimal>();
}
foreach (var week in ed.AbsenceTimeDays.TageProWocheDict.Keys)
{
if (!ed.AbsenceTimeDays.RestStundenProWocheDict.ContainsKey(week))
{
ed.AbsenceTimeDays.RestStundenProWocheDict.Add(week, ed.SollProWoche);
}
if (day.Date >= week.StartDate && day.Date <= week.EndDate)
{
var rest = ed.AbsenceTimeDays.RestStundenProWocheDict[week];
if (rest < sollDiesenTag)
{
sollDiesenTag = rest;
}
rest -= sollDiesenTag;
if (rest < 0)
{
rest = 0;
}
ed.AbsenceTimeDays.RestStundenProWocheDict[week] = rest;
}
}
}
decimal maxSoll = sollDiesenTag;
if (faktor != 0)
{
sollDiesenTag *= faktor; //halbe Feiertage etc. berücksichtigen
}
if (IsUrlaubAbsenceTime(at))
{
dd.HoursInVacation = sollDiesenTag;
}
else if (IsKrankheitAbsenceTime(at))
{
dd.HoursSick = sollDiesenTag;
}
else
{
}
if (dd.AbsenceTimes == null)
{
dd.AbsenceTimes = new List<AbsenceTime>();
}
dd.AbsenceTimes.Add(at);
dd.MinutesTotal += sollDiesenTag * 60;
}
}
}
} }
dd.Custom10 = ar; dd.Custom10 = ar;
dd.MinutesTotal += minuten; // dd.MinutesTotal += minuten;
return returndd; return returndd;
} }
//public IList<MitarbeiterstundenkontoRO.DayDetail> CreateDayDetails2(DateTime berichtStart, DateTime berichtEnde, MitarbeiterstundenkontoRO.EmployeeDetail ed, IList<ServiceRecord> recordsAll) private bool HatArbeitszeitImZeitraum(IList<Arbeitszeit> arbeitszeiten, DateTime start, DateTime ende)
//{ {
// IList<MitarbeiterstundenkontoRO.DayDetail> dayDetailList = new List<MitarbeiterstundenkontoRO.DayDetail>(); if (arbeitszeiten != null)
{
foreach (var az in arbeitszeiten)
{
if ((!az.GueltigVon.HasValue || az.GueltigVon.Value < ende) && (!az.GueltigBis.HasValue || az.GueltigBis.Value >= start) && az.ArbeitszeitEintraege != null && az.ArbeitszeitEintraege.Count > 0)
{
return true;
}
}
}
// decimal flmTotal = 0; return false;
// decimal azTotal = 0; }
// foreach (var sr in recordsAll)
// {
// if (sr.Start.HasValue && sr.Start >= berichtStart && sr.Start < berichtEnde && sr.End.HasValue)
// {
// decimal duration = 0;
// if (sr.GroupRoundedDuration.HasValue)
// {
// duration = sr.GroupRoundedDuration.Value;
// }
// else
// {
// duration = sr.RoundedDuration;
// }
// if (AddServiceRecordToDuration(sr))
// {
// MitarbeiterstundenkontoRO.DayDetail dd = CreateDayDetail(new DateTime(berichtStart.Year, berichtStart.Month, sr.Start.Value.Day), ed);
// dayDetailList.Add(dd);
// dd.MinutesTotal += duration; //public IList<MitarbeiterstundenkontoRO.DayDetail> CreateDayDetails2(DateTime berichtStart, DateTime berichtEnde, MitarbeiterstundenkontoRO.EmployeeDetail ed, IList<ServiceRecord> recordsAll)
// if (dd.ServiceRecords == null) //{
// dd.ServiceRecords = new List<ServiceRecord>(); // IList<MitarbeiterstundenkontoRO.DayDetail> dayDetailList = new List<MitarbeiterstundenkontoRO.DayDetail>();
// dd.ServiceRecords.Add(sr);
// CalculateSpecialHours(dd, sr, duration); // decimal flmTotal = 0;
// decimal azTotal = 0;
// foreach (var sr in recordsAll)
// {
// if (sr.Start.HasValue && sr.Start >= berichtStart && sr.Start < berichtEnde && sr.End.HasValue)
// {
// decimal duration = 0;
// if (sr.GroupRoundedDuration.HasValue)
// {
// duration = sr.GroupRoundedDuration.Value;
// }
// else
// {
// duration = sr.RoundedDuration;
// }
// if (AddServiceRecordToDuration(sr))
// {
// MitarbeiterstundenkontoRO.DayDetail dd = CreateDayDetail(new DateTime(berichtStart.Year, berichtStart.Month, sr.Start.Value.Day), ed);
// dayDetailList.Add(dd);
// dd.MinutesTotal += duration;
// if (dd.ServiceRecords == null)
// dd.ServiceRecords = new List<ServiceRecord>();
// dd.ServiceRecords.Add(sr);
// CalculateSpecialHours(dd, sr, duration);
// DateTime dtEnd = sr.Start.Value.AddMinutes((double)duration); // DateTime dtEnd = sr.Start.Value.AddMinutes((double)duration);
// dd.StartDateTime1 = sr.Start; // dd.StartDateTime1 = sr.Start;
// dd.EndDateTime1 = dtEnd; // dd.EndDateTime1 = dtEnd;
// azTotal += duration; // azTotal += duration;
// } // }
// else // else
// { // {
// if (sr.ServiceDescription.ServiceCategory.IsBillable) // if (sr.ServiceDescription.ServiceCategory.IsBillable)
// { // {
// flmTotal += duration; // flmTotal += duration;
// } // }
// } // }
// } // }
// } // }
// if (azTotal != 0) // if (azTotal != 0)
// { // {
// ed.FlsDiff = (flmTotal / azTotal) * 100; //Differenzen durch AbsenceTimes? // ed.FlsDiff = (flmTotal / azTotal) * 100; //Differenzen durch AbsenceTimes?
// } // }
// var sollProTag = ed.SollProTag; // var sollProTag = ed.SollProTag;
// if (ed.ArbeitstageProWoche != 5) // if (ed.ArbeitstageProWoche != 5)
// { // {
// sollProTag = (sollProTag * 5) / ed.ArbeitstageProWoche; // sollProTag = (sollProTag * 5) / ed.ArbeitstageProWoche;
// } // }
// for (int i = berichtStart.Day; i <= DateTime.DaysInMonth(berichtStart.Year, berichtStart.Month); i++) // for (int i = berichtStart.Day; i <= DateTime.DaysInMonth(berichtStart.Year, berichtStart.Month); i++)
// { // {
// var start = new DateTime(berichtStart.Year, berichtStart.Month, i); // var start = new DateTime(berichtStart.Year, berichtStart.Month, i);
// var ah = GetAbsenceTimeDays(ed.Employee.AbsenceTimes, start, start.AddDays(1)); // var ah = GetAbsenceTimeDays(ed.Employee.AbsenceTimes, start, start.AddDays(1));
// if (ah.TageKrankheit.HasValue && ah.TageKrankheit > 0) // if (ah.TageKrankheit.HasValue && ah.TageKrankheit > 0)
// { // {
// MitarbeiterstundenkontoRO.DayDetail dd = CreateDayDetail(start, ed); // MitarbeiterstundenkontoRO.DayDetail dd = CreateDayDetail(start, ed);
// dayDetailList.Add(dd); // dayDetailList.Add(dd);
// dd.MinutesTotal = (sollProTag * 60) / ah.TageKrankheit.Value; // dd.MinutesTotal = (sollProTag * 60) / ah.TageKrankheit.Value;
// } // }
// if (ah.TageUrlaub.HasValue && ah.TageUrlaub > 0) // if (ah.TageUrlaub.HasValue && ah.TageUrlaub > 0)
// { // {
// MitarbeiterstundenkontoRO.DayDetail dd = CreateDayDetail(start, ed); // MitarbeiterstundenkontoRO.DayDetail dd = CreateDayDetail(start, ed);
// dayDetailList.Add(dd); // dayDetailList.Add(dd);
// dd.MinutesTotal = (sollProTag * 60) / ah.TageUrlaub.Value; // dd.MinutesTotal = (sollProTag * 60) / ah.TageUrlaub.Value;
// } // }
// } // }
// return dayDetailList.OrderBy(dd => dd.Date).ToList(); // return dayDetailList.OrderBy(dd => dd.Date).ToList();
//} //}
//private void BerechneZeitraeume() //private void BerechneZeitraeume()
//{ //{
// foreach (var ddKeyValue in dayToDetail) // foreach (var ddKeyValue in dayToDetail)
// { // {
// var dd = ddKeyValue.Value; // var dd = ddKeyValue.Value;
// if (dd.ZusammenhaengendeZeitraeume == null) // if (dd.ZusammenhaengendeZeitraeume == null)
// { // {
// dd.ZusammenhaengendeZeitraeume = new List<DateTimeSpan>(); // dd.ZusammenhaengendeZeitraeume = new List<DateTimeSpan>();
// } // }
// if (dd.ServiceRecords != null) // if (dd.ServiceRecords != null)
// { // {
// var orderedList = dd.ServiceRecords.OrderBy(i => i.Start); // var orderedList = dd.ServiceRecords.OrderBy(i => i.Start);
// DateTime lastEnd = DateTime.MinValue; // DateTime lastEnd = DateTime.MinValue;
// var gapCount = -1; // var gapCount = -1;
// foreach (var sr in orderedList) // foreach (var sr in orderedList)
// { // {
// if (sr.Start.HasValue && sr.Start.Value.Hour == 0 && sr.Start.Value.Second > 0) // if (sr.Start.HasValue && sr.Start.Value.Hour == 0 && sr.Start.Value.Second > 0)
// { // {
// continue; // continue;
// } // }
// decimal duration = GetDuration(sr); // decimal duration = GetDuration(sr);
// DateTime dtEnd = sr.Start.Value.AddMinutes((double) duration); // DateTime dtEnd = sr.Start.Value.AddMinutes((double) duration);
// if (sr.Start > lastEnd) // if (sr.Start > lastEnd)
// { // {
// gapCount++; // gapCount++;
// } // }
// if (dtEnd > lastEnd) // if (dtEnd > lastEnd)
// { // {
// lastEnd = dtEnd; // lastEnd = dtEnd;
// } // }
// DateTimeSpan currentSpan = null; // DateTimeSpan currentSpan = null;
// if (gapCount + 1 > dd.ZusammenhaengendeZeitraeume.Count) // if (gapCount + 1 > dd.ZusammenhaengendeZeitraeume.Count)
// { // {
// currentSpan = new DateTimeSpan(); // currentSpan = new DateTimeSpan();
// currentSpan.StartDateTime = DateTime.MaxValue; // currentSpan.StartDateTime = DateTime.MaxValue;
// currentSpan.EndDateTime = DateTime.MinValue; // currentSpan.EndDateTime = DateTime.MinValue;
// dd.ZusammenhaengendeZeitraeume.Add(currentSpan); // dd.ZusammenhaengendeZeitraeume.Add(currentSpan);
// } // }
// else // else
// { // {
// currentSpan = dd.ZusammenhaengendeZeitraeume[gapCount]; // currentSpan = dd.ZusammenhaengendeZeitraeume[gapCount];
// } // }
// if (sr.Start < currentSpan.StartDateTime) // if (sr.Start < currentSpan.StartDateTime)
// { // {
// currentSpan.StartDateTime = sr.Start.Value; // currentSpan.StartDateTime = sr.Start.Value;
// } // }
// if (dtEnd > currentSpan.EndDateTime) // if (dtEnd > currentSpan.EndDateTime)
// { // {
// currentSpan.EndDateTime = dtEnd; // currentSpan.EndDateTime = dtEnd;
// } // }
// if (gapCount == 0) // if (gapCount == 0)
// { // {
// if (!dd.StartDateTime1.HasValue || sr.Start < dd.StartDateTime1) // if (!dd.StartDateTime1.HasValue || sr.Start < dd.StartDateTime1)
// { // {
// dd.StartDateTime1 = sr.Start; // dd.StartDateTime1 = sr.Start;
// } // }
// if (!dd.EndDateTime1.HasValue || dtEnd > dd.EndDateTime1) // if (!dd.EndDateTime1.HasValue || dtEnd > dd.EndDateTime1)
// { // {
// dd.EndDateTime1 = dtEnd; // dd.EndDateTime1 = dtEnd;
// } // }
// } // }
// else if (gapCount == 1) // else if (gapCount == 1)
// { // {
// if (!dd.StartDateTime2.HasValue || sr.Start < dd.StartDateTime2) // if (!dd.StartDateTime2.HasValue || sr.Start < dd.StartDateTime2)
// { // {
// dd.StartDateTime2 = sr.Start; // dd.StartDateTime2 = sr.Start;
// } // }
// if (!dd.EndDateTime2.HasValue || dtEnd > dd.EndDateTime2) // if (!dd.EndDateTime2.HasValue || dtEnd > dd.EndDateTime2)
// { // {
// dd.EndDateTime2 = dtEnd; // dd.EndDateTime2 = dtEnd;
// } // }
// } // }
// else if (gapCount == 2) // else if (gapCount == 2)
// { // {
// if (!dd.StartDateTime3.HasValue || sr.Start < dd.StartDateTime3) // if (!dd.StartDateTime3.HasValue || sr.Start < dd.StartDateTime3)
// { // {
// dd.StartDateTime3 = sr.Start; // dd.StartDateTime3 = sr.Start;
// } // }
// if (!dd.EndDateTime3.HasValue || dtEnd > dd.EndDateTime3) // if (!dd.EndDateTime3.HasValue || dtEnd > dd.EndDateTime3)
// { // {
// dd.EndDateTime3 = dtEnd; // dd.EndDateTime3 = dtEnd;
// } // }
// } // }
// else // else
// { // {
// if (!dd.StartDateTime4.HasValue || sr.Start < dd.StartDateTime4) // if (!dd.StartDateTime4.HasValue || sr.Start < dd.StartDateTime4)
// { // {
// dd.StartDateTime4 = sr.Start; // dd.StartDateTime4 = sr.Start;
// } // }
// if (!dd.EndDateTime4.HasValue || dtEnd > dd.EndDateTime4) // if (!dd.EndDateTime4.HasValue || dtEnd > dd.EndDateTime4)
// { // {
// dd.EndDateTime4 = dtEnd; // dd.EndDateTime4 = dtEnd;
// } // }
// } // }
// } // }
// } // }
// } // }
//} //}
public override MitarbeiterstundenkontoRO.DayDetail CreateDayDetail(DateTime date, MitarbeiterstundenkontoRO.EmployeeDetail ed) public override MitarbeiterstundenkontoRO.DayDetail CreateDayDetail(DateTime date, MitarbeiterstundenkontoRO.EmployeeDetail ed)
{ {
return new MitarbeiterstundenkontoRO.DayDetail { Date = date.Date, NightStart = 21, NightEnd = 6 }; return new MitarbeiterstundenkontoRO.DayDetail { Date = date.Date, NightStart = 21, NightEnd = 6 };
} }

View File

@@ -19,7 +19,7 @@ namespace DiakonieKKKleve
var msb = new DiakonieKKKleveMitarbeiterstundenkontoBerechnung(); var msb = new DiakonieKKKleveMitarbeiterstundenkontoBerechnung();
msb.CreateReport(pRO); msb.CreateReport(pRO);
ueberschriftsLabel.Text = string.Format("Arbeitszeiterfassung für den Monat {0}", pRO.ReportStartDate.ToString("MMMM yyyy")); ueberschriftsLabel.Text = string.Format("Arbeitszeiterfassung f<EFBFBD>r den Monat {0}", pRO.ReportStartDate.ToString("MMMM yyyy"));
sollStundenMonatLabelTableCell.Text = string.Format("Sollstunden Monat {0}", pRO.ReportStartDate.ToString("MMMM yyyy")); sollStundenMonatLabelTableCell.Text = string.Format("Sollstunden Monat {0}", pRO.ReportStartDate.ToString("MMMM yyyy"));
bindingSource1.DataSource = pRO; bindingSource1.DataSource = pRO;

View File

@@ -636,7 +636,7 @@ namespace DiakonieKKKleve
| DevExpress.XtraPrinting.BorderSide.Right) | DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom))); | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell23.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] { this.xrTableCell23.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "EmployeeDetailList.WorkDaysThisMonth", "{0:#,##}")}); new DevExpress.XtraReports.UI.XRBinding("Text", null, "EmployeeDetailList.ArbeitstageImBerichtszeitraum", "{0:#,##}")});
this.xrTableCell23.Name = "xrTableCell23"; this.xrTableCell23.Name = "xrTableCell23";
this.xrTableCell23.StylePriority.UseBorders = false; this.xrTableCell23.StylePriority.UseBorders = false;
this.xrTableCell23.StylePriority.UseTextAlignment = false; this.xrTableCell23.StylePriority.UseTextAlignment = false;

View File

@@ -55,11 +55,11 @@ namespace KetteReports
lblKundennr.Visible = false; lblKundennr.Visible = false;
lblAbsenderJA.Visible = true; lblAbsenderJA.Visible = true;
notice += notice +=
"\nSollten Sie dem Lastschriftverfahren zugestimmt haben, wird der Rechnungsbetrag in den nächsten Tagen von ihrem Konto eingezogen.\nUm Ihre Überweisung besser zuordnen zu können bitten wir Sie um die Angabe der Rechnungsnummer."; "\nSollten Sie dem Lastschriftverfahren zugestimmt haben, wird der Rechnungsbetrag in den nächsten Tagen von ihrem Konto eingezogen.\nUm Ihre Überweisung besser zuordnen zu können, bitten wir Sie um die Angabe der Rechnungsnummer.";
} }
else else
notice += notice +=
"\nSollten Sie dem Lastschriftverfahren zugestimmt haben, wird der Rechnungsbetrag in den nächsten Tagen von ihrem Konto eingezogen.\nUm Ihre Überweisung besser zuordnen zu können bitten wir Sie um die Angabe des Leistungsmonats, der Kundennummer und der Rechnungsnummer."; "\nSollten Sie dem Lastschriftverfahren zugestimmt haben, wird der Rechnungsbetrag in den nächsten Tagen von ihrem Konto eingezogen.\nUm Ihre Überweisung besser zuordnen zu können, bitten wir Sie um die Angabe des Leistungsmonats, der Kundennummer und der Rechnungsnummer.";
if (String.IsNullOrEmpty(pRO.Notice)) if (String.IsNullOrEmpty(pRO.Notice))
{ {

View File

@@ -48,8 +48,9 @@ namespace PerspektivenEV
{ {
XtraReport invoiceReport = null; XtraReport invoiceReport = null;
if (iDC.InvoiceBase.RecipientOrganisation == "SELBSTZAHLER") if (iDC.InvoiceBase.RecipientOrganisation != "LWV Hessen" && iDC.InvoiceBase.Type.ToString() == "Service"
{ && iDC.ServiceInvoicePeriods.Count > 0 && iDC.ServiceInvoicePeriods[0].SupportConceptApprovalPeriod.ServiceCategory.Name.Contains("BW"))
{
XtraReport masterReport = new XtraReport(); XtraReport masterReport = new XtraReport();
masterReport.CreateDocument(); masterReport.CreateDocument();