Files
BeWoPlaner/Service/SBD/VertretungsAlgorithmus.cs
Christian 4b5504ea62 reports
2018-05-21 16:58:56 +02:00

983 lines
34 KiB
C#

//using System;
//using System.Collections.Generic;
//using System.Linq;
//using System.Text;
//using BeWo.Data.Access;
//using BeWo.Data.Entities;
//using BeWo.Service.Core;
//using BS.Shared;
//using BS.Shared.DataContracts;
//using BS.Shared.DataContracts.Compact;
//using BS.Shared.Extensions;
//namespace BeWo.Service.SBD
//{
// class VertretungsAlgorithmus
// {
// #region Variablen
// private readonly Dictionary<long, List<long>> _employee2CustomerHaupt = new Dictionary<long, List<long>>();
// private readonly VertretungsListeDC _schulbegleitenderDienst = new VertretungsListeDC();
// private DateTime _auswerteDatum;
// private DateTime _startDate;
// private DateTime _endDate;
// public List<VertretungsItemDC> vertretungsliste = new List<VertretungsItemDC>();
// public List<EmployeeDC> EmployeeListe = new List<EmployeeDC>();
// public List<VertretungsListeMitarbeiterItemsDC> Mitarbeiterliste = new List<VertretungsListeMitarbeiterItemsDC>();
// public Dictionary<CompactCustomerDC, List<AccountingTransactionDC>> c2a = new Dictionary<CompactCustomerDC, List<AccountingTransactionDC>>();
// private readonly List<long> _vorhandeneCustomerOidListe = new List<long>();
// #endregion
// #region Konstruktoren
// public VertretungsAlgorithmus(VertretungsListeDC sbd , DateTime date)
// {
// _schulbegleitenderDienst = sbd;
// _auswerteDatum = date;
// Hauptbetreuungen();
// ErstelleItemVonVertretungen();
// ErstelleItemVonAbsencetimes();
// }
// public VertretungsAlgorithmus(VertretungsListeDC sbd, DateTime start,DateTime ende)
// {
// _schulbegleitenderDienst = sbd;
// _startDate = start;
// _endDate = ende;
// Hauptbetreuungen();
// ErstelleItemVonWoechentlicherVertretungen();
// ErstelleItemVonWoechentlicherAbsencetimes();
// }
// public VertretungsAlgorithmus(DateTime start, DateTime ende)
// {
// _startDate = start;
// _endDate = ende;
// //erstmal hier hinein und dann mal kuken
// GetAlleMitarbeiterForWochenanzeige();
// }
// #endregion
// #region Nicht Benötigte Methoden
// //zur zeit nicht verwendeter Konstruktor
// public VertretungsAlgorithmus(DateTime start, DateTime end, int typ)
// {
// // hier sachen für accounting transaction handeln
// if (typ == 3)
// {
// AccTransKlient(start, end);
// }
// }
// #region AccountTransaction
// //muss umgebaut werden | wird aber nicht benötigt
// private void AccTransKlient(DateTime start, DateTime end)
// {
// var xs = DAOFactory.GenericDAO.GetAllActive<AccountingTransaction>();
// var ys = DAOFactory.GenericDAO.GetAllActive<Customer>();
// var y = DCEntityMapper.MapperFactory.CompactCustomerDC_Customer.MapToNewDCs(ys);
// var x = DCEntityMapper.MapperFactory.AccountingTransactionDC_AccountingTransaction.MapToNewDCs(xs);
// foreach (var customer in y)
// {
// //was wollt ich damit nochmal bewirken ??
// //foreach (var costbar in customer.CostBearerReferenceNumbers)
// //{
// //}
// // den vom Customer zugehörigen AccountTranzaction hinzufügen
// foreach (var accountTranz in x)
// {
// if(accountTranz != null && customer != null) {
// if(accountTranz.SupportConceptCostBearerRelDC != null && accountTranz.SupportConceptCostBearerRelDC.SupportConcept != null ) {
// if (customer.Oid == accountTranz.SupportConceptCostBearerRelDC.SupportConcept.Customer.Oid) //vom AccTrans die vom Customer vergleichen
// {
// //################## hier die zeit abfragen #################
// //if (accountTranz.BookingDate != null && accountTranz.BookingDate.Value.Date <= end.Date &&
// // accountTranz.ValidityDate != null && accountTranz.ValidityDate.Value.Date >= start.Date)
// //{
// if (!c2a.ContainsKey(customer))
// {
// List<AccountingTransactionDC> ahh = new List<AccountingTransactionDC>();
// ahh.Add(accountTranz);
// c2a.Add(customer, ahh);
// }
// else
// {
// c2a[customer].Add(accountTranz);
// }
// //}
// //else if(accountTranz.BookingDate == null && accountTranz.ValidityDate == null) // Abfrage ggf erweitern
// //{
// // if(!c2a.ContainsKey(customer))
// // {
// // List<AccountingTransactionDC> ahh = new List<AccountingTransactionDC>();
// // ahh.Add(accountTranz);
// // c2a.Add(customer, ahh);
// // }
// // else
// // {
// // c2a[customer].Add(accountTranz);
// // }
// //}
// //#############################################################
// }
// }
// }
// }
// }
// }
// #endregion
// #region Quttierungschecklist
// public bool FetchReferenceNumbers { get; set; }
// public void QuittierungsCheckListe(long? oid)
// {
// List<CompactCustomerDC> customerListe = new List<CompactCustomerDC>();
// //long? oid = null;
// //if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.ViewAll) && !BeWoApp.LoggedOnUser.HasRight(UserRightType.CustomerView_View))
// //{
// // oid = BeWoApp.LoggedOnUser.Employee.EmployeeOid;
// //}
// //ServiceFacade.DoCustomerServiceAsync(
// // s => s.GetAllActiveCustomersCompact(this.FetchReferenceNumbers, oid),
// // r =>
// // {
// // List<CompactCustomerDC> list = r;
// // if (oid != null)
// // {
// // list = list.Where(c => c.IsRelatedToEmployee).ToList();
// // }
// // list.Sort((x, y) => (x.LastName + ", " + x.FirstName).CompareTo(y.LastName + ", " + y.FirstName)); // (Comparison<CompactCustomerDC>)new CustomerSorter().GetComparison("LastName", BeWo.Core.AbstractSorter.SortDirection.Ascending));
// // customerListe = list;
// // });
// }
// #endregion
//#endregion
// #region Hauptbetreuung
// public void Hauptbetreuungen()
// {
// try
// {
// foreach (var xa in _schulbegleitenderDienst.Employeesliste)
// {
// List<long> klientoids = new List<long>();
// Employee e = DAOFactory.GenericDAO.LoadByID<Employee>(xa.EmployeeOid);
// foreach (var e2c in e.Employee2CustomerList)
// {
// foreach (var v2o in e2c.ValueList)
// {
// //if (v2o.Entry.Type == ValueListEntryType.StaffRoleType && v2o.Entry.SystemEntryID.HasValue &&
// // v2o.Entry.SystemEntryID.Value == SystemEntryID.EmployeeRoleMainAttendant)
// if (v2o.Entry.Type == ValueListEntryType.StaffRoleType)
// {
// klientoids.Add(e2c.CustomerOid.Value);
// }
// }
// }
// if (!_employee2CustomerHaupt.ContainsKey(xa.EmployeeOid))
// _employee2CustomerHaupt.Add(xa.EmployeeOid, klientoids);
// }
// _schulbegleitenderDienst.Employee2CustomerHauptbetreuung = _employee2CustomerHaupt;
// }
// catch (Exception e)
// {
// throw Utils.CreateBeWoFaultException(e);
// }
// }
// #endregion
// //hier neu Bemerkung füllen
// #region Tagesanzeige
// private void ErstelleItemVonVertretungen()
// {
// try
// {
// _vorhandeneCustomerOidListe.Clear();
// foreach (var vdc in _schulbegleitenderDienst.Vertretungsliste)
// {
// var item = ErstelleVertretungsItem();
// //Vertretungsdc wird übergeben
// item.Vertretung = vdc;
// if (vdc.VertretungsZeitraumVon.Date <= _auswerteDatum.Date && vdc.VertretungsZeitraumBis.Date >= _auswerteDatum.Date)
// {
// foreach (var mit in _schulbegleitenderDienst.Employeesliste)
// {
// if (vdc.EmployeeOid == mit.EmployeeOid)
// {
// item.EmployeeName = mit.FirstName + " " + mit.LastName;
// item.EmployeeOid = mit.EmployeeOid;
// }
// if (vdc.VertretenderMitarbeiterOid == mit.EmployeeOid)
// {
// item.VertretenderMitarbeiter = mit.FirstName + " " + mit.LastName;
// item.VertreterOid = mit.EmployeeOid;
// }
// foreach (var hauptbetreuung in _schulbegleitenderDienst.Employee2CustomerHauptbetreuung)
// {
// if (hauptbetreuung.Key == vdc.EmployeeOid && vdc.EmployeeOid == mit.EmployeeOid)
// {
// foreach (var cust in _schulbegleitenderDienst.Customersliste)
// {
// foreach (var val in hauptbetreuung.Value)
// {
// if (val == cust.CustomerOid)
// {
// if (cust.CustomerOid == vdc.CustomerOid)
// {
// _vorhandeneCustomerOidListe.Add(cust.CustomerOid);
// item.Customer.Add(cust.CustomerOid, cust.FullName);
// }
// }
// }
// }
// }
// }
// }
// foreach (var ab in _schulbegleitenderDienst.AbsenceTimeliste)
// {
// if (vdc.AbsenceTimeOid == ab.AbsenceTimeOid)
// {
// item.Abwesenheitskategorie = ab.Reason;
// AddKrankheitsZeitraumAndMeldungToItem(item, ab);
// item.Absencetime = ab;
// //AddArbeitszeitToItem(item, vertritt.EmployeeOid,1);
// if (item.EmployeeOid == 0 || item.EmployeeName.Equals(""))
// {
// foreach (var emp in _schulbegleitenderDienst.Employeesliste)
// {
// if (emp.EmployeeOid == ab.EmployeeOid)
// {
// item.EmployeeOid = ab.EmployeeOid.Value;
// item.EmployeeName = emp.FirstName + " " + emp.LastName;
// }
// }
// }
// }
// }
// AddArbeitszeitToItem(item, item.EmployeeOid, 1);
// //überprüfung durchführen und ggf mehrere Davon anlegen. wegen vertretungszeiten bei krankheitszeiträumen
// item.Bemerkung = vdc.Notice;
// //Abfragen ob überhaupt ein Employee Vorhanden ist.
// vertretungsliste.Add(item);
// //if (vertritt.VertretungsZeitraumVon != ab.Start.Value && vertritt.VertretungsZeitraumBis != ab.End.Value) für die zeiten inerghalb eines tages
// //{
// // add der vertretungsliste einen Weiteren Tag der nicht
// // allerdings müsste da wieder ne neue vertretung erstellt werden.
// // desweiteren müsste die range der Stunden ermittelt werden.
// // vertretungsliste.Add(item);
// //}
// }
// }
// }
// catch (Exception e)
// {
// throw Utils.CreateBeWoFaultException(e);
// }
// }
// private void ErstelleItemVonAbsencetimes()
// {
// try
// {
// foreach (var ars in _schulbegleitenderDienst.AbsenceTimeliste)
// {
// if ((!ars.Start.HasValue || ars.Start.Value.Date <= _auswerteDatum.Date) && (!ars.End.HasValue || ars.End.Value.Date >= _auswerteDatum.Date))
// {
// var item = ErstelleVertretungsItem();
// item.Abwesenheitskategorie = ars.Reason;
// item.Absencetime = ars;
// item.Bemerkung = ars.Notice;
// AddKrankheitsZeitraumAndMeldungToItem(item, ars);
// if (ars.EmployeeOid.HasValue)
// {
// item.IsMitarbeiterKrank = true;
// foreach (var emp in _schulbegleitenderDienst.Employeesliste)
// {
// if (ars.EmployeeOid == emp.EmployeeOid)
// {
// item.EmployeeName = emp.FirstName + " " + emp.LastName;
// item.EmployeeOid = emp.EmployeeOid;
// }
// foreach (var hauptbetreuung in _schulbegleitenderDienst.Employee2CustomerHauptbetreuung)
// {
// if (hauptbetreuung.Key == emp.EmployeeOid && emp.EmployeeOid == ars.EmployeeOid)
// {
// foreach (var cust in _schulbegleitenderDienst.Customersliste)
// {
// foreach (var val in hauptbetreuung.Value)
// {
// if (val == cust.CustomerOid)
// {
// if (!_vorhandeneCustomerOidListe.Contains(cust.CustomerOid))
// item.Customer.Add(cust.CustomerOid, cust.FullName);
// }
// }
// }
// }
// }
// }
// }
// //Sonderfall wenn keine vertertung verfügbar und employee nicht gegeben aber absence eine customer oid besitzt
// if (item.Customer.Count == 0 && item.EmployeeOid == 0 && ars.CustomerOid.Value != 0)
// {
// foreach (var cust in _schulbegleitenderDienst.Customersliste)
// {
// if (ars.CustomerOid.Value == cust.CustomerOid)
// {
// item.Customer.Add(cust.CustomerOid, cust.FullName);
// item.IsCustomerKrank = true;
// }
// }
// }
// if (item.EmployeeOid == 0 && item.Customer.Count > 0)
// {
// //item.EmployeeName = "Name des MAs";
// var customerOid = item.Customer.Keys.First();
// foreach (var eOid in _schulbegleitenderDienst.Employee2CustomerHauptbetreuung.Keys)
// {
// var cOidList = _schulbegleitenderDienst.Employee2CustomerHauptbetreuung[eOid];
// if (cOidList.Contains(customerOid))
// {
// foreach (var emp in _schulbegleitenderDienst.Employeesliste)
// {
// if (emp.EmployeeOid == eOid)
// {
// item.EmployeeName = emp.FirstName + " " + emp.LastName;
// AddArbeitszeitToItem(item, emp.EmployeeOid, 1);
// }
// }
// }
// }
// }
// else
// {
// AddArbeitszeitToItem(item, item.EmployeeOid, 1);
// }
// //item.Bemerkung = ars.Notice;
// if (DarfGeaddetWerden(item, vertretungsliste))
// {
// vertretungsliste.Add(item);
// }
// //if (item.Customer.Count != 0 && item.EmployeeOid != 0)
// //{
// //vertretungsliste.Add(item);
// //}
// }
// }
// }
// catch (Exception e)
// {
// throw Utils.CreateBeWoFaultException(e);
// }
// }
// private bool DarfGeaddetWerden(VertretungsItemDC neuesItem, List<VertretungsItemDC> vertretungsListeItemsDcs)
// {
// foreach (var itemAusListe in vertretungsListeItemsDcs)
// {
// if (neuesItem.EmployeeOid == itemAusListe.EmployeeOid && neuesItem.Absencetime.AbsenceTimeOid ==
// itemAusListe.Absencetime.AbsenceTimeOid)
// {
// return false;
// }
// }
// return true;
// }
// #endregion
// #region Klienten Wochenanzeige
// //----- Bearbeiten --------------------------------------------------------------------------------------------
// //----- Woechentliche Vertretungen, Die anzeige jeweiliger tage muss angepasst werden wenn zum beispiel eine
// //krabkmeldung mehrere vertretungen zugewiesen bekomment hat. Die müssen dann richtig angezeigt werden.
// private void ErstelleItemVonWoechentlicherVertretungen()
// {
// try
// {
// _vorhandeneCustomerOidListe.Clear();
// foreach (var vertritt in _schulbegleitenderDienst.Vertretungsliste)
// {
// var item = ErstelleVertretungsItem();
// //Vertretungsdc wird übergeben
// item.Vertretung = vertritt;
// item.WochenansichtBemerkung = "";
// item.Bemerkung = vertritt.Notice;
// if (vertritt.VertretungsZeitraumVon.Date <= _endDate.Date && vertritt.VertretungsZeitraumBis.Date >= _startDate.Date)
// {
// foreach (var mit in _schulbegleitenderDienst.Employeesliste)
// {
// if (vertritt.EmployeeOid == mit.EmployeeOid)
// {
// item.EmployeeName = mit.FirstName + " " + mit.LastName;
// item.EmployeeOid = mit.EmployeeOid;
// }
// if (vertritt.VertretenderMitarbeiterOid == mit.EmployeeOid)
// {
// item.VertretenderMitarbeiter = mit.FirstName + " " + mit.LastName;
// item.VertreterOid = mit.EmployeeOid;
// }
// foreach (var hauptbetreuung in _schulbegleitenderDienst.Employee2CustomerHauptbetreuung)
// {
// if (hauptbetreuung.Key == vertritt.EmployeeOid && vertritt.EmployeeOid == mit.EmployeeOid)
// {
// foreach (var cust in _schulbegleitenderDienst.Customersliste)
// {
// foreach (var val in hauptbetreuung.Value)
// {
// if (val == cust.CustomerOid)
// {
// if (cust.CustomerOid == vertritt.CustomerOid)
// {
// _vorhandeneCustomerOidListe.Add(cust.CustomerOid);
// item.Customer.Add(cust.CustomerOid, cust.FullName);
// }
// }
// }
// }
// }
// }
// }
// foreach (var ab in _schulbegleitenderDienst.AbsenceTimeliste)
// {
// if (vertritt.AbsenceTimeOid == ab.AbsenceTimeOid)
// {
// item.Abwesenheitskategorie = ab.Reason;
// AddKrankheitsZeitraumAndMeldungToItem(item, ab);
// item.Absencetime = ab;
// //AddArbeitszeitToItem(item, vertritt.EmployeeOid,2);
// if (item.EmployeeOid == 0 || item.EmployeeName.Equals(""))
// {
// foreach (var emp in _schulbegleitenderDienst.Employeesliste)
// {
// if (emp.EmployeeOid == ab.EmployeeOid)
// {
// item.EmployeeOid = ab.EmployeeOid.Value;
// item.EmployeeName = emp.FirstName + " " + emp.LastName;
// }
// }
// }
// }
// }
// //item.isCustomerKrank = true;
// AddArbeitszeitToItem(item, item.EmployeeOid, 2);
// //Abfragen ob Employee vorhanden
// vertretungsliste.Add(item);
// }
// }
// }
// catch (Exception e)
// {
// throw Utils.CreateBeWoFaultException(e);
// }
// }
// private void ErstelleItemVonWoechentlicherAbsencetimes()
// {
// try
// {
// foreach (var ars in _schulbegleitenderDienst.AbsenceTimeliste)
// {
// var item = ErstelleVertretungsItem();
// item.Abwesenheitskategorie = ars.Reason;
// item.Absencetime = ars;
// item.Bemerkung = ars.Notice;
// AddKrankheitsZeitraumAndMeldungToItem(item, ars);
// item.WochenansichtBemerkung = "";
// if ((!ars.Start.HasValue || ars.Start.Value.Date <= _endDate.Date) && (!ars.End.HasValue || ars.End.Value.Date >= _startDate.Date))
// {
// foreach (var emp in _schulbegleitenderDienst.Employeesliste)
// {
// if (ars.EmployeeOid == emp.EmployeeOid)
// {
// item.EmployeeName = emp.FirstName + " " + emp.LastName;
// item.EmployeeOid = emp.EmployeeOid;
// }
// foreach (var hauptbetreuung in _schulbegleitenderDienst.Employee2CustomerHauptbetreuung)
// {
// if (hauptbetreuung.Key == emp.EmployeeOid && emp.EmployeeOid == ars.EmployeeOid)
// {
// foreach (var cust in _schulbegleitenderDienst.Customersliste)
// {
// foreach (var val in hauptbetreuung.Value)
// {
// if (val == cust.CustomerOid)
// {
// if (!_vorhandeneCustomerOidListe.Contains(cust.CustomerOid))
// item.Customer.Add(cust.CustomerOid, cust.FullName);
// }
// }
// }
// }
// }
// }
// if (item.EmployeeOid == 0 || item.EmployeeName.Equals(""))
// {
// foreach (var emp in _schulbegleitenderDienst.Employeesliste)
// {
// if (emp.EmployeeOid == ars.EmployeeOid)
// {
// item.EmployeeOid = ars.EmployeeOid.Value;
// item.EmployeeName = emp.FirstName + " " + emp.LastName;
// //AddArbeitszeitToItem(item, emp.EmployeeOid,2);
// }
// }
// }
// //Sonderfall wenn keine vertertung verfügbar und employee nicht gegeben aber absence eine customer oid besitzt
// if (item.Customer.Count == 0 && item.EmployeeOid == 0 && ars.CustomerOid.Value != 0)
// {
// foreach (var cust in _schulbegleitenderDienst.Customersliste)
// {
// if (ars.CustomerOid.Value == cust.CustomerOid)
// {
// item.Customer.Add(cust.CustomerOid, cust.FullName);
// }
// }
// }
// //neu
// if (item.EmployeeOid == 0 && item.Customer.Count > 0)
// {
// //item.EmployeeName = "Name des MAs";
// var customerOid = item.Customer.Keys.First();
// foreach (var eOid in _schulbegleitenderDienst.Employee2CustomerHauptbetreuung.Keys)
// {
// var cOidList = _schulbegleitenderDienst.Employee2CustomerHauptbetreuung[eOid];
// if (cOidList.Contains(customerOid))
// {
// foreach (var emp in _schulbegleitenderDienst.Employeesliste)
// {
// if (emp.EmployeeOid == eOid)
// {
// item.EmployeeName = emp.FirstName + " " + emp.LastName;
// item.IsMitarbeiterKrank = true;
// AddArbeitszeitToItem(item, emp.EmployeeOid, 2);
// item.IsCustomerKrank = true;
// }
// }
// }
// }
// }
// else
// {
// AddArbeitszeitToItem(item, item.EmployeeOid, 2);
// }
// if (DarfGeaddetWerden(item, vertretungsliste))
// {
// vertretungsliste.Add(item);
// }
// //if (item.Customer.Count != 0 && item.EmployeeOid != 0)
// //{
// //vertretungsliste.Add(item);
// //}
// }
// }
// }
// catch (Exception e)
// {
// throw Utils.CreateBeWoFaultException(e);
// }
// }
// #endregion
// #region Mitarbeiter Wochenanzeige
// public void GetAlleMitarbeiterForWochenanzeige()
// {
// try
// {
// var x = DAOFactory.GenericDAO.GetAllActive<Employee>();
// var y = DCEntityMapper.MapperFactory.EmployeeDC_Employee.MapToNewDCs(x);
// EmployeeListe = y;
// }
// catch (Exception e)
// {
// throw Utils.CreateBeWoFaultException(e);
// }
// }
// public List<VertretungsListeMitarbeiterItemsDC> ErstelleItemVonWoechentlicherVorhandenerMitarbeiterVertretungen()
// {
// try
// {
// //Code Für die Mitarbeiter ansicht
// foreach (var employee in EmployeeListe)
// {
// // eine für die Mitarbeiter Wochenanzeige angepasste Liste Zurück liefern
// Dictionary<DateTime, CompactCustomerDC> dict = new Dictionary<DateTime, CompactCustomerDC>();
// //mit vertretung vergleichen ?? && nur mitarbeiter mitnehmen die noch einen freien tag in der vertretung haben ??
// //foreach (var abs in employee.AbsenceTimes)
// //{
// // if (_startDate >= abs.Start.Value && _endDate <= abs.End.Value)
// // {
// // }
// //}
// //foreach (var rel in employee.RelatedCustomers)
// //{
// // if (!dict.ContainsKey(DateTime.Now))
// // dict.Add(DateTime.Now, rel.Customer);
// //}
// VertretungsListeMitarbeiterItemsDC mVert = new VertretungsListeMitarbeiterItemsDC()
// {
// Employee = employee.FirstName +" "+ employee.LastName,
// EmployeeOid = employee.EmployeeOid,
// WochenPlan = dict,
// };
// if (employee.AbsenceTimes != null && employee.AbsenceTimes.Count > 0)
// {
// mVert.AbsenceStartDate = employee.AbsenceTimes[0].Start;
// mVert.AbsenceEndDate = employee.AbsenceTimes[0].End;
// }
// if (employee.RelatedCustomers != null && employee.RelatedCustomers.Count > 0)
// {
// mVert.Customer = employee.RelatedCustomers[0].Customer;
// }
// Mitarbeiterliste.Add(mVert);
// }
// return Mitarbeiterliste;
// }
// catch (Exception e)
// {
// throw Utils.CreateBeWoFaultException(e);
// }
// }
// private void ErstelleItemVonWoechentklicherVorhandenerMitarbeiterAbsencetimes()
// {
// try
// {
// //Mall sehen ob das gebraucht wird.
// }
// catch (Exception e)
// {
// throw Utils.CreateBeWoFaultException(e);
// }
// }
// #endregion
// #region Ermittle time Range ,Erstelle neue Vertretung // nicht benutzter bereich / war dafür gedacht einem klienten mehrere Employee zuzuweisen
// private void ErmittleTimeRange(DateTime start, DateTime end, DateTime vertretStart, DateTime vertretEnd)
// {
// var startzeit = start.TimeOfDay;
// var endzeit = end.TimeOfDay;
// // der Zeitraum der Vertretung muss auch überprüft werden.
// if (startzeit > vertretEnd.TimeOfDay && endzeit < vertretStart.TimeOfDay)
// {
// // Haben wir eine Zeitraum überschneidung, dann muss noch überprüft werden ob die Zeit sich überschneidet
// // denn wenn nicht, dann soll eine Weitere Vertretung erstellt werden die die Ausstehende Zeit anzeigt oer so.
// CreateNewVertretung();
// }
// else
// {
// //alles gut
// }
// }
// private void CreateNewVertretung()
// {
// //erstelle neue Vertretung
// VertretungDC vertretung = new VertretungDC()
// {
// };
// var x = DCEntityMapper.MapperFactory.VertretungDC_Vertretung.MapToNewEntity(vertretung);
// DAOFactory.GenericDAO.Insert(x);
// }
// #endregion
// #region Behilfsmethoden
// private void AddKrankheitsZeitraumAndMeldungToItem(VertretungsItemDC item, AbsenceTimeDC ars)
// {
// if (!ars.Start.HasValue || !ars.End.HasValue)
// {
// if (ars.Start.HasValue)
// {
// item.Krankheitszeitraum = ars.Start.Value.ToString("dd.MM.yyyy");
// }
// else
// {
// item.Krankheitszeitraum = "Unbekannt";
// }
// item.Krankheitszeitraum += " - ";
// if (ars.End.HasValue)
// {
// item.Krankheitszeitraum += ars.End.Value.ToString("dd.MM.yyyy");
// }
// else
// {
// item.Krankheitszeitraum += "Unbekannt";
// }
// }
// else
// {
// if (ars.Start.Value.Date != ars.End.Value.Date)
// {
// if (ars.Start.Value.Hour == 0 && ars.Start.Value.Minute == 0 &&
// ars.End.Value.Hour == 0 && ars.End.Value.Minute == 0)
// {
// item.Krankheitszeitraum = ars.Start.Value.ToString("dd.MM.yyyy") + " - " +
// ars.End.Value.ToString("dd.MM.yyyy");
// }
// else
// {
// item.Krankheitszeitraum = ars.Start.Value.ToString("dd.MM.yyyy HH:mm") + " - " +
// ars.End.Value.ToString("dd.MM.yyyy HH:mm");
// }
// }
// else
// {
// if (ars.Start.Value.Hour == 0 && ars.Start.Value.Minute == 0 &&
// ars.End.Value.Hour == 0 && ars.End.Value.Minute == 0)
// {
// item.Krankheitszeitraum = ars.Start.Value.ToString("dd.MM.yyyy");
// }
// else
// {
// item.Krankheitszeitraum = ars.Start.Value.ToString("dd.MM.yyyy HH:mm") + " - " +
// ars.End.Value.ToString("HH:mm");
// }
// }
// }
// if (ars.KrankheitsMeldung != null)
// item.Krankheitsmeldung = ars.KrankheitsMeldung.Value;
// else if (ars.Start.HasValue)
// item.Krankheitsmeldung = ars.Start.Value;
// }
// private void AddArbeitszeitToItem(VertretungsItemDC item, long? emp, int i)
// {
// var addArbeitszeit = false;
// foreach (var arbeitszeit in _schulbegleitenderDienst.Arbeitszeitliste)
// {
// if (!arbeitszeit.GueltigVon.HasValue && !arbeitszeit.GueltigBis.HasValue)
// {
// addArbeitszeit = true;
// }
// else
// {
// if (i == 1)
// {
// if ((!arbeitszeit.GueltigVon.HasValue || arbeitszeit.GueltigVon.Value <= _auswerteDatum) && (!arbeitszeit.GueltigBis.HasValue || arbeitszeit.GueltigBis.Value >= _auswerteDatum))
// {
// addArbeitszeit = true;
// }
// }
// else
// {
// if ((!arbeitszeit.GueltigVon.HasValue || arbeitszeit.GueltigVon.Value <= _endDate) && (!arbeitszeit.GueltigBis.HasValue || arbeitszeit.GueltigBis.Value >= _startDate))
// {
// addArbeitszeit = true;
// }
// }
// }
// if (emp == arbeitszeit.EmployeeOid && addArbeitszeit)
// {
// foreach (var eintrag in arbeitszeit.Eintraege)
// {
// if ((int)_auswerteDatum.DayOfWeek == (int)eintrag.Tag + 1)
// {
// if (!String.IsNullOrEmpty(item.Worktime))
// {
// item.Worktime += ", ";
// }
// item.Worktime += eintrag.UhrzeitVon + " - " + eintrag.UhrzeitBis;
// }
// if (!item.Wochentagsarbeitszeit.ContainsKey(eintrag.Tag))
// {
// item.Wochentagsarbeitszeit.Add(eintrag.Tag,
// eintrag.UhrzeitVon + " - " + eintrag.UhrzeitBis);
// }
// else
// {
// item.Wochentagsarbeitszeit[eintrag.Tag] += " " + eintrag.UhrzeitVon + " - " + eintrag.UhrzeitBis;
// }
// }
// }
// }
// }
// private VertretungsItemDC ErstelleVertretungsItem()
// {
// VertretungsItemDC item = new VertretungsItemDC()
// {
// Worktime = "",
// EmployeeName = "",
// CustomerName = new List<string>(),
// Krankheitszeitraum = "",
// Abwesenheitskategorie = new AbsenceReasonDC(),
// VertretenderMitarbeiter = "",
// Krankheitsmeldung = new DateTime(),
// Absencetime = new AbsenceTimeDC(),
// Wochentagsarbeitszeit = new Dictionary<AppointmentDayOfWeek, string>(),
// Customer = new Dictionary<long, string>()
// };
// return item;
// }
// //neu Für Mitarbeiter Woche
// //private
// }
// #endregion
//}