409 lines
14 KiB
C#
409 lines
14 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using BeWo.Data.Access;
|
|
using BeWo.Data.Entities;
|
|
using BeWo.Data.Security;
|
|
using BeWo.Service.DCEntityMapper;
|
|
using BS.Shared;
|
|
using BS.Shared.Core;
|
|
|
|
namespace BeWo.Service.Configuration
|
|
{
|
|
public class AppSettings
|
|
{
|
|
|
|
public bool IsServiceRecordNoticeMandatory { get; set; }
|
|
|
|
public bool IsPasswordSecurityActiv { get; set; }
|
|
|
|
public bool UseTwoFactorAuth { get; set; }
|
|
|
|
public bool IsEndDateVisible { get; set; }
|
|
|
|
public bool IsOnlyYearMonthVisible { get; set; }
|
|
|
|
public bool IsZeiterfassDateNormal { get; set; }
|
|
|
|
public bool IsZeiterfassungInStdMin { get; set; }
|
|
|
|
public int MaxDaysEditServiceRecordsAllowed { get; set; }
|
|
|
|
public int HilfeplanAuslaufAuswahl { get; set; }
|
|
|
|
public int AnzTageZeiterfassErfolgt { get; set; }
|
|
|
|
public int AnzTageArbeitszeiterfassungErfolgt { get; set; }
|
|
|
|
public int AnzTageUnterschriftErfolgt { get; set; }
|
|
|
|
public int ZeiterfassungsSchwellwert { get; set; }
|
|
|
|
public bool ShowAdvisedAttendedFlag { get; set; }
|
|
|
|
public bool ShowAllClients { get; set; }
|
|
|
|
public bool ShowExpiredSupportConcepts { get; set; }
|
|
|
|
public bool ShowOnlyMyClients { get; set; }
|
|
|
|
public bool ShowLargeCustomerNotice { get; set; }
|
|
|
|
public bool ShowOnlyMySupportConcepts { get; set; }
|
|
|
|
public string TimeRecordingMenuName { get; set; }
|
|
|
|
public bool ShowDistanceFields { get; set; }
|
|
|
|
public bool ShowSignatures { get; set; }
|
|
|
|
public bool ShowRtfTextfeld { get; set; }
|
|
|
|
public bool ShowCustomerDistanceFields { get; set; }
|
|
|
|
public bool ShowAdditionalService { get; set; }
|
|
|
|
public bool ShowRoundedDurationInEmployeeAnalysis { get; set; }
|
|
|
|
public bool SortServiceDescriptionAlphabetically { get; set; }
|
|
|
|
public bool ShowChat { get; set; }
|
|
|
|
public int DienstplanungStandardZeilenAnzahl { get; set; }
|
|
|
|
public bool ShowWorktime { get; set; }
|
|
public bool EnableArbeitszeiterfassung { get; set; }
|
|
public bool EnableAutomaticPauses { get; set; }
|
|
public bool EnableRestTimeWarning { get; set; }
|
|
public int MaxWorkTimeHoursBeforeWarning { get; set; }
|
|
|
|
public DateTime? StartStundenkonto { get; set; }
|
|
|
|
public ServiceRecordTimeInterval LastSelectedServiceRecordTimeInterval { get; set; } = ServiceRecordTimeInterval.All;
|
|
public int LastSelectedServiceRecordTimeIntervalDays { get; set; } = 7;
|
|
public DateTime LastSelectedServiceRecordMonth { get; set; } = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
|
|
|
|
|
|
|
|
public static AppSettings CreateSettings()
|
|
{
|
|
AppSettings settings = new AppSettings();
|
|
|
|
var mandator = GetMandatorEntity();
|
|
|
|
bool isServiceRecordNoticeMandatory = true;
|
|
bool isPasswordSecurityActiv = false;
|
|
bool isEndDateVisible = true;
|
|
bool isOnlyYearMonthVisible = true;
|
|
bool isZeiterfassDateNormal = true;
|
|
bool isZeiterfassungInStdMin = true;
|
|
bool showServiceRecordsDistanceFields = false;
|
|
bool showSignatures = false;
|
|
bool showRtfTextfeld = false;
|
|
bool showCustomerDistanceFields = false;
|
|
bool showAdditionalService = false;
|
|
bool showRoundedDurationInEmployeeAnalysis = true;
|
|
int maxDaysEditServiceRecordsAllowed = 0;
|
|
int hilfeplanAuslaufAuswahl = 3;
|
|
int anzTageZeiterfassErfolgt = 0;
|
|
int zeiterfassungsSchwellwert = 80;
|
|
bool sortServiceDescriptionAlphabetically = false;
|
|
settings.ShowAdvisedAttendedFlag = false;
|
|
settings.DienstplanungStandardZeilenAnzahl = 1;
|
|
|
|
|
|
bool printerSettingsUseLandscape = false;
|
|
bool printerSettingsUseMargins = false;
|
|
bool printerSettingsUsePaperKind = false;
|
|
|
|
|
|
if (mandator != null)
|
|
{
|
|
string settingsString = mandator.Settings;
|
|
|
|
if (!String.IsNullOrEmpty(mandator.LastModules))
|
|
{
|
|
settingsString += ";" + mandator.LastModules;
|
|
}
|
|
string val = GetSettingValue(settingsString, "IsServiceRecordNoticeMandatory");
|
|
if (val != null && val.Equals("0"))
|
|
{
|
|
isServiceRecordNoticeMandatory = false;
|
|
}
|
|
|
|
val = GetSettingValue(settingsString, "IsPasswordSecurityActiv");
|
|
if (val != null && val.Equals("1"))
|
|
{
|
|
isPasswordSecurityActiv = true;
|
|
}
|
|
|
|
settings.UseTwoFactorAuth = false;
|
|
val = GetSettingValue(settingsString, "UseTwoFactorAuth");
|
|
if (val != null && val.Equals("1"))
|
|
{
|
|
settings.UseTwoFactorAuth = true;
|
|
}
|
|
|
|
val = GetSettingValue(settingsString, "IsEndDateVisible");
|
|
if (val != null && val.Equals("0"))
|
|
{
|
|
isEndDateVisible = false;
|
|
}
|
|
|
|
val = GetSettingValue(settingsString, "IsOnlyYearMonthVisible");
|
|
if (val != null && val.Equals("0"))
|
|
{
|
|
isOnlyYearMonthVisible = false;
|
|
}
|
|
|
|
val = GetSettingValue(settingsString, "IsZeiterfassDateNormal");
|
|
if (val != null && val.Equals("0"))
|
|
{
|
|
isZeiterfassDateNormal = false;
|
|
}
|
|
|
|
val = GetSettingValue(settingsString, "IsZeiterfassungInStdMin");
|
|
if (val != null && val.Equals("0"))
|
|
{
|
|
isZeiterfassungInStdMin = false;
|
|
}
|
|
|
|
val = GetSettingValue(settingsString, "MaxDaysEditServiceRecordsAllowed");
|
|
if(int.TryParse(val, out var result))
|
|
{
|
|
maxDaysEditServiceRecordsAllowed = result;
|
|
}
|
|
|
|
val = GetSettingValue(settingsString, "hilfeplanAuslaufAuswahl");
|
|
if (int.TryParse(val, out var resulthilf))
|
|
{
|
|
hilfeplanAuslaufAuswahl = resulthilf;
|
|
}
|
|
|
|
|
|
val = GetSettingValue(settingsString, "AnzTageZeiterfassErfolgt");
|
|
if (int.TryParse(val, out var resultanzeit))
|
|
{
|
|
anzTageZeiterfassErfolgt = resultanzeit;
|
|
}
|
|
val = GetSettingValue(settingsString, "AnzTageUnterschriftErfolgt");
|
|
if (int.TryParse(val, out var unterschrift))
|
|
{
|
|
settings.AnzTageUnterschriftErfolgt = unterschrift;
|
|
}
|
|
|
|
val = GetSettingValue(settingsString, "ZeiterfassungsSchwellwert");
|
|
if (int.TryParse(val, out var resultschwell))
|
|
{
|
|
zeiterfassungsSchwellwert = resultschwell;
|
|
}
|
|
|
|
val = GetSettingValue(settingsString, "DienstplanungStandardZeilenAnzahl");
|
|
if (int.TryParse(val, out var zeilenanzahl))
|
|
{
|
|
settings.DienstplanungStandardZeilenAnzahl = zeilenanzahl;
|
|
}
|
|
|
|
val = GetSettingValue(settingsString, "ShowDistanceFields");
|
|
if (val != null && val.Equals("1"))
|
|
{
|
|
showServiceRecordsDistanceFields = true;
|
|
}
|
|
val = GetSettingValue(settingsString, "ShowCustomerDistanceFields");
|
|
if (val != null && val.Equals("1"))
|
|
{
|
|
showCustomerDistanceFields = true;
|
|
}
|
|
val = GetSettingValue(settingsString, "ShowAdditionalService");
|
|
if (val != null && val.Equals("1"))
|
|
{
|
|
showAdditionalService = true;
|
|
}
|
|
val = GetSettingValue(settingsString, "ShowRoundedDurationInEmployeeAnalysis");
|
|
if (val != null && val.Equals("0"))
|
|
{
|
|
showRoundedDurationInEmployeeAnalysis = false;
|
|
}
|
|
val = GetSettingValue(settingsString, "ShowWorktime");
|
|
if (val != null && val.Equals("1"))
|
|
{
|
|
settings.ShowWorktime = true;
|
|
}
|
|
val = GetSettingValue(settingsString, SettingsKeys.EnableArbeitszeiterfassung);
|
|
if (val != null && val.Equals("1"))
|
|
{
|
|
settings.EnableArbeitszeiterfassung = true;
|
|
}
|
|
val = GetSettingValue(settingsString, SettingsKeys.EnableAutomaticPauses);
|
|
if (val != null && val.Equals("1"))
|
|
{
|
|
settings.EnableAutomaticPauses = true;
|
|
}
|
|
val = GetSettingValue(settingsString, SettingsKeys.EnableRestTimeWarning);
|
|
if (val != null && val.Equals("1"))
|
|
{
|
|
settings.EnableRestTimeWarning = true;
|
|
}
|
|
val = GetSettingValue(settingsString, SettingsKeys.MaxWorkTimeHoursBeforeWarning);
|
|
int hours;
|
|
if (Int32.TryParse(val, out hours))
|
|
{
|
|
settings.MaxWorkTimeHoursBeforeWarning = hours;
|
|
}
|
|
|
|
val = GetSettingValue(settingsString, "SortServiceDescriptionAlphabetically");
|
|
if (val != null && val.Equals("1"))
|
|
{
|
|
sortServiceDescriptionAlphabetically = true;
|
|
}
|
|
val = GetSettingValue(settingsString, "PrinterSettingsUseLandscape");
|
|
if (val != null && val.Equals("1"))
|
|
{
|
|
printerSettingsUseLandscape = true;
|
|
}
|
|
val = GetSettingValue(settingsString, "PrinterSettingsUseMargins");
|
|
if (val != null && val.Equals("1"))
|
|
{
|
|
printerSettingsUseMargins = true;
|
|
}
|
|
val = GetSettingValue(settingsString, "PrinterSettingsUsePaperKind");
|
|
if (val != null && val.Equals("1"))
|
|
{
|
|
printerSettingsUsePaperKind = true;
|
|
}
|
|
|
|
val = GetSettingValue(settingsString, "ShowSignature");
|
|
if (val != null && val.Equals("1"))
|
|
{
|
|
showSignatures = true;
|
|
}
|
|
|
|
val = GetSettingValue(settingsString, "ShowRtfTextfeld");
|
|
if (val != null && val.Equals("1"))
|
|
{
|
|
showRtfTextfeld = true;
|
|
}
|
|
|
|
val = GetSettingValue(settingsString, "ShowChat");
|
|
if (val != null && val.Equals("1"))
|
|
{
|
|
settings.ShowChat = true;
|
|
}
|
|
|
|
val = GetSettingValue(settingsString, "StartStundenkonto");
|
|
if (val != null && DateTime.TryParse(val, out var dt))
|
|
{
|
|
settings.StartStundenkonto = dt;
|
|
}
|
|
|
|
val = GetSettingValue(settingsString, SettingsKeys.AnzTageArbeitszeiterfassungErfolgt);
|
|
int tage;
|
|
if (Int32.TryParse(val, out tage))
|
|
{
|
|
settings.AnzTageArbeitszeiterfassungErfolgt = tage;
|
|
}
|
|
}
|
|
|
|
settings.IsServiceRecordNoticeMandatory = isServiceRecordNoticeMandatory;
|
|
settings.IsPasswordSecurityActiv = isPasswordSecurityActiv;
|
|
settings.IsEndDateVisible = isEndDateVisible;
|
|
settings.IsOnlyYearMonthVisible = isOnlyYearMonthVisible;
|
|
settings.IsZeiterfassDateNormal = isZeiterfassDateNormal;
|
|
settings.IsZeiterfassungInStdMin = isZeiterfassungInStdMin;
|
|
settings.MaxDaysEditServiceRecordsAllowed = maxDaysEditServiceRecordsAllowed;
|
|
settings.HilfeplanAuslaufAuswahl = hilfeplanAuslaufAuswahl;
|
|
settings.AnzTageZeiterfassErfolgt = anzTageZeiterfassErfolgt;
|
|
settings.ZeiterfassungsSchwellwert = zeiterfassungsSchwellwert;
|
|
settings.ShowDistanceFields = showServiceRecordsDistanceFields;
|
|
settings.ShowSignatures = showSignatures;
|
|
settings.ShowRtfTextfeld = showRtfTextfeld;
|
|
settings.ShowCustomerDistanceFields = showCustomerDistanceFields;
|
|
settings.ShowAdditionalService = showAdditionalService;
|
|
settings.ShowRoundedDurationInEmployeeAnalysis = showRoundedDurationInEmployeeAnalysis;
|
|
settings.SortServiceDescriptionAlphabetically = sortServiceDescriptionAlphabetically;
|
|
|
|
return settings;
|
|
}
|
|
|
|
public static AppSettings GetUserAppSettings()
|
|
{
|
|
AppSettings settings = new AppSettings();
|
|
var user = UserRightHelper.GetLoggedInUser();
|
|
if (user != null)
|
|
{
|
|
var settingsList = MapperFactory.SettingsDC_Settings.MapToNewDCs(user.SettingList);
|
|
|
|
var val = UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.LastSelectedServiceRecordTimeInterval, settingsList);
|
|
if (int.TryParse(val, out var result))
|
|
{
|
|
settings.LastSelectedServiceRecordTimeInterval = (ServiceRecordTimeInterval)result;
|
|
}
|
|
|
|
|
|
val = UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.LastSelectedServiceRecordTimeIntervalDays, settingsList);
|
|
if (val != null)
|
|
{
|
|
settings.LastSelectedServiceRecordTimeIntervalDays = Convert.ToInt32(UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.LastSelectedServiceRecordTimeIntervalDays, settingsList));
|
|
}
|
|
|
|
val = UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.LastSelectedServiceRecordMonth, settingsList);
|
|
if (val != null)
|
|
{
|
|
settings.LastSelectedServiceRecordMonth = Convert.ToDateTime(UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.LastSelectedServiceRecordMonth, settingsList));
|
|
}
|
|
}
|
|
|
|
return settings;
|
|
|
|
}
|
|
|
|
public static Mandator GetMandatorEntity()
|
|
{
|
|
var manList = DAOFactory.GenericDAO.GetAll<Mandator>();
|
|
Mandator man;
|
|
if (manList == null || manList.Count == 0)
|
|
{
|
|
man = new Mandator
|
|
{
|
|
Oid = 1
|
|
};
|
|
|
|
DAOFactory.GenericDAO.Insert(man);
|
|
}
|
|
else
|
|
{
|
|
man = manList[0];
|
|
}
|
|
|
|
return man;
|
|
}
|
|
|
|
private static string GetSettingValue(string settings, string key)
|
|
{
|
|
if (!String.IsNullOrEmpty(settings))
|
|
{
|
|
if (settings.IndexOf(";") == -1 && settings.IndexOf("=") == -1)
|
|
{
|
|
return settings;
|
|
}
|
|
|
|
string[] keyValuePairs = settings.Split(';');
|
|
|
|
foreach (string pair in keyValuePairs)
|
|
{
|
|
string[] keyValuePair = pair.Split('=');
|
|
if (keyValuePair.Length == 2)
|
|
{
|
|
if (keyValuePair[0] == key)
|
|
{
|
|
return keyValuePair[1];
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
|
|
}
|
|
} |