983 lines
34 KiB
C#
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
|
|
//}
|