@{
var isOnlyOwnAptsChecked = Model.ShowOnlyMyOwnAppointments ? "checked" : string.Empty;
var isOnlyPrivateAptsChecked = Model.ShowOnlyPrivateAppointments ? "checked" : string.Empty;
@@ -198,105 +235,121 @@
var isOnlyCustomersChecked = Model.ShowOnlyCustomers ? "checked" : string.Empty;
var isOnlyResourcesChecked = Model.ShowOnlyResources ? "checked" : string.Empty;
}
+
+
+
+ Filtern
+
+
-
- Filtern
-
-
-
-
- @if(Model.NotificationCount == 0)
- {
-
keine Benachrichtigungen
- }
-
- @Html.Partial("SchedulerNotificationPartial", Model);
-
+
+
+
-
diff --git a/BeWoPlanerMobil/Views/DevExpressScheduler/EmployeeMultiSelectPartial.cshtml b/BeWoPlanerMobil/Views/DevExpressScheduler/EmployeeMultiSelectPartial.cshtml
index f7873eefc..a9a7a698b 100644
--- a/BeWoPlanerMobil/Views/DevExpressScheduler/EmployeeMultiSelectPartial.cshtml
+++ b/BeWoPlanerMobil/Views/DevExpressScheduler/EmployeeMultiSelectPartial.cshtml
@@ -20,7 +20,13 @@
settings.Columns.Add(c =>
{
c.FieldName = nameof(CompactEmployeeDC.DetailDescription);
- c.Caption = nameof(CompactEmployeeDC.DetailDescription);
+ c.Caption = "Name";
+ });
+
+ settings.Columns.Add(c =>
+ {
+ c.Width = Unit.Pixel(8);
+ c.CellStyle.BackColor = Color.Crimson;
});
settings.Width = Unit.Percentage(100);
diff --git a/BeWoPlanerMobil/Views/DevExpressScheduler/NotificationPopupContent.cshtml b/BeWoPlanerMobil/Views/DevExpressScheduler/NotificationPopupContent.cshtml
new file mode 100644
index 000000000..da4be406a
--- /dev/null
+++ b/BeWoPlanerMobil/Views/DevExpressScheduler/NotificationPopupContent.cshtml
@@ -0,0 +1,77 @@
+@model BeWoPlanerMobil.Models.DevExpressSchedulerModel
+
+@{
+ var betreff = Model.Appointment2Answer?.Subject ?? string.Empty;
+ var ort = Model.Appointment2Answer?.Location ?? string.Empty;
+ var organisator = Model.Appointment2Answer?.Originator?.SimpleDescription ?? string.Empty;
+ var start = Model.Appointment2Answer?.HtmlInputStartFormat ?? string.Empty;
+ var ende = Model.Appointment2Answer?.HtmlInputEndFormat ?? string.Empty;
+ var notiz = Model.Appointment2Answer?.Description ?? string.Empty;
+}
+
+@if(Model.Appointment2Answer?.StartDate < DateTime.Now)
+{
+
+ Dieser Termin liegt in der Vergangenheit
+
+}
+
+
+
+
+
+
+
+
+
+ @if(Model.OpenAppointments?.Any(openAppointment => openAppointment.EndDate is null || openAppointment.EndDate.Value > DateTime.Now) ?? false)
+ {
+
Allen zusagen
+ }
+
+ @if(Model.Appointment2Answer != null)
+ {
+ if(Model.Appointment2Answer.EndDate is null || Model.Appointment2Answer.EndDate > DateTime.Now)
+ {
+
+ Zusagen
+ Mit Vorbehalt
+ Absagen
+
+ }
+ else
+ {
+
OK
+ }
+ }
+
\ No newline at end of file
diff --git a/BeWoPlanerMobil/Views/DevExpressScheduler/NotificationsPopupContent.cshtml b/BeWoPlanerMobil/Views/DevExpressScheduler/NotificationsPopupContent.cshtml
new file mode 100644
index 000000000..43aabb3f8
--- /dev/null
+++ b/BeWoPlanerMobil/Views/DevExpressScheduler/NotificationsPopupContent.cshtml
@@ -0,0 +1,32 @@
+@model BeWoPlanerMobil.Models.DevExpressSchedulerModel
+
+
+
+
+ @if(Model.OpenAppointments != null)
+ {
+ foreach(var appointment in Model.OpenAppointments)
+ {
+ var active = string.Empty;
+
+ if(Model.Appointment2Answer?.SchedulerAppointmentOid != null && appointment.SchedulerAppointmentOid.HasValue)
+ {
+ if(Model.Appointment2Answer.SchedulerAppointmentOid.Value == appointment.SchedulerAppointmentOid.Value)
+ {
+ active = "active";
+ }
+ }
+
+ var text = $"{appointment.StartDate:dd.MM.yyyy}: {appointment.Subject}";
+
+
+ @text
+
+ }
+ }
+
+
+
+ @Html.Partial("NotificationPopupContent", Model)
+
+
\ No newline at end of file
diff --git a/BeWoPlanerMobil/Views/DevExpressScheduler/SchedulerNotificationPartial.cshtml b/BeWoPlanerMobil/Views/DevExpressScheduler/SchedulerNotificationPartial.cshtml
index 99b0afb11..0160910ed 100644
--- a/BeWoPlanerMobil/Views/DevExpressScheduler/SchedulerNotificationPartial.cshtml
+++ b/BeWoPlanerMobil/Views/DevExpressScheduler/SchedulerNotificationPartial.cshtml
@@ -10,9 +10,85 @@
@if(Model.NotificationCount == 0)
{
-
keine Benachrichtigungen
+
keine Benachrichtigungen
}
else
{
-
@GetNotificationInfo()
-}
\ No newline at end of file
+
@GetNotificationInfo()
+}
+
+
+
+
\ No newline at end of file
diff --git a/BeWoPlanerMobil/Views/DevExpressScheduler/SchedulerPagePartial.cshtml b/BeWoPlanerMobil/Views/DevExpressScheduler/SchedulerPagePartial.cshtml
index 71d87dde8..8841ad3fc 100644
--- a/BeWoPlanerMobil/Views/DevExpressScheduler/SchedulerPagePartial.cshtml
+++ b/BeWoPlanerMobil/Views/DevExpressScheduler/SchedulerPagePartial.cshtml
@@ -51,6 +51,10 @@
if(menuId == SchedulerMenuItemId.AppointmentMenu)
{
e.Menu.Items.Add(new MenuItem("In die Zeiterfassung übertragen", "ToServiceRecord"));
+
+ e.Menu.Items.Add(new MenuItem("Zusagen", "ConfirmApt"));
+ e.Menu.Items.Add(new MenuItem("Mit Vorbehalt zusagen", "MaybeApt"));
+ e.Menu.Items.Add(new MenuItem("Absagen", "CancelApt"));
}
if(menuId == SchedulerMenuItemId.DefaultMenu)
@@ -167,6 +171,16 @@
{
evargs.Properties.Add("IsAbsenceTime", evargs.Appointment.CustomFields["IsAbsenceTime"]);
evargs.Properties.Add("IsTask", evargs.Appointment.CustomFields["IsTask"]);
+
+ var end = evargs.Appointment.End;
+ var originator = (CompactEmployeeDC) evargs.Appointment.CustomFields["Originator"];
+ var employeeList = (List
) evargs.Appointment.CustomFields["Employees"];
+
+ var canConfirm = end > DateTime.Now &&
+ false == originator.EmployeeOid.Equals(Model.LoggedInUserOid) &&
+ employeeList.Any(employee2Appointment => employee2Appointment.Employee.EmployeeOid.Equals(Model.LoggedInUserOid));
+
+ evargs.Properties.Add("CanConfirm", canConfirm);
};
settings.PopupMenuShowing = PopupMenuShowing;
diff --git a/BeWoPlanerMobil/Views/Report/Report.cshtml b/BeWoPlanerMobil/Views/Report/Report.cshtml
index 3ccb39858..6e8aa63cd 100644
--- a/BeWoPlanerMobil/Views/Report/Report.cshtml
+++ b/BeWoPlanerMobil/Views/Report/Report.cshtml
@@ -115,6 +115,8 @@
}
function setIsOnlyForSelectedEmployee() {
+ showSpinner();
+
var isChecked = $("#selected-employee-cb").is(":checked");
$.get("@Url.Action("CheckForSelectedEmployee")", function(employeeName2Oid) {
@@ -126,11 +128,13 @@
$("#qb-employee-popup").parent().find(".dropdown-toggle").text(name);
- $.get("@Url.Action("ChangeIsForSelectedEmployeesOnly")", {isForSelectedEmployeeOnly: isChecked, employeeOid: isChecked ? parseFloat(employeeOid) : null});
+ $.get("@Url.Action("ChangeIsForSelectedEmployeesOnly")", {isForSelectedEmployeeOnly: isChecked, employeeOid: isChecked ? parseFloat(employeeOid) : null}).done(() => {hideSpinner();});
});
}
function setIsOnlyForSelectedOrganisation() {
+ showSpinner();
+
var isChecked = $("#selected-organisation-cb").is(":checked");
var organizationOid = null;
@@ -164,37 +168,45 @@
dropdownToggleButton.text(organizationName);
}
- $.get("@Url.Action("ChangeIsForSelectedOrganisationOnly")", {isForSelectedOrganisationOnly: isChecked, organisationOid: isChecked ? organizationOid : null});
- });
+ $.get("@Url.Action("ChangeIsForSelectedOrganisationOnly")", {isForSelectedOrganisationOnly: isChecked, organisationOid: isChecked ? organizationOid : null}).done(() => {hideSpinner();});
+ });
}
function setIsOnlyForSelectedServiceCategory() {
+ showSpinner();
+
const isChecked = $("#selected-category-cb").is(":checked");
const serviceCategoryOid = isChecked ? parseFloat($("#category-select option:selected").val()) : null;
- $.get("@Url.Action("ChangeIsForSelectedServiceCategoryOnly")", { isForSelectedServiceCategoryOnly: isChecked, serviceCategoryOid: serviceCategoryOid});
+ $.get("@Url.Action("ChangeIsForSelectedServiceCategoryOnly")", {isForSelectedServiceCategoryOnly: isChecked, serviceCategoryOid: serviceCategoryOid}).done(() => {hideSpinner();});
}
function setReportEmployee(selectedDropdownItem, employeeOid) {
+ showSpinner();
+
$.get("@Url.Action("SetEmployeeOid")", { employeeOid: employeeOid }, function(employeeName) {
$("#qb-employee-popup").parent().find(".dropdown-toggle").text(employeeName);
$("#qb-employee-popup").modal("hide");
- });
+ }).done(() => {hideSpinner();});
}
function setReportOrganization(selectedDropdownItem, organisationOid) {
if(organisationOid !== null && $.isNumeric(organisationOid)) {
+ showSpinner();
+
$.get("@Url.Action("SetOrganisationOid")", { organisationOid: organisationOid }, function(organisationName) {
$("#qb-organization-popup").parent().find(".dropdown-toggle").text(organisationName);
$("#qb-organization-popup").modal("hide");
- });
+ }).done(() => {hideSpinner();});
}
}
function setReportServiceCategory() {
const serviceCategoryOid = parseFloat($("#category-select option:selected").val());
if(serviceCategoryOid !== null && $.isNumeric(serviceCategoryOid)) {
- $.get("@Url.Action("SetServiceCategoryOid")", { serviceCategoryOid: serviceCategoryOid });
+ showSpinner();
+
+ $.get("@Url.Action("SetServiceCategoryOid")", {serviceCategoryOid: serviceCategoryOid}).done(() => {hideSpinner();});
}
}
@@ -205,7 +217,8 @@
}
function resetQuittierungsbeleg() {
- $.get("@Url.Action("ResetQuittierungsbeleg")");
+ showSpinner();
+ $.get("@Url.Action("ResetQuittierungsbeleg")").done(() => {hideSpinner();});
}
$(document).on("shown.bs.modal", "#qb-report-popup", function () {
@@ -238,24 +251,29 @@
window.calcPrependWidth();
- $.get("@Url.Action("SetQbFilterEnum")", { filterEnumString: selectedOption });
+ showSpinner();
+ $.get("@Url.Action("SetQbFilterEnum")", {filterEnumString: selectedOption}).done(() => {hideSpinner();});
}
function onQBCustomerDropdownItemClick(selectedDropdownItem, customerOid) {
+ showSpinner();
+
$.get("@Url.Action("SetCustomer")", {customerOid: customerOid}).done(function(customerName) {
$("#qb-customer-popup").parent().find(".dropdown-toggle").text(customerName);
$("#qb-customer-popup").modal("hide");
checkForExistingSignature();
}
- );
+ ).done(() => {hideSpinner();});
}
function onQBTeamDropdownItemClick(selectedDropdownItem, teamOid) {
+ showSpinner();
+
$.get("@Url.Action("SetTeam")", {teamOid: teamOid}).done(function(teamName) {
$("#qb-team-popup").parent().find(".dropdown-toggle").text(teamName);
$("#qb-team-popup").modal("hide");
checkForExistingSignature();
- });
+ }).done(() => {hideSpinner();});
}
function checkForExistingSignature() {
@@ -265,6 +283,7 @@
@if(Model.ShowDifferentQBInterval)
{
+ showSpinner();
const interval = $("#qb-interval-selection option:selected").val();
$.get("@Url.Action("ChangeIntervalSelection")",
@@ -273,12 +292,13 @@
month: parseInt(month),
year: parseInt(year)
}
- );
+ ).done(() => { hideSpinner(); });
}
else
{
+ showSpinner();
const startDay = $("#start-day-select option:selected").val();
const endDay = $("#end-day-select option:selected").val();
@@ -292,7 +312,7 @@
endDayString: endDay,
monthString: month,
yearString: year
- });
+ }).done(() => {hideSpinner();});
}
}
diff --git a/BeWoPlanerMobil/Web.config b/BeWoPlanerMobil/Web.config
index 890c7f4c4..43f171232 100644
--- a/BeWoPlanerMobil/Web.config
+++ b/BeWoPlanerMobil/Web.config
@@ -59,7 +59,7 @@
-
+
diff --git a/Data/Access/SearchDAO.cs b/Data/Access/SearchDAO.cs
index 17caeed82..adb0fab2b 100644
--- a/Data/Access/SearchDAO.cs
+++ b/Data/Access/SearchDAO.cs
@@ -6292,7 +6292,7 @@ WHERE sc.Billable = 1 and sr.StartDate >= '{0:yyyy-MM-dd}' and sr.StartDate < '{
.List();
}
- public List FindCustomersForPaginatedQb(int firstResult, int maxResults, bool checkTeamCustomerRights, DateTime start, DateTime end, out int rowCount)
+ public List FindCustomersForPaginatedQb(int firstResult, int maxResults, bool checkTeamCustomerRights, DateTime start, DateTime end, out int rowCount, long? serviceCategoryOid = null, long? costbearerOid = null)
{
var user = LoggedInUserOperationContextExt.Current?.User ?? SessionFacade.LoggedInUser;
@@ -6327,7 +6327,7 @@ WHERE sc.Billable = 1 and sr.StartDate >= '{0:yyyy-MM-dd}' and sr.StartDate < '{
}
- customerOidsWithQb = FilterCustomerOidsWithQuittierungsbeleg(criteria.List().Select(c => c.Oid.Value).Distinct().ToArray(), start, end);
+ customerOidsWithQb = FilterCustomerOidsWithQuittierungsbeleg(criteria.List().Select(c => c.Oid.Value).Distinct().ToArray(), start, end, serviceCategoryOid, costbearerOid);
var customers = criteria
.Add(Restrictions.In(nameof(BeWoEntityBase.Oid), customerOidsWithQb.ToArray()))
@@ -6342,10 +6342,10 @@ WHERE sc.Billable = 1 and sr.StartDate >= '{0:yyyy-MM-dd}' and sr.StartDate < '{
return customers;
}
- public List FindCustomersForPaginatedQbByOids(int firstResult, int maxResults, long[] customerOids, DateTime start, DateTime end, out int rowCount)
+ public List FindCustomersForPaginatedQbByOids(int firstResult, int maxResults, long[] customerOids, DateTime start, DateTime end, out int rowCount, long? serviceCategoryOid = null, long? costbearerOid = null)
{
//rowCount = GetRowCountForQuittierungsbelegPagination(customerOids, start, end);
- var list = FilterCustomerOidsWithQuittierungsbeleg(customerOids, start, end);
+ var list = FilterCustomerOidsWithQuittierungsbeleg(customerOids, start, end, serviceCategoryOid, costbearerOid);
rowCount = list.Count;
return CreateCriteriaIsActive()
@@ -6358,14 +6358,14 @@ WHERE sc.Billable = 1 and sr.StartDate >= '{0:yyyy-MM-dd}' and sr.StartDate < '{
.ToList();
}
- private IList FilterCustomerOidsWithQuittierungsbeleg(long[] customerOids, DateTime start, DateTime end)
+ private IList FilterCustomerOidsWithQuittierungsbeleg(long[] customerOids, DateTime start, DateTime end, long? serviceCategoryOid = null, long? costbearerOid = null)
{
if (customerOids.Length == 0)
{
return new List();
}
- String oidList = "";
+ String oidList = "";
for (int i = 0; i < customerOids.Length; i++)
{
@@ -6377,12 +6377,21 @@ WHERE sc.Billable = 1 and sr.StartDate >= '{0:yyyy-MM-dd}' and sr.StartDate < '{
oidList += customerOids[i];
}
- var sql = $"select distinct c.oid from customer c inner join servicerecord sr on c.oid = sr.customeroid where c.IsActive = 1 and sr.StartDate >= ':Start' and sr.StartDate < ':End' and c.oid in (:OidList)";
- sql = sql.Replace(":Start", String.Format("{0:yyyy-MM-dd}", start));
- sql = sql.Replace(":End", String.Format("{0:yyyy-MM-dd}", end.Date.AddDays(1)));
- sql = sql.Replace(":OidList", oidList);
+ var sql = "SELECT DISTINCT c.oid " +
+ "FROM customer c " +
+ "INNER JOIN servicerecord sr ON c.oid = sr.customeroid " +
+ $"{(serviceCategoryOid.HasValue ? " INNER JOIN servicedescription sd ON sr.ServiceDescriptionOid = sd.Oid " : Empty)}" +
+ $"{(costbearerOid.HasValue ? " INNER JOIN costbearer2supportconcept c2Sc ON sr.CostBearer2SupportConceptOid = c2Sc.Oid " : Empty)}" +
+ "WHERE c.IsActive = 1 AND " +
+ $"sr.StartDate >= '{start:yyyy-MM-dd}' AND " +
+ $"sr.StartDate < '{end:yyyy-MM-dd}' AND " +
+ $"{(serviceCategoryOid.HasValue ? " sd.ServiceCategoryOid = " + serviceCategoryOid.Value + " AND " : Empty)}" +
+ $"{(costbearerOid.HasValue ? "c2SC.CostBearerOid = " + costbearerOid.Value + " AND" : Empty)}" +
+ $"c.oid IN ({oidList})";
+
var q = Session.CreateSQLQuery(sql);
- return q.List();
+
+ return q.List();
//var customerCountWithQuittierungsbelegInSpan = CreateCriteriaIsActive()
// .Add(Restrictions.In(nameof(BeWoEntityBase.Oid), customerOids))
diff --git a/Report/ReportObjects/ServicesOverviewRO.cs b/Report/ReportObjects/ServicesOverviewRO.cs
index c0d1e08ac..964537624 100644
--- a/Report/ReportObjects/ServicesOverviewRO.cs
+++ b/Report/ReportObjects/ServicesOverviewRO.cs
@@ -17,6 +17,7 @@ using BS.Shared.DataContracts;
using BS.Shared.Services;
using BS.Shared.Extensions;
using System.Diagnostics;
+using Customer = BeWo.Data.Entities.Customer;
namespace BeWo.Report.ReportObjects
{
@@ -290,7 +291,7 @@ namespace BeWo.Report.ReportObjects
return Create(lCustomer, pSpan, disableEmptySupportConcepts, orgaOid, empOid, searchServiceRecordsByEndDate, serviceCategoryOid, checkQbStatus);
}
- public static List CreatePaginated(int firstResult, int maxResults, long[] customerOids, int month, int year, bool disableEmptySupportConcepts, long organizationOid, long employeeOid, int start, int end, out int rowCount, long? serviceCategoryOid = null, bool checkQbStatus = false)
+ public static List CreatePaginated(int firstResult, int maxResults, long[] customerOids, int month, int year, bool disableEmptySupportConcepts, long organizationOid, long employeeOid, int start, int end, out int rowCount, long? serviceCategoryOid = null, bool checkQbStatus = false, long? costbearerOid = null)
{
var reportObjects = new List();
@@ -303,7 +304,7 @@ namespace BeWo.Report.ReportObjects
dateTimeSpan.StartDateTime = new DateTime(year, month, start);
dateTimeSpan.EndDateTime = new DateTime(year, month, end).AddDays(1).AddSeconds(-1);
- var customers = DAOFactory.SearchDAO.FindCustomersForPaginatedQbByOids(firstResult, maxResults, customerOids, dateTimeSpan.StartDate, dateTimeSpan.EndDateTime, out rowCount);
+ var customers = DAOFactory.SearchDAO.FindCustomersForPaginatedQbByOids(firstResult, maxResults, customerOids, dateTimeSpan.StartDate, dateTimeSpan.EndDateTime, out rowCount, serviceCategoryOid, costbearerOid);
foreach(var customer in customers)
{
@@ -320,7 +321,7 @@ namespace BeWo.Report.ReportObjects
return reportObjects;
}
- public static List CreatePaginated(int firstResult, int maxCount, int month, int year, long organizationOid, long employeeOid, int startDay, int endDay, out int rowCount, long? serviceCategoryOid = null, bool disableEmptySupportConcepts = true, bool checkQbStatus = false)
+ public static List CreatePaginated(int firstResult, int maxCount, int month, int year, long organizationOid, long employeeOid, int startDay, int endDay, out int rowCount, long? serviceCategoryOid = null, bool disableEmptySupportConcepts = true, bool checkQbStatus = false, long? costbearerOid = null)
{
var reportObjects = new List();
@@ -336,10 +337,8 @@ namespace BeWo.Report.ReportObjects
dateTimeSpan.EndDateTime = dateTimeSpan.StartDateTime.AddDays(endDay - startDay + 1).AddTicks(-1);
- var customers = DAOFactory.SearchDAO.FindCustomersForPaginatedQb(firstResult, maxCount, false, dateTimeSpan.StartDate, dateTimeSpan.EndDateTime, out rowCount);
-
-
- foreach (var customer in customers)
+ var paginatedCustomers = DAOFactory.SearchDAO.FindCustomersForPaginatedQb(firstResult, maxCount, false, dateTimeSpan.StartDate, dateTimeSpan.EndDateTime, out rowCount, serviceCategoryOid, costbearerOid);
+ foreach(var customer in paginatedCustomers)
{
var servicesOverviewRO = Create(customer, dateTimeSpan, disableEmptySupportConcepts, organizationOid, employeeOid, false, serviceCategoryOid, checkQbStatus);
if(servicesOverviewRO != null)
diff --git a/Service/Plugins/PluginLoader.cs b/Service/Plugins/PluginLoader.cs
index 178281766..38df73b48 100644
--- a/Service/Plugins/PluginLoader.cs
+++ b/Service/Plugins/PluginLoader.cs
@@ -4,7 +4,6 @@ using System.IO;
using System.Linq;
using System.Reflection;
using System.Threading;
-using BeWo.Data;
using BS.Shared.Core;
namespace BeWo.Service.Plugins
@@ -213,7 +212,7 @@ namespace BeWo.Service.Plugins
//t = "7185105541"; // Nous GmbH
//t = "5022131330"; // Tabula Rasa
//t = "4189934785"; // Landshuter Netzwerke
- //t = "7584236951"; // Aachener Betreuungsbüro Kirschbaum und Manz GbR
+ t = "7584236951"; // Aachener Betreuungsbüro Kirschbaum und Manz GbR
//t = "3678599942"; // VKM Rietberg
//t = "4069072369"; // BeWo Dreilich&Pastor (Projekt TranskulturellesBBPastor)
//t = "4160851689"; // BeWo Dreilich&Pastor (Dreilich)
diff --git a/Shared/BeWoEntityEnums.cs b/Shared/BeWoEntityEnums.cs
index 8e0a824ce..df217aa03 100644
--- a/Shared/BeWoEntityEnums.cs
+++ b/Shared/BeWoEntityEnums.cs
@@ -1,7 +1,5 @@
using System;
using System.ComponentModel;
-using System.Runtime.Serialization;
-using DevExpress.Xpo;
namespace BS.Shared
{
diff --git a/Shared/DataContracts/SchedulerAppointmentDC.cs b/Shared/DataContracts/SchedulerAppointmentDC.cs
index d3a462288..0bbcfc22d 100644
--- a/Shared/DataContracts/SchedulerAppointmentDC.cs
+++ b/Shared/DataContracts/SchedulerAppointmentDC.cs
@@ -227,6 +227,9 @@ namespace BS.Shared.DataContracts
public override string ToString() => $"{SchedulerAppointmentOid} {StartDate:dd.MM.yyyy HH:mm}-{EndDate:dd.MM.yyyy HH:mm}: {Subject}";
+ public string HtmlInputStartFormat => StartDate.HasValue ? $"{StartDate:yyyy-MM-ddTHH:mm}" : string.Empty;
+ public string HtmlInputEndFormat => EndDate.HasValue ? $"{EndDate:yyyy-MM-ddTHH:mm}" : string.Empty;
+
public static SchedulerAppointmentDC RecurringExceptionFromDevExpressAppointment(Appointment appointment, SchedulerAppointmentDC baseAppointment, int recurrenceIndex, string recurrenceId)
{
return new SchedulerAppointmentDC