using System; using System.Collections.Generic; using System.Linq; using BeWo.SchulbegleitenderDienst.ViewModel; using BS.Shared; using BS.Shared.DataContracts; using BS.Shared.DataContracts.Compact; namespace BeWo.SchulbegleitenderDienst { public class TagesansichtVM : VertretungsansichtBaseVM { public DateTime Datum { get; set; } public IList Arbeitszeiten { get; set; } public CompactOrganisationDC Schule { get; set; } public CompactEmployeeDC Vertreter { get; set; } public VertretungsStatus VertretungsStatus { get; set; } public string WochenansichtBemerkung { get; set; } public string MitarbeiterStatusColor { get; set; } public string KlientStatusColor { get; set; } public string Krankheitszeitraum { get; set; } public string MitarbeiterEinsatzBei { get; set; } public DateTime Krankheitsmeldung { get; set; } public AbsenceTimeDC Absencetime { get; set; } public VertretungDC Vertretung { get; set; } public Dictionary Wochentagsarbeitszeit { get; set; } public DateTime? StartDate => Absencetime?.Start; public DateTime? EndDate => Absencetime?.End; public string ArbeitszeitenString { get { var text = ""; if (Arbeitszeiten != null) { foreach (var ae in Arbeitszeiten) { if (text.Length > 0) { text += ", "; } text += $"{ae.UhrzeitVon} - {ae.UhrzeitBis}"; } } return text; } } public string Vertretungszeitraum { get { var zeitraum = string.Empty; if (Vertretung != null) { if (Vertretung.VertretungsZeitraumVon.Date != Vertretung.VertretungsZeitraumBis.Date) { if (Vertretung.VertretungsZeitraumVon.Hour == 0 && Vertretung.VertretungsZeitraumVon.Minute == 0 && Vertretung.VertretungsZeitraumBis.Hour == 0 && Vertretung.VertretungsZeitraumBis.Minute == 0) { zeitraum = Vertretung.VertretungsZeitraumVon.ToString("dd.MM.yyyy") + " - " + Vertretung.VertretungsZeitraumBis.ToString("dd.MM.yyyy"); } else { zeitraum = Vertretung.VertretungsZeitraumVon.ToString("dd.MM.yyyy HH:mm") + " - " + Vertretung.VertretungsZeitraumBis.ToString("dd.MM.yyyy HH:mm"); } } else { if (Vertretung.VertretungsZeitraumVon.Hour == 0 && Vertretung.VertretungsZeitraumVon.Minute == 0 && Vertretung.VertretungsZeitraumBis.Hour == 0 && Vertretung.VertretungsZeitraumBis.Minute == 0) { zeitraum = Vertretung.VertretungsZeitraumVon.ToString("dd.MM.yyyy"); } else { zeitraum = Vertretung.VertretungsZeitraumVon.ToString("dd.MM.yyyy HH:mm") + " - " + Vertretung.VertretungsZeitraumBis.ToString("HH:mm"); } } } return zeitraum; } } private List _AssistanceTimes; public List AssistanceTimes { get => _AssistanceTimes; set { if(_AssistanceTimes != value) { _AssistanceTimes = value; FirePropertyChanged(nameof(AssistanceTimes)); } } } public ArbeitszeitEintragDC FirstAssistanceTimeEntry { get { if (AssistanceTimes != null && AssistanceTimes.Any()) { return AssistanceTimes[0]; } return null; } } public new string SchulbegleitenderDienstString { get { var result = string.Empty; if(Absencetime != null) { if(VertretungsStatus == VertretungsStatus.KlientKrank || Vertretung?.VertretenderMitarbeiterOid != null || Customer.SubstitutionStartingDayCount > 0) { if(CustomerPflege?.Equals("Ja") ?? false) { result += "Benötigt Pflege"; } if (CustomerToilettengang?.Equals("Ja") ?? false) { if(result.Length > 0) { result += ", "; } result += "Toilettengang"; } if (CustomerAggressivitaet?.Equals("Ja") ?? false) { if (result.Length > 0) { result += ", "; } result += "Aggressivität"; } if (CustomerHygienebelehrung?.Equals("Ja") ?? false) { if (result.Length > 0) { result += ", "; } result += "Hygienebelehrung"; } if (string.IsNullOrWhiteSpace(CustomerSchutzstufe) == false) { if (result.Length > 0) { result += ", "; } result += $"Schutzstufe {CustomerSchutzstufe}"; } // Vertretung gewünscht [ab x. Tag] if (Customer.SubstitutionNeed == SubstitutionNeed.SubstitutionWanted) { if(result.Length > 0) { result += "\n"; } result += "Vertretung gewünscht"; if(Customer.SubstitutionStartingDayCount > 0) { result += $" ab {Customer.SubstitutionStartingDayCount}. Tag"; } } } else { if (EmployeePflege?.Equals("Ja") ?? false) { result += "Benötigt Pflege"; } if (EmployeeToilettengang?.Equals("Ja") ?? false) { if (result.Length > 0) { result += ", "; } result += "Toilettengang"; } if (EmployeeAggressivitaet?.Equals("Ja") ?? false) { if (result.Length > 0) { result += ", "; } result += "Aggressivität"; } if (EmployeeHygienebelehrung?.Equals("Ja") ?? false) { if (result.Length > 0) { result += ", "; } result += "Hygienebelehrung"; } if (string.IsNullOrWhiteSpace(EmployeeSchutzstufe) == false) { if (result.Length > 0) { result += ", "; } result += $"Schutzstufe {EmployeeSchutzstufe}"; } } } return result; } } public new string VertreterInfoString { get; set; } } }