diff --git a/.gitignore b/.gitignore index 8bd49a7ea..6e3981536 100644 --- a/.gitignore +++ b/.gitignore @@ -568,3 +568,7 @@ obj /ReportImp/KundeArbeitszeit *.user /ReportImp/KundeMuster +/ReportImp/DiakonieKKKleve/Mitarbeiterarbeitszeitkonto.designer.cs +/ReportImp/DiakonieKKKleve/Mitarbeiterarbeitszeitkonto.resx +/ReportImp/DiakonieKKKleve/Mitarbeiterarbeitszeitkonto.cs +/ReportImp/DiakonieKKKleve/CustomMitarbeiterstundenkontoBerechnungTagesansicht.cs diff --git a/ReportImp/AutismusKoelnBonn/Invoicing/FactorInvoiceCreation.cs b/ReportImp/AutismusKoelnBonn/Invoicing/FactorInvoiceCreation.cs index 6d062f375..89e4d58bb 100644 --- a/ReportImp/AutismusKoelnBonn/Invoicing/FactorInvoiceCreation.cs +++ b/ReportImp/AutismusKoelnBonn/Invoicing/FactorInvoiceCreation.cs @@ -11,9 +11,6 @@ namespace AutismusKoelnBonn.Invoicing public class FactorInvoiceCreation : InvoiceCreation { - private DateTime? accountingPeriodStart = null; - private DateTime? accountingPeriodEnd = null; - public override void SetInvoiceId(ServiceInvoice invoice) { invoice.InvoiceBase.InvoiceId = "Faktor"; diff --git a/ReportImp/AutismusKoelnBonn/Quittierungsbeleg.cs b/ReportImp/AutismusKoelnBonn/Quittierungsbeleg.cs index b1a90b027..78094ad24 100644 --- a/ReportImp/AutismusKoelnBonn/Quittierungsbeleg.cs +++ b/ReportImp/AutismusKoelnBonn/Quittierungsbeleg.cs @@ -3,6 +3,8 @@ using System.Collections.Generic; using System.Drawing; using System.IO; using System.Text.RegularExpressions; +using BeWo.Data.Access; +using BeWo.Data.Entities; using BeWo.Report; using BeWo.Report.ReportObjects; using BS.Shared.Core; @@ -49,8 +51,8 @@ namespace AutismusKoelnBonn pRO.Services = servicesBillable; } - - if (pRO.SupportConceptCostBearer.SupportConcept.Customer.Teams.Contains("Bonn")) + Customer c = DAOFactory.GenericDAO.LoadByID(pRO.CustomerOid); + if (c.Team2CustomerList.Count > 0 && c.Team2CustomerList[0].Team.Name.Contains("Bonn")) { lblBonn.Visible = true; lblKoeln.Visible = false; @@ -110,7 +112,6 @@ namespace AutismusKoelnBonn if (newRows > 0) { - lblUnterschriftKlient.Top += newRows * 20; lblUnterschriftMitarbeiter.Top += newRows * 20; } } @@ -119,9 +120,9 @@ namespace AutismusKoelnBonn // TODO: Wie anzeigen? Alle? 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; @@ -144,9 +145,9 @@ namespace AutismusKoelnBonn // TODO: Visibile der Datumstextboxen auf true setzen! 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; @@ -174,7 +175,7 @@ namespace AutismusKoelnBonn { var base64Data = Regex.Match(base64String, @"data:image/(?.+?),(?.+)").Groups["data"].Value; var binData = Convert.FromBase64String(base64Data); - Image img = ByteArrayToImage(binData); + System.Drawing.Image img = ByteArrayToImage(binData); xrBox.Image = Utils.CropImage(img); } 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)) { - return Image.FromStream(memoryStream); + return System.Drawing.Image.FromStream(memoryStream); } } } diff --git a/ReportImp/DiakonieKKKleve/DiakonieKKKleveMitarbeiterstundenkontoBerechnung.cs b/ReportImp/DiakonieKKKleve/DiakonieKKKleveMitarbeiterstundenkontoBerechnung.cs index 9762ed607..91519a521 100644 --- a/ReportImp/DiakonieKKKleve/DiakonieKKKleveMitarbeiterstundenkontoBerechnung.cs +++ b/ReportImp/DiakonieKKKleve/DiakonieKKKleveMitarbeiterstundenkontoBerechnung.cs @@ -4,6 +4,7 @@ using System.Linq; using System.Windows.Forms; using BeWo.Data.Entities; using BeWo.Report.ReportObjects; +using BS.Shared; using BS.Shared.Core; using BS.Shared.Extensions; @@ -21,12 +22,12 @@ namespace DiakonieKKKleve { var details = CreateDayDetails2(berichtStart, berichtEnde, ed, recordsAll); - foreach (var dd in details) + foreach (var dd in details) { if (dd.Custom10 == null) - dd.Custom10 = ""; + dd.Custom10 = ""; - if (dd.ZusammenhaengendeZeitraeume != null) + if (dd.ZusammenhaengendeZeitraeume != null) { foreach (var dts in dd.ZusammenhaengendeZeitraeume) { @@ -34,15 +35,115 @@ namespace DiakonieKKKleve { dd.Custom10 += ", "; } - 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 CreateDayDetails2(DateTime berichtStart, DateTime berichtEnde, MitarbeiterstundenkontoRO.EmployeeDetail ed, IList 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 CreateDayDetails2(DateTime berichtStart, DateTime berichtEnde, MitarbeiterstundenkontoRO.EmployeeDetail ed, IList recordsAll) { IList dayDetailList = base.CreateDayDetails(berichtStart, berichtEnde, ed, recordsAll); @@ -77,11 +178,9 @@ namespace DiakonieKKKleve if (AddServiceRecordToDuration(sr)) { azTotal += duration; - } else { - if (sr.ServiceDescription.ServiceCategory.IsBillable) { flmTotal += duration; @@ -95,15 +194,23 @@ namespace DiakonieKKKleve } 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) - { - 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 ah = GetAbsenceTimeDays(ed.Employee.AbsenceTimes, start, start.AddDays(1)); if (ah.TageKrankheit.HasValue && ah.TageKrankheit > 0) @@ -114,7 +221,6 @@ namespace DiakonieKKKleve { dayDetailList.Add(dd); } - } if (ah.TageUrlaub.HasValue && ah.TageUrlaub > 0) { @@ -124,12 +230,9 @@ namespace DiakonieKKKleve { dayDetailList.Add(dd); } - } } - - return dayDetailList.OrderBy(dd => dd.Date).ToList(); } @@ -138,243 +241,377 @@ namespace DiakonieKKKleve MitarbeiterstundenkontoRO.DayDetail dd = 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); returndd = dd; } else { dd = dayToDetail[start.Day]; - } String ar = ""; - foreach (var at in ed.Employee.AbsenceTimes) { - if ((!at.Start.HasValue || at.Start.Value <= start) && - (!at.End.HasValue || at.End.Value >= start)) - { - ar = at.AbsenceReason.Description; - } + if ((!at.Start.HasValue || at.Start.Value <= start) && + (!at.End.HasValue || at.End.Value >= start)) + { + 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(); + } + 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(); + } + dd.AbsenceTimes.Add(at); + dd.MinutesTotal += sollDiesenTag * 60; + } + } + } } dd.Custom10 = ar; - dd.MinutesTotal += minuten; + // dd.MinutesTotal += minuten; return returndd; } - //public IList CreateDayDetails2(DateTime berichtStart, DateTime berichtEnde, MitarbeiterstundenkontoRO.EmployeeDetail ed, IList recordsAll) - //{ - // IList dayDetailList = new List(); + private bool HatArbeitszeitImZeitraum(IList arbeitszeiten, DateTime start, DateTime ende) + { + 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; - // 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); + return false; + } - // dd.MinutesTotal += duration; - // if (dd.ServiceRecords == null) - // dd.ServiceRecords = new List(); - // dd.ServiceRecords.Add(sr); + //public IList CreateDayDetails2(DateTime berichtStart, DateTime berichtEnde, MitarbeiterstundenkontoRO.EmployeeDetail ed, IList recordsAll) + //{ + // IList dayDetailList = new List(); - // 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(); + // 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) - // { - // flmTotal += duration; - // } - // } - // } - // } - // if (azTotal != 0) - // { - // ed.FlsDiff = (flmTotal / azTotal) * 100; //Differenzen durch AbsenceTimes? - // } + // if (sr.ServiceDescription.ServiceCategory.IsBillable) + // { + // flmTotal += duration; + // } + // } + // } + // } + // if (azTotal != 0) + // { + // ed.FlsDiff = (flmTotal / azTotal) * 100; //Differenzen durch AbsenceTimes? + // } - // var sollProTag = ed.SollProTag; + // var sollProTag = ed.SollProTag; - // if (ed.ArbeitstageProWoche != 5) - // { - // 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); + // if (ed.ArbeitstageProWoche != 5) + // { + // 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 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) - // { - // MitarbeiterstundenkontoRO.DayDetail dd = CreateDayDetail(start, ed); - // dayDetailList.Add(dd); + // if (ah.TageKrankheit.HasValue && ah.TageKrankheit > 0) + // { + // MitarbeiterstundenkontoRO.DayDetail dd = CreateDayDetail(start, ed); + // dayDetailList.Add(dd); - // dd.MinutesTotal = (sollProTag * 60) / ah.TageKrankheit.Value; - // } - // if (ah.TageUrlaub.HasValue && ah.TageUrlaub > 0) - // { - // MitarbeiterstundenkontoRO.DayDetail dd = CreateDayDetail(start, ed); - // dayDetailList.Add(dd); + // dd.MinutesTotal = (sollProTag * 60) / ah.TageKrankheit.Value; + // } + // if (ah.TageUrlaub.HasValue && ah.TageUrlaub > 0) + // { + // MitarbeiterstundenkontoRO.DayDetail dd = CreateDayDetail(start, ed); + // 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() - //{ - // foreach (var ddKeyValue in dayToDetail) - // { - // var dd = ddKeyValue.Value; - // if (dd.ZusammenhaengendeZeitraeume == null) - // { - // dd.ZusammenhaengendeZeitraeume = new List(); - // } + //private void BerechneZeitraeume() + //{ + // foreach (var ddKeyValue in dayToDetail) + // { + // var dd = ddKeyValue.Value; + // if (dd.ZusammenhaengendeZeitraeume == null) + // { + // dd.ZusammenhaengendeZeitraeume = new List(); + // } - // if (dd.ServiceRecords != null) - // { - // var orderedList = dd.ServiceRecords.OrderBy(i => i.Start); + // if (dd.ServiceRecords != null) + // { + // var orderedList = dd.ServiceRecords.OrderBy(i => i.Start); - // DateTime lastEnd = DateTime.MinValue; - // var gapCount = -1; + // DateTime lastEnd = DateTime.MinValue; + // var gapCount = -1; - // foreach (var sr in orderedList) - // { - // if (sr.Start.HasValue && sr.Start.Value.Hour == 0 && sr.Start.Value.Second > 0) - // { - // continue; - // } + // foreach (var sr in orderedList) + // { + // if (sr.Start.HasValue && sr.Start.Value.Hour == 0 && sr.Start.Value.Second > 0) + // { + // continue; + // } - // decimal duration = GetDuration(sr); + // decimal duration = GetDuration(sr); - // DateTime dtEnd = sr.Start.Value.AddMinutes((double) duration); - // if (sr.Start > lastEnd) - // { - // gapCount++; + // DateTime dtEnd = sr.Start.Value.AddMinutes((double) duration); + // if (sr.Start > lastEnd) + // { + // gapCount++; - // } + // } - // if (dtEnd > lastEnd) - // { - // lastEnd = dtEnd; - // } + // if (dtEnd > lastEnd) + // { + // lastEnd = dtEnd; + // } - // DateTimeSpan currentSpan = null; - // if (gapCount + 1 > dd.ZusammenhaengendeZeitraeume.Count) - // { - // currentSpan = new DateTimeSpan(); - // currentSpan.StartDateTime = DateTime.MaxValue; - // currentSpan.EndDateTime = DateTime.MinValue; - // dd.ZusammenhaengendeZeitraeume.Add(currentSpan); - // } - // else - // { - // currentSpan = dd.ZusammenhaengendeZeitraeume[gapCount]; - // } + // DateTimeSpan currentSpan = null; + // if (gapCount + 1 > dd.ZusammenhaengendeZeitraeume.Count) + // { + // currentSpan = new DateTimeSpan(); + // currentSpan.StartDateTime = DateTime.MaxValue; + // currentSpan.EndDateTime = DateTime.MinValue; + // dd.ZusammenhaengendeZeitraeume.Add(currentSpan); + // } + // else + // { + // currentSpan = dd.ZusammenhaengendeZeitraeume[gapCount]; + // } - // if (sr.Start < currentSpan.StartDateTime) - // { - // currentSpan.StartDateTime = sr.Start.Value; - // } + // if (sr.Start < currentSpan.StartDateTime) + // { + // currentSpan.StartDateTime = sr.Start.Value; + // } - // if (dtEnd > currentSpan.EndDateTime) - // { - // currentSpan.EndDateTime = dtEnd; - // } + // if (dtEnd > currentSpan.EndDateTime) + // { + // currentSpan.EndDateTime = dtEnd; + // } - // if (gapCount == 0) - // { - // if (!dd.StartDateTime1.HasValue || sr.Start < dd.StartDateTime1) - // { - // dd.StartDateTime1 = sr.Start; - // } + // if (gapCount == 0) + // { + // if (!dd.StartDateTime1.HasValue || sr.Start < dd.StartDateTime1) + // { + // dd.StartDateTime1 = sr.Start; + // } - // if (!dd.EndDateTime1.HasValue || dtEnd > dd.EndDateTime1) - // { - // dd.EndDateTime1 = dtEnd; - // } - // } - // else if (gapCount == 1) - // { - // if (!dd.StartDateTime2.HasValue || sr.Start < dd.StartDateTime2) - // { - // dd.StartDateTime2 = sr.Start; - // } + // if (!dd.EndDateTime1.HasValue || dtEnd > dd.EndDateTime1) + // { + // dd.EndDateTime1 = dtEnd; + // } + // } + // else if (gapCount == 1) + // { + // if (!dd.StartDateTime2.HasValue || sr.Start < dd.StartDateTime2) + // { + // dd.StartDateTime2 = sr.Start; + // } - // if (!dd.EndDateTime2.HasValue || dtEnd > dd.EndDateTime2) - // { - // dd.EndDateTime2 = dtEnd; - // } - // } - // else if (gapCount == 2) - // { - // if (!dd.StartDateTime3.HasValue || sr.Start < dd.StartDateTime3) - // { - // dd.StartDateTime3 = sr.Start; - // } + // if (!dd.EndDateTime2.HasValue || dtEnd > dd.EndDateTime2) + // { + // dd.EndDateTime2 = dtEnd; + // } + // } + // else if (gapCount == 2) + // { + // if (!dd.StartDateTime3.HasValue || sr.Start < dd.StartDateTime3) + // { + // dd.StartDateTime3 = sr.Start; + // } - // if (!dd.EndDateTime3.HasValue || dtEnd > dd.EndDateTime3) - // { - // dd.EndDateTime3 = dtEnd; - // } - // } - // else - // { - // if (!dd.StartDateTime4.HasValue || sr.Start < dd.StartDateTime4) - // { - // dd.StartDateTime4 = sr.Start; - // } + // if (!dd.EndDateTime3.HasValue || dtEnd > dd.EndDateTime3) + // { + // dd.EndDateTime3 = dtEnd; + // } + // } + // else + // { + // if (!dd.StartDateTime4.HasValue || sr.Start < dd.StartDateTime4) + // { + // dd.StartDateTime4 = sr.Start; + // } - // if (!dd.EndDateTime4.HasValue || dtEnd > dd.EndDateTime4) - // { - // dd.EndDateTime4 = dtEnd; - // } - // } - // } - // } - // } - //} + // if (!dd.EndDateTime4.HasValue || dtEnd > dd.EndDateTime4) + // { + // 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 }; } diff --git a/ReportImp/DiakonieKKKleve/Mitarbeiterstundenkonto.cs b/ReportImp/DiakonieKKKleve/Mitarbeiterstundenkonto.cs index 38ae3bbd1..44bd508ca 100644 --- a/ReportImp/DiakonieKKKleve/Mitarbeiterstundenkonto.cs +++ b/ReportImp/DiakonieKKKleve/Mitarbeiterstundenkonto.cs @@ -19,7 +19,7 @@ namespace DiakonieKKKleve var msb = new DiakonieKKKleveMitarbeiterstundenkontoBerechnung(); msb.CreateReport(pRO); - ueberschriftsLabel.Text = string.Format("Arbeitszeiterfassung für den Monat {0}", pRO.ReportStartDate.ToString("MMMM yyyy")); + ueberschriftsLabel.Text = string.Format("Arbeitszeiterfassung f�r den Monat {0}", pRO.ReportStartDate.ToString("MMMM yyyy")); sollStundenMonatLabelTableCell.Text = string.Format("Sollstunden Monat {0}", pRO.ReportStartDate.ToString("MMMM yyyy")); bindingSource1.DataSource = pRO; diff --git a/ReportImp/DiakonieKKKleve/Mitarbeiterstundenkonto.designer.cs b/ReportImp/DiakonieKKKleve/Mitarbeiterstundenkonto.designer.cs index 82ee7405a..4cb209214 100644 --- a/ReportImp/DiakonieKKKleve/Mitarbeiterstundenkonto.designer.cs +++ b/ReportImp/DiakonieKKKleve/Mitarbeiterstundenkonto.designer.cs @@ -636,7 +636,7 @@ namespace DiakonieKKKleve | DevExpress.XtraPrinting.BorderSide.Right) | DevExpress.XtraPrinting.BorderSide.Bottom))); 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.StylePriority.UseBorders = false; this.xrTableCell23.StylePriority.UseTextAlignment = false; diff --git a/ReportImp/KetteReports/ServiceInvoiceReport.cs b/ReportImp/KetteReports/ServiceInvoiceReport.cs index 8cb87e906..f8efb7b1b 100644 --- a/ReportImp/KetteReports/ServiceInvoiceReport.cs +++ b/ReportImp/KetteReports/ServiceInvoiceReport.cs @@ -55,11 +55,11 @@ namespace KetteReports lblKundennr.Visible = false; lblAbsenderJA.Visible = true; 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 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)) { diff --git a/ReportImp/PerspektivenEV/CustomReportCreator.cs b/ReportImp/PerspektivenEV/CustomReportCreator.cs index 112ae62c3..374f64b65 100644 --- a/ReportImp/PerspektivenEV/CustomReportCreator.cs +++ b/ReportImp/PerspektivenEV/CustomReportCreator.cs @@ -48,8 +48,9 @@ namespace PerspektivenEV { 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(); masterReport.CreateDocument();