diff --git a/BeWoPlanerMobil/Controllers/MainController.cs b/BeWoPlanerMobil/Controllers/MainController.cs index d9a42b682..3443e7734 100644 --- a/BeWoPlanerMobil/Controllers/MainController.cs +++ b/BeWoPlanerMobil/Controllers/MainController.cs @@ -983,7 +983,7 @@ namespace BeWoPlanerMobil.Controllers var enddatum = datum; var endDateString = collection[FormCollectionConstants.EndDateKey]; - if(endDateString != null) + if(endDateString?.Length > 0) { enddatum = Convert.ToDateTime(endDateString); } @@ -2091,7 +2091,7 @@ namespace BeWoPlanerMobil.Controllers var dauer = (int) (endDt - startDt).TotalMinutes; - if(dauer == 0) + if(dauer == 0 || start == string.Empty && end == string.Empty) { startDt = startDt.AddSeconds(1); endDt = endDt.AddSeconds(1); @@ -3181,7 +3181,7 @@ namespace BeWoPlanerMobil.Controllers // Es wird geprüft, ob es das Enddatumsfeld gibt (das haben nicht alle Kunden) var endDateString = formCollection[FormCollectionConstants.EndDateKey]; - if(endDateString != null) + if(endDateString?.Length > 0) { enddatum = Convert.ToDateTime(endDateString); } @@ -3697,7 +3697,7 @@ namespace BeWoPlanerMobil.Controllers var enddatum = datum; var endDateString = formCollection[FormCollectionConstants.EndDateKey]; - if(endDateString != null) + if(endDateString?.Length > 0) { enddatum = Convert.ToDateTime(endDateString); } diff --git a/BeWoPlanerMobil/Models/MainModel.cs b/BeWoPlanerMobil/Models/MainModel.cs index 93110d5cc..172a3a0d5 100644 --- a/BeWoPlanerMobil/Models/MainModel.cs +++ b/BeWoPlanerMobil/Models/MainModel.cs @@ -449,11 +449,13 @@ namespace BeWoPlanerMobil.Models if(start.Second == 0) { return start.Date != end.Date ? - $"{start.ToShortDateString()} {start.ToShortTimeString()} - {end.ToShortDateString()} {end.ToShortTimeString()} {gruppenInfo} {signatureToken}" : + $"{start.ToShortDateString()} {start.ToShortTimeString()} - {end.ToShortDateString()} {end.ToShortTimeString()} {gruppenInfo} {signatureToken}" : $"{start.ToShortDateString()} {start.ToShortTimeString()} - {end.ToShortTimeString()} {gruppenInfo} {signatureToken}"; } - return $"{start.ToShortDateString()} {gruppenInfo} {signatureToken}"; + return start.Date != end.Date ? + $"{start.ToShortDateString()} - {end.ToShortDateString()} {gruppenInfo} {signatureToken}" : + $"{start.ToShortDateString()} {gruppenInfo} {signatureToken}"; } public bool HasRightToEditServiceRecord(ServiceRecordDC serviceRecord) diff --git a/BeWoPlanerMobil/Scripts/ownSoft-Scripts/view-scripts/main.js b/BeWoPlanerMobil/Scripts/ownSoft-Scripts/view-scripts/main.js index 0e06e2885..07e1d3e50 100644 --- a/BeWoPlanerMobil/Scripts/ownSoft-Scripts/view-scripts/main.js +++ b/BeWoPlanerMobil/Scripts/ownSoft-Scripts/view-scripts/main.js @@ -211,11 +211,12 @@ function validateForm(form, prefix) { var startTimeInput = $(`#${prefix}start-time`); var endTimeInput = $(`#${prefix}end-time`); - + $("#srv-date").val(start.format("DD.MM.YYYY")); - $("#srv-end").val(endTimeInput.val()); - $("#srv-start").val(startTimeInput.val()); $("#srv-end-date").val(end.format("DD.MM.YYYY")); + $("#srv-start").val(startTimeInput.val()); + $("#srv-end").val(endTimeInput.val()); + $("#srv-doku1").val(doku1); $("#srv-doku2").val(doku2); $("#srv-doku3").val(doku3); @@ -374,39 +375,48 @@ function getStartAndEndDate(prefix) { var startDatePicker = $("#" + prefix + "start-date-picker"); var endDatePicker = $("#" + prefix + "end-date-picker"); - // Bei leeren Start- und Endfeldern. Muss ein Dummydate zurückgeben, - // damit das Speichern ohne Angabe der Start- und Endzeit möglich ist. - if($("#" + prefix + "start-time").val().length === 0 || $("#" + prefix + "end-time").val().length === 0) { - var bareDate = new Date(); - - bareDate.setHours(0); - bareDate.setMinutes(0); - bareDate.setSeconds(1); - - var dummyDate = moment(bareDate); - - return [dummyDate, dummyDate]; - } - - startTimePicker.datetimepicker("show"); - startTimePicker.datetimepicker("hide"); - startDatePicker.datetimepicker("show"); startDatePicker.datetimepicker("hide"); - endTimePicker.datetimepicker("show"); - endTimePicker.datetimepicker("hide"); - endDatePicker.datetimepicker("show"); endDatePicker.datetimepicker("hide"); - var startTime = startTimePicker.datetimepicker("date"); - var endTime = endTimePicker.datetimepicker("date"); var startDate = startDatePicker.datetimepicker("date"); var endDate = endDatePicker.datetimepicker("date"); var a = startDate === undefined || startDate === null || !startDate.isValid(); var b = endDatePicker.length === 0 ? false : endDate === undefined || endDate === null || !endDate.isValid(); + + // Bei leeren Startzeit- und Endzeitfeldern. Muss ein Dummydate zurückgeben, + // damit das Speichern ohne Angabe der Start- und Endzeit möglich ist. + if(a && $(`#${prefix}start-time`).val().length === 0 || $(`#${prefix}end-time`).val().length === 0) { + var dummyStart = startDate; + var dummyEnd = endDatePicker.length === 0 ? startDate.clone() : endDate; + + dummyStart.hours(0); + dummyStart.minutes(0); + dummyStart.seconds(1); + + dummyEnd.hours(0); + dummyEnd.minutes(0); + dummyEnd.seconds(1); + + if (dummyEnd.isBefore(dummyStart)) { + return null; + } + + return [dummyStart, dummyEnd]; + } + + startTimePicker.datetimepicker("show"); + startTimePicker.datetimepicker("hide"); + + endTimePicker.datetimepicker("show"); + endTimePicker.datetimepicker("hide"); + + var startTime = startTimePicker.datetimepicker("date"); + var endTime = endTimePicker.datetimepicker("date"); + var c = startTime === undefined || startTime === null || !startTime.isValid(); var d = endTime === undefined || endTime === null || !endTime.isValid();