MH: dienstplanung

This commit is contained in:
Marcel Hirschle
2022-03-02 16:00:21 +01:00
parent 4f9f8f7d93
commit 4bc71e5da4
3 changed files with 442 additions and 388 deletions

View File

@@ -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<DienstEintragDC> 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<DienstEintragDC> 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<DienstZeileDC>();
_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
/// <summary>
/// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

View File

@@ -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
//

View File

@@ -72,9 +72,13 @@ namespace BeWo.Service.Dienstplanung
root.DienstZeilenListe = new List<DienstZeileDC>();
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";