diff --git a/BeWo.sln b/BeWo.sln index 8ec5b989f..dd8525bd0 100644 --- a/BeWo.sln +++ b/BeWo.sln @@ -369,6 +369,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BetreuungsBueroScholzReport EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BAPBielefelderAmbulantePflege", "ReportImp\BAPBielefelderAmbulantePflege\BAPBielefelderAmbulantePflege.csproj", "{7A7E980E-447C-444C-B43B-A23A20F52C02}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LebenshilfeMannheimEV", "ReportImp\LebenshilfeMannheimEV\LebenshilfeMannheimEV.csproj", "{0FDF87A6-B39E-4494-AE31-0CE302D8BA80}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|.NET = Debug|.NET @@ -2728,6 +2730,18 @@ Global {7A7E980E-447C-444C-B43B-A23A20F52C02}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {7A7E980E-447C-444C-B43B-A23A20F52C02}.Release|Mixed Platforms.Build.0 = Release|Any CPU {7A7E980E-447C-444C-B43B-A23A20F52C02}.Release|x86.ActiveCfg = Release|Any CPU + {0FDF87A6-B39E-4494-AE31-0CE302D8BA80}.Debug|.NET.ActiveCfg = Debug|Any CPU + {0FDF87A6-B39E-4494-AE31-0CE302D8BA80}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0FDF87A6-B39E-4494-AE31-0CE302D8BA80}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0FDF87A6-B39E-4494-AE31-0CE302D8BA80}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {0FDF87A6-B39E-4494-AE31-0CE302D8BA80}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {0FDF87A6-B39E-4494-AE31-0CE302D8BA80}.Debug|x86.ActiveCfg = Debug|Any CPU + {0FDF87A6-B39E-4494-AE31-0CE302D8BA80}.Release|.NET.ActiveCfg = Release|Any CPU + {0FDF87A6-B39E-4494-AE31-0CE302D8BA80}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0FDF87A6-B39E-4494-AE31-0CE302D8BA80}.Release|Any CPU.Build.0 = Release|Any CPU + {0FDF87A6-B39E-4494-AE31-0CE302D8BA80}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {0FDF87A6-B39E-4494-AE31-0CE302D8BA80}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {0FDF87A6-B39E-4494-AE31-0CE302D8BA80}.Release|x86.ActiveCfg = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -2908,5 +2922,6 @@ Global {56D310FE-DB98-4EFE-8527-DF94628657F8} = {D8A691C5-146D-4613-86CC-438F02FE9106} {606566D9-B8B5-4522-A2B4-175F4BCE98DD} = {D8A691C5-146D-4613-86CC-438F02FE9106} {7A7E980E-447C-444C-B43B-A23A20F52C02} = {D8A691C5-146D-4613-86CC-438F02FE9106} + {0FDF87A6-B39E-4494-AE31-0CE302D8BA80} = {D8A691C5-146D-4613-86CC-438F02FE9106} EndGlobalSection EndGlobal diff --git a/BeWo/BeWo.csproj b/BeWo/BeWo.csproj index a55204e7c..a36d349ec 100644 --- a/BeWo/BeWo.csproj +++ b/BeWo/BeWo.csproj @@ -182,6 +182,10 @@ Designer MSBuild:Compile + + Designer + MSBuild:Compile + MSBuild:Compile Designer @@ -432,6 +436,10 @@ MSBuild:Compile Designer + + MSBuild:Compile + Designer + MSBuild:Compile Designer @@ -534,6 +542,9 @@ ProxyLoginView.xaml + + KrankheitsZeitraumView.xaml + SchulbegleitenderDienstBearbeitungsView.xaml @@ -623,7 +634,11 @@ + + + + @@ -823,6 +838,9 @@ ChatEmojisView.xaml + + EmployeeArbeitszeitView.xaml + SchulbegleitenderDienstCustomer.xaml diff --git a/BeWo/MainControl.xaml b/BeWo/MainControl.xaml index 842144f26..30e0bc6bf 100644 --- a/BeWo/MainControl.xaml +++ b/BeWo/MainControl.xaml @@ -247,7 +247,7 @@ - + diff --git a/BeWo/Scheduler/View/NewSchedulerView.xaml.cs b/BeWo/Scheduler/View/NewSchedulerView.xaml.cs index 2a0ad8f3c..19af5f7ff 100644 --- a/BeWo/Scheduler/View/NewSchedulerView.xaml.cs +++ b/BeWo/Scheduler/View/NewSchedulerView.xaml.cs @@ -1464,8 +1464,6 @@ namespace BeWo.Scheduler.View OnPropertyChanged("SelectedEmployees"); OnPropertyChanged("SelectedItems"); OnPropertyChanged("ViewModel"); - - Scheduler.ActiveView.LayoutChanged(); } //private void ExportAsiCal(object sender, RoutedEventArgs e) diff --git a/BeWo/Scheduler/ViewModel/NewSchedulerViewModel.cs b/BeWo/Scheduler/ViewModel/NewSchedulerViewModel.cs index b49b61905..c6b55ce6e 100644 --- a/BeWo/Scheduler/ViewModel/NewSchedulerViewModel.cs +++ b/BeWo/Scheduler/ViewModel/NewSchedulerViewModel.cs @@ -30,11 +30,13 @@ namespace BeWo.Scheduler.ViewModel set { if(value != null) - { + { mActiveAppointmentViewModel = value; - if(ViewModelChanged != null) + if (ViewModelChanged != null) + { ViewModelChanged.Invoke(this, new EventArgs(value)); + } } } } diff --git a/BeWo/SchulbegleitenderDienst/KrankheitsZeitraumView.xaml b/BeWo/SchulbegleitenderDienst/KrankheitsZeitraumView.xaml new file mode 100644 index 000000000..c4b9de825 --- /dev/null +++ b/BeWo/SchulbegleitenderDienst/KrankheitsZeitraumView.xaml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + @@ -248,7 +253,7 @@ - + - + + + + - + - + - + @@ -368,15 +396,29 @@ + + + - + - + - + @@ -384,15 +426,29 @@ + + + - + - + - + @@ -400,15 +456,29 @@ + + + - + - + - + @@ -416,15 +486,29 @@ + + + - + - + - + @@ -432,22 +516,36 @@ + + + - + - + - + - + - + - + @@ -476,12 +574,26 @@ - + + + + - + - + @@ -493,11 +605,26 @@ + + + - + - + @@ -509,11 +636,25 @@ + + + - + - + @@ -525,11 +666,26 @@ + + + - + - + @@ -541,11 +697,26 @@ + + + - + - + @@ -557,11 +728,26 @@ + + + - - + + @@ -647,12 +833,12 @@ + Closed="popup_Closed" Opened="popup_Opened"> + Closed="popup_Closed" Opened="popup_Opened"> diff --git a/BeWo/SchulbegleitenderDienst/NewSchulbegleitenderDienstView.xaml.cs b/BeWo/SchulbegleitenderDienst/NewSchulbegleitenderDienstView.xaml.cs index dfdb2e8b8..ae105b507 100644 --- a/BeWo/SchulbegleitenderDienst/NewSchulbegleitenderDienstView.xaml.cs +++ b/BeWo/SchulbegleitenderDienst/NewSchulbegleitenderDienstView.xaml.cs @@ -58,8 +58,16 @@ namespace BeWo.SchulbegleitenderDienst private List itemsWochen = new List(); + + private SchulbegleitenderDienstBearbeitungsView view = null; + private KrankheitsZeitraumView krankView = null; + + private string mitarbeiterVertretungWocheninfo = ""; + + private string deletVertretungsWeek = ""; + //private VertretungVM _ViewModel; die klasse sollte genutzt werden um public NewSchulbegleitenderDienstView() @@ -118,33 +126,55 @@ namespace BeWo.SchulbegleitenderDienst public void GetAllVertretungenOnLoad(DateTime AusgewähltesDatum) { items.Clear(); + ServiceFacade.DoOperationsServiceAsync(s => s.VertretungsListe(AusgewähltesDatum),r =>{ List VorhandeneAbsenceTimeOidListe = new List(); + + + #region Füge Der Liste Alle Vertretungen Hinzu inkl. Der Dazu Gehörigen AbsenceTimes + foreach (var vertritt in r.Vertretungsliste) { + string worktime = ""; string employeeName = ""; List customerName = new List(); string krankheitszeitraum = ""; AbsenceReasonDC abwesenheitskategorie = new AbsenceReasonDC(); var VertretenderMitarbeiter = ""; DateTime Krankheitsmeldung = new DateTime(); + AbsenceTimeDC absencetimeOid = new AbsenceTimeDC(); + long vertetenderMit = 0; + long employeeOid = 0; + List customerOid = new List(); - if (vertritt.VertretungsZeitraumVon.Date <= AusgewähltesDatum.Date && vertritt.VertretungsZeitraumBis.Date >= AusgewähltesDatum.Date) + Dictionary wochentagsarbeitszeit = new Dictionary(); + + + + Dictionary customer = new Dictionary(); + + if (vertritt.VertretungsZeitraumVon.Date <= AusgewähltesDatum.Date && vertritt.VertretungsZeitraumBis.Date >= AusgewähltesDatum.Date )//|| + //vertritt.VertretungsZeitraumVon.Date >= AusgewähltesDatum.Date && vertritt.VertretungsZeitraumBis.Date <= AusgewähltesDatum.Date || + //vertritt.VertretungsZeitraumVon.Date >= AusgewähltesDatum.Date && vertritt.VertretungsZeitraumBis.Date >= AusgewähltesDatum.Date ) // hier ein logic ding fehlt { foreach (var mit in r.Employeesliste) { if (vertritt.EmployeeOid == mit.EmployeeOid) { employeeName = mit.FirstName + " " + mit.LastName; + + employeeOid = mit.EmployeeOid; } if (vertritt.VertretenderMitarbeiterOid == mit.EmployeeOid) { VertretenderMitarbeiter = mit.FirstName + " " + mit.LastName; + + vertetenderMit = mit.EmployeeOid; } foreach (var hauptbetreuung in r.Employee2CustomerHauptbetreuung) @@ -157,7 +187,9 @@ namespace BeWo.SchulbegleitenderDienst { if (val == cust.CustomerOid) { - customerName.Add(cust.FullName); + //customerName.Add(cust.FullName); + //customerOid.Add(cust.CustomerOid); + customer.Add(cust.CustomerOid, cust.FullName); } } } @@ -170,32 +202,107 @@ namespace BeWo.SchulbegleitenderDienst if (vertritt.AbsenceTimeOid == ab.AbsenceTimeOid) { abwesenheitskategorie = ab.Reason; - krankheitszeitraum = ab.Start.Value.ToString("dd.MM.yyyy")+ " - " + ab.End.Value.ToString("dd.MM.yyyy"); - + + if (ab.Start.Value != ab.End.Value) + krankheitszeitraum = ab.Start.Value.ToString("dd.MM.yyyy")+ " - " + ab.End.Value.ToString("dd.MM.yyyy"); + else + krankheitszeitraum = ab.Start.Value.ToString("dd.MM.yyyy"); + VorhandeneAbsenceTimeOidListe.Add(ab.AbsenceTimeOid.Value); if (ab.KrankheitsMeldung != null) Krankheitsmeldung = ab.KrankheitsMeldung.Value; else Krankheitsmeldung = ab.Start.Value; + + absencetimeOid = ab; + + foreach (var arbeitszeit in r.Arbeitszeitliste) + { + if (vertritt.EmployeeOid == arbeitszeit.EmployeeOid) + { + if (arbeitszeit.GueltigVon.Value.Date <= ab.Start.Value.Date && + arbeitszeit.GueltigBis.Value.Date <= ab.End.Value.Date || + arbeitszeit.GueltigVon.Value.Date <= ab.Start.Value.Date && + arbeitszeit.GueltigBis.Value.Date >= ab.End.Value.Date) + { + foreach (var eintrag in arbeitszeit.Eintraege) + { + if ((int)AusgewähltesDatum.DayOfWeek == (int)eintrag.Tag + 1) + { + if (!String.IsNullOrEmpty(worktime)) + { + worktime += ", "; + } + worktime += eintrag.UhrzeitVon + " - " + eintrag.UhrzeitBis; + } + + if (!wochentagsarbeitszeit.ContainsKey(eintrag.Tag)) + { + wochentagsarbeitszeit.Add(eintrag.Tag, + eintrag.UhrzeitVon + " - " + eintrag.UhrzeitBis); + } + else + { + wochentagsarbeitszeit[eintrag.Tag] += " " + eintrag.UhrzeitVon + " - " + eintrag.UhrzeitBis; + } + } + } + } + } + + + if (employeeOid == 0 || employeeName.Equals("")) + { + foreach (var emp in r.Employeesliste) + { + if (emp.EmployeeOid == ab.EmployeeOid) + { + employeeOid = ab.EmployeeOid.Value; + employeeName = emp.FirstName + " " + emp.LastName; + + + + } + } + } } } - AddItemsToGrid(vertritt, employeeName, customerName, abwesenheitskategorie, VertretenderMitarbeiter, krankheitszeitraum, Krankheitsmeldung); + AddItemsToGrid(vertritt, employeeName, abwesenheitskategorie, VertretenderMitarbeiter, krankheitszeitraum, Krankheitsmeldung, absencetimeOid, vertetenderMit, employeeOid, customer, worktime, wochentagsarbeitszeit); } } + #endregion + + #region Füge AbsenceTime Der Liste Hinzu Die Keine Vertretung inne hat foreach (var ars in r.AbsenceTimeliste) { if (!VorhandeneAbsenceTimeOidListe.Contains(ars.AbsenceTimeOid.Value)) { string employeeName = ""; - List customerName = new List(); - string krankheitszeitraum = ars.Start.Value.ToString("dd.MM.yyyy") + " - " + ars.End.Value.ToString("dd.MM.yyyy"); + //List customerName = new List(); + string worktime = ""; + string krankheitszeitraum; + + if (ars.Start.Value != ars.End.Value) + krankheitszeitraum = ars.Start.Value.ToString("dd.MM.yyyy") + " - " + ars.End.Value.ToString("dd.MM.yyyy"); + else + krankheitszeitraum = ars.Start.Value.ToString("dd.MM.yyyy"); + AbsenceReasonDC abwesenheitskategorie = ars.Reason; string VertretenderMitarbeiter = ""; DateTime Krankheitsmeldung = new DateTime(); + long vertetenderMit = 0; + long employeeOid = 0; + //List customerOid = new List(); + + Dictionary customer = new Dictionary(); + + Dictionary wochentagsarbeitszeit = new Dictionary(); + + if (ars.KrankheitsMeldung != null) Krankheitsmeldung = ars.KrankheitsMeldung.Value; else @@ -220,7 +327,9 @@ namespace BeWo.SchulbegleitenderDienst { if (val == cust.CustomerOid) { - customerName.Add(cust.FullName); + //customerName.Add(cust.FullName); + //customerOid.Add(cust.CustomerOid); + customer.Add(cust.CustomerOid, cust.FullName); } } } @@ -228,10 +337,72 @@ namespace BeWo.SchulbegleitenderDienst } } - AddItemsToGrid(null, employeeName, customerName, abwesenheitskategorie, VertretenderMitarbeiter, krankheitszeitraum, Krankheitsmeldung); + if (employeeOid == 0 || employeeName.Equals("")) + { + foreach (var emp in r.Employeesliste) + { + if (emp.EmployeeOid == ars.EmployeeOid) + { + employeeOid = ars.EmployeeOid.Value; + employeeName = emp.FirstName + " " + emp.LastName; + + + foreach (var arbeitszeit in r.Arbeitszeitliste) + { + if (emp.EmployeeOid == arbeitszeit.EmployeeOid) + { + if (arbeitszeit.GueltigVon.Value.Date <= ars.Start.Value.Date && + arbeitszeit.GueltigBis.Value.Date <= ars.End.Value.Date || + arbeitszeit.GueltigVon.Value.Date <= ars.Start.Value.Date && + arbeitszeit.GueltigBis.Value.Date >= ars.End.Value.Date ) + { + foreach (var eintrag in arbeitszeit.Eintraege) + { + if ((int)AusgewähltesDatum.DayOfWeek == (int)eintrag.Tag + 1) + { + if (!String.IsNullOrEmpty(worktime)) + { + worktime += ", "; + } + worktime += eintrag.UhrzeitVon + " - " + eintrag.UhrzeitBis; + } + //var test = (int)DayOfWeek.Wednesday; + //var test2 = (int) eintrag.Tag; + if (!wochentagsarbeitszeit.ContainsKey(eintrag.Tag)) + { + wochentagsarbeitszeit.Add(eintrag.Tag, + eintrag.UhrzeitVon + " - " + eintrag.UhrzeitBis); + } + else + { + wochentagsarbeitszeit[eintrag.Tag] += " " + eintrag.UhrzeitVon + " - " + eintrag.UhrzeitBis; + } + } + } + } + } + } + } + + } + + //Sonderfall wenn keine vertertung verfügbar und employee nicht gegeben aber absence eine customer oid besitzt + if (customer.Count == 0 && employeeOid == 0 && ars.CustomerOid.Value !=0 ) + { + foreach (var cust in r.Customersliste) + { + if (ars.CustomerOid.Value == cust.CustomerOid) + { + customer.Add(cust.CustomerOid, cust.FullName); + } + } + } + + AddItemsToGrid(null, employeeName, abwesenheitskategorie, VertretenderMitarbeiter, krankheitszeitraum, Krankheitsmeldung, ars, vertetenderMit, employeeOid, customer, worktime, wochentagsarbeitszeit); } } } +#endregion this.Dispatch(delegate @@ -247,61 +418,152 @@ namespace BeWo.SchulbegleitenderDienst } - public void AddItemsToGrid(VertretungDC vertritt, string employee, List customers, AbsenceReasonDC abwesenheit, string vertretenderMitarbeiter, string krankheitszeitraum, DateTime krankheitsmeldung) + //Verbesserungswürdig bzw Under Construction + public void AddItemsToGrid(VertretungDC vertritt, string employee, AbsenceReasonDC abwesenheit, string vertretenderMitarbeiter, string krankheitszeitraum, DateTime krankheitsmeldung, AbsenceTimeDC absenceTime, long vertretenderOid, long employeeOid, Dictionary customers,string arbeitszeit,Dictionary wochenarbeitszeit) { - //erstelle mehrere items falls der mitarbeiter mehrere hauptbetreuungen betreuungen hat int i = 0; int y = 0; - foreach (var customer in customers) + + + if (!vertretenderMitarbeiter.Equals("")) { - - if (!vertretenderMitarbeiter.Equals("")) - { - i = 1; - } - - if (!customer.Equals("") && !vertretenderMitarbeiter.Equals("") && !employee.Equals("")) - { - i = 1; - } - - - if (!employee.Equals("")) - { - y = 1; - } - - SchulbegleitenderDienst xyc = new SchulbegleitenderDienst() - { - KrankheitsZeitraum = krankheitszeitraum, - KrankerMitarbeiter = employee, - Vertretung = vertretenderMitarbeiter, - Kunde = customer, - AbwesenheitsKategorie = abwesenheit, - KrankheitsMeldung = krankheitsmeldung, - - IsMitarbeiter = y, - IsKunde = i - //ParentId = 0, - //Oid = (int)vertritt.VertretungOid.Value - //.ToString("dd.MM.yyyy") - - }; - - if (vertritt != null) - { - xyc.Beschreibung = vertritt.Notice; - xyc.VertretungsDC = vertritt; - } - - if (!items.Contains(xyc)) - { - items.Add(xyc); // hier war vorher eine dierekte initialisierung + die abfrage contains gab es nicht - } + i = 1; } + if (!employee.Equals("")) + { + y = 1; + } + + + if(customers.Count != 0){ + foreach (var customer in customers) + { + //Provisiorisch + SchulbegleitenderDienst xyc = new SchulbegleitenderDienst() + { + KrankheitsZeitraum = krankheitszeitraum, + KrankerMitarbeiter = employee, + wochentagsarbeitszeit = wochenarbeitszeit, + AbwesenheitsKategorie = abwesenheit, + KrankheitsMeldung = krankheitsmeldung, + IsMitarbeiter = y, + Arbeitszeit = arbeitszeit, + endD = absenceTime.End.Value, + startD = absenceTime.Start.Value, + + + }; + + + + if (vertritt != null) + { + if (vertritt.CustomerOid == customer.Key){ + + if (vertritt.VertretungsZeitraumVon != vertritt.VertretungsZeitraumBis) + xyc.VertretungsZeitraum = vertritt.VertretungsZeitraumVon.Date.ToString("dd.MM.yyyy") + " - " + vertritt.VertretungsZeitraumBis.Date.ToString("dd.MM.yyyy"); + else + xyc.VertretungsZeitraum = vertritt.VertretungsZeitraumVon.Date.ToString("dd.MM.yyyy"); + + xyc.VertretungsDC = vertritt; + xyc.Vertretung = vertretenderMitarbeiter; + xyc.IsKunde = 1; + + xyc.Beschreibung = absenceTime.Notice; + xyc.vertreteroid = vertretenderOid; + + }else{ + xyc.Vertretung = ""; + } + } + else + { + xyc.IsKunde = 0; + xyc.Vertretung = ""; + } + + xyc.absenceTimeDC = absenceTime; + + xyc.mitarbeiteroid = employeeOid; + //provisorisch + + //#################### Übergebe hier vorsorglich die oid ################### + xyc.klientoid = customer.Key ; + + + if (!customer.Equals("") && !vertretenderMitarbeiter.Equals("") && !employee.Equals("")) + { + i = 1; + } + + //######################################## + + xyc.Kunde = customer.Value; //neues item muss erstellt werden + + //if (!items.Exists(x => x.klientoid == customer.Key)) + //{ + items.Add(xyc); + //} + } + } + else + { + //provisorisch + SchulbegleitenderDienst xyc = new SchulbegleitenderDienst() + { + KrankheitsZeitraum = krankheitszeitraum, + KrankerMitarbeiter = employee, + AbwesenheitsKategorie = abwesenheit, + KrankheitsMeldung = krankheitsmeldung, + IsMitarbeiter = y, + Arbeitszeit = arbeitszeit, + endD = absenceTime.End.Value, + startD = absenceTime.Start.Value, + wochentagsarbeitszeit = wochenarbeitszeit, + Kunde = "", + Beschreibung = absenceTime.Notice + + + }; + + if (vertritt != null) + { + if (vertritt.VertretungsZeitraumVon != vertritt.VertretungsZeitraumBis) + xyc.VertretungsZeitraum = vertritt.VertretungsZeitraumVon.Date.ToString("dd.MM.yyyy") + " - " + vertritt.VertretungsZeitraumBis.Date.ToString("dd.MM.yyyy"); + else + xyc.VertretungsZeitraum = vertritt.VertretungsZeitraumVon.Date.ToString("dd.MM.yyyy"); + + + xyc.VertretungsDC = vertritt; + + xyc.Vertretung = vertretenderMitarbeiter; + + xyc.IsKunde = i; + } + else + { + xyc.IsKunde = 0; + xyc.Vertretung = ""; + } + + xyc.absenceTimeDC = absenceTime; + xyc.vertreteroid = vertretenderOid; + xyc.mitarbeiteroid = employeeOid; + //Provisorisch + + xyc.klientoid = 0; + + + + if (!items.Contains(xyc)) + { + items.Add(xyc); + } + } } + //Nicht ganz Fertig // mitarbeiterView public void GetWochenDienstFromItems(DateTime time) { itemsWochen.Clear(); @@ -310,16 +572,16 @@ namespace BeWo.SchulbegleitenderDienst DateTime startdt = dt.FirstDateOfWeek(dt.GetIso8601WeekOfYear()); - foreach (var item in items) { - string[] ahh = item.KrankheitsZeitraum.Split('-'); + + Dictionary> a = new Dictionary>(); + + Dictionary> klientb = new Dictionary>(); - string anfang = ahh[0]; - string ende = ahh[1]; - DateTime anfangDt = DateTime.Parse(anfang); - DateTime endeDt = DateTime.Parse(ende); + DateTime anfangDt = item.startD;//DateTime.Parse(anfang); + DateTime endeDt = item.endD;//DateTime.Parse(ende); DateTime montagDt = startdt.Date; @@ -333,48 +595,141 @@ namespace BeWo.SchulbegleitenderDienst { MaKrank = item.KrankerMitarbeiter, Kind = item.Kunde, + MaFrei = item.Vertretung + }; - if (anfangDt.Date <= montagDt && montagDt <= endeDt.Date) + if (anfangDt.Date <= montagDt && montagDt <= endeDt.Date /*&& montagDt.Date ==*/ ) // erweitern ?? { + Dictionary mo = new Dictionary(); + mo.Add(montagDt, item); + + a.Add("VertretungMo", mo); + + klientb.Add("EingesetztBeiMo",mo); + wwk.VertretungMo = item.Vertretung; - + + wwk.EingesetztBeiMo = item.Kunde; + + wwk.Mo = WochenanzeigeHinzufügen(montagDt,item.wochentagsarbeitszeit); + } + else + { + wwk.VertretungMo = " "; + wwk.EingesetztBeiMo = " "; } if (anfangDt.Date <= dienstagDt && dienstagDt <= endeDt.Date) { + Dictionary di = new Dictionary(); + di.Add(dienstagDt, item); + + a.Add("VertretungDi", di); + + klientb.Add("EingesetztBeiDi", di); + wwk.VertretungDi = item.Vertretung; - - } + wwk.EingesetztBeiDi = item.Kunde; - if (anfangDt.Date <= mittwochDt && mittwochDt <= endeDt.Date) - { - wwk.VertretungMi = item.Vertretung; - - } + wwk.Di = WochenanzeigeHinzufügen(dienstagDt, item.wochentagsarbeitszeit); - if (anfangDt.Date <= donnerstagDt && donnerstagDt <= endeDt.Date) - { - wwk.VertretungDo = item.Vertretung; - - } - - if (anfangDt.Date <= freitagDt && freitagDt <= endeDt.Date) - { - wwk.VertretungFr = item.Vertretung; - - } - - if (anfangDt.Date <= samstagDt && samstagDt <= endeDt.Date) - { - wwk.VertretungSa = item.Vertretung; + } + else + { + wwk.VertretungDi = " "; + wwk.EingesetztBeiDi = " "; } + if (anfangDt.Date <= mittwochDt && mittwochDt <= endeDt.Date) + { + Dictionary mi = new Dictionary(); + mi.Add(mittwochDt, item); + + a.Add("VertretungMi", mi); + klientb.Add("EingesetztBeiMi", mi); + + wwk.VertretungMi = item.Vertretung; + wwk.EingesetztBeiMi = item.Kunde; + + wwk.Mi = WochenanzeigeHinzufügen(mittwochDt, item.wochentagsarbeitszeit); + } + else + { + wwk.VertretungMi = " "; + wwk.EingesetztBeiMi = " "; + } + + + if (anfangDt.Date <= donnerstagDt && donnerstagDt <= endeDt.Date) + { + Dictionary Do = new Dictionary(); + Do.Add(donnerstagDt, item); + + a.Add("VertretungDo", Do); + klientb.Add("EingesetztBeiDo", Do); + + wwk.VertretungDo = item.Vertretung; + wwk.EingesetztBeiDo = item.Kunde; + + wwk.Do = WochenanzeigeHinzufügen(donnerstagDt, item.wochentagsarbeitszeit); + } + else + { + wwk.VertretungDo = " "; + wwk.EingesetztBeiDo = " "; + } + + if (anfangDt.Date <= freitagDt && freitagDt <= endeDt.Date) + { + Dictionary fr = new Dictionary(); + fr.Add(freitagDt, item); + + a.Add("VertretungFr", fr); + klientb.Add("EingesetztBeiFr", fr); + + wwk.VertretungFr = item.Vertretung; + wwk.EingesetztBeiFr = item.Kunde; + + wwk.Fr = WochenanzeigeHinzufügen(freitagDt, item.wochentagsarbeitszeit); + } + else + { + wwk.VertretungFr = " "; + wwk.EingesetztBeiFr = " "; + } + + if (anfangDt.Date <= samstagDt && samstagDt <= endeDt.Date) + { + Dictionary sa = new Dictionary(); + sa.Add(samstagDt, item); // item.vertreteroid + + a.Add("VertretungSa", sa); + klientb.Add("EingesetztBeiSa", sa); + wwk.VertretungSa = item.Vertretung; + wwk.EingesetztBeiSa = item.Kunde; + + wwk.Sa = WochenanzeigeHinzufügen(samstagDt, item.wochentagsarbeitszeit); + + } + else + { + wwk.VertretungSa = " "; + wwk.EingesetztBeiSa = " "; + } + + + + wwk.vertretungsWoche = a; + + wwk.KlientvertretungsWoche = klientb; + itemsWochen.Add(wwk); - } + + } GridDataControlMitarbeiterWochenansicht.RefreshData(); @@ -382,10 +737,24 @@ namespace BeWo.SchulbegleitenderDienst GridDataControlKlientenWochenansicht.RefreshData(); GridDataControlKlientenWochenansicht.RefreshUI(); - //################################################################################### } - //------------------------------------------------------------------------------------------------------------------------------------ + private string WochenanzeigeHinzufügen(DateTime dayOfWeekDateTime, Dictionary wochentagsarbeitszeit) + { + if (wochentagsarbeitszeit.Count != 0) + { + foreach (var wa in wochentagsarbeitszeit) + { + if ((int)wa.Key +1 == (int)dayOfWeekDateTime.DayOfWeek) + { + return wa.Value; + } + } + } + + return ""; + } + //################################ Mitarbeiter DatePicker Von - Bis ################################ #region Mitarbeiter Vertretungs Datum von - bis @@ -414,10 +783,8 @@ namespace BeWo.SchulbegleitenderDienst #endregion //################################################################################################## - //------------------------------------------------------------------------------------------------------------------------------------- + - - //------------------------------------------------------------------------------------------------------------------------------------- //################################ Klienten Vertrtung Von - Bis #################################### #region Klienten Vertretungs Datum von - bis @@ -443,9 +810,8 @@ namespace BeWo.SchulbegleitenderDienst #endregion //################################################################################################### - //------------------------------------------------------------------------------------------------------------------------------------- - - //------------------------------------------------------------------------------------------------------------------------------------------------------ + + //#################### Mitarbeiter Vertretungs Popup gedönse ########################################################## #region Mitarbeiter Vertretung @@ -491,13 +857,13 @@ namespace BeWo.SchulbegleitenderDienst { bool xsf = false; - if (!popupedit_MitarbeiterVertretungSearch.Text.Equals("")) + if (!popupedit_MitarbeiterVertretungSearch.Text.Equals("") && ComboBoxMitarbeiterVertretung.SelectedValue != null) //zusätzliche abfragen hinzufügen { xsf = true; } else { - MessageBox.Show("Bitte wählen sie zuerst einen Mitarbeiter aus."); + MessageBox.Show("Bitte wählen sie zuerst einen Mitarbeiter und eine Krankheits Meldung aus."); } @@ -516,7 +882,6 @@ namespace BeWo.SchulbegleitenderDienst private void ClearAllMitarbeiterValues() { - //Diese Methode dient nur als "Puffer" später wird alles via Vertretung Vm Gehändelt MVDatepickerVon.DateTime = DateTime.Now; MVDatepickerBis.DateTime = DateTime.Now; popupedit_MitarbeiterVertretungSearch.Text = ""; @@ -528,33 +893,18 @@ namespace BeWo.SchulbegleitenderDienst private void SaveEmployeeInVertretung() { - VertretungDC vertretung = new VertretungDC(); + AbsenceTimeDC at = new AbsenceTimeDC(); + at.Start = MVDatepickerVon.DateTime.Date; + at.End = MVDatepickerBis.DateTime.Date; + at.Reason = ComboBoxMitarbeiterVertretung.SelectedValue as AbsenceReasonDC; + at.Notice = MitarbeiterNotice.Text; + at.KrankheitsMeldung = KrankMeldungMitarbeiterDatepicker.DateTime.Date; - vertretung.VertretungsZeitraumVon = MVDatepickerVon.DateTime.Date; - vertretung.VertretungsZeitraumBis = MVDatepickerBis.DateTime.Date; - vertretung.CustomerOid = 0; - vertretung.EmployeeOid = currentEmployee.EmployeeOid; - vertretung.VertretenderMitarbeiterOid = 0; - - var x = (AbsenceReasonDC)ComboBoxMitarbeiterVertretung.SelectedValue; - - //if (x != null){ - // vertretung. = x.AbsenceReasonOid; - //} - //else - //{ - // vertretung.AbwesenheitsOid = 0; - //} - - vertretung.Notice = MitarbeiterNotice.Text; - - var Krankheitsmeldung = KrankMeldungMitarbeiterDatepicker.DateTime.Date; - - ServiceFacade.DoOperationsServiceSync(s => s.InsertNewMitarbeiterVertretung(vertretung, x.AbsenceReasonOid, Krankheitsmeldung)); + ServiceFacade.DoOperationsServiceSync(s => s.InsertNewEmployeeAbsenceTime(currentEmployee.EmployeeOid, at)); } #endregion - //------------------------------------------------------------------------------------------------------------------------------------------------------ + // ############################ Klienten Vertretungs Popup gedönse ###################################################### #region Klient Vertretung @@ -603,13 +953,13 @@ namespace BeWo.SchulbegleitenderDienst { bool xsf = false; - if (!popupedit_KlientVertretungSearch.Text.Equals("")) + if (!popupedit_KlientVertretungSearch.Text.Equals("") && ComboBoxKlientVertretung.SelectedValue != null) { xsf = true; } else { - MessageBox.Show("Bitte wählen sie zuerst einen Klienten aus."); + MessageBox.Show("Bitte wählen sie zuerst einen Klienten und eine Krankheits Meldung aus."); } @@ -628,8 +978,6 @@ namespace BeWo.SchulbegleitenderDienst private void ClearAllKlientValues() { - //Das gleiche gilt hier auch wie bei mitarbeiter - KVDatepickerVon.DateTime = DateTime.Now; KVDatepickerBis.DateTime = DateTime.Now; popupedit_KlientVertretungSearch.Text = ""; @@ -641,36 +989,21 @@ namespace BeWo.SchulbegleitenderDienst private void SaveKlientInVertretung() { - VertretungDC vertretung = new VertretungDC(); + AbsenceTimeDC at = new AbsenceTimeDC(); + at.Start = KVDatepickerVon.DateTime.Date; + at.End = KVDatepickerBis.DateTime.Date; + at.Reason = ComboBoxKlientVertretung.SelectedValue as AbsenceReasonDC; + at.Notice = KlientNotice.Text; + at.KrankheitsMeldung = KrankMeldungKlientDatepicker.DateTime.Date; - vertretung.VertretungsZeitraumVon = KVDatepickerVon.DateTime.Date; - vertretung.VertretungsZeitraumBis = KVDatepickerBis.DateTime.Date; - vertretung.CustomerOid = currentKlient.CustomerOid; - vertretung.EmployeeOid = 0; - vertretung.VertretenderMitarbeiterOid = 0; + ServiceFacade.DoOperationsServiceSync(s => s.InsertNewCustomerAbsenceTime(currentKlient.CustomerOid, at)); - var x = (AbsenceReasonDC)ComboBoxKlientVertretung.SelectedValue; - - //if (x != null){ - // vertretung.AbwesenheitsOid = x.AbsenceReasonOid; - //} - //else - //{ - // vertretung.AbwesenheitsOid = 0; - //} - - vertretung.Notice = KlientNotice.Text; - - var Krankheitsmeldung = KrankMeldungKlientDatepicker.DateTime.Date; - - //Safe in die Daten Tabelle - ServiceFacade.DoOperationsServiceSync(s => s.InsertNewKlientenVertretung(vertretung, x.AbsenceReasonOid, Krankheitsmeldung)); } #endregion //######################################################################################################################### - //------------------------------------------------------------------------------------------------------------------------------------------------------ + //######################### Action Event Listener ########################### @@ -701,59 +1034,117 @@ namespace BeWo.SchulbegleitenderDienst //Es gibt noch probleme -> Button anclickbar obwohl nicht sichtbar //Rufe hier ein Neues Fenster auf das VErschiedenste Settings bearbeitet - if (view == null) - { - view = new SchulbegleitenderDienstBearbeitungsView(); + var a = (SchulbegleitenderDienst)GridDataControlTagesansicht.SelectedItem; - view.RaiseCustomEvent += new EventHandler(newWindow_RaiseCustomEvent); - view.ShowDialog(); - } - else - { - view.Close(); - view = new SchulbegleitenderDienstBearbeitungsView(); + if (a.mitarbeiteroid != 0) + { + if (view == null) + { + view = new SchulbegleitenderDienstBearbeitungsView(1); + + view.RaiseCustomEvent += new EventHandler(newWindow_RaiseCustomEvent); + view.ShowDialog(); + } + else + { + view.Close(); + view = new SchulbegleitenderDienstBearbeitungsView(1); + + view.RaiseCustomEvent += new EventHandler(newWindow_RaiseCustomEvent); + view.ShowDialog(); + } + + }else + { + MessageBox.Show("Sorry aber hast du grad versucht einem Kranken Kind einen Vertreter hinzuzufügen ?? Schäm dich."); + } - view.RaiseCustomEvent += new EventHandler(newWindow_RaiseCustomEvent); - view.ShowDialog(); - } } + private void ButtonEditSettingsAddKlient_OnDefaultButtonClick(object sender, RoutedEventArgs e) + { + var a = (SchulbegleitenderDienst)GridDataControlTagesansicht.SelectedItem; + + if (a.mitarbeiteroid != 0) + { + + if (view == null) + { + view = new SchulbegleitenderDienstBearbeitungsView(2); + + view.RaiseKlientCustomEvent += new EventHandler(newWindowKlient_RaiseCustomEvent); + view.ShowDialog(); + } + else + { + view.Close(); + view = new SchulbegleitenderDienstBearbeitungsView(2); + + view.RaiseKlientCustomEvent += new EventHandler(newWindowKlient_RaiseCustomEvent); + view.ShowDialog(); + } + + + }else + { + MessageBox.Show("Sorry aber hast du grad versucht einem Kranken Kind einen Vertreter hinzuzufügen ?? Schäm dich."); + } + + } + //Fertig private void newWindow_RaiseCustomEvent(object sender, CustomEventArgs e) { - UpdateMitarbeiterToVertretung(e.Message); + if (GridDataControlTagesansicht.Visibility == Visibility.Visible) + { + UpdateMitarbeiterToVertretung(e.Message); + } + else if (GridDataControlKlientenWochenansicht.Visibility == Visibility.Visible) + { + UpdateMitarbeiterToVertretungWeekEdition(e.Message); + } + else + { + view.Close(); + MessageBox.Show("Not yet implemented"); + } } - //Fertig // noch nicht wegen erweiterung + private void newWindowKlient_RaiseCustomEvent(object sender, CustomKlientEventArgs e) + { + UpdateKlienttoVertretungWeekEdition(e.Message); + } + + //Fertig private void UpdateMitarbeiterToVertretung(CompactEmployeeDC employee) { - var a = (SchulbegleitenderDienst)GridDataControlTagesansicht.SelectedItem; - VertretungDC vert = new VertretungDC(); - //Dieser bereich ist nur dazu da um eine Vertretenden Mitarbeiter zuzufügen - // a. vertretungsDC ist = null bei einigen, da muss eine neues object davon erstellt werden - if(a.VertretungsDC != null){ - vert = a.VertretungsDC; - - vert.VertretenderMitarbeiterOid = employee.EmployeeOid; - - - ServiceFacade.DoOperationsServiceSync(s => s.UpdateVertretung(vert)); - } - else + VertretungDC vert = new VertretungDC() { + CustomerOid = a.klientoid, + EmployeeOid = a.mitarbeiteroid, + VertretungsZeitraumVon = a.startD, + VertretungsZeitraumBis = a.endD, + AbsenceTimeOid = a.absenceTimeDC.AbsenceTimeOid, + VertretenderMitarbeiterOid = employee.EmployeeOid + }; + - // ServiceFacade.DoOperationsServiceSync() - //Create Vertretung and update AbsenceTime - - - MessageBox.Show("Hier muss noch was hin "); + if (a.VertretungsDC != null) + { + vert.VertretungOid = a.VertretungsDC.VertretungOid; + ServiceFacade.DoOperationsServiceSync(s => s.UpdateVertretung(vert)); } + else + { + //Wird Später gebraucht + //ServiceFacade.DoOperationsServiceSync(s => s.CreateVertretung(vert)); + } view.Close(); @@ -761,34 +1152,220 @@ namespace BeWo.SchulbegleitenderDienst } + private void UpdateMitarbeiterToVertretungWeekEdition(CompactEmployeeDC employee) + { + var a = (Wochenansichten) GridDataControlKlientenWochenansicht.SelectedItem; + + var tag = GridDataControlKlientenWochenansicht.CurrentColumn.FieldName; + + //VertretungDC vert = new VertretungDC() + //{ + // CustomerOid = a.klientoid, + // EmployeeOid = a.mitarbeiteroid, + // VertretungsZeitraumVon = a.startD, + // VertretungsZeitraumBis = a.endD, + // AbsenceTimeOid = a.absenceTimeDC.AbsenceTimeOid, + // VertretenderMitarbeiterOid = a.vertreteroid + //}; + + //foreach (var woche in a.vertretungsWoche) + //{ + // if(woche.Key.Equals(tag)){ + // foreach (var item in woche.Value) + // { + // VertretungDC vert = new VertretungDC(); + // if (item.Value.VertretungsDC != null) + // { + + // vert = item.Value.VertretungsDC; + // vert.CustomerOid = item.Value.klientoid; + // vert.AbsenceTimeOid = item.Value.absenceTimeDC.AbsenceTimeOid.Value; + // vert.Notice = item.Value.Beschreibung; + + // //DateTime[] behh = StringTo2Date(item.Value.KrankheitsZeitraum); + + // vert.VertretungsZeitraumVon = item.Key;//behh[0]; // Den TAg des Ausgewählten tages + // vert.VertretungsZeitraumBis = item.Key;//behh[1]; // Den TAg Des Ausgewählten tages + + // vert.VertretenderMitarbeiterOid = employee.EmployeeOid; + + + // ServiceFacade.DoOperationsServiceSync(s => s.UpdateVertretung(vert, item.Value.AbwesenheitsKategorie)); + // } + // else + // { + // vert.VertretenderMitarbeiterOid = employee.EmployeeOid; + + // //DateTime[] behh = StringTo2Date(a.KrankheitsZeitraum); // ersetzt durch, Den Tag des Ausgewählten tages + + // vert.VertretungsZeitraumVon = item.Key;//behh[0]; + // vert.VertretungsZeitraumBis = item.Key;//behh[1]; + + + // ServiceFacade.DoOperationsServiceSync(s => s.CreateVertretung(item.Value.mitarbeiteroid, item.Value.klientoid, vert.VertretenderMitarbeiterOid.Value, item.Value.absenceTimeDC.AbsenceTimeOid.Value, item.Value.Beschreibung, vert.VertretungsZeitraumVon, vert.VertretungsZeitraumBis)); + // } + + + // view.Close(); + + // GetAllVertretungenOnLoad(Datepicker.DateTime.Date); + // } + // } + //} + MessageBox.Show("Diese Funktion ist derzeitig nicht verfügbar"); + } + + private void UpdateKlienttoVertretungWeekEdition(CompactCustomerDC customer) + { + MessageBox.Show("Läuft alles nach schnürchen"); + + var a = (Wochenansichten)GridDataControlMitarbeiterWochenansicht.SelectedItem; + + var tag = GridDataControlMitarbeiterWochenansicht.CurrentColumn.FieldName; + //bereich das heute fertig gestellt wird + + //VertretungDC vert = new VertretungDC() + //{ + // CustomerOid = a.klientoid, + // EmployeeOid = a.mitarbeiteroid, + // VertretungsZeitraumVon = a.startD, + // VertretungsZeitraumBis = a.endD, + // AbsenceTimeOid = a.absenceTimeDC.AbsenceTimeOid, + // VertretenderMitarbeiterOid = a.vertreteroid + //}; + + //foreach (var woche in a.KlientvertretungsWoche) + //{ + // if (woche.Key.Equals(tag)) + // { + // foreach (var item in woche.Value) + // { + // VertretungDC vert = new VertretungDC(); + // if (item.Value.VertretungsDC != null) + // { + + // //irgendwas fehlt + + // vert = item.Value.VertretungsDC; + // vert.EmployeeOid = item.Value.mitarbeiteroid; + // vert.AbsenceTimeOid = item.Value.absenceTimeDC.AbsenceTimeOid.Value; + // vert.Notice = item.Value.Beschreibung; + + // //DateTime[] behh = StringTo2Date(item.Value.KrankheitsZeitraum); + + // vert.VertretungsZeitraumVon = item.Key;//behh[0]; // Den TAg des Ausgewählten tages + // vert.VertretungsZeitraumBis = item.Key;//behh[1]; // Den TAg Des Ausgewählten tages + + // vert.CustomerOid = customer.CustomerOid; + + + // ServiceFacade.DoOperationsServiceSync(s => s.UpdateVertretung(vert, item.Value.AbwesenheitsKategorie)); + // } + // else + // { + // //DateTime[] behh = StringTo2Date(a.KrankheitsZeitraum); // ersetzt durch, Den Tag des Ausgewählten tages + + // vert.VertretungsZeitraumVon = item.Key;//behh[0]; + // vert.VertretungsZeitraumBis = item.Key;//behh[1]; + + + // ServiceFacade.DoOperationsServiceSync(s => s.CreateVertretung(item.Value.mitarbeiteroid,customer.CustomerOid, vert.VertretenderMitarbeiterOid.Value, item.Value.absenceTimeDC.AbsenceTimeOid.Value, item.Value.Beschreibung, vert.VertretungsZeitraumVon, vert.VertretungsZeitraumBis)); + // } + // } + // } + //} + + MessageBox.Show("Diese Funktion ist derzeitig nicht verfügbar"); + //zudem müssen alle anderen mitarbeiter auch in die Liste + } + //################### Kontext Menue bereich ############################### private void DataViewBase_OnShowGridMenu(object sender, GridMenuEventArgs e) { - if (e.MenuInfo.Column.FieldName == "Kunde") + if (GridDataControlTagesansicht.Visibility == Visibility.Visible) { - BarButtonItem x = new BarButtonItem() {Content = "Kunden Info"}; - x.ItemClick += Kundeninfo_OnClick; - e.Customizations.Add(x); - } + var a = (SchulbegleitenderDienst) GridDataControlTagesansicht.SelectedItem; - if (e.MenuInfo.Column.FieldName == "KrankerMitarbeiter") - { - BarButtonItem x = new BarButtonItem() {Content = "Mitarbeiter Info"}; - x.ItemClick += Mitarbeiterinfo_OnClick; - e.Customizations.Add(x); - } + if (e.MenuInfo.Column.FieldName == "Kunde") + { + BarButtonItem x = new BarButtonItem() {Content = "Kunden Info"}; + x.ItemClick += Kundeninfo_OnClick; + e.Customizations.Add(x); + } - if (e.MenuInfo.Column.FieldName == "Vertretung") + if (e.MenuInfo.Column.FieldName == "KrankerMitarbeiter") + { + BarButtonItem x = new BarButtonItem() {Content = "Mitarbeiter Info"}; + x.ItemClick += Mitarbeiterinfo_OnClick; + e.Customizations.Add(x); + } + + if (e.MenuInfo.Column.FieldName == "Vertretung") + { + BarButtonItem s = new BarButtonItem() {Content = "Mitarbeiter Info"}; + s.ItemClick += MitarbeiterVertretunginfo_OnClick; + e.Customizations.Add(s); + } + + if (a.VertretungsDC != null) + { + BarButtonItem y = new BarButtonItem() {Content = "Vertretung Löschen"}; + y.ItemClick += DeletPerson_OnClick; + e.Customizations.Add(y); + } + + BarButtonItem ys = new BarButtonItem() {Content = "Krankmeldung Löschen"}; + ys.ItemClick += DeleteKrankmeldung_OnClick; + e.Customizations.Add(ys); + + } + else if (GridDataControlKlientenWochenansicht.Visibility == Visibility.Visible) { - BarButtonItem s = new BarButtonItem() { Content = "Mitarbeiter Info" }; - s.ItemClick += MitarbeiterVertretunginfo_OnClick; - e.Customizations.Add(s); - } + // ########### KontextMenue Wochenanzeige ######### + - BarButtonItem y = new BarButtonItem() { Content = "Löschen" }; - y.ItemClick += DeletPerson_OnClick; - e.Customizations.Add(y); + //BarButtonItem ys = new BarButtonItem() { Content = "Krankmeldung Löschen" }; // villeicht reaktivieren + //ys.ItemClick += DeleteKrankmeldung_OnClick; + //e.Customizations.Add(ys); + + if (e.MenuInfo.Column.FieldName == "Kunde") // FieldNames umbennenen + { + BarButtonItem x = new BarButtonItem() {Content = "Kunden Info"}; + x.ItemClick += Kundeninfo_OnClick; // bearbeiten + e.Customizations.Add(x); + } + + if (e.MenuInfo.Column.FieldName == "MaKrank") + { + BarButtonItem x = new BarButtonItem() {Content = "Mitarbeiter Info"}; + x.ItemClick += Mitarbeiterinfo_OnClick; // eee + e.Customizations.Add(x); + } + + if (e.MenuInfo.Column.FieldName == "VertretungMo" || e.MenuInfo.Column.FieldName == "VertretungDi" || + e.MenuInfo.Column.FieldName == "VertretungMi" || e.MenuInfo.Column.FieldName == "VertretungDo" || + e.MenuInfo.Column.FieldName == "VertretungFr" || e.MenuInfo.Column.FieldName == "VertretungSa" || + e.MenuInfo.Column.FieldName == "VertretungSo") + { + BarButtonItem s = new BarButtonItem() {Content = "Mitarbeiter Info"}; + s.ItemClick += MitarbeiterVertretunginfoWochenanzeige_OnClick; + e.Customizations.Add(s); + mitarbeiterVertretungWocheninfo = e.MenuInfo.Column.FieldName; + + BarButtonItem xs = new BarButtonItem() { Content = "Vertretung Löschen" }; + xs.ItemClick += DeletVertretungForWochenanzeige_OnClick; + e.Customizations.Add(xs); + + deletVertretungsWeek = e.MenuInfo.Column.FieldName; + } + + + } + else + { + //>KontextMenue für die Mitarbeiter View + } } //Fertig @@ -797,40 +1374,51 @@ namespace BeWo.SchulbegleitenderDienst var a = (SchulbegleitenderDienst)GridDataControlTagesansicht.SelectedItem; - if (!a.Kunde.Equals("")) - { - VertretungDC vert = new VertretungDC(); + if(a.Kunde != null){ + if (!a.Kunde.Equals("") ) + { + VertretungDC vert = new VertretungDC(); - vert = a.VertretungsDC; + List abf = new List(); - List abf = new List(); - abf.Add(vert.CustomerOid.Value); + if (a.VertretungsDC != null) + { + vert = a.VertretungsDC; + abf.Add(vert.CustomerOid.Value); + } + else{ + abf.Add(a.klientoid); + } - var sgf = ServiceFacade.DoCustomerServiceSync(s => s.GetCompactCustomersById(abf)); - var selectedCustomer = sgf[0]; + var sgf = ServiceFacade.DoCustomerServiceSync(s => s.GetCompactCustomersById(abf)); + var selectedCustomer = sgf[0]; - VMFactory.CreateCustomerVMAsync(selectedCustomer.CustomerOid, - cb => this.Dispatch( - () => - BeWoUtils.OpenModalViewWindow(cb, null, () => this.Dispatch( - delegate - { - var updatedCustomer = new CompactCustomerDC(); + VMFactory.CreateCustomerVMAsync(selectedCustomer.CustomerOid, + cb => this.Dispatch( + () => + BeWoUtils.OpenModalViewWindow(cb, null, () => this.Dispatch( + delegate + { + var updatedCustomer = new CompactCustomerDC(); - ServiceFacade.DoCustomerServiceSync( - s => updatedCustomer = s.GetCompactCustomerDC(selectedCustomer.CustomerOid)); - selectedCustomer = new CompactCustomerDC(); - selectedCustomer = updatedCustomer; - // UpdateControls(); - // customerText.Text = updatedCustomer.ToString(); - - BeWoUtils.UpdateAllViews(selectedCustomer); - })) - )); - } - else - MessageBox.Show("Es wurde der Vertretung kein Kunde zugeteilt"); + ServiceFacade.DoCustomerServiceSync( + s => updatedCustomer = s.GetCompactCustomerDC(selectedCustomer.CustomerOid)); + selectedCustomer = new CompactCustomerDC(); + selectedCustomer = updatedCustomer; + // UpdateControls(); + // customerText.Text = updatedCustomer.ToString(); + BeWoUtils.UpdateAllViews(selectedCustomer); + })) + )); + } + else + MessageBox.Show("Es wurde der Vertretung kein Kunde zugeteilt"); + } + else + { + MessageBox.Show("Es wurde der Vertretung kein Kunde zugeteilt"); + } } //Fertig @@ -838,39 +1426,60 @@ namespace BeWo.SchulbegleitenderDienst { var a = (SchulbegleitenderDienst)GridDataControlTagesansicht.SelectedItem; - if (!a.KrankerMitarbeiter.Equals("")) + + if (a.KrankerMitarbeiter != null) { - VertretungDC vert = new VertretungDC(); + if (!a.KrankerMitarbeiter.Equals("")) + { + VertretungDC vert = new VertretungDC(); - vert = a.VertretungsDC; + List abf = new List(); - List abf = new List(); - abf.Add(vert.EmployeeOid.Value); + if (a.VertretungsDC != null) + { + vert = a.VertretungsDC; + abf.Add(vert.EmployeeOid.Value); + } + else + { + abf.Add(a.mitarbeiteroid); + } - var sgf = ServiceFacade.DoEmployeeServiceSync(s => s.GetActiveCompactEmployeeWithOid(vert.EmployeeOid.Value)); - var selectedEmployee = sgf; - VMFactory.CreateEmployeeVMAsync(selectedEmployee.EmployeeOid, - cb => this.Dispatch( - () => - BeWoUtils.OpenModalViewWindow(cb, null, () => this.Dispatch( - delegate - { - var updatedEmployee = new CompactEmployeeDC(); + var sgf = ServiceFacade.DoEmployeeServiceSync(s => s.GetActiveCompactEmployeeWithOid(abf[0])); + var selectedEmployee = sgf; - ServiceFacade.DoEmployeeServiceSync( - s => updatedEmployee = s.GetActiveCompactEmployeeWithOid(selectedEmployee.EmployeeOid)); - selectedEmployee = new CompactEmployeeDC(); - selectedEmployee = updatedEmployee; - // UpdateControls(); - // customerText.Text = updatedCustomer.ToString(); + VMFactory.CreateEmployeeVMAsync(selectedEmployee.EmployeeOid, + cb => this.Dispatch( + () => + BeWoUtils.OpenModalViewWindow(cb, null, + () => this.Dispatch( + delegate + { + var updatedEmployee = new CompactEmployeeDC(); + + ServiceFacade.DoEmployeeServiceSync( + s => + updatedEmployee = + s.GetActiveCompactEmployeeWithOid(selectedEmployee.EmployeeOid)); + selectedEmployee = new CompactEmployeeDC(); + selectedEmployee = updatedEmployee; + // UpdateControls(); + // customerText.Text = updatedCustomer.ToString(); + + BeWoUtils.UpdateAllViews(selectedEmployee); + })) + )); + } + else + MessageBox.Show("Es wurde der Vertretung kein Mitarbeiter zugeteilt"); - BeWoUtils.UpdateAllViews(selectedEmployee); - })) - )); } else + { MessageBox.Show("Es wurde der Vertretung kein Mitarbeiter zugeteilt"); + } + } //Fertig @@ -878,42 +1487,126 @@ namespace BeWo.SchulbegleitenderDienst { var a = (SchulbegleitenderDienst)GridDataControlTagesansicht.SelectedItem; - if (!a.Vertretung.Equals("")) + + if (a.Vertretung != null) { - VertretungDC vert = new VertretungDC(); + if (!a.Vertretung.Equals("")) + { + VertretungDC vert = new VertretungDC(); - vert = a.VertretungsDC; + vert = a.VertretungsDC; - List abf = new List(); - abf.Add(vert.EmployeeOid.Value); + List abf = new List(); - var sgf = ServiceFacade.DoEmployeeServiceSync(s => s.GetActiveCompactEmployeeWithOid(vert.VertretenderMitarbeiterOid.Value)); - var selectedEmployee = sgf; + if (a.VertretungsDC != null) + { + vert = a.VertretungsDC; + abf.Add(vert.VertretenderMitarbeiterOid.Value); + } + else + { + abf.Add(a.vertreteroid); + } - VMFactory.CreateEmployeeVMAsync(selectedEmployee.EmployeeOid, - cb => this.Dispatch( - () => - BeWoUtils.OpenModalViewWindow(cb, null, () => this.Dispatch( - delegate - { - var updatedEmployee = new CompactEmployeeDC(); + var sgf = ServiceFacade.DoEmployeeServiceSync(s => s.GetActiveCompactEmployeeWithOid(abf[0])); + var selectedEmployee = sgf; - ServiceFacade.DoEmployeeServiceSync( - s => updatedEmployee = s.GetActiveCompactEmployeeWithOid(selectedEmployee.EmployeeOid)); - selectedEmployee = new CompactEmployeeDC(); - selectedEmployee = updatedEmployee; - // UpdateControls(); - // customerText.Text = updatedCustomer.ToString(); + VMFactory.CreateEmployeeVMAsync(selectedEmployee.EmployeeOid, + cb => this.Dispatch( + () => + BeWoUtils.OpenModalViewWindow(cb, null, + () => this.Dispatch( + delegate + { + var updatedEmployee = new CompactEmployeeDC(); + + ServiceFacade.DoEmployeeServiceSync( + s => + updatedEmployee = + s.GetActiveCompactEmployeeWithOid(selectedEmployee.EmployeeOid)); + selectedEmployee = new CompactEmployeeDC(); + selectedEmployee = updatedEmployee; + // UpdateControls(); + // customerText.Text = updatedCustomer.ToString(); + + BeWoUtils.UpdateAllViews(selectedEmployee); + })) + )); + } + else + MessageBox.Show("Es wurde der Vertretung kein Mitarbeiter zugeteilt"); - BeWoUtils.UpdateAllViews(selectedEmployee); - })) - )); } else + { MessageBox.Show("Es wurde der Vertretung kein Mitarbeiter zugeteilt"); + } } - //nicht mehr ganz so Fertig / grund ist die wochenanzeige, diese muss jetzt auch berücksichtigt werden. + // Fertig // Zurzeit nur für KlientenWochenansicht + private void MitarbeiterVertretunginfoWochenanzeige_OnClick(object sender, RoutedEventArgs e) + { + var x = (Wochenansichten)GridDataControlKlientenWochenansicht.SelectedItem; + + foreach (var wochentag in x.vertretungsWoche) + { + if (wochentag.Key.Equals(mitarbeiterVertretungWocheninfo)) + { + mitarbeiterVertretungWocheninfo = ""; + foreach (var item in wochentag.Value) + { + if (item.Key != null) + { + if (!item.Value.Vertretung.Equals("")) + { + List abf = new List(); + + + abf.Add(item.Value.vertreteroid); + + + var sgf = ServiceFacade.DoEmployeeServiceSync(s => s.GetActiveCompactEmployeeWithOid(abf[0])); + var selectedEmployee = sgf; + + VMFactory.CreateEmployeeVMAsync(selectedEmployee.EmployeeOid, + cb => this.Dispatch( + () => + BeWoUtils.OpenModalViewWindow(cb, null, + () => this.Dispatch( + delegate + { + var updatedEmployee = new CompactEmployeeDC(); + + ServiceFacade.DoEmployeeServiceSync( + s => + updatedEmployee = + s.GetActiveCompactEmployeeWithOid(selectedEmployee.EmployeeOid)); + selectedEmployee = new CompactEmployeeDC(); + selectedEmployee = updatedEmployee; + // UpdateControls(); + // customerText.Text = updatedCustomer.ToString(); + + BeWoUtils.UpdateAllViews(selectedEmployee); + })) + )); + } + else + MessageBox.Show("Es wurde der Vertretung kein Mitarbeiter zugeteilt"); + + } + else + { + MessageBox.Show("Es wurde der Vertretung kein Mitarbeiter zugeteilt"); + } + + } + } + + } + + } + + //nicht mehr ganz so Fertig --> wurde dies denn nicht schon erledigt?? Nur Vertretung private void DeletPerson_OnClick(object sender, RoutedEventArgs e) { if (MessageBox.Show("Möchten Sie die Vertretung wirklich Löschen?", "Vertretung Löschen", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes) @@ -924,136 +1617,274 @@ namespace BeWo.SchulbegleitenderDienst // delet vertretung from oid VertretungDC vert = new VertretungDC(); - vert = a.VertretungsDC; - - ServiceFacade.DoOperationsServiceSync(s => s.DeleteVertretung(vert)); + if (a.VertretungsDC != null) + { + vert = a.VertretungsDC; + ServiceFacade.DoOperationsServiceSync(s => s.DeleteVertretung(vert.VertretungOid.Value)); + } GetAllVertretungenOnLoad(Datepicker.DateTime.Date); } } + + // Delet Für Wochenanzeige // ggf die Krankmeldung mit Löschen + private void DeletVertretungForWochenanzeige_OnClick(object sender, RoutedEventArgs e) + { + if (MessageBox.Show("Möchten Sie die Vertretung wirklich Löschen?", "Vertretung Löschen", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes) + { + var a = (Wochenansichten)GridDataControlKlientenWochenansicht.SelectedItem; + + foreach (var wochentag in a.vertretungsWoche) + { + if (wochentag.Key.Equals(deletVertretungsWeek)) + { + deletVertretungsWeek = ""; + + foreach (var item in wochentag.Value) + { + if (item.Key != null) + { + if (!item.Value.Vertretung.Equals("")) + { + // ggf die Krankmeldung mit Löschen + ServiceFacade.DoOperationsServiceSync(s => s.DeleteVertretung(item.Value.VertretungsDC.VertretungOid.Value)); + + GetAllVertretungenOnLoad(Datepicker.DateTime.Date); + } + } + } + } + } + } + } + + //Fertig + public void DeleteKrankmeldung_OnClick(object sender, RoutedEventArgs e) + { + if (MessageBox.Show("Möchten Sie die Krankmeldung wirklich Löschen?", "Krankmeldung Löschen", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes) + { + var a = (SchulbegleitenderDienst)GridDataControlTagesansicht.SelectedItem; + + Dictionary ahh = new Dictionary(); + ahh.Add(a.absenceTimeDC.AbsenceTimeOid.Value,a.absenceTimeDC.AbsenceTimeVersion.Value); + + ServiceFacade.DoOperationsServiceSync(s => s.DeactivateAbsenceTime(ahh)); + + VertretungDC vert = new VertretungDC(); + + + if (a.VertretungsDC != null) + { + vert = a.VertretungsDC; + ServiceFacade.DoOperationsServiceSync(s => s.DeleteVertretung(vert.VertretungOid.Value)); + } + + GetAllVertretungenOnLoad(Datepicker.DateTime.Date); + } + } + //############################################################################ + //#######String mit 2 DateTimes in DateTimes umwandeln ####################### + + private DateTime[] StringTo2Date(string StringtoDate) + { + DateTime[] ahh = new DateTime[2]; + try + { + string[] zeitraum = StringtoDate.Split('-'); + + + ahh[0] = DateTime.Parse(zeitraum[0]); + + if (zeitraum.Length != 1) + ahh[1] = DateTime.Parse(zeitraum[1]); + else + ahh[1] = DateTime.Parse(zeitraum[0]); + + } + catch (Exception exception) + { + MessageBox.Show("Es ist ein Fehler beim splitten eines strings aufgetretten"); + } + + + return ahh; + } + + private void KrankmeldungsZeitraumBearbeitungsView(object sender, RoutedEventArgs e) + { + + var a = (SchulbegleitenderDienst)GridDataControlTagesansicht.SelectedItem; + + if (krankView == null) + { + krankView = new KrankheitsZeitraumView(a.startD,a.endD); + + krankView.RaiseCustomEvent += new EventHandler(newWindowKrankzeitraum_RaiseCustomEvent); + krankView.ShowDialog(); + } + else + { + krankView.Close(); + krankView = new KrankheitsZeitraumView(a.startD, a.endD); + + krankView.RaiseCustomEvent += new EventHandler(newWindowKrankzeitraum_RaiseCustomEvent); + krankView.ShowDialog(); + } + + } + + private void newWindowKrankzeitraum_RaiseCustomEvent(object sender, KrankheitsEventArgs e) + { + UpdateKrankheitsZeitraum(e.Start,e.Ende); + } + + public void UpdateKrankheitsZeitraum(DateTime startZeit,DateTime endZeit) + { + krankView.Close(); + + var ab = (SchulbegleitenderDienst)GridDataControlTagesansicht.SelectedItem; + + + ab.absenceTimeDC.Start = startZeit; + ab.absenceTimeDC.End = endZeit; + + + List a = new List(); + + a.Add(ab.absenceTimeDC); + + ServiceFacade.DoCustomerServiceSync(s => s.UpdateAbsenceTimes(a)); + + GetAllVertretungenOnLoad(Datepicker.DateTime.Date); + } + //################## Ermögliche save nach änderung am grid ################### private void GridViewBase_OnRowUpdated(object sender, RowEventArgs e) { var a = (SchulbegleitenderDienst) GridDataControlTagesansicht.SelectedItem; - VertretungDC vert = new VertretungDC(); - - vert = a.VertretungsDC; - - - vert.Notice = a.Beschreibung; - - //das muss in die updateVertretung und absencereason muss dann mit übergeben werden + kreankheitsmeldung und der andere rest - //vert.AbwesenheitsOid = a.AbwesenheitsKategorie.AbsenceReasonOid; - - //noch alle daten übergeben - //vert.KrankheitsMeldung = a.KrankheitsMeldung; - - try + + AbsenceTimeDC abstime = new AbsenceTimeDC() { - string[] zeitraum = a.KrankheitsZeitraum.Split('-'); + AbsenceTimeOid = a.absenceTimeDC.AbsenceTimeOid, + Notice = a.Beschreibung, + Start = a.startD, + End = a.endD, + Reason = a.AbwesenheitsKategorie, + KrankheitsMeldung = a.KrankheitsMeldung + }; - vert.VertretungsZeitraumVon = DateTime.Parse(zeitraum[0]); - vert.VertretungsZeitraumBis = DateTime.Parse(zeitraum[1]); - } - catch (Exception exception) + VertretungDC vert = new VertretungDC() { - MessageBox.Show("Es ist ein Fehler beim splitten eines strings aufgetretten"); + CustomerOid = a.klientoid, + EmployeeOid = a.mitarbeiteroid, + VertretungsZeitraumVon = a.startD, + VertretungsZeitraumBis = a.endD, + AbsenceTimeOid = a.absenceTimeDC.AbsenceTimeOid, + VertretenderMitarbeiterOid = a.vertreteroid + }; + + + if (a.VertretungsDC != null) + { + vert.VertretungOid = a.VertretungsDC.VertretungOid; + + ServiceFacade.DoOperationsServiceSync(s => s.UpdateVertretungAndAbsenceTime(vert,abstime)); } - - - ServiceFacade.DoOperationsServiceSync(s => s.UpdateVertretung(vert)); - - + else + { + if (a.vertreteroid != 0){ + ServiceFacade.DoOperationsServiceSync(s => s.CreateVertretung(vert)); + } + else + { + ServiceFacade.DoOperationsServiceSync(s => s.UpdateAbsenceTime(abstime)); + } + } + GetAllVertretungenOnLoad(Datepicker.DateTime.Date); } - //Wochenanzeige Save nach änderung am grid - + //Wochenanzeige Save nach änderung am grid // die änderungen weden bei einem change nicht aufgerufen // Dies wird ggf nicht mal benötigt private void GridViewWochenMitarbeiterBase_OnRowUpdated(object sender, CellValueChangedEventArgs e) { - var b = (Wochenansichten)GridDataControlMitarbeiterWochenansicht.SelectedItem; - - - //miess eig. für jede vertretung ein update. / dieser bereiche muss komplett umgeschrieben werden - //************************************************************************************************************ - var a = (SchulbegleitenderDienst)GridDataControlTagesansicht.SelectedItem; - VertretungDC vert = new VertretungDC(); - - vert = a.VertretungsDC; + //var babsi = (Wochenansichten)GridDataControlMitarbeiterWochenansicht.SelectedItem; - vert.Notice = a.Beschreibung; - - //das muss in die updateVertretung und absencereason muss dann mit übergeben werden - //vert.AbwesenheitsOid = a.AbwesenheitsKategorie.AbsenceReasonOid; - - //noch alle daten übergeben - // vert.KrankheitsMeldung = a.KrankheitsMeldung; - - try - { - string[] zeitraum = a.KrankheitsZeitraum.Split('-'); - - vert.VertretungsZeitraumVon = DateTime.Parse(zeitraum[0]); - vert.VertretungsZeitraumBis = DateTime.Parse(zeitraum[1]); - } - catch (Exception exception) - { - MessageBox.Show("Es ist ein Fehler beim splitten eines strings aufgetretten"); - } - ServiceFacade.DoOperationsServiceSync(s => s.UpdateVertretung(vert)); + ////miess eig. für jede vertretung ein update. / dieser bereiche muss komplett umgeschrieben werden + ////************************************************************************************************************ + //var a = (SchulbegleitenderDienst)GridDataControlTagesansicht.SelectedItem; + + + //VertretungDC vert = new VertretungDC() + //{ + // CustomerOid = a.klientoid, + // EmployeeOid = a.mitarbeiteroid, + // VertretungsZeitraumVon = a.startD, + // VertretungsZeitraumBis = a.endD, + // AbsenceTimeOid = a.absenceTimeDC.AbsenceTimeOid, + // VertretenderMitarbeiterOid = a.vertreteroid + //}; - GetAllVertretungenOnLoad(Datepicker.DateTime.Date); - //************************************************************************************************************ + // ServiceFacade.DoOperationsServiceSync(s => s.UpdateVertretung(vert)); + + MessageBox.Show("Diese Funktion wird erst aktiviert wenn ich weis was mit den Verschiedenen Zeiten abgeht. Ansonsten gilt: \nÄhnliche Funktionsweise wie Bei der Tagesansicht. "); + //GetAllVertretungenOnLoad(Datepicker.DateTime.Date); + //************************************************************************************************************ } + //????? Brauch ich das wirklich private void GridViewWochenKlientBase_OnRowUpdated(object sender, CellValueChangedEventArgs e) { - var b = (Wochenansichten)GridDataControlKlientenWochenansicht.SelectedItem; + //var b = (Wochenansichten)GridDataControlKlientenWochenansicht.SelectedItem; - //************************************************************************************************************ - var a = (SchulbegleitenderDienst)GridDataControlTagesansicht.SelectedItem; - VertretungDC vert = new VertretungDC(); + ////************************************************************************************************************ + //var a = (SchulbegleitenderDienst)GridDataControlTagesansicht.SelectedItem; + //VertretungDC vert = new VertretungDC(); - vert = a.VertretungsDC; + //vert = a.VertretungsDC; - vert.Notice = a.Beschreibung; + //vert.Notice = a.Beschreibung; - //hier das gleiche wie in der MEthode drüber - //vert.AbwesenheitsOid = a.AbwesenheitsKategorie.AbsenceReasonOid; + ////hier das gleiche wie in der MEthode drüber + ////vert.AbwesenheitsOid = a.AbwesenheitsKategorie.AbsenceReasonOid; - //noch alle daten übergeben - //vert.KrankheitsMeldung = a.KrankheitsMeldung; + ////noch alle daten übergeben + ////vert.KrankheitsMeldung = a.KrankheitsMeldung; - try - { - string[] zeitraum = a.KrankheitsZeitraum.Split('-'); + //DateTime[] behh = StringTo2Date(a.KrankheitsZeitraum); - vert.VertretungsZeitraumVon = DateTime.Parse(zeitraum[0]); - vert.VertretungsZeitraumBis = DateTime.Parse(zeitraum[1]); - } - catch (Exception exception) - { - MessageBox.Show("Es ist ein Fehler beim splitten eines strings aufgetretten"); - } + //vert.VertretungsZeitraumVon = behh[0]; + //vert.VertretungsZeitraumBis = behh[1]; - ServiceFacade.DoOperationsServiceSync(s => s.UpdateVertretung(vert)); + //VertretungDC vert = new VertretungDC() + //{ + // CustomerOid = a.klientoid, + // EmployeeOid = a.mitarbeiteroid, + // VertretungsZeitraumVon = a.startD, + // VertretungsZeitraumBis = a.endD, + // AbsenceTimeOid = a.absenceTimeDC.AbsenceTimeOid, + // VertretenderMitarbeiterOid = a.vertreteroid + //}; + + //ServiceFacade.DoOperationsServiceSync(s => s.UpdateVertretung(vert)); - GetAllVertretungenOnLoad(Datepicker.DateTime.Date); + //GetAllVertretungenOnLoad(Datepicker.DateTime.Date); + + MessageBox.Show("Diese Funktion wird erst aktiviert wenn ich weis was mit den Verschiedenen Zeiten abgeht. Ansonsten gilt: \nÄhnliche Funktionsweise wie Bei der Tagesansicht. "); //************************************************************************************************************ @@ -1088,10 +1919,7 @@ namespace BeWo.SchulbegleitenderDienst } public void KWWochenAnzeigen() - { - //Umbauen - //DateTime Datelbl.Content - + { DateTime dt = DateTime.Parse(Datelbl.Content.ToString()); DateTime startdt = dt.FirstDateOfWeek(dt.GetIso8601WeekOfYear()); @@ -1114,14 +1942,29 @@ namespace BeWo.SchulbegleitenderDienst } - public void TagesAnzeige() + private void TagesAnzeige() { DateTime dt = Datepicker.DateTime; Datelbl.Content = dt.ToString("dddd dd.MM.yyyy"); } + //################## Vertretung für Bstimmte Zeiten ################# + //------------------------- Wochenanzeige Für jeden Tag eine Vertretung ermöglichen --------------------- + + + + + //-------------------------- StundenWeise Vertretung ermöglichen ---------------------------------------- + + + + //################################################################### + private void Aktualisieren_OnClick(object sender, RoutedEventArgs e) + { + GetAllVertretungenOnLoad(Datepicker.DateTime); + } } #region Connectoren @@ -1131,6 +1974,23 @@ namespace BeWo.SchulbegleitenderDienst public class SchulbegleitenderDienst //---> muss durch die VertretungsVM ersetzt weden. { public VertretungDC VertretungsDC { get; set; } // ---> Sicherheitsrisiko ?? + + //---------------------------------------------------------------- + public AbsenceTimeDC absenceTimeDC { get; set; } // --> muss das sein ? + + + public DateTime startD { get; set; } + public DateTime endD { get; set; } + + public Dictionary wochentagsarbeitszeit { get; set; } + + // KAnnn das nicht weg + public long mitarbeiteroid { get; set; } + public long klientoid { get; set; } + public long vertreteroid { get; set; } // --> Nein muss nicht. + //---------------------------------------------------------------- + + public string Vertretung { get; set; } public string Kunde { get; set; } public string KrankerMitarbeiter { get; set; } @@ -1139,28 +1999,14 @@ namespace BeWo.SchulbegleitenderDienst //public string MaFehlzeit { get; set; } //public string KindFehlzeit { get; set; } public string KrankheitsZeitraum { get; set; } + public string VertretungsZeitraum { get; set; } public string Beschreibung { get; set; } //public int ParentId { get; set; } //public int Oid { get; set; } //Farbe der Jeweiligen Zeile public int IsKunde { get; set; } - //{ - // get - // { - // //Bearbeiten, vllt Grid Updaten oder so - // if (!Kunde.Equals("")) - // { - // return 1; //true - // } - // else - // { - // return 0; //false - // } - // } - - //} - + public int IsMitarbeiter { get; set; } //Villeicht mal schauen mal sehen @@ -1169,6 +2015,7 @@ namespace BeWo.SchulbegleitenderDienst get { return AbwesenheitsKategorie.Description; } } + public string Arbeitszeit { get; set; } } @@ -1176,16 +2023,41 @@ namespace BeWo.SchulbegleitenderDienst public class Wochenansichten { - public long? VertretungsOid { get; set; } + //public long? VertretungsOid { get; set; } public string MaFrei { get; set; } public string MaKrank { get; set; } public string Kind { get; set; } + + //Fürs WPF Klient public string VertretungMo { get; set; } public string VertretungDi { get; set; } public string VertretungMi { get; set; } public string VertretungDo { get; set; } public string VertretungFr { get; set; } public string VertretungSa { get; set; } + + //Fürs WPF Employee + public string EingesetztBeiMo { get; set; } + public string EingesetztBeiDi { get; set; } + public string EingesetztBeiMi { get; set; } + public string EingesetztBeiDo { get; set; } + public string EingesetztBeiFr { get; set; } + public string EingesetztBeiSa { get; set; } + + public string Mo { get; set; } + public string Di { get; set; } + public string Mi { get; set; } + public string Do { get; set; } + public string Fr { get; set; } + public string Sa { get; set; } + public string So { get; set; } + + //KlientenView + public Dictionary> vertretungsWoche { get; set; } + + //MitarbeiterView + public Dictionary> KlientvertretungsWoche { get; set; } + } } diff --git a/BeWo/SchulbegleitenderDienst/SchulbegleitenderDienstBearbeitungsView.xaml b/BeWo/SchulbegleitenderDienst/SchulbegleitenderDienstBearbeitungsView.xaml index 9055d4f4b..d44b789c7 100644 --- a/BeWo/SchulbegleitenderDienst/SchulbegleitenderDienstBearbeitungsView.xaml +++ b/BeWo/SchulbegleitenderDienst/SchulbegleitenderDienstBearbeitungsView.xaml @@ -7,8 +7,11 @@ Title="Chat Dokumentation" Height="500" Width="800" WindowStartupLocation="CenterScreen" ResizeMode="CanResizeWithGrip" WindowStyle="None" Background="Transparent"> - - + + + + + @@ -76,8 +79,36 @@ - + + + + + + + + + + + + + + + + + + + + +