Files
BeWoPlaner/Data/Entities/SchedulerAppointment.cs
Lyndon Jetten 197c1b8da6 FaC:
Termine in die Zeiterfassung übernehmen hat jetzt eine Link-Table, um das entsprechende Icon zuverlässig anzuzeigen.

MoK:
Löschen von Quittierungsbelegunterschriften eingebaut.
Bewerten von Zielen/Maßnahmen an das entsprechende Recht gekoppelt.
2023-01-26 12:55:56 +01:00

333 lines
11 KiB
C#

using System;
using System.Collections.Generic;
using BS.Shared;
namespace BeWo.Data.Entities
{
public class SchedulerAppointment : BeWoEntityBase
{
public static string PropertyName_AllDay = "AllDay";
public static string PropertyName_CustomerList = "CustomerList";
public static string PropertyName_EmployeeList = "EmployeeList";
public static string PropertyName_EndDate = "EndDate";
public static string PropertyName_IsPrivate = "IsPrivate";
public static string PropertyName_Location = "Location";
public static string PropertyName_Originator = "Originator";
public static string PropertyName_RecurrenceInfo = "RecurrenceInfo";
public static string PropertyName_ReminderInfo = "ReminderInfo";
public static string PropertyName_ResourceList = "ResourceList";
public static string PropertyName_StartDate = "StartDate";
public static string PropertyName_Status = "Status";
public static string PropertyName_Subject = "Subject";
public static string PropertyName_Type = "Type";
public static string PropertyName_FormerBookingSequenceOid = "FormerBookingSequenceOid";
public static string PropertyName_Notice2 = "Notice2";
public static string PropertyName_Notice3 = "Notice3";
public static string PropertyName_Notice4 = "Notice4";
public static string PropertyName_Notice5 = "Notice5";
public static string PropertyName_IsTask = nameof(IsTask);
public static string PropertyName_CompletedNotice = nameof(CompletedNotice);
public static string PropertyName_CompletedUser = nameof(CompletedUser);
public static string PropertyName_CompletedDate = nameof(CompletedDate);
public static string PropertyName_TaskDescription = nameof(TaskDescription);
public static string PropertyName_DueDate = nameof(DueDate);
public static string PropertyName_SupportConceptList = nameof(SupportConceptList);
private IList<Employee2SchedulerAppointment> _EmployeeList;
private IList<Customer> _CustomerList;
private IList<Resource> _ResourceList;
private IList<SupportConcept> _SupportConceptList;
private bool _IsPrivate;
private Employee _Originator;
private long? _FormerBookingSequenceOid;
private string _Notice2;
private string _Notice3;
private string _Notice4;
private string _Notice5;
private long? _FormerTaskOid;
private bool _HasServiceRecordEntry;
private IList<ServiceRecord> _ServiceRecordList;
public virtual bool HasServiceRecordEntry
{
get => _HasServiceRecordEntry;
set
{
if(AreDifferent(_HasServiceRecordEntry, value))
{
_HasServiceRecordEntry = value;
}
}
}
public virtual IList<Customer> CustomerList
{
get => _CustomerList ?? (_CustomerList = new List<Customer>());
set
{
if(AreDifferent(_CustomerList, value))
{
_CustomerList = value;
}
}
}
public virtual bool IsPrivate
{
get => _IsPrivate;
set
{
if(AreDifferent(_IsPrivate, value))
{
_IsPrivate = value;
}
}
}
public virtual Employee Originator
{
get => _Originator;
set
{
if(AreDifferent(_Originator, value))
{
_Originator = value;
}
}
}
public virtual IList<Resource> ResourceList
{
get => _ResourceList ?? (_ResourceList = new List<Resource>());
set
{
if(AreDifferent(_ResourceList, value))
{
_ResourceList = value;
}
}
}
public virtual IList<Employee2SchedulerAppointment> EmployeeList
{
get => _EmployeeList ?? (_EmployeeList = new List<Employee2SchedulerAppointment>());
set
{
if(AreDifferent(_EmployeeList, value))
{
_EmployeeList = value;
}
}
}
public SchedulerAppointment()
{
_Tid = TableID.NewSchedulerAppointment;
}
public virtual bool AllDay { get; set; }
public virtual DateTime? EndDate { get; set; }
public virtual string Location { get; set; }
public virtual string RecurrenceInfo { get; set; }
public virtual string ReminderInfo { get; set; }
public virtual DateTime? StartDate { get; set; }
public virtual int Status { get; set; }
public virtual string Subject { get; set; }
//Normal = 0,
//Pattern = 1,
//Occurrence = 2,
//ChangedOccurrence = 3,
//DeletedOccurrence = 4
public virtual int Type { get; set; }
public virtual bool IsTask { get; set; }
public virtual string TaskDescription { get; set; }
public virtual string CompletedNotice { get; set; }
public virtual string CompletedUser { get; set; }
public virtual DateTime? CompletedDate { get; set; }
public virtual DateTime? DueDate { get; set; }
public virtual long? FormerBookingSequenceOid
{
get => _FormerBookingSequenceOid;
set
{
if(AreDifferent(_FormerBookingSequenceOid, value))
{
_FormerBookingSequenceOid = value;
}
}
}
public virtual long? FormerTaskOid
{
get => _FormerTaskOid;
set
{
if(AreDifferent(_FormerTaskOid, value))
{
_FormerTaskOid = value;
}
}
}
public virtual string Notice2
{
get => _Notice2;
set
{
if(AreDifferent(_Notice2, value))
{
_Notice2 = value;
}
}
}
public virtual string Notice3
{
get => _Notice3;
set
{
if(AreDifferent(_Notice3, value))
{
_Notice3 = value;
}
}
}
public virtual string Notice4
{
get => _Notice4;
set
{
if(AreDifferent(_Notice4, value))
{
_Notice4 = value;
}
}
}
public virtual string Notice5
{
get => _Notice5;
set
{
if(AreDifferent(_Notice5, value))
{
_Notice5 = value;
}
}
}
public virtual IList<SupportConcept> SupportConceptList
{
get => _SupportConceptList ?? (_SupportConceptList = new List<SupportConcept>());
set
{
if(AreDifferent(_SupportConceptList, value))
{
_SupportConceptList = value;
}
}
}
public virtual Guid? GetRecurrenceIdAndIndex(out int index)
{
if(RecurrenceInfo != null)
{
var recurrenceId = BS.Shared.Core.Utils.GetSpecificValueFromRecurrenceInfo(RecurrenceInfo, RecurrenceInfo.IndexOf("Id=\"") + 4);
var recurrenceIndex = BS.Shared.Core.Utils.GetSpecificValueFromRecurrenceInfo(RecurrenceInfo, RecurrenceInfo.IndexOf("Index=\"") + 7);
int.TryParse(recurrenceIndex, out index);
if(Guid.TryParse(recurrenceId, out var guid))
{
return guid;
}
}
index = -1;
return null;
}
public virtual string GetAppointmentType()
{
switch(Type)
{
case 0:
return "Normal";
case 1:
return "Pattern";
case 2:
return "Occurrence";
case 3:
return "Changed Occurrence";
case 4:
return "Deleted Occurrence";
default:
return "Normal";
}
}
public override string ToString()
{
return $"{StartDate?.ToString("dd.MM.yyyy HH:mm:ss")} - {EndDate?.ToString("dd.MM.yyyy HH:mm:ss")}: {Subject}";
}
public virtual int? GetRecurrenceIndex()
{
if(RecurrenceInfo != null)
{
var indexString = BS.Shared.Core.Utils.GetSpecificValueFromRecurrenceInfo(RecurrenceInfo, RecurrenceInfo.IndexOf("Index=\\") + 7);
if(int.TryParse(indexString, out var index))
{
return index;
}
}
return null;
}
public virtual Guid? GetRecurrenceId()
{
if(RecurrenceInfo != null)
{
var idString = BS.Shared.Core.Utils.GetSpecificValueFromRecurrenceInfo(RecurrenceInfo, RecurrenceInfo.IndexOf("Id=\"") + 4);
if(Guid.TryParse(idString, out var guid))
{
return guid;
}
}
return null;
}
public virtual IList<ServiceRecord> ServiceRecordList
{
get => _ServiceRecordList ?? (_ServiceRecordList = new List<ServiceRecord>());
set
{
if(AreDifferent(_ServiceRecordList, value))
{
_ServiceRecordList = value;
}
}
}
}
}