diff --git a/BeWo/View/Detail/Report/DienstplanerView.xaml.cs b/BeWo/View/Detail/Report/DienstplanerView.xaml.cs index 17bf0ed56..f9e0e5f04 100644 --- a/BeWo/View/Detail/Report/DienstplanerView.xaml.cs +++ b/BeWo/View/Detail/Report/DienstplanerView.xaml.cs @@ -231,13 +231,19 @@ namespace BeWo.View.Detail.Report if (_DienstplanerRootObj.ZeitraumFuerPflichtbesetzungStart == _DienstplanerRootObj.ZeitraumFuerPflichtbesetzungEnde) { // Status überprüfen und setzen +#if DEBUG + if (day == 17) + Console.WriteLine(); +#endif bool tagAusgefuellt = CalculateStatusNew24h(eintraegeFuerTag); _DienstplanerRootObj.DienstZeilenListe[0].StatusListe[day - 1].DauerhaftBesetztStatus = tagAusgefuellt ? true : false; } else { - if (day == 9 || day == 18 || day == 23) +#if DEBUG + if (day == 7) Console.WriteLine(); +#endif bool tagAusgefuellt = CalculateStatusForTimeSpan(eintraegeFuerTag); _DienstplanerRootObj.DienstZeilenListe[0].StatusListe[day - 1].DauerhaftBesetztStatus = tagAusgefuellt ? true : false; } @@ -273,171 +279,12 @@ namespace BeWo.View.Detail.Report var start = TimeSpan.Parse(dienst.Startzeit); var ende = TimeSpan.Parse(dienst.Endzeit); - // Identische Schicht kann übersprungen werden - if (dienst.DienstOid == vorherigeSchicht.DienstOid && i != 0) - { - vorherigeSchicht = dienst; - vorherigeSchichtStart = TimeSpan.Parse(vorherigeSchicht.Startzeit); - vorherigeSchichtEnde = TimeSpan.Parse(vorherigeSchicht.Endzeit); - continue; - } - - // Im ersten Durchlauf ist dienst == vorherigeSchicht - if (i == 0) - { - stundenOhneUeberschneidungen += dienst.DauerInStunden; - continue; - } - - // Start ist früher als Ende, wenn eine Schicht über 0 Uhr hinausgeht => Stunden müssen anders berechnet werden - bool andereBerechnungNoetig = (start < ende) ? false : true; - - bool schichtInnerhalbAndererSchicht = false; - // Wenn eine Überschneidung existiert, also die neue Schicht beginnt, bevor die vorherige endet - if (start < vorherigeSchichtEnde) - { - // Wenn Schicht vor Ende der vorherigen Schicht beginnt UND aufhört - if (start < vorherigeSchichtEnde && ende < vorherigeSchichtEnde && !andereBerechnungNoetig) - { - stundenOhneUeberschneidungen += 0; - schichtInnerhalbAndererSchicht = true; - dienst.UmschließenderDienst = vorherigeSchicht; - } - // Schicht startet vor Ende der vorherigen - else - { - // Wenn die Schicht nicht über 0 Uhr hinausgeht, ist die Berechnung normal - if (!andereBerechnungNoetig) - stundenOhneUeberschneidungen += Math.Round((ende - start).TotalHours - (vorherigeSchichtEnde.Hours - start.Hours), 2); - // Geht die Schicht über 0 Uhr hinaus, muss die Berechnung anders durchgeführt werden - else - { - var endeAngepasst = new DateTime(2000, 1, 1, ende.Hours, ende.Minutes, ende.Seconds).AddDays(1); - var startAngepasst = new DateTime(2000, 1, 1, start.Hours, start.Minutes, start.Seconds); - var vorherigeSchichtEndeAngepasst = new DateTime(2000, 1, 1, vorherigeSchichtEnde.Hours, vorherigeSchichtEnde.Minutes, vorherigeSchichtEnde.Seconds); - - stundenOhneUeberschneidungen += Math.Round((endeAngepasst - startAngepasst).TotalHours - (vorherigeSchichtEndeAngepasst - startAngepasst).TotalHours, 2); - } - } - } - // Wenn keine Überschneidung existiert, können einfach die Stunden aufaddiert werden - else - stundenOhneUeberschneidungen += dienst.DauerInStunden; - - // Wenn die aktuelle Schicht die letzte ist - if (i == diensteFuerTag.Count - 1) - { - // Endet die letzte Schicht früher als die erste Schicht und die 24h vorher nicht voll waren, sind keine 24h ausgefüllt - if (ende < TimeSpan.Parse(diensteFuerTag[0].Startzeit) && stundenOhneUeberschneidungen < 24) - { - tagAusgefuellt = false; - break; - } - } - - // Wenn die aktuelle Schicht später beginnt als die vorherige endet, also eine Lücke da ist - if (start > vorherigeSchichtEnde && dienst.Oid != vorherigeSchicht.Oid) - { - if (vorherigeSchicht.UmschließenderDienst != null) - { - if (TimeSpan.Parse(vorherigeSchicht.UmschließenderDienst.Endzeit) < start) - { - tagAusgefuellt = false; - break; - } - } - else - { - if (!schichtInnerhalbAndererSchicht && stundenOhneUeberschneidungen < 24) - { - tagAusgefuellt = false; - break; - } - } - } - - - vorherigeSchicht = dienst; - vorherigeSchichtStart = TimeSpan.Parse(vorherigeSchicht.Startzeit); - vorherigeSchichtEnde = TimeSpan.Parse(vorherigeSchicht.Endzeit); - } - - if (stundenOhneUeberschneidungen < 24) //Wenn nach durchgehen aller Schichten für Tag nicht 24h erreicht wurden - tagAusgefuellt = false; - } - else //Wenn keine Schichten für den Tag vorhanden sind - tagAusgefuellt = false; - - - return tagAusgefuellt; - } - private bool CalculateStatusForTimeSpan(List diensteFuerTag) - { - - bool tagAusgefuellt = true; - - if (diensteFuerTag.Count != 0) - { - foreach (var d in diensteFuerTag) - { - var start = d.Startzeit.Split(':'); - d.Datum = new DateTime(d.Datum.Year, d.Datum.Month, d.Datum.Day, Convert.ToInt32(start[0]), Convert.ToInt32(start[1]), 0); - } - - diensteFuerTag = diensteFuerTag.OrderBy(d => d.Datum).ToList(); - - double minStundenFuerGruenenStatus = (_DienstplanerRootObj.ZeitraumFuerPflichtbesetzungEnde - _DienstplanerRootObj.ZeitraumFuerPflichtbesetzungStart).TotalHours; - double stundenOhneUeberschneidungen = 0; - - var startArray = diensteFuerTag[0].Startzeit.Split(':'); - var dienstStart = new DateTime(_DienstplanerRootObj.ZeitraumFuerPflichtbesetzungStart.Year, _DienstplanerRootObj.ZeitraumFuerPflichtbesetzungStart.Month, _DienstplanerRootObj.ZeitraumFuerPflichtbesetzungStart.Day, - Convert.ToInt32(startArray[0]), Convert.ToInt32(startArray[1]), 0); - - - if (diensteFuerTag.Any(d => TimeSpan.Parse(d.Startzeit).Hours != 0 || TimeSpan.Parse(d.Startzeit).Minutes != 0 || - TimeSpan.Parse(d.Endzeit).Hours != 0 || TimeSpan.Parse(d.Endzeit).Minutes != 0)) - { - if (!diensteFuerTag.Any(d => TimeSpan.Parse(d.Startzeit) <= _DienstplanerRootObj.ZeitraumFuerPflichtbesetzungStart.TimeOfDay && - TimeSpan.Parse(d.Endzeit) >= _DienstplanerRootObj.ZeitraumFuerPflichtbesetzungStart.TimeOfDay)) - { - tagAusgefuellt = false; - } - - // Wenn der zeitlich erste Dienst später beginnt als die Zeit, in der wer da sein muss, ist der Tag nicht ausgefüllt - if (dienstStart > _DienstplanerRootObj.ZeitraumFuerPflichtbesetzungStart) - tagAusgefuellt = false; - - bool dienstLaengerAlsPflichtbesetzungsEnde = false; - foreach (var dienst in diensteFuerTag) - { - var endeArray = dienst.Endzeit.Split(':'); - var dienstEnde = new DateTime(_DienstplanerRootObj.ZeitraumFuerPflichtbesetzungStart.Year, _DienstplanerRootObj.ZeitraumFuerPflichtbesetzungStart.Month, _DienstplanerRootObj.ZeitraumFuerPflichtbesetzungStart.Day, - Convert.ToInt32(endeArray[0]), Convert.ToInt32(endeArray[1]), 0); - - if (dienstEnde.TimeOfDay >= _DienstplanerRootObj.ZeitraumFuerPflichtbesetzungEnde.TimeOfDay) - dienstLaengerAlsPflichtbesetzungsEnde = true; - } - } - - - - var vorherigeSchicht = diensteFuerTag[0]; - var vorherigeSchichtStart = TimeSpan.Parse(vorherigeSchicht.Startzeit); - var vorherigeSchichtEnde = TimeSpan.Parse(vorherigeSchicht.Endzeit); - - for (int i = 0; i < diensteFuerTag.Count; i++) - { - var dienst = diensteFuerTag[i]; - var start = TimeSpan.Parse(dienst.Startzeit); - var ende = TimeSpan.Parse(dienst.Endzeit); - - // Wenn beide Zeiten 00:00 sind, müssen nur die Stunden aufaddiert werden. Wenn die Summe am Ende 'minStundenFuerGruenenStatus' überschreitet, ist 'tagAusgefüllt' true if (start.Hours == 0 && start.Minutes == 0 && start.Seconds == 0 && start == ende) stundenOhneUeberschneidungen += dienst.DauerInStunden; else { // Identische Schicht kann übersprungen werden - if (dienst.DienstOid == vorherigeSchicht.DienstOid && i != 0) + if (dienst.DienstOid == vorherigeSchicht.DienstOid && start == vorherigeSchichtStart && ende == vorherigeSchichtEnde && i != 0) { vorherigeSchicht = dienst; vorherigeSchichtStart = TimeSpan.Parse(vorherigeSchicht.Startzeit); @@ -487,6 +334,203 @@ namespace BeWo.View.Detail.Report else stundenOhneUeberschneidungen += dienst.DauerInStunden; + // Wenn die aktuelle Schicht die letzte ist + if (i == diensteFuerTag.Count - 1) + { + // Endet die letzte Schicht früher als die erste Schicht und die 24h vorher nicht voll waren, sind keine 24h ausgefüllt + if (ende < TimeSpan.Parse(diensteFuerTag[0].Startzeit) /*&& stundenOhneUeberschneidungen < 24*/) + { + tagAusgefuellt = false; + break; + } + } + + // Wenn die aktuelle Schicht später beginnt als die vorherige endet, also eine Lücke da ist + if (start > vorherigeSchichtEnde /* && dienst.Oid != vorherigeSchicht.Oid*/) + { + if (vorherigeSchicht.UmschließenderDienst != null) + { + if (TimeSpan.Parse(vorherigeSchicht.UmschließenderDienst.Endzeit) < start) + { + tagAusgefuellt = false; + break; + } + } + else + { + if (!schichtInnerhalbAndererSchicht && stundenOhneUeberschneidungen < 24) + { + tagAusgefuellt = false; + break; + } + } + } + + + //vorherigeSchicht = dienst; + //vorherigeSchichtStart = TimeSpan.Parse(vorherigeSchicht.Startzeit); + //vorherigeSchichtEnde = TimeSpan.Parse(vorherigeSchicht.Endzeit); + } + vorherigeSchicht = dienst; + vorherigeSchichtStart = TimeSpan.Parse(vorherigeSchicht.Startzeit); + vorherigeSchichtEnde = TimeSpan.Parse(vorherigeSchicht.Endzeit); + } + + if (stundenOhneUeberschneidungen < 24) //Wenn nach durchgehen aller Schichten für Tag nicht 24h erreicht wurden + tagAusgefuellt = false; + } + else //Wenn keine Schichten für den Tag vorhanden sind + tagAusgefuellt = false; + + + return tagAusgefuellt; + } + private bool CalculateStatusForTimeSpan(List diensteFuerTag) + { + + bool tagAusgefuellt = true; + + if (diensteFuerTag.Count != 0) + { + foreach (var d in diensteFuerTag) + { + var start = d.Startzeit.Split(':'); + d.Datum = new DateTime(d.Datum.Year, d.Datum.Month, d.Datum.Day, Convert.ToInt32(start[0]), Convert.ToInt32(start[1]), 0); + } + + diensteFuerTag = diensteFuerTag.OrderBy(d => d.Datum).ToList(); + + double minStundenFuerGruenenStatus = (_DienstplanerRootObj.ZeitraumFuerPflichtbesetzungEnde - _DienstplanerRootObj.ZeitraumFuerPflichtbesetzungStart).TotalHours; + double stundenOhneUeberschneidungen = 0; + + var startArray = diensteFuerTag[0].Startzeit.Split(':'); + var dienstStart = new DateTime(_DienstplanerRootObj.ZeitraumFuerPflichtbesetzungStart.Year, _DienstplanerRootObj.ZeitraumFuerPflichtbesetzungStart.Month, _DienstplanerRootObj.ZeitraumFuerPflichtbesetzungStart.Day, + Convert.ToInt32(startArray[0]), Convert.ToInt32(startArray[1]), 0); + + + // Wenn es eine einzige Schicht gibt, die nicht nur die Dauer hat, müssen zusätzliche Faktoren gecheckt werden + if (diensteFuerTag.Any(d => TimeSpan.Parse(d.Startzeit).Hours != 0 || TimeSpan.Parse(d.Startzeit).Minutes != 0 || + TimeSpan.Parse(d.Endzeit).Hours != 0 || TimeSpan.Parse(d.Endzeit).Minutes != 0)) + { + // Wenn kein Dienst die Startzeit der Pflichtbesetzung umschließt oder die Startzeit als Schichtbeginn hat, dann ist der Tag nicht ausgefüllt (eig. schon..) + if (!diensteFuerTag.Any(d => TimeSpan.Parse(d.Startzeit) <= _DienstplanerRootObj.ZeitraumFuerPflichtbesetzungStart.TimeOfDay && + TimeSpan.Parse(d.Endzeit) >= _DienstplanerRootObj.ZeitraumFuerPflichtbesetzungStart.TimeOfDay)) + { + tagAusgefuellt = false; + } + + // Wenn der zeitlich erste Dienst später beginnt als die Zeit, in der wer da sein muss, ist der Tag nicht ausgefüllt + if (dienstStart > _DienstplanerRootObj.ZeitraumFuerPflichtbesetzungStart) + tagAusgefuellt = false; + + //bool dienstLaengerAlsPflichtbesetzungsEnde = false; + //foreach (var dienst in diensteFuerTag) + //{ + // var dienstEndeTime = TimeSpan.Parse(dienst.Endzeit); + // if (dienstEndeTime > _DienstplanerRootObj.ZeitraumFuerPflichtbesetzungEnde.TimeOfDay) + // dienstLaengerAlsPflichtbesetzungsEnde = true; + //} + } + + + + var vorherigeSchicht = diensteFuerTag[0]; + var vorherigeSchichtStart = TimeSpan.Parse(vorherigeSchicht.Startzeit); + var vorherigeSchichtEnde = TimeSpan.Parse(vorherigeSchicht.Endzeit); + + for (int i = 0; i < diensteFuerTag.Count; i++) + { + var dienst = diensteFuerTag[i]; + var start = TimeSpan.Parse(dienst.Startzeit); + var ende = TimeSpan.Parse(dienst.Endzeit); + + // Wenn beide Zeiten 00:00 sind, müssen nur die Stunden aufaddiert werden + if (start.Hours == 0 && start.Minutes == 0 && start.Seconds == 0 && start == ende) + stundenOhneUeberschneidungen += dienst.DauerInStunden; + else + { + // Identische Schicht kann übersprungen werden + if (dienst.DienstOid == vorherigeSchicht.DienstOid && start == vorherigeSchichtStart && ende == vorherigeSchichtEnde && i != 0) + { + vorherigeSchicht = dienst; + vorherigeSchichtStart = TimeSpan.Parse(vorherigeSchicht.Startzeit); + vorherigeSchichtEnde = TimeSpan.Parse(vorherigeSchicht.Endzeit); + continue; + } + + // Im ersten Durchlauf ist dienst == vorherigeSchicht + if (i == 0) + { + // Wenn die erste Schicht vor Pflichtbesetzungsstart beginnt, zählen die Stunden erst ab dem Pflichtbesetzungsstart + if (start < _DienstplanerRootObj.ZeitraumFuerPflichtbesetzungStart.TimeOfDay) + { + // Wenn das Ende auch vor Pflichtbesetzungsstart ist, sind es 0 Stunden + if (ende <= _DienstplanerRootObj.ZeitraumFuerPflichtbesetzungStart.TimeOfDay) + continue; + + start = _DienstplanerRootObj.ZeitraumFuerPflichtbesetzungStart.TimeOfDay; + stundenOhneUeberschneidungen += (ende - start).TotalHours; + continue; + } + + stundenOhneUeberschneidungen += dienst.DauerInStunden; + continue; + } + + // Start ist früher als Ende, wenn eine Schicht über 0 Uhr hinausgeht => Stunden müssen anders berechnet werden + bool andereBerechnungNoetig = (start < ende) ? false : true; + + bool schichtInnerhalbAndererSchicht = false; + // Wenn eine Überschneidung existiert, also die neue Schicht beginnt, bevor die vorherige endet + if (start < vorherigeSchichtEnde) + { + // Wenn Schicht vor Ende der vorherigen Schicht beginnt UND aufhört + if (start < vorherigeSchichtEnde && ende < vorherigeSchichtEnde && !andereBerechnungNoetig) + { + stundenOhneUeberschneidungen += 0; + schichtInnerhalbAndererSchicht = true; + dienst.UmschließenderDienst = vorherigeSchicht; + } + // Wenn Schichtende nach dem Ende der Pflichtbesetzung ist + else if (start < _DienstplanerRootObj.ZeitraumFuerPflichtbesetzungEnde.TimeOfDay && ende > _DienstplanerRootObj.ZeitraumFuerPflichtbesetzungEnde.TimeOfDay) + { + // Wenn die Schicht nicht über 0 Uhr hinausgeht, ist die Berechnung normal + if (!andereBerechnungNoetig) + { + ende = _DienstplanerRootObj.ZeitraumFuerPflichtbesetzungEnde.TimeOfDay; + stundenOhneUeberschneidungen += Math.Round((ende - start).TotalHours - (vorherigeSchichtEnde.Hours - start.Hours), 2); + } + } + // Schicht startet vor Ende der vorherigen + else if (start < vorherigeSchichtEnde && ende > vorherigeSchichtEnde) + { + // Wenn die Schicht nicht über 0 Uhr hinausgeht, ist die Berechnung normal + if (!andereBerechnungNoetig) + stundenOhneUeberschneidungen += Math.Round((ende - start).TotalHours - (vorherigeSchichtEnde - start).TotalHours, 2); + // Geht die Schicht über 0 Uhr hinaus, muss die Berechnung anders durchgeführt werden + else + { + var endeAngepasst = new DateTime(2000, 1, 1, ende.Hours, ende.Minutes, ende.Seconds).AddDays(1); + var startAngepasst = new DateTime(2000, 1, 1, start.Hours, start.Minutes, start.Seconds); + var vorherigeSchichtEndeAngepasst = new DateTime(2000, 1, 1, vorherigeSchichtEnde.Hours, vorherigeSchichtEnde.Minutes, vorherigeSchichtEnde.Seconds); + + stundenOhneUeberschneidungen += Math.Round((endeAngepasst - startAngepasst).TotalHours - (vorherigeSchichtEndeAngepasst - startAngepasst).TotalHours, 2); + } + } + } + // Wenn keine Überschneidung existiert, können einfach die Stunden aufaddiert werden + else + { + if (start < _DienstplanerRootObj.ZeitraumFuerPflichtbesetzungEnde.TimeOfDay && ende > _DienstplanerRootObj.ZeitraumFuerPflichtbesetzungEnde.TimeOfDay) + { + ende = _DienstplanerRootObj.ZeitraumFuerPflichtbesetzungEnde.TimeOfDay; + stundenOhneUeberschneidungen += (ende - start).TotalHours; + } + else + stundenOhneUeberschneidungen += dienst.DauerInStunden; + + } + // Wenn die aktuelle Schicht die letzte ist if (i == diensteFuerTag.Count - 1) { @@ -522,10 +566,14 @@ namespace BeWo.View.Detail.Report } } - vorherigeSchicht = dienst; - vorherigeSchichtStart = TimeSpan.Parse(vorherigeSchicht.Startzeit); - vorherigeSchichtEnde = TimeSpan.Parse(vorherigeSchicht.Endzeit); + //vorherigeSchicht = dienst; + //vorherigeSchichtStart = TimeSpan.Parse(vorherigeSchicht.Startzeit); + //vorherigeSchichtEnde = TimeSpan.Parse(vorherigeSchicht.Endzeit); } + + vorherigeSchicht = dienst; + vorherigeSchichtStart = TimeSpan.Parse(vorherigeSchicht.Startzeit); + vorherigeSchichtEnde = TimeSpan.Parse(vorherigeSchicht.Endzeit); } if (stundenOhneUeberschneidungen < minStundenFuerGruenenStatus) //Wenn nach durchgehen aller Schichten für Tag nicht x Stunden erreicht wurden @@ -659,7 +707,7 @@ namespace BeWo.View.Detail.Report _MonthPicker.SelectedMonth = DateTime.Today.Month; _YearPicker.SelectedItem = DateTime.Today.Year; } - #endregion +#endregion private void GroupBox_MouseDown(object sender, MouseButtonEventArgs e) @@ -784,9 +832,7 @@ namespace BeWo.View.Detail.Report return; } popUp_mehrereDienste.IsOpen = true; -#if DEBUG mehrereDienste_wrappanel_zeile.Visibility = Visibility.Visible; -#endif // Boxen mit Daten füllen combobox_mehrereDienste_mitarbeiter.ItemsSource = emps; @@ -1195,7 +1241,7 @@ namespace BeWo.View.Detail.Report var fieldname = _GridControl.View.GetColumnByMouseEventArgs(e).FieldName.Split('_'); _AuswahlTag = int.Parse(fieldname[1]); - #region Möglichkeit, Dienste an Feier-, Krankheits- und Urlaubstagen einzutragen, erlauben oder verbieten +#region Möglichkeit, Dienste an Feier-, Krankheits- und Urlaubstagen einzutragen, erlauben oder verbieten //Dienste an Feiertagen setzen können deaktivieren if (!_DienstplanerRootObj.EnableDiensteAnFeiertagen) @@ -1207,9 +1253,9 @@ namespace BeWo.View.Detail.Report return; } } - #endregion +#endregion - #region Bei vorhandenem Dienst in der Zelle Zeiten und gewählten Dienst im PopUp setzen und den Header anpassen +#region Bei vorhandenem Dienst in der Zelle Zeiten und gewählten Dienst im PopUp setzen und den Header anpassen if (e.LeftButton == MouseButtonState.Pressed || LetzterEintrag == null) { popUp_RightClick.IsOpen = true; @@ -1322,7 +1368,7 @@ namespace BeWo.View.Detail.Report InsertEintragOderVertretung(LetzterEintrag.Startzeit, LetzterEintrag.Endzeit, LetzterEintrag.DauerInStunden, _AuswahlDienstZeileDC.Employee, Pointer, _DienstplanerRootObj.AlleDienste.First(d => d.Oid == LetzterEintrag.DienstOid), _AuswahlDienstZeileDC.Zeile, LetzterEintrag.Notice); } - #endregion +#endregion } // Die regelmäßigen Dienste für den entsprechenden Mitarbeiter in die Listbox setzen @@ -1609,7 +1655,7 @@ namespace BeWo.View.Detail.Report absTimeForDay = _AbsenceTimesDict[selZeile.Employee.EmployeeOid.Value].FirstOrDefault(x => x.Start.Value.Date <= date.Date && (!x.End.HasValue || x.End.Value.Date >= date.Date)); - #region testzwecke, kann eig weg +#region testzwecke, kann eig weg //if (date.Day==11) // Console.WriteLine("STOP"); @@ -1623,7 +1669,7 @@ namespace BeWo.View.Detail.Report // } // } //} - #endregion +#endregion // Bei Überstunden diese als Variable setzen OvertimeDC overtime = null; @@ -1821,7 +1867,7 @@ namespace BeWo.View.Detail.Report case "IS": if (selZeile.StatusListe == null) { - #region outdated Ist-Berechnung +#region outdated Ist-Berechnung // Stunden für Einträge/Vertretungen aufaddieren //var eintraegeFuerMitarbeiterMonat = _DienstplanerRootObj.AlleDienstEintraege.FindAll(x => x.EmployeeOid == selZeile.Employee.EmployeeOid).ToList(); //var vertretungenFuerMitarbeiterMonat = _DienstplanerRootObj.AlleDienstvertretungen.FindAll(x => x.EmployeeOid == selZeile.Employee.EmployeeOid).ToList(); @@ -1836,7 +1882,7 @@ namespace BeWo.View.Detail.Report // foreach (var vertretung in vertretungenFuerMitarbeiterMonat) // stunden += Convert.ToDecimal(vertretung.DauerInStunden); //} - #endregion +#endregion e.Value = new DPCtrlIstInformation { @@ -1862,7 +1908,7 @@ namespace BeWo.View.Detail.Report // Saldo setzen, wenn es nicht die Statuszeile ist if (selZeile.StatusListe == null) { - #region outdated Saldo-Berechnung +#region outdated Saldo-Berechnung //DienstplanerMonthlySummaryDC summaryForSaldo = new DienstplanerMonthlySummaryDC(); //foreach (var item in _DienstplanerRootObj.MonatsZusammenfassung) //{ @@ -1873,7 +1919,7 @@ namespace BeWo.View.Detail.Report // break; // } //} - #endregion +#endregion e.Value = new DPCtrlSaldoInformation { @@ -2435,12 +2481,15 @@ namespace BeWo.View.Detail.Report } } // Prüfen, ob an diesem Tag ein Feiertag ist - foreach (var tag in _DienstplanerRootObj.Feiertage) + if (!_DienstplanerRootObj.EnableDiensteAnFeiertagen) { - if (tag.Datum.Date == date.Date) + foreach (var tag in _DienstplanerRootObj.Feiertage) { - eintragFuerDatumExistiert = true; - break; + if (tag.Datum.Date == date.Date) + { + eintragFuerDatumExistiert = true; + break; + } } } foreach (var abwesenheit in _DienstplanerRootObj.AbsenceTimes.Where(a => a.EmployeeOid == dc.EmployeeOid)) @@ -2562,7 +2611,8 @@ namespace BeWo.View.Detail.Report _DienstplanerRootObj.DienstDCListe = ServiceFacade.DoOperationsServiceSync(s => s.DienstBloeckeNeuSortieren(_DienstplanerRootObj.DienstDCListe, auswahl, aufsteigend)); _DienstplanerRootObj.DienstZeilenListe = new List(); - _DienstplanerRootObj.DienstZeilenListe.Add(ServiceFacade.DoOperationsServiceSync(s => s.InitStatusZeile(AuswahlMonat))); + if (_DienstplanerRootObj.EnableStatuszeile) + _DienstplanerRootObj.DienstZeilenListe.Add(ServiceFacade.DoOperationsServiceSync(s => s.InitStatusZeile(AuswahlMonat))); RefreshGrid(); RefreshDienste(); } @@ -2589,7 +2639,7 @@ namespace BeWo.View.Detail.Report } } - #region ColumnCreate +#region ColumnCreate private GridColumn NewGridColumnUnbound(string header, string fieldName, string tag, GridColumnWidth width, double minWidth, DevExpress.Data.UnboundColumnType unboundColumnType, ControlTemplate displayTemplate, DevExpress.Utils.DefaultBoolean allowResize) { @@ -2704,7 +2754,7 @@ namespace BeWo.View.Detail.Report - #endregion +#endregion /// /// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/ReportImp/IlkaLinkAmbulanteHilfen/ServiceInvoiceReportBP.Designer.cs b/ReportImp/IlkaLinkAmbulanteHilfen/ServiceInvoiceReportBP.Designer.cs index 6bcc952e3..8cd3a5fc8 100644 --- a/ReportImp/IlkaLinkAmbulanteHilfen/ServiceInvoiceReportBP.Designer.cs +++ b/ReportImp/IlkaLinkAmbulanteHilfen/ServiceInvoiceReportBP.Designer.cs @@ -37,6 +37,18 @@ namespace IlkaLinkAmbulanteHilfen this.topMarginBand1 = new DevExpress.XtraReports.UI.TopMarginBand(); this.bottomMarginBand1 = new DevExpress.XtraReports.UI.BottomMarginBand(); this.Page1 = new DevExpress.XtraReports.UI.GroupHeaderBand(); + this.xrLabel17 = new DevExpress.XtraReports.UI.XRLabel(); + this.xrLabel16 = new DevExpress.XtraReports.UI.XRLabel(); + this.xrLabel5 = new DevExpress.XtraReports.UI.XRLabel(); + this.xrLabel4 = new DevExpress.XtraReports.UI.XRLabel(); + this.xrLabel13 = new DevExpress.XtraReports.UI.XRLabel(); + this.xrLabel12 = new DevExpress.XtraReports.UI.XRLabel(); + this.xrLabel3 = new DevExpress.XtraReports.UI.XRLabel(); + this.xrLabel14 = new DevExpress.XtraReports.UI.XRLabel(); + this.xrLabel15 = new DevExpress.XtraReports.UI.XRLabel(); + this.xrLabel18 = new DevExpress.XtraReports.UI.XRLabel(); + this.xrLabel19 = new DevExpress.XtraReports.UI.XRLabel(); + this.xrLabel2 = new DevExpress.XtraReports.UI.XRLabel(); this.RecipientPostCodeAndTown = new DevExpress.XtraReports.UI.XRLabel(); this.xrLabel_RecipientStreet = new DevExpress.XtraReports.UI.XRLabel(); this.xrLabel_RecipientDivision = new DevExpress.XtraReports.UI.XRLabel(); @@ -64,23 +76,11 @@ namespace IlkaLinkAmbulanteHilfen this.xrTableCell44 = new DevExpress.XtraReports.UI.XRTableCell(); this.xrTableCell1 = new DevExpress.XtraReports.UI.XRTableCell(); this.GroupFooter1 = new DevExpress.XtraReports.UI.GroupFooterBand(); + this.xrLabel11 = new DevExpress.XtraReports.UI.XRLabel(); + this.xrLabel1 = new DevExpress.XtraReports.UI.XRLabel(); this.xrLabel9 = new DevExpress.XtraReports.UI.XRLabel(); this.xrLine2 = new DevExpress.XtraReports.UI.XRLine(); this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components); - this.xrLabel11 = new DevExpress.XtraReports.UI.XRLabel(); - this.xrLabel1 = new DevExpress.XtraReports.UI.XRLabel(); - this.xrLabel2 = new DevExpress.XtraReports.UI.XRLabel(); - this.xrLabel17 = new DevExpress.XtraReports.UI.XRLabel(); - this.xrLabel16 = new DevExpress.XtraReports.UI.XRLabel(); - this.xrLabel5 = new DevExpress.XtraReports.UI.XRLabel(); - this.xrLabel4 = new DevExpress.XtraReports.UI.XRLabel(); - this.xrLabel13 = new DevExpress.XtraReports.UI.XRLabel(); - this.xrLabel12 = new DevExpress.XtraReports.UI.XRLabel(); - this.xrLabel3 = new DevExpress.XtraReports.UI.XRLabel(); - this.xrLabel14 = new DevExpress.XtraReports.UI.XRLabel(); - this.xrLabel15 = new DevExpress.XtraReports.UI.XRLabel(); - this.xrLabel18 = new DevExpress.XtraReports.UI.XRLabel(); - this.xrLabel19 = new DevExpress.XtraReports.UI.XRLabel(); ((System.ComponentModel.ISupportInitialize)(this.xrTable5)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.xrTable6)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit(); @@ -149,6 +149,176 @@ namespace IlkaLinkAmbulanteHilfen this.Page1.Name = "Page1"; this.Page1.StylePriority.UseFont = false; // + // xrLabel17 + // + this.xrLabel17.CanShrink = true; + this.xrLabel17.Dpi = 254F; + this.xrLabel17.Font = new System.Drawing.Font("Arial", 11F, System.Drawing.FontStyle.Bold); + this.xrLabel17.LocationFloat = new DevExpress.Utils.PointFloat(649.9994F, 281.94F); + this.xrLabel17.Name = "xrLabel17"; + this.xrLabel17.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 0, 0, 254F); + this.xrLabel17.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink; + this.xrLabel17.SizeF = new System.Drawing.SizeF(430.0005F, 48.26001F); + this.xrLabel17.StylePriority.UseFont = false; + this.xrLabel17.StylePriority.UseTextAlignment = false; + this.xrLabel17.Text = "Aktenzeichen:"; + this.xrLabel17.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft; + // + // xrLabel16 + // + this.xrLabel16.CanShrink = true; + this.xrLabel16.Dpi = 254F; + this.xrLabel16.Font = new System.Drawing.Font("Arial", 11F); + this.xrLabel16.LocationFloat = new DevExpress.Utils.PointFloat(649.9999F, 233.68F); + this.xrLabel16.Name = "xrLabel16"; + this.xrLabel16.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 0, 0, 254F); + this.xrLabel16.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink; + this.xrLabel16.SizeF = new System.Drawing.SizeF(430F, 48.26F); + this.xrLabel16.StylePriority.UseFont = false; + this.xrLabel16.StylePriority.UseTextAlignment = false; + this.xrLabel16.Text = "Sachbearbeiter/-in ASD: "; + this.xrLabel16.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft; + // + // xrLabel5 + // + this.xrLabel5.CanShrink = true; + this.xrLabel5.Dpi = 254F; + this.xrLabel5.Font = new System.Drawing.Font("Arial", 11F); + this.xrLabel5.LocationFloat = new DevExpress.Utils.PointFloat(649.9999F, 185.42F); + this.xrLabel5.Name = "xrLabel5"; + this.xrLabel5.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 0, 0, 254F); + this.xrLabel5.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink; + this.xrLabel5.SizeF = new System.Drawing.SizeF(430.0002F, 48.26001F); + this.xrLabel5.StylePriority.UseFont = false; + this.xrLabel5.StylePriority.UseTextAlignment = false; + this.xrLabel5.Text = "Familie: "; + this.xrLabel5.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft; + // + // xrLabel4 + // + this.xrLabel4.CanShrink = true; + this.xrLabel4.Dpi = 254F; + this.xrLabel4.Font = new System.Drawing.Font("Arial", 11F); + this.xrLabel4.LocationFloat = new DevExpress.Utils.PointFloat(649.9999F, 96.52003F); + this.xrLabel4.Name = "xrLabel4"; + this.xrLabel4.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 0, 0, 254F); + this.xrLabel4.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink; + this.xrLabel4.SizeF = new System.Drawing.SizeF(430.0002F, 48.25999F); + this.xrLabel4.StylePriority.UseFont = false; + this.xrLabel4.StylePriority.UseTextAlignment = false; + this.xrLabel4.Text = "E-Mail: "; + this.xrLabel4.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft; + // + // xrLabel13 + // + this.xrLabel13.CanShrink = true; + this.xrLabel13.Dpi = 254F; + this.xrLabel13.Font = new System.Drawing.Font("Arial", 11F); + this.xrLabel13.LocationFloat = new DevExpress.Utils.PointFloat(649.9994F, 48.25998F); + this.xrLabel13.Name = "xrLabel13"; + this.xrLabel13.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 0, 0, 254F); + this.xrLabel13.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink; + this.xrLabel13.SizeF = new System.Drawing.SizeF(430.0007F, 48.26001F); + this.xrLabel13.StylePriority.UseFont = false; + this.xrLabel13.StylePriority.UseTextAlignment = false; + this.xrLabel13.Text = "Tel.: "; + this.xrLabel13.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft; + // + // xrLabel12 + // + this.xrLabel12.CanShrink = true; + this.xrLabel12.Dpi = 254F; + this.xrLabel12.Font = new System.Drawing.Font("Arial", 11F); + this.xrLabel12.LocationFloat = new DevExpress.Utils.PointFloat(649.9994F, 0F); + this.xrLabel12.Name = "xrLabel12"; + this.xrLabel12.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 0, 0, 254F); + this.xrLabel12.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink; + this.xrLabel12.SizeF = new System.Drawing.SizeF(430.0005F, 48.26F); + this.xrLabel12.StylePriority.UseFont = false; + this.xrLabel12.StylePriority.UseTextAlignment = false; + this.xrLabel12.Text = "Ilka Link"; + this.xrLabel12.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft; + // + // xrLabel3 + // + this.xrLabel3.CanShrink = true; + this.xrLabel3.Dpi = 254F; + this.xrLabel3.Font = new System.Drawing.Font("Arial", 11F); + this.xrLabel3.LocationFloat = new DevExpress.Utils.PointFloat(1080F, 48.25998F); + this.xrLabel3.Name = "xrLabel3"; + this.xrLabel3.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 0, 0, 254F); + this.xrLabel3.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink; + this.xrLabel3.SizeF = new System.Drawing.SizeF(470F, 48.26001F); + this.xrLabel3.StylePriority.UseFont = false; + this.xrLabel3.Text = "0174 621 4704"; + // + // xrLabel14 + // + this.xrLabel14.CanShrink = true; + this.xrLabel14.Dpi = 254F; + this.xrLabel14.Font = new System.Drawing.Font("Arial", 11F); + this.xrLabel14.LocationFloat = new DevExpress.Utils.PointFloat(1080F, 96.52003F); + this.xrLabel14.Name = "xrLabel14"; + this.xrLabel14.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 0, 0, 254F); + this.xrLabel14.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink; + this.xrLabel14.SizeF = new System.Drawing.SizeF(469.9991F, 48.25999F); + this.xrLabel14.StylePriority.UseFont = false; + this.xrLabel14.Text = "i.link@ivi-bingen.de"; + // + // xrLabel15 + // + this.xrLabel15.CanShrink = true; + this.xrLabel15.Dpi = 254F; + this.xrLabel15.Font = new System.Drawing.Font("Arial", 11F); + this.xrLabel15.LocationFloat = new DevExpress.Utils.PointFloat(1080F, 185.42F); + this.xrLabel15.Name = "xrLabel15"; + this.xrLabel15.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 0, 0, 254F); + this.xrLabel15.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink; + this.xrLabel15.SizeF = new System.Drawing.SizeF(469.9991F, 48.26001F); + this.xrLabel15.StylePriority.UseFont = false; + this.xrLabel15.Text = "[CustomerLastName]"; + // + // xrLabel18 + // + this.xrLabel18.CanShrink = true; + this.xrLabel18.Dpi = 254F; + this.xrLabel18.Font = new System.Drawing.Font("Arial", 11F); + this.xrLabel18.LocationFloat = new DevExpress.Utils.PointFloat(1080F, 233.68F); + this.xrLabel18.Name = "xrLabel18"; + this.xrLabel18.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 0, 0, 254F); + this.xrLabel18.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink; + this.xrLabel18.SizeF = new System.Drawing.SizeF(469.9999F, 48.26004F); + this.xrLabel18.StylePriority.UseFont = false; + this.xrLabel18.Text = "[RecipientContactPerson]"; + // + // xrLabel19 + // + this.xrLabel19.CanShrink = true; + this.xrLabel19.Dpi = 254F; + this.xrLabel19.Font = new System.Drawing.Font("Arial", 11F, System.Drawing.FontStyle.Bold); + this.xrLabel19.LocationFloat = new DevExpress.Utils.PointFloat(1080F, 281.94F); + this.xrLabel19.Name = "xrLabel19"; + this.xrLabel19.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 0, 0, 254F); + this.xrLabel19.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink; + this.xrLabel19.SizeF = new System.Drawing.SizeF(470F, 48.26001F); + this.xrLabel19.StylePriority.UseFont = false; + this.xrLabel19.Text = "[CustomerReferenceNumber]"; + // + // xrLabel2 + // + this.xrLabel2.CanShrink = true; + this.xrLabel2.Dpi = 254F; + this.xrLabel2.Font = new System.Drawing.Font("Arial", 11F); + this.xrLabel2.LocationFloat = new DevExpress.Utils.PointFloat(2.540745F, 48.25998F); + this.xrLabel2.Name = "xrLabel2"; + this.xrLabel2.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 0, 0, 254F); + this.xrLabel2.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink; + this.xrLabel2.SizeF = new System.Drawing.SizeF(596.1592F, 76.19997F); + this.xrLabel2.StylePriority.UseFont = false; + this.xrLabel2.StylePriority.UseTextAlignment = false; + this.xrLabel2.Text = "[RecipientOrganisation]"; + this.xrLabel2.TextAlignment = DevExpress.XtraPrinting.TextAlignment.BottomLeft; + // // RecipientPostCodeAndTown // this.RecipientPostCodeAndTown.CanShrink = true; @@ -575,31 +745,6 @@ namespace IlkaLinkAmbulanteHilfen this.GroupFooter1.HeightF = 424F; this.GroupFooter1.Name = "GroupFooter1"; // - // xrLabel9 - // - this.xrLabel9.Dpi = 254F; - this.xrLabel9.Font = new System.Drawing.Font("Arial", 11F); - this.xrLabel9.LocationFloat = new DevExpress.Utils.PointFloat(0F, 96.24994F); - this.xrLabel9.Name = "xrLabel9"; - this.xrLabel9.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 0, 0, 254F); - this.xrLabel9.SizeF = new System.Drawing.SizeF(1549.999F, 43.18002F); - this.xrLabel9.StylePriority.UseFont = false; - this.xrLabel9.Text = "Zahlungsbedingung: Zahlbar innerhalb von 30 Tagen netto."; - // - // xrLine2 - // - this.xrLine2.BorderWidth = 1F; - this.xrLine2.Dpi = 254F; - this.xrLine2.LineWidth = 3; - this.xrLine2.LocationFloat = new DevExpress.Utils.PointFloat(2.540745F, 69.99992F); - this.xrLine2.Name = "xrLine2"; - this.xrLine2.SizeF = new System.Drawing.SizeF(1547.459F, 26.25001F); - this.xrLine2.StylePriority.UseBorderWidth = false; - // - // bindingSource1 - // - this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.ServiceInvoiceRO); - // // xrLabel11 // this.xrLabel11.Dpi = 254F; @@ -630,175 +775,30 @@ namespace IlkaLinkAmbulanteHilfen this.xrLabel1.Text = "xrLabel1"; this.xrLabel1.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight; // - // xrLabel2 + // xrLabel9 // - this.xrLabel2.CanShrink = true; - this.xrLabel2.Dpi = 254F; - this.xrLabel2.Font = new System.Drawing.Font("Arial", 11F); - this.xrLabel2.LocationFloat = new DevExpress.Utils.PointFloat(2.540745F, 48.25998F); - this.xrLabel2.Name = "xrLabel2"; - this.xrLabel2.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 0, 0, 254F); - this.xrLabel2.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink; - this.xrLabel2.SizeF = new System.Drawing.SizeF(596.1592F, 76.19997F); - this.xrLabel2.StylePriority.UseFont = false; - this.xrLabel2.StylePriority.UseTextAlignment = false; - this.xrLabel2.Text = "[RecipientOrganisation]"; - this.xrLabel2.TextAlignment = DevExpress.XtraPrinting.TextAlignment.BottomLeft; + this.xrLabel9.Dpi = 254F; + this.xrLabel9.Font = new System.Drawing.Font("Arial", 11F); + this.xrLabel9.LocationFloat = new DevExpress.Utils.PointFloat(0F, 96.24994F); + this.xrLabel9.Name = "xrLabel9"; + this.xrLabel9.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 0, 0, 254F); + this.xrLabel9.SizeF = new System.Drawing.SizeF(1549.999F, 43.18002F); + this.xrLabel9.StylePriority.UseFont = false; + this.xrLabel9.Text = "Zahlungsbedingung: Zahlbar innerhalb von 30 Tagen netto."; // - // xrLabel17 + // xrLine2 // - this.xrLabel17.CanShrink = true; - this.xrLabel17.Dpi = 254F; - this.xrLabel17.Font = new System.Drawing.Font("Arial", 11F, System.Drawing.FontStyle.Bold); - this.xrLabel17.LocationFloat = new DevExpress.Utils.PointFloat(649.9994F, 281.94F); - this.xrLabel17.Name = "xrLabel17"; - this.xrLabel17.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 0, 0, 254F); - this.xrLabel17.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink; - this.xrLabel17.SizeF = new System.Drawing.SizeF(430.0005F, 48.26001F); - this.xrLabel17.StylePriority.UseFont = false; - this.xrLabel17.StylePriority.UseTextAlignment = false; - this.xrLabel17.Text = "Aktenzeichen:"; - this.xrLabel17.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft; + this.xrLine2.BorderWidth = 1F; + this.xrLine2.Dpi = 254F; + this.xrLine2.LineWidth = 3; + this.xrLine2.LocationFloat = new DevExpress.Utils.PointFloat(2.540745F, 69.99992F); + this.xrLine2.Name = "xrLine2"; + this.xrLine2.SizeF = new System.Drawing.SizeF(1547.459F, 26.25001F); + this.xrLine2.StylePriority.UseBorderWidth = false; // - // xrLabel16 + // bindingSource1 // - this.xrLabel16.CanShrink = true; - this.xrLabel16.Dpi = 254F; - this.xrLabel16.Font = new System.Drawing.Font("Arial", 11F); - this.xrLabel16.LocationFloat = new DevExpress.Utils.PointFloat(649.9999F, 233.68F); - this.xrLabel16.Name = "xrLabel16"; - this.xrLabel16.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 0, 0, 254F); - this.xrLabel16.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink; - this.xrLabel16.SizeF = new System.Drawing.SizeF(430F, 48.26F); - this.xrLabel16.StylePriority.UseFont = false; - this.xrLabel16.StylePriority.UseTextAlignment = false; - this.xrLabel16.Text = "Sachbearbeiter/-in ASD: "; - this.xrLabel16.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft; - // - // xrLabel5 - // - this.xrLabel5.CanShrink = true; - this.xrLabel5.Dpi = 254F; - this.xrLabel5.Font = new System.Drawing.Font("Arial", 11F); - this.xrLabel5.LocationFloat = new DevExpress.Utils.PointFloat(649.9999F, 185.42F); - this.xrLabel5.Name = "xrLabel5"; - this.xrLabel5.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 0, 0, 254F); - this.xrLabel5.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink; - this.xrLabel5.SizeF = new System.Drawing.SizeF(430.0002F, 48.26001F); - this.xrLabel5.StylePriority.UseFont = false; - this.xrLabel5.StylePriority.UseTextAlignment = false; - this.xrLabel5.Text = "Familie: "; - this.xrLabel5.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft; - // - // xrLabel4 - // - this.xrLabel4.CanShrink = true; - this.xrLabel4.Dpi = 254F; - this.xrLabel4.Font = new System.Drawing.Font("Arial", 11F); - this.xrLabel4.LocationFloat = new DevExpress.Utils.PointFloat(649.9999F, 96.52003F); - this.xrLabel4.Name = "xrLabel4"; - this.xrLabel4.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 0, 0, 254F); - this.xrLabel4.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink; - this.xrLabel4.SizeF = new System.Drawing.SizeF(430.0002F, 48.25999F); - this.xrLabel4.StylePriority.UseFont = false; - this.xrLabel4.StylePriority.UseTextAlignment = false; - this.xrLabel4.Text = "E-Mail: "; - this.xrLabel4.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft; - // - // xrLabel13 - // - this.xrLabel13.CanShrink = true; - this.xrLabel13.Dpi = 254F; - this.xrLabel13.Font = new System.Drawing.Font("Arial", 11F); - this.xrLabel13.LocationFloat = new DevExpress.Utils.PointFloat(649.9994F, 48.25998F); - this.xrLabel13.Name = "xrLabel13"; - this.xrLabel13.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 0, 0, 254F); - this.xrLabel13.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink; - this.xrLabel13.SizeF = new System.Drawing.SizeF(430.0007F, 48.26001F); - this.xrLabel13.StylePriority.UseFont = false; - this.xrLabel13.StylePriority.UseTextAlignment = false; - this.xrLabel13.Text = "Tel.: "; - this.xrLabel13.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft; - // - // xrLabel12 - // - this.xrLabel12.CanShrink = true; - this.xrLabel12.Dpi = 254F; - this.xrLabel12.Font = new System.Drawing.Font("Arial", 11F); - this.xrLabel12.LocationFloat = new DevExpress.Utils.PointFloat(649.9994F, 0F); - this.xrLabel12.Name = "xrLabel12"; - this.xrLabel12.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 0, 0, 254F); - this.xrLabel12.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink; - this.xrLabel12.SizeF = new System.Drawing.SizeF(430.0005F, 48.26F); - this.xrLabel12.StylePriority.UseFont = false; - this.xrLabel12.StylePriority.UseTextAlignment = false; - this.xrLabel12.Text = "Ilka Link"; - this.xrLabel12.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft; - // - // xrLabel3 - // - this.xrLabel3.CanShrink = true; - this.xrLabel3.Dpi = 254F; - this.xrLabel3.Font = new System.Drawing.Font("Arial", 11F); - this.xrLabel3.LocationFloat = new DevExpress.Utils.PointFloat(1080F, 48.25998F); - this.xrLabel3.Name = "xrLabel3"; - this.xrLabel3.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 0, 0, 254F); - this.xrLabel3.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink; - this.xrLabel3.SizeF = new System.Drawing.SizeF(470F, 48.26001F); - this.xrLabel3.StylePriority.UseFont = false; - this.xrLabel3.Text = "0174 621 4704"; - // - // xrLabel14 - // - this.xrLabel14.CanShrink = true; - this.xrLabel14.Dpi = 254F; - this.xrLabel14.Font = new System.Drawing.Font("Arial", 11F); - this.xrLabel14.LocationFloat = new DevExpress.Utils.PointFloat(1080F, 96.52003F); - this.xrLabel14.Name = "xrLabel14"; - this.xrLabel14.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 0, 0, 254F); - this.xrLabel14.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink; - this.xrLabel14.SizeF = new System.Drawing.SizeF(469.9991F, 48.25999F); - this.xrLabel14.StylePriority.UseFont = false; - this.xrLabel14.Text = "i.link@ivi-bingen.de"; - // - // xrLabel15 - // - this.xrLabel15.CanShrink = true; - this.xrLabel15.Dpi = 254F; - this.xrLabel15.Font = new System.Drawing.Font("Arial", 11F); - this.xrLabel15.LocationFloat = new DevExpress.Utils.PointFloat(1080F, 185.42F); - this.xrLabel15.Name = "xrLabel15"; - this.xrLabel15.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 0, 0, 254F); - this.xrLabel15.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink; - this.xrLabel15.SizeF = new System.Drawing.SizeF(469.9991F, 48.26001F); - this.xrLabel15.StylePriority.UseFont = false; - this.xrLabel15.Text = "[CustomerLastName]"; - // - // xrLabel18 - // - this.xrLabel18.CanShrink = true; - this.xrLabel18.Dpi = 254F; - this.xrLabel18.Font = new System.Drawing.Font("Arial", 11F); - this.xrLabel18.LocationFloat = new DevExpress.Utils.PointFloat(1080F, 233.68F); - this.xrLabel18.Name = "xrLabel18"; - this.xrLabel18.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 0, 0, 254F); - this.xrLabel18.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink; - this.xrLabel18.SizeF = new System.Drawing.SizeF(469.9999F, 48.26004F); - this.xrLabel18.StylePriority.UseFont = false; - this.xrLabel18.Text = "[RecipientContactPerson]"; - // - // xrLabel19 - // - this.xrLabel19.CanShrink = true; - this.xrLabel19.Dpi = 254F; - this.xrLabel19.Font = new System.Drawing.Font("Arial", 11F, System.Drawing.FontStyle.Bold); - this.xrLabel19.LocationFloat = new DevExpress.Utils.PointFloat(1080F, 281.94F); - this.xrLabel19.Name = "xrLabel19"; - this.xrLabel19.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 5, 0, 0, 254F); - this.xrLabel19.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink; - this.xrLabel19.SizeF = new System.Drawing.SizeF(470F, 48.26001F); - this.xrLabel19.StylePriority.UseFont = false; - this.xrLabel19.Text = "[CustomerReferenceNumber]"; + this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.ServiceInvoiceRO); // // ServiceInvoiceReportBP // diff --git a/Service/Dienstplanung/DienstplanungsManager.cs b/Service/Dienstplanung/DienstplanungsManager.cs index 4e39a9047..a899cf4ae 100644 --- a/Service/Dienstplanung/DienstplanungsManager.cs +++ b/Service/Dienstplanung/DienstplanungsManager.cs @@ -72,9 +72,13 @@ namespace BeWo.Service.Dienstplanung root.DienstZeilenListe = new List(); if (root.EnableStatuszeile) root.DienstZeilenListe.Add(InitStatusZeile(date)); + + root.ZeitraumFuerPflichtbesetzungStart = new DateTime(2000, 01, 01, 0, 0, 0); + root.ZeitraumFuerPflichtbesetzungEnde = new DateTime(2000, 01, 01, 0, 0, 0); +#if DEBUG root.ZeitraumFuerPflichtbesetzungStart = new DateTime(2000, 01, 01, 9, 0, 0); root.ZeitraumFuerPflichtbesetzungEnde = new DateTime(2000, 01, 01, 17, 0, 0); - +#endif root.StatusColorTrue = "#FF228B22"; root.StatusColorFalse = "#FFCD5C5C";