Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo
This commit is contained in:
@@ -76,6 +76,8 @@ namespace BeWoPlanerMobil.Controllers
|
||||
//Load SupportConcepts
|
||||
if (Model.LoggedInEmployee?.EmployeeOid.HasValue ?? false)
|
||||
{
|
||||
//var test = OperationsService.GetAllActiveSupportConceptCostbearer(false, true, Model.LoggedInEmployee.EmployeeOid.Value);
|
||||
|
||||
Model.SupportConcepts = EmployeeService.GetActiveSupportConceptsForEmployee(Model.LoggedInEmployee.EmployeeOid, Model.SelectedSupportConceptFilter);
|
||||
}
|
||||
else
|
||||
@@ -130,7 +132,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
Model.Employees = Model.Employees.OrderBy(e => e.LastName).ThenBy(e => e.FirstName).ToList();
|
||||
|
||||
Model.SelectedConceptCostBearerRelations = new List<SupportConceptCostBearerRelDC>();
|
||||
Model.MultiBookingSelectedConceptCostBearerRelations = new List<SupportConceptCostBearerRelDC>();
|
||||
//Model.MultiBookingSelectedConceptCostBearerRelations = new List<SupportConceptCostBearerRelDC>();
|
||||
|
||||
Model.GoalRatingTypes = OperationsService.GetAllRatingTypes().OrderBy(o => o.Position).ToList();
|
||||
|
||||
@@ -188,6 +190,9 @@ namespace BeWoPlanerMobil.Controllers
|
||||
|
||||
Model.GroupBookingSelectedEmployees = Model.AllEmployees.Where(employee => Model.GroupBookingSelectedEmployeeOids.Contains(employee.EmployeeOid)).ToList();
|
||||
Model.GroupBookingSelectedSupportConcepts = Model.SupportConcepts.Where(s => Model.GroupBookingSelectedSupportConceptOids.Contains(s.SupportConceptOid.Value)).ToList();
|
||||
|
||||
Model.MultiBookingSelectedEmployees = Model.AllEmployees.Where(employee => Model.MultiBookingSelectedEmployeeOids.Contains(employee.EmployeeOid)).ToList();
|
||||
Model.MultiBookingSelectedSupportConcepts = Model.SupportConcepts.Where(s => Model.MultiBookingSelectedSupportConceptOids.Contains(s.SupportConceptOid.Value)).ToList();
|
||||
//Model.Group = Model.SupportConceptListObjectsForGroupBooking.Where(s => Model.GroupBookingSelectedSupportConceptOids.Contains(s.SupportConceptOid.Value)).ToList();
|
||||
|
||||
if (Model.SelectedCostBearerSupportConceptOid.HasValue && Model.SelectedCostBearerSupportConceptOid != -1)
|
||||
@@ -204,7 +209,10 @@ namespace BeWoPlanerMobil.Controllers
|
||||
Model.SelectedGoals = Model.AllGoals.Where(g => Model.SelectedGoalOids.Contains(g.ValueListEntryOid.Value)).ToList();
|
||||
}
|
||||
|
||||
|
||||
if (Model.IsInEditingMode && Model.SelectedServiceRecordOid.HasValue)
|
||||
{
|
||||
Model.SelectedServiceRecord = Model.GetServiceRecord(Model.SelectedServiceRecordOid.Value);
|
||||
}
|
||||
}
|
||||
|
||||
private void LoadSupportConceptThings(long? cb2ScOid)
|
||||
@@ -555,7 +563,10 @@ namespace BeWoPlanerMobil.Controllers
|
||||
|
||||
if(supportConcept is null)
|
||||
{
|
||||
Log.Info($"Hilfeplan von Bewilligung mit Oid {Model.SelectedCostBearerSupportConceptOid} nicht gefunden beim Laden der Ziele (LoadGoals).");
|
||||
if (Model.SelectedCostBearerSupportConceptOid.Value > 0)
|
||||
{
|
||||
Log.Info($"Hilfeplan von Bewilligung mit Oid {Model.SelectedCostBearerSupportConceptOid} nicht gefunden beim Laden der Ziele (LoadGoals).");
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -860,59 +871,67 @@ namespace BeWoPlanerMobil.Controllers
|
||||
[Authorize]
|
||||
public ActionResult SaveSignature(FormCollection formCollection)
|
||||
{
|
||||
var blob = formCollection[FormCollectionConstants.ServiceRecordSignatureBlobKey];
|
||||
var date = DateTime.Parse(formCollection[FormCollectionConstants.ServiceRecordSignatureDateKey]);
|
||||
long.TryParse(formCollection[FormCollectionConstants.ServiceRecordSignatureRecordOidKey], out var serviceRecordOid);
|
||||
|
||||
var serviceRecord = Model.ServiceRecords.FirstOrDefault(sr => sr.ServiceRecordOid.HasValue && sr.ServiceRecordOid.Value.Equals(serviceRecordOid));
|
||||
|
||||
if(serviceRecordOid < 1 || serviceRecord is null)
|
||||
try
|
||||
{
|
||||
var message2Log = string.Empty;
|
||||
var blob = formCollection[FormCollectionConstants.ServiceRecordSignatureBlobKey];
|
||||
var date = DateTime.Parse(formCollection[FormCollectionConstants.ServiceRecordSignatureDateKey]);
|
||||
long.TryParse(formCollection[FormCollectionConstants.ServiceRecordSignatureRecordOidKey], out var serviceRecordOid);
|
||||
|
||||
if(serviceRecordOid < 1)
|
||||
var serviceRecord = Model.ServiceRecords.FirstOrDefault(sr => sr.ServiceRecordOid.HasValue && sr.ServiceRecordOid.Value.Equals(serviceRecordOid));
|
||||
|
||||
if (serviceRecordOid < 1 || serviceRecord is null)
|
||||
{
|
||||
message2Log = $"Einzelunterschrift konnte nicht gespeichert werden, da die ServiceRecordOid {serviceRecordOid} ungültig ist.";
|
||||
}
|
||||
else if(serviceRecord is null)
|
||||
{
|
||||
message2Log = "Einzelunterschrift konnte nicht gespeichert werden, da der Zeiterfassungseintrag im Model nicht gefunden werden konnte.";
|
||||
}
|
||||
var message2Log = string.Empty;
|
||||
|
||||
Log.Error(message2Log);
|
||||
if (serviceRecordOid < 1)
|
||||
{
|
||||
message2Log = $"Einzelunterschrift konnte nicht gespeichert werden, da die ServiceRecordOid {serviceRecordOid} ungültig ist.";
|
||||
}
|
||||
else if (serviceRecord is null)
|
||||
{
|
||||
message2Log = "Einzelunterschrift konnte nicht gespeichert werden, da der Zeiterfassungseintrag im Model nicht gefunden werden konnte.";
|
||||
}
|
||||
|
||||
TempData[TempDataConstants.ErrorMessageKey] = "Beim Speichern der Unterschrift ist ein Fehler aufgetreten. Bitte wenden Sie sich an Ihren Administrator.";
|
||||
return RedirectToActionPermanent("Main", "Main");
|
||||
}
|
||||
Log.Error(message2Log);
|
||||
|
||||
long? oid;
|
||||
|
||||
using(var signatureBitmap = SignatureUtils.Base64StringToBitmap(blob.Split(',')[1]))
|
||||
{
|
||||
var isValid = SignatureUtils.ValidateSignature(signatureBitmap);
|
||||
|
||||
if(!isValid)
|
||||
{
|
||||
TempData[TempDataConstants.ErrorMessageKey] = "Das Unterschriftenfeld darf nicht leer sein.";
|
||||
TempData[TempDataConstants.ErrorMessageKey] = "Beim Speichern der Unterschrift ist ein Fehler aufgetreten. Bitte wenden Sie sich an Ihren Administrator.";
|
||||
return RedirectToActionPermanent("Main", "Main");
|
||||
}
|
||||
|
||||
oid = OperationsService.InsertSignature(new SignatureDC
|
||||
{
|
||||
DataBild = blob,
|
||||
Zeitstempel = date,
|
||||
ServiceRecordOid = serviceRecordOid
|
||||
}).SignatureOid;
|
||||
}
|
||||
long? oid;
|
||||
|
||||
if(oid is null)
|
||||
{
|
||||
TempData[TempDataConstants.ErrorMessageKey] = "Beim Speichern der Unterschrift ist ein Fehler aufgetreten. Bitte wenden Sie sich an Ihren Administrator.";
|
||||
using (var signatureBitmap = SignatureUtils.Base64StringToBitmap(blob.Split(',')[1]))
|
||||
{
|
||||
var isValid = SignatureUtils.ValidateSignature(signatureBitmap);
|
||||
|
||||
if (!isValid)
|
||||
{
|
||||
TempData[TempDataConstants.ErrorMessageKey] = "Das Unterschriftenfeld darf nicht leer sein.";
|
||||
return RedirectToActionPermanent("Main", "Main");
|
||||
}
|
||||
|
||||
oid = OperationsService.InsertSignature(new SignatureDC
|
||||
{
|
||||
DataBild = blob,
|
||||
Zeitstempel = date,
|
||||
ServiceRecordOid = serviceRecordOid
|
||||
}).SignatureOid;
|
||||
}
|
||||
|
||||
if (oid is null)
|
||||
{
|
||||
TempData[TempDataConstants.ErrorMessageKey] = "Beim Speichern der Unterschrift ist ein Fehler aufgetreten. Bitte wenden Sie sich an Ihren Administrator.";
|
||||
}
|
||||
else
|
||||
{
|
||||
TempData[TempDataConstants.InfoMessageKey] = $"Die Unterschrift von {serviceRecord.Customer} für den Eintrag vom {MainModel.GetServiceRecordTimeHeader(serviceRecord, false)} wurde erfolgreich gespeichert.";
|
||||
}
|
||||
}
|
||||
else
|
||||
catch (Exception ex)
|
||||
{
|
||||
TempData[TempDataConstants.InfoMessageKey] = $"Die Unterschrift von {serviceRecord.Customer} für den Eintrag vom {MainModel.GetServiceRecordTimeHeader(serviceRecord, false)} wurde erfolgreich gespeichert.";
|
||||
Log.Error("Fehler beim Speichern der Einzelunterschrift: " + ex.Message, ex);
|
||||
}
|
||||
|
||||
|
||||
return RedirectToActionPermanent("Main", "Main");
|
||||
}
|
||||
@@ -1067,7 +1086,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
betrag = betragAsDecimal;
|
||||
}
|
||||
|
||||
Log.Info($"CreateOrUpdateServiceRecord: datum:{collection[FormCollectionConstants.DateKey]}; start:{collection[FormCollectionConstants.StartKey]}; ende:{collection[FormCollectionConstants.EndKey]}; dauer:{collection[FormCollectionConstants.DurationKey]}; doku:{doku1}; aktion:{(Model.IsInEditingMode ? "Speichern" : "Anlegen")}");
|
||||
Log.Info($"CreateOrUpdateServiceRecord: datum:{collection[FormCollectionConstants.DateKey]}; start:{collection[FormCollectionConstants.StartKey]}; ende:{collection[FormCollectionConstants.EndKey]}; dauer:{collection[FormCollectionConstants.DurationKey]}; aktion:{(Model.IsInEditingMode ? "Speichern" : "Anlegen")}");
|
||||
|
||||
if(string.IsNullOrEmpty(collection[FormCollectionConstants.DateKey]))
|
||||
{
|
||||
@@ -2665,7 +2684,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
{
|
||||
employeeOids.AddRangeIfElementsNotIn(Model.MultiBookingSelectedEmployees.Select(e => e.EmployeeOid));
|
||||
|
||||
var cb2ScOids = Model.MultiBookingSelectedConceptCostBearerRelations.Where(w => w.CostBearer2SupportConceptOid.HasValue).Select(s => s.CostBearer2SupportConceptOid.Value).ToList();
|
||||
var cb2ScOids = Model.SelectedConceptCostBearerRelations.Where(w => w.CostBearer2SupportConceptOid.HasValue).Select(s => s.CostBearer2SupportConceptOid.Value).ToList();
|
||||
var relations = CustomerService.GetSupportConceptCostBearerRelationsById(cb2ScOids);
|
||||
|
||||
foreach(var costBearer2SupportConceptRel in relations)
|
||||
@@ -3212,7 +3231,8 @@ namespace BeWoPlanerMobil.Controllers
|
||||
{
|
||||
Model.Categories2Descriptions.Clear();
|
||||
|
||||
Model.MultiBookingSelectedConceptCostBearerRelations.Clear();
|
||||
//Model.MultiBookingSelectedConceptCostBearerRelations.Clear();
|
||||
Model.SelectedConceptCostBearerRelationOids.Clear();
|
||||
Model.MultiBookingSelectedEmployeeOids.Clear();
|
||||
Model.MultiBookingSelectedGroupOfPeopleOids.Clear();
|
||||
Model.MultiBookingSelectedCostbearerRelOids.Clear();
|
||||
@@ -3241,7 +3261,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
|
||||
ResetBookingMode(BookingMode.SingleBookingMode);
|
||||
|
||||
//LoadServiceCategoriesToModel(Model.SelectedCostBearerSupportConceptOid);
|
||||
LoadServiceCategoriesToModel(Model.SelectedCostBearerSupportConceptOid);
|
||||
|
||||
return View("Main", Model);
|
||||
}
|
||||
@@ -4204,8 +4224,8 @@ namespace BeWoPlanerMobil.Controllers
|
||||
|
||||
var groupCostBearerRelations = CustomerService.GetSupportConceptCostBearerRelationsById(singleRels);
|
||||
|
||||
Model.MultiBookingSelectedConceptCostBearerRelations.Clear();
|
||||
Model.MultiBookingSelectedConceptCostBearerRelations.AddRangeIfElementsNotIn(groupCostBearerRelations);
|
||||
Model.SelectedConceptCostBearerRelations.Clear();
|
||||
Model.SelectedConceptCostBearerRelations.AddRangeIfElementsNotIn(groupCostBearerRelations);
|
||||
|
||||
Model.MultiBookingSelectedSupportConcepts.AddRangeIfElementsNotIn(selectedSupportConcepts);
|
||||
|
||||
@@ -4231,12 +4251,16 @@ namespace BeWoPlanerMobil.Controllers
|
||||
}
|
||||
}
|
||||
|
||||
Model.SelectedConceptCostBearerRelationOids = Model.SelectedConceptCostBearerRelations.Select(s => s.CostBearer2SupportConceptOid.Value).ToList();
|
||||
Model.MultiBookingSelectedSupportConceptOids = Model.MultiBookingSelectedSupportConcepts.Select(s => s.SupportConceptOid.Value).ToList();
|
||||
|
||||
return PartialView("MultiBookingScCbRelList", Model);
|
||||
}
|
||||
|
||||
[Authorize]
|
||||
public ActionResult RemoveSupportConceptCostbearerRelFromMultiBooking(string relOid)
|
||||
{
|
||||
//das funktioniert hier noch nicht mit dem letzten Eintrag
|
||||
if(Model is null)
|
||||
{
|
||||
TempData[TempDataConstants.DoLogoutKey] = true;
|
||||
@@ -4250,7 +4274,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
|
||||
var supportConcept2Remove = Model.MultiBookingSelectedSupportConcepts.FirstOrDefault(f => f.CostBearerRelations.Any(a => a.CostBearer2SupportConceptOid == supportConceptCostBearerRelationOid));
|
||||
|
||||
var relation2Remove = Model.MultiBookingSelectedConceptCostBearerRelations.FirstOrDefault(f => f.CostBearer2SupportConceptOid == supportConceptCostBearerRelationOid);
|
||||
var relation2Remove = Model.SelectedConceptCostBearerRelations.FirstOrDefault(f => f.CostBearer2SupportConceptOid == supportConceptCostBearerRelationOid);
|
||||
|
||||
if(supportConcept2Remove?.SupportConceptOid.HasValue ?? false)
|
||||
{
|
||||
@@ -4271,7 +4295,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
}
|
||||
|
||||
Model.MultiBookingSelectedSupportConcepts.Remove(supportConcept2Remove);
|
||||
Model.MultiBookingSelectedConceptCostBearerRelations.Remove(relation2Remove);
|
||||
Model.SelectedConceptCostBearerRelations.Remove(relation2Remove);
|
||||
|
||||
var selectedGroups = Model.GroupsOfPeople.Where(group => group.GroupOfPeopleOid.HasValue && Model.MultiBookingSelectedGroupOfPeopleOids.Contains(group.GroupOfPeopleOid.Value)).ToList();
|
||||
|
||||
@@ -4291,6 +4315,12 @@ namespace BeWoPlanerMobil.Controllers
|
||||
Model.SelectedServiceDescription = firstServiceDescription;
|
||||
}
|
||||
|
||||
Model.SelectedGoalOids = Model.SelectedGoals.Select(g => g.ValueListEntryOid.Value).ToList();
|
||||
Model.MultiBookingSelectedSupportConceptOids = Model.MultiBookingSelectedSupportConcepts.Select(g => g.SupportConceptOid.Value).ToList();
|
||||
Model.SelectedConceptCostBearerRelationOids = Model.SelectedConceptCostBearerRelations.Select(g => g.CostBearer2SupportConceptOid.Value).ToList();
|
||||
Model.SelectedServiceCategoryOid = Model.SelectedServiceCategory?.ServiceCategoryOid;
|
||||
Model.SelectedServiceDescriptionOid = Model.SelectedServiceDescription?.ServiceDescriptionOid;
|
||||
|
||||
return PartialView("MultiBookingSelectionPartial", Model);
|
||||
}
|
||||
|
||||
@@ -4436,9 +4466,9 @@ namespace BeWoPlanerMobil.Controllers
|
||||
|
||||
var serviceRecordsToInsert = new List<ServiceRecordDC>();
|
||||
|
||||
if(Model.MultiBookingSelectedConceptCostBearerRelations.Any() && Model.MultiBookingSelectedEmployees.Any())
|
||||
if(Model.SelectedConceptCostBearerRelations.Any() && Model.MultiBookingSelectedEmployees.Any())
|
||||
{
|
||||
foreach(var sc2cbRel in Model.MultiBookingSelectedConceptCostBearerRelations)
|
||||
foreach(var sc2cbRel in Model.SelectedConceptCostBearerRelations)
|
||||
{
|
||||
var roundedDuration = dauer;
|
||||
|
||||
@@ -4538,7 +4568,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
{
|
||||
try
|
||||
{
|
||||
return JsonConvert.SerializeObject(Model.MultiBookingSelectedConceptCostBearerRelations.Any());
|
||||
return JsonConvert.SerializeObject(Model.SelectedConceptCostBearerRelations.Any());
|
||||
}
|
||||
catch(Exception exception)
|
||||
{
|
||||
|
||||
@@ -690,12 +690,18 @@ namespace BeWoPlanerMobil.Models
|
||||
{
|
||||
get
|
||||
{
|
||||
if(SelectedDurationUnit == "Stunden")
|
||||
if (SelectedServiceRecord != null)
|
||||
{
|
||||
return SelectedServiceRecord is null ? string.Empty : (SelectedServiceRecord.RoundedDuration / 60).ToString();
|
||||
var duration = SelectedServiceRecord.RoundedDuration;
|
||||
|
||||
if (SelectedDurationUnit == "Stunden")
|
||||
{
|
||||
return Math.Round(duration / 60, 2, MidpointRounding.AwayFromZero).ToString();
|
||||
}
|
||||
return Math.Round(duration, 0, MidpointRounding.AwayFromZero).ToString();
|
||||
}
|
||||
|
||||
return SelectedServiceRecord?.RoundedDuration.ToString() ?? string.Empty;
|
||||
return string.Empty;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -803,9 +809,9 @@ namespace BeWoPlanerMobil.Models
|
||||
|
||||
public List<long> MultiBookingSelectedGroupOfPeopleOids { get { return MainSessionModel.MultiBookingSelectedGroupOfPeopleOids; } set { MainSessionModel.MultiBookingSelectedGroupOfPeopleOids = value; } }
|
||||
|
||||
public List<SupportConceptCostBearerRelDC> MultiBookingSelectedConceptCostBearerRelations { get; set; } = new List<SupportConceptCostBearerRelDC>();
|
||||
//public List<SupportConceptCostBearerRelDC> MultiBookingSelectedConceptCostBearerRelations { get; set; }
|
||||
|
||||
public GroupBookingSelectionObject MultiBookingSelectionObject => new GroupBookingSelectionObject(MultiBookingSelectedConceptCostBearerRelations, MultiBookingSelectedGroupOfPeopleOids);
|
||||
public GroupBookingSelectionObject MultiBookingSelectionObject => new GroupBookingSelectionObject(SelectedConceptCostBearerRelations, MultiBookingSelectedGroupOfPeopleOids);
|
||||
|
||||
public List<long> MultiBookingSelectedCostbearerRelOids { get { return MainSessionModel.MultiBookingSelectedCostbearerRelOids; } set { MainSessionModel.MultiBookingSelectedCostbearerRelOids = value; } }
|
||||
|
||||
|
||||
@@ -245,28 +245,40 @@ function calcDuration(idPrefix, isFormatChange, isInvokedByStart, isInvokedByEnd
|
||||
|
||||
let dauer = (end.getTime() - start.getTime()) / 60000;
|
||||
|
||||
if (duration > 0 && true === isInvokedByStart && start >= end) {
|
||||
end = new Date(start.getTime() + (false === isInMin ? duration * 60 : duration) / 60000);
|
||||
if (duration > 0 && start >= end) {
|
||||
dauer = (false === isInMin ? duration * 60 : duration);
|
||||
|
||||
endTimeInput.val(getTimeAsString(end));
|
||||
endDateInput.val(getDateAsString(end));
|
||||
if (true === isInvokedByStart) {
|
||||
end = new Date(start.getTime() + dauer * 60000);
|
||||
|
||||
dauer = (end.getTime() - start.getTime()) * 60000;
|
||||
endTimeInput.val(getTimeAsString(end));
|
||||
endDateInput.val(getDateAsString(end));
|
||||
}
|
||||
else if (true === isInvokedByEnd) {
|
||||
end.setDate(end.getDate() + 1);
|
||||
|
||||
var test = new Date(2025, 1, 31);
|
||||
test.setDate(test.getDate() + 1);
|
||||
//start = new Date(end.getTime() - dauer * 60000);
|
||||
|
||||
endTimeInput.val(getTimeAsString(end));
|
||||
endDateInput.val(getDateAsString(end));
|
||||
|
||||
//startTimeInput.val(getTimeAsString(start));
|
||||
//startDateInput.val(getDateAsString(start));
|
||||
}
|
||||
|
||||
dauer = (end.getTime() - start.getTime()) / 60000;
|
||||
}
|
||||
|
||||
if (duration > 0 && true === isInvokedByEnd && start >= end) {
|
||||
start = new Date(end.getTime() - (false === isInMin ? duration * 60 : duration) / 60000);
|
||||
|
||||
startTimeInput.val(getTimeAsString(start));
|
||||
startDateInput.val(getDateAsString(start));
|
||||
|
||||
dauer = (end.getTime() - start.getTime()) * 60000;
|
||||
if (false === isInMin) {
|
||||
dauer /= 60.0;
|
||||
}
|
||||
|
||||
durationInput.val(dauer);
|
||||
} else if (true === isStartTimeValid && true === isDurationValid) {
|
||||
var newDuration = duration;
|
||||
if(true === isFormatChange) {
|
||||
if (true === isFormatChange) {
|
||||
let newDurationValue = true === isInMin ? duration * 60.0 : duration / 60.0;
|
||||
|
||||
if(isNaN(newDurationValue)) {
|
||||
@@ -274,7 +286,11 @@ function calcDuration(idPrefix, isFormatChange, isInvokedByStart, isInvokedByEnd
|
||||
} else {
|
||||
durationInput.val(newDurationValue);
|
||||
}
|
||||
newDuration = newDurationValue;
|
||||
if (true === isInMin)
|
||||
{
|
||||
newDuration = newDurationValue;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
calcTimeWithDuration(startTimeValue, endTimeInput, start, newDuration, isFormatChange, isInMin);
|
||||
@@ -318,7 +334,8 @@ function calcTimeWithDuration(timeAsString, timeElement, start, duration, isForm
|
||||
start = combineDateAndTime(start, timeAsString);
|
||||
|
||||
const x = new Date(start.getTime() + duration * 60000);
|
||||
timeElement.val(`${x.getMinutes().toString().padStart(2, "0")}:${x.getMinutes().toString().padStart(2, "0")}`);
|
||||
var timeString = `${x.getHours().toString().padStart(2, "0")}:${x.getMinutes().toString().padStart(2, "0")}`;
|
||||
timeElement.val(timeString);
|
||||
}
|
||||
|
||||
function beiDaueraenderung(idPrefix) {
|
||||
@@ -329,8 +346,8 @@ function beiDaueraenderung(idPrefix) {
|
||||
const durationInput = $(`#${idPrefix}-duration-input`);
|
||||
const startDateInput = $(`#${idPrefix}-start-date-input`);
|
||||
const endDateInput = $(`#${idPrefix}-end-date-input`);
|
||||
const isInMin = getIsZeiterfassungseinheitInMinutes();//hoursMinutesDropdown.length && hoursMinutesDropdown.text().replaceAll(/\s/g, "") === "Minuten" || 0 === hoursMinutesDropdown.length;
|
||||
|
||||
const isInMin = hoursMinutesDropdown.length === 0 || hoursMinutesDropdown.length > 0 && hoursMinutesDropdown.text().replaceAll(/\s/g, "") === "Minuten";
|
||||
|
||||
const startTimeCondition = startTimeInput.val().length > 0;
|
||||
const endTimeCondition = endTimeInput.val().length > 0;
|
||||
let duration = parseFloat(durationInput.val().replace(",", "."));
|
||||
|
||||
@@ -182,8 +182,8 @@
|
||||
|
||||
$("#fehlerdetail-textarea").prop("disabled", false);
|
||||
|
||||
if ("@Model.IsInMultiBookingMode".toLowerCase() === "true") {
|
||||
const isMultiBookingFormDisabled = "@Model.MultiBookingSelectedConceptCostBearerRelations.Any()".toLowerCase() === "false";
|
||||
if ("@Model.IsInMultiBookingMode".toLowerCase() === "true") {
|
||||
const isMultiBookingFormDisabled = "@Model.SelectedConceptCostBearerRelations.Any()".toLowerCase() === "false";
|
||||
|
||||
window.toggleMultiBookingForm(isMultiBookingFormDisabled);
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
@{
|
||||
var timeSpanColorClass2 = cb2Sc.IsAboutToExpire ? "text-bewo-is-about-to-expire" : cb2Sc.ExpiresInThreeMonthsOrLess ? "text-bewo-expires-in-three-months" : "text-dark";
|
||||
|
||||
var checkedValue = Model.MultiBookingSelectedConceptCostBearerRelations.Any(a => a.CostBearer2SupportConceptOid.Equals(cb2Sc.CostBearer2SupportConceptOid));
|
||||
var checkedValue = Model.SelectedConceptCostBearerRelations.Any(a => a.CostBearer2SupportConceptOid.Equals(cb2Sc.CostBearer2SupportConceptOid));
|
||||
}
|
||||
|
||||
<div class="custom-control custom-checkbox custom-control-inline">
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
<script type="text/javascript" src="@Scripts.Url("~/Scripts/ownSoft-Scripts/utils/trimCanvas.js?v=1.3")"></script>
|
||||
<script type="text/javascript" src="@Scripts.Url("~/Scripts/ownSoft-Scripts/utils/resources-list-utils.js?v=1.3")"></script>
|
||||
<script type="text/javascript" src="@Scripts.Url("~/Scripts/ownSoft-Scripts/utils/list-utils.js?v=1.3")"></script>
|
||||
<script type="text/javascript" src="@Scripts.Url("~/Scripts/ownSoft-Scripts/utils/service-record-time-calc.js?v=1.3")"></script>
|
||||
<script type="text/javascript" src="@Scripts.Url("~/Scripts/ownSoft-Scripts/utils/service-record-time-calc.js?v=1.41")"></script>
|
||||
<script type="text/javascript" src="@Scripts.Url("~/Scripts/ownSoft-Scripts/utils/js-helper.js?v=1.3")"></script>
|
||||
<script type="text/javascript" src="@Scripts.Url("~/Scripts/ownSoft-Scripts/utils/logging.js?v=1.3")"></script>
|
||||
<script type="text/javascript" src="@Scripts.Url("~/Scripts/ownSoft-Scripts/utils/MoKPasswordSecurity.js?v=1.3")"></script>
|
||||
|
||||
@@ -30,7 +30,6 @@
|
||||
<log4net debug="true">
|
||||
<appender name="logFile" type="log4net.Appender.RollingFileAppender,log4net">
|
||||
<param name="File" value="logs\mobilelog.txt" />
|
||||
<param name="LogFileName" value="logs\mobilelog.txt" />
|
||||
<param name="AppendToFile" value="true" />
|
||||
<param name="RollingStyle" value="Date" />
|
||||
<param name="DatePattern" value="dd.MM.yyyy" />
|
||||
@@ -39,19 +38,32 @@
|
||||
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
|
||||
</layout>
|
||||
</appender>
|
||||
<appender name="DebugSQL" type="log4net.Appender.TraceAppender">
|
||||
<layout type="log4net.Layout.PatternLayout">
|
||||
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
|
||||
</layout>
|
||||
</appender>
|
||||
<logger name="NHibernnate.SQL" additivity="false">
|
||||
<level value="ERROR" />
|
||||
<appender-ref ref="DebugSQL" />
|
||||
</logger>
|
||||
<root>
|
||||
<priority value="ERROR" />
|
||||
<appender-ref ref="DebugSQL" />
|
||||
<root>
|
||||
<priority value="DEBUG" />
|
||||
<appender-ref ref="logFile" />
|
||||
</root>
|
||||
<logger name="NHibernate">
|
||||
<level value="WARN" />
|
||||
</logger>
|
||||
<logger name="NHibernate.Caches">
|
||||
<level value="WARN" />
|
||||
</logger>
|
||||
|
||||
<logger name="NHibernate.Engine.Cascade">
|
||||
<level value="WARN" />
|
||||
</logger>
|
||||
|
||||
<logger name="NHibernate.Loader.Loader">
|
||||
<level value="WARN" />
|
||||
</logger>
|
||||
|
||||
<logger name="NHibernate.SQL">
|
||||
<level value="WARN" />
|
||||
</logger>
|
||||
|
||||
<logger name="NHibernate.Search">
|
||||
<level value="WARN" />
|
||||
</logger>
|
||||
</log4net>
|
||||
<system.webServer>
|
||||
<validation validateIntegratedModeConfiguration="false" />
|
||||
@@ -67,8 +79,8 @@
|
||||
<add name="ASPxQueryBuilderDesignerHandlerModule" preCondition="integratedMode" verb="GET,POST" path="DXQB.axd" type="DevExpress.Web.ASPxHttpHandlerModule, DevExpress.Web.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<remove name="ExtensionlessUrlHandler-Integrated-4.0" /><remove name="OPTIONSVerbHandler" /><remove name="TRACEVerbHandler" /><add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /></handlers>
|
||||
<security>
|
||||
<requestFiltering allowDoubleEscaping="true">
|
||||
<requestLimits maxQueryString="32768" maxUrl="65535" />
|
||||
<requestFiltering allowDoubleEscaping="true" >
|
||||
<requestLimits maxQueryString="32768" maxUrl="65535" maxAllowedContentLength="20971520" />
|
||||
</requestFiltering>
|
||||
</security>
|
||||
<staticContent>
|
||||
@@ -231,7 +243,7 @@
|
||||
</authentication>
|
||||
<sessionState timeout="20" />
|
||||
<identity impersonate="false" />
|
||||
<httpRuntime maxQueryStringLength="32768" maxRequestLength="8192" maxUrlLength="65536" />
|
||||
<httpRuntime maxQueryStringLength="32768" maxRequestLength="20480" maxUrlLength="65536" />
|
||||
</system.web>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
|
||||
Reference in New Issue
Block a user