280 lines
9.2 KiB
C#
280 lines
9.2 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
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<ArbeitszeitEintragDC> 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<AppointmentDayOfWeek, string> Wochentagsarbeitszeit { get; set; }
|
|
|
|
public DateTime? StartDate => Absencetime?.Start;
|
|
|
|
public DateTime? EndDate => Absencetime?.End;
|
|
|
|
public MailDC MailCustomer { get; set; }
|
|
|
|
public MailDC MailEmployee { get; set; }
|
|
|
|
public MailDC MailVertretung { get; set; }
|
|
|
|
public MailDC MailSchule { get; set; }
|
|
|
|
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<ArbeitszeitEintragDC> _AssistanceTimes;
|
|
|
|
public List<ArbeitszeitEintragDC> AssistanceTimes
|
|
{
|
|
get => _AssistanceTimes;
|
|
|
|
set
|
|
{
|
|
if(_AssistanceTimes != value)
|
|
{
|
|
_AssistanceTimes = value;
|
|
FirePropertyChanged(nameof(AssistanceTimes));
|
|
}
|
|
}
|
|
}
|
|
|
|
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; }
|
|
|
|
public string CustomerToolTip { get; set; }
|
|
|
|
public string EmployeeToolTip { get; set; }
|
|
|
|
public string VertreterToolTip { get; set; }
|
|
|
|
public Guid Id { get; set; }
|
|
|
|
public ArbeitszeitEintragDC AssistanceTimeEntry { get; set; }
|
|
|
|
public string AlleBetreuungszeiten { get; set; }
|
|
|
|
public string BetreuungszeitenAmDatum { get; set; }
|
|
}
|
|
}
|