- Diverse Bugfixes Mok
- Kontaktdaten geändert bei LH Frankfurt Oder
This commit is contained in:
@@ -48,7 +48,7 @@
|
||||
<WebPage>publish.htm</WebPage>
|
||||
<OpenBrowserOnPublish>false</OpenBrowserOnPublish>
|
||||
<TrustUrlParameters>true</TrustUrlParameters>
|
||||
<ApplicationRevision>269</ApplicationRevision>
|
||||
<ApplicationRevision>270</ApplicationRevision>
|
||||
<ApplicationVersion>2.0.1.%2a</ApplicationVersion>
|
||||
<UseApplicationTrust>false</UseApplicationTrust>
|
||||
<CreateDesktopShortcut>true</CreateDesktopShortcut>
|
||||
|
||||
@@ -407,20 +407,18 @@ namespace BeWo.View.Navigation
|
||||
|
||||
private void Hyperlink_OnRequestNavigate(object sender, RequestNavigateEventArgs e)
|
||||
{
|
||||
//var alleVorlagen = ServiceFacade.DoOperationsServiceSync(s => s.Getvor());
|
||||
//var alleVorlagen = ServiceFacade.DoOperationsServiceSync(s => s.GetDokumentvorlagenForType(TableID.Customer));
|
||||
//if (alleVorlagen.Count > 0)
|
||||
//{
|
||||
// var c = (CompactCustomerDC)((Hyperlink)sender).Tag;
|
||||
|
||||
var alleVorlagen = ServiceFacade.DoOperationsServiceSync(s => s.GetDokumentvorlagenForType(TableID.Customer));
|
||||
if (alleVorlagen.Count > 0)
|
||||
{
|
||||
var c = (CompactCustomerDC)((Hyperlink)sender).Tag;
|
||||
|
||||
DokumentViewHelper.OpenTemplateSelectionDialog(alleVorlagen, TableID.Customer, c.CustomerOid);
|
||||
}
|
||||
else
|
||||
{
|
||||
// DokumentViewHelper.OpenTemplateSelectionDialog(alleVorlagen, TableID.Customer, c.CustomerOid);
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
BeWoUtils.NavigateToReportUri(((Hyperlink)sender).NavigateUri.ToString(), "Druckvorschau");
|
||||
}
|
||||
//var folderDCs = VMFactory.CreateFolderList(TableID.Vorlagentabelle, (long)vm.DocTreeItemOid);
|
||||
//}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -2259,8 +2259,8 @@ namespace BeWo.ViewModel
|
||||
ServiceCategoryDC firstCat = null;
|
||||
if (_ServiceAccountings != null && allDict != null)
|
||||
{
|
||||
var globalServices = _ServiceAccountings.FindAll(sa => sa.ServiceDescription.ScopeType == ScopeTypeId.Global);
|
||||
var individualServices = _ServiceAccountings.FindAll(sa => sa.ServiceDescription.ScopeType == ScopeTypeId.Individual);
|
||||
var globalServices = _ServiceAccountings.FindAll(sa => sa.ServiceDescription.ScopeType == ScopeTypeId.Global && (!sa.ServiceDescription.Category.OhneHilfeplan.HasValue || sa.ServiceDescription.Category.OhneHilfeplan.Value != AccountingvisibilityType.Never));
|
||||
var individualServices = _ServiceAccountings.FindAll(sa => sa.ServiceDescription.ScopeType == ScopeTypeId.Individual && (!sa.ServiceDescription.Category.OhneHilfeplan.HasValue || sa.ServiceDescription.Category.OhneHilfeplan.Value != AccountingvisibilityType.Never));
|
||||
|
||||
if (globalServices.Count > 0)
|
||||
{
|
||||
|
||||
@@ -88,6 +88,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
|
||||
@@ -143,7 +145,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
|
||||
|
||||
Model.SelectedConceptCostBearerRelations = new List<SupportConceptCostBearerRelDC>();
|
||||
Model.MultiBookingSelectedConceptCostBearerRelations = new List<SupportConceptCostBearerRelDC>();
|
||||
//Model.MultiBookingSelectedConceptCostBearerRelations = new List<SupportConceptCostBearerRelDC>();
|
||||
|
||||
Model.GoalRatingTypes = OperationsService.GetAllRatingTypes().OrderBy(o => o.Position).ToList();
|
||||
|
||||
@@ -206,6 +208,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)
|
||||
@@ -222,7 +227,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)
|
||||
@@ -579,7 +587,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;
|
||||
}
|
||||
|
||||
@@ -884,59 +895,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");
|
||||
}
|
||||
@@ -1091,7 +1110,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]))
|
||||
{
|
||||
@@ -2689,7 +2708,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)
|
||||
@@ -3236,7 +3255,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();
|
||||
@@ -3265,7 +3285,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
|
||||
ResetBookingMode(BookingMode.SingleBookingMode);
|
||||
|
||||
//LoadServiceCategoriesToModel(Model.SelectedCostBearerSupportConceptOid);
|
||||
LoadServiceCategoriesToModel(Model.SelectedCostBearerSupportConceptOid);
|
||||
|
||||
return View("Main", Model);
|
||||
}
|
||||
@@ -4227,8 +4247,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);
|
||||
|
||||
@@ -4254,12 +4274,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;
|
||||
@@ -4273,7 +4297,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)
|
||||
{
|
||||
@@ -4294,7 +4318,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();
|
||||
|
||||
@@ -4314,6 +4338,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);
|
||||
}
|
||||
|
||||
@@ -4459,9 +4489,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;
|
||||
|
||||
@@ -4561,7 +4591,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
{
|
||||
try
|
||||
{
|
||||
return JsonConvert.SerializeObject(Model.MultiBookingSelectedConceptCostBearerRelations.Any());
|
||||
return JsonConvert.SerializeObject(Model.SelectedConceptCostBearerRelations.Any());
|
||||
}
|
||||
catch(Exception exception)
|
||||
{
|
||||
|
||||
@@ -631,12 +631,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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -744,9 +750,9 @@ namespace BeWoPlanerMobil.Models
|
||||
|
||||
public List<long> MultiBookingSelectedGroupOfPeopleOids { get { return MainSessionModel.MultiBookingSelectedGroupOfPeopleOids; } set { MainSessionModel.MultiBookingSelectedGroupOfPeopleOids = value; } }
|
||||
|
||||
public List<SupportConceptCostBearerRelDC> MultiBookingSelectedConceptCostBearerRelations { get; set; }
|
||||
//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(",", "."));
|
||||
|
||||
@@ -183,7 +183,7 @@
|
||||
$("#fehlerdetail-textarea").prop("disabled", false);
|
||||
|
||||
if ("@Model.IsInMultiBookingMode".toLowerCase() === "true") {
|
||||
const isMultiBookingFormDisabled = "@Model.MultiBookingSelectedConceptCostBearerRelations.Any()".toLowerCase() === "false";
|
||||
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">
|
||||
|
||||
@@ -272,6 +272,7 @@ namespace HphBersenbrueckFreizeitUndReisen
|
||||
xrTableRowGesamt.Cells[(index * 2) + 8].Text = String.Format("{0:0.00}", gesamtEbhMonat); // 8
|
||||
xrTableRowGesamt.Cells[(anzahlMonate * 2) + index + 9].Text = String.Format("{0:0.00}", gesamtFreiMonat); // 11
|
||||
xrTableRowGesamt.Cells[(anzahlMonate * 3) + index + 11].Text = String.Format("{0:0.00}", gesamtFundAMonat); // 14
|
||||
xrTableRowGesamt.Cells[(anzahlMonate * 4) + index + 13].Text = String.Format("{0:0.00}", gesamtTagesfahrtMonat);
|
||||
}
|
||||
index++;
|
||||
datum = datum.AddMonths(1);
|
||||
@@ -280,6 +281,7 @@ namespace HphBersenbrueckFreizeitUndReisen
|
||||
xrTableRowGesamt.Cells[(anzahlMonate * 2) + 8].Text = String.Format("{0:c}", preisGesamtEb); // 10
|
||||
xrTableRowGesamt.Cells[(anzahlMonate * 3) + 10].Text = String.Format("{0:c}", preisGesamtFrei); // 13
|
||||
xrTableRowGesamt.Cells[(anzahlMonate * 4) + 12].Text = String.Format("{0:c}", preisGesamtFundA); // 16
|
||||
xrTableRowGesamt.Cells[(anzahlMonate * 5) + 14].Text = String.Format("{0:c}", preisGesamtTagesfahrt); // 17
|
||||
xrTableRowGesamt.Cells[(anzahlMonate * 5) + 15].Text = String.Format("{0:c}", preisGesamtEbFreiFundA); // 17
|
||||
xrTableRowGesamt.Cells[(anzahlMonate * 5) + 16].Text = String.Format("{0:0.##}", anzUebernachtungenGesamt); // 18
|
||||
xrTableRowGesamt.Cells[(anzahlMonate * 5) + 17].Text = String.Format("{0:c}", preisGesamtKurzpflege); // 19
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user