MoK: Reports werden alle in einem einzigen PartialView angezeigt und das AbstractModel von dem alle Model erben, hat die Report- und ReportTitle-Eigenschaften.
ServiceRecords werden wie im FaC validiert, d.h. dass Arbeitszeiten und Pausenzeiten keine Überschneidungswarnung bekommen.
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
@@ -155,7 +154,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
|
||||
var customerFilter = MobileUserSettingsUtils.GetSettingValueAsEnum(userSettings, SettingsKeys.CustomerFilterInZeiterfassung, CustomerFilterEnum.MyCustomer);
|
||||
|
||||
if (customerFilter != CustomerFilterEnum.MyCustomer && !AbstractModel.IsAllowedToSeeSupportConceptFilter)
|
||||
if(customerFilter != CustomerFilterEnum.MyCustomer && !AbstractModel.IsAllowedToSeeSupportConceptFilter)
|
||||
{
|
||||
customerFilter = CustomerFilterEnum.MyCustomer;
|
||||
}
|
||||
@@ -174,11 +173,6 @@ namespace BeWoPlanerMobil.Controllers
|
||||
|
||||
Model.GroupsOfPeople = EmployeeService.GetAllGroups(GetUser().Employee.EmployeeOid).OrderBy(gop => gop.Name).ToList();
|
||||
|
||||
if(!Model.IsInEditingMode)
|
||||
{
|
||||
Model.SelectedGoals.Clear();
|
||||
}
|
||||
|
||||
Model.ShowDistanceField = UserSettingsUtils.GetSettingValueAsBool(mandatorSettings, SettingsKeys.ShowDistanceFields);
|
||||
|
||||
Model.Dokutypes = ValueListService.GetAllValueListEntrysByType(ValueListEntryType.DocumentType);
|
||||
@@ -231,11 +225,6 @@ namespace BeWoPlanerMobil.Controllers
|
||||
}).ToList();
|
||||
}
|
||||
|
||||
if(Model.ServiceCategories is null)
|
||||
{
|
||||
Model.ServiceCategories = new List<ServiceCategoryModel>();
|
||||
}
|
||||
|
||||
if(Model.SelectedConceptCostBearerRelations is null)
|
||||
{
|
||||
Model.SelectedConceptCostBearerRelations = new List<SupportConceptCostBearerRelDC>();
|
||||
@@ -255,13 +244,13 @@ namespace BeWoPlanerMobil.Controllers
|
||||
|
||||
Model.IsServiceRecordNoticeMandatory = settingsValue is null || !settingsValue.Equals("0");
|
||||
|
||||
var isInList = !(Model.SelectedSupportConceptListObject is null) && Model.SupportConceptListObjects.Contains(Model.SelectedSupportConceptListObject);
|
||||
var isInList = !(Model.SelectedCostBearer2SupportConceptRelListObject is null) && Model.SupportConceptListObjects.Contains(Model.SelectedCostBearer2SupportConceptRelListObject);
|
||||
|
||||
if(Model.SelectedSupportConceptListObject is null || !isInList)
|
||||
if(Model.SelectedCostBearer2SupportConceptRelListObject is null || !isInList)
|
||||
{
|
||||
if(!(Model.SelectedSupportConceptListObject is null) && !isInList)
|
||||
if(!(Model.SelectedCostBearer2SupportConceptRelListObject is null) && !isInList)
|
||||
{
|
||||
Log.Info($"Model.SelectedSupportConceptListObject.Oid = {Model.SelectedSupportConceptListObject.CostBearer2SupportConceptOid} is not in list !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
|
||||
Log.Info($"Model.SelectedSupportConceptListObject.Oid = {Model.SelectedCostBearer2SupportConceptRelListObject.CostBearer2SupportConceptOid} is not in list !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
|
||||
|
||||
var sb = new StringBuilder();
|
||||
foreach(var o in Model.SupportConceptListObjects)
|
||||
@@ -277,7 +266,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
|
||||
}
|
||||
|
||||
Model.SelectedSupportConceptListObject = Model.SupportConceptListObjects.FirstOrDefault(f => f.CostBearer2SupportConceptOid == "-1") ?? Model.SupportConceptListObjects.First();
|
||||
Model.SelectedCostBearer2SupportConceptRelListObject = Model.SupportConceptListObjects.FirstOrDefault(f => f.CostBearer2SupportConceptOid == "-1") ?? Model.SupportConceptListObjects.First();
|
||||
Model.CostBearer2SupportConceptOid = -1;
|
||||
|
||||
Model.HasAnyRatingTypes = AbstractModel.HasRightToRateGoals && OperationsService.GetAllRatingTypes().Any();
|
||||
@@ -530,11 +519,16 @@ namespace BeWoPlanerMobil.Controllers
|
||||
var massnahmen = goals.Where(w => Massnahmentypen.Contains(w.Type)).OrderBy(s => s.DisplayName).ToList();
|
||||
var goalTree = new List<GoalTreeItem>();
|
||||
var goalTreeDic = new Dictionary<long, GoalTreeItem>();
|
||||
var goalsWithRating = Model.SelectedServiceRecord?.Goals.Where(goal => goal.RatingTypeOid.HasValue).ToList() ?? new List<ValueListEntryDC>();
|
||||
var goalsWithRating = Model.SelectedServiceRecord?.Goals?.Where(goal => goal.RatingTypeOid.HasValue).ToList() ?? new List<ValueListEntryDC>();
|
||||
var ratingTypes = OperationsService.GetRatingTypesByOids(goalsWithRating.Where(goal => goal.RatingTypeOid.HasValue).Select(goal => goal.RatingTypeOid.Value).Distinct().ToList());
|
||||
|
||||
foreach(var ziel in ziele.Where(z => z.ValueListEntryOid.HasValue))
|
||||
foreach(var ziel in ziele)
|
||||
{
|
||||
if(ziel.ValueListEntryOid is null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var treeItem = new GoalTreeItem(true, ziel.Type)
|
||||
{
|
||||
Children = new List<GoalTreeItem>(),
|
||||
@@ -553,6 +547,11 @@ namespace BeWoPlanerMobil.Controllers
|
||||
|
||||
foreach(var zielMitEltern in goalTreeDic.Values.Where(zielMitEltern => zielMitEltern.ParentOid != null))
|
||||
{
|
||||
if(zielMitEltern.ParentOid is null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
goalTreeDic[zielMitEltern.ParentOid.Value].Children.Add(zielMitEltern);
|
||||
}
|
||||
|
||||
@@ -590,12 +589,9 @@ namespace BeWoPlanerMobil.Controllers
|
||||
goalTreeDic[ziel.ParentOid.Value].Children.Add(kind);
|
||||
}
|
||||
|
||||
foreach(var item in goalTreeDic.Values)
|
||||
foreach(var item in goalTreeDic.Values.Where(item => item.Children.Count == 0))
|
||||
{
|
||||
if(item.Children.Count == 0)
|
||||
{
|
||||
item.IsLeaf = true;
|
||||
}
|
||||
item.IsLeaf = true;
|
||||
}
|
||||
|
||||
goalTree = goalTree.OrderBy(o => o.ValueListEntryOid).ToList();
|
||||
@@ -622,6 +618,11 @@ namespace BeWoPlanerMobil.Controllers
|
||||
{
|
||||
var parentDC = ValueListService.GetValueListEntryByOid(pParentOid);
|
||||
|
||||
if(parentDC?.ValueListEntryOid is null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(!_ParentGoals.ContainsKey(parentDC.ValueListEntryOid.Value))
|
||||
{
|
||||
_ParentGoals.Add(parentDC.ValueListEntryOid.Value, parentDC);
|
||||
@@ -866,34 +867,6 @@ namespace BeWoPlanerMobil.Controllers
|
||||
return "data:image/png;base64," + SignatureUtils.ConvertImageToBase64String(watermarker.Image);
|
||||
}
|
||||
|
||||
[Authorize]
|
||||
public string LoadServiceCategories(long pServiceCategoryOid)
|
||||
{
|
||||
if (Model is null)
|
||||
{
|
||||
Logout();
|
||||
return LeerzeichenFuerGetMethoden;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
var serviceCategoryModel = Model.ServiceCategories.FirstOrDefault(s => s.ServiceCategoryOid.HasValue && s.ServiceCategoryOid.Value == pServiceCategoryOid);
|
||||
|
||||
if(serviceCategoryModel != null)
|
||||
{
|
||||
Model.SelectedServiceCategoryOid = serviceCategoryModel.ServiceCategoryOid;
|
||||
Model.SelectedServiceDescriptionOid = serviceCategoryModel.ServiceDescriptions.OrderBy(serviceDescription => serviceDescription.Position).FirstOrDefault()?.ServiceDescriptionOid;
|
||||
}
|
||||
|
||||
return SerializeObject(serviceCategoryModel != null ? serviceCategoryModel.ServiceDescriptions.OrderBy(serviceDescription => serviceDescription.Position).ToList() : new List<ServiceDescriptionDC>());
|
||||
}
|
||||
catch(Exception exception)
|
||||
{
|
||||
Debug.WriteLine(exception);
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
[Authorize]
|
||||
public string LoadCompleteTextbausteinByOid(long pTextbausteinOid)
|
||||
{
|
||||
@@ -1719,17 +1692,15 @@ namespace BeWoPlanerMobil.Controllers
|
||||
{
|
||||
try
|
||||
{
|
||||
if (Model is null)
|
||||
if(Model is null)
|
||||
{
|
||||
TempData[TempDataConstants.DoLogoutKey] = true;
|
||||
TempData[TempDataConstants.ErrorMessageKey] = "Model ist null!";
|
||||
return Logout();
|
||||
}
|
||||
|
||||
long? cb2ScOid = Convert.ToInt64(formCollection[FormCollectionConstants.CostBearer2SupportConceptOidKey]);
|
||||
Log.Info($"SelectSupportConcept: {cb2ScOid}");
|
||||
|
||||
Model.SelectedServiceDescriptionOid = null;
|
||||
Model.SelectedCostBearerSupportConceptRelOid = cb2ScOid;
|
||||
|
||||
LoadSupportConceptThings(cb2ScOid);
|
||||
|
||||
@@ -1755,17 +1726,9 @@ namespace BeWoPlanerMobil.Controllers
|
||||
Model.Categories2Descriptions = new Dictionary<ServiceCategoryDC, List<ServiceDescriptionDC>>();
|
||||
}
|
||||
|
||||
if(Model.ServiceCategories is null)
|
||||
{
|
||||
Model.ServiceCategories = new List<ServiceCategoryModel>();
|
||||
}
|
||||
|
||||
Model.ServiceCategories.Clear();
|
||||
Model.Categories2Descriptions.Clear();
|
||||
Model.SelectedServiceCategory = null;
|
||||
Model.SelectedServiceCategoryOid = null;
|
||||
Model.SelectedServiceDescription = null;
|
||||
Model.SelectedServiceDescriptionOid = null;
|
||||
|
||||
if(cb2ScOid is null && (Model.IsInGroupBookingMode || Model.IsInMultiBookingMode))
|
||||
{
|
||||
@@ -1778,20 +1741,8 @@ namespace BeWoPlanerMobil.Controllers
|
||||
// Alle ServiceDescriptions der ausgewählten Hilfepläne laden
|
||||
var nodes = OperationsService.GetSupportConceptTreeNodeDetailInfos(selectedSupportConcepts.Where(sc => sc.SupportConceptOid.HasValue).Select(sc => sc.SupportConceptOid.Value).ToList());
|
||||
|
||||
if(Model.Categories2Descriptions is null)
|
||||
{
|
||||
Model.Categories2Descriptions = new Dictionary<ServiceCategoryDC, List<ServiceDescriptionDC>>();
|
||||
}
|
||||
|
||||
Model.Categories2Descriptions = CreateServiceCategory2ServiceDescription(nodes, true);
|
||||
|
||||
if(Model.Categories2Descriptions.Count == 0 && nodes.Any())
|
||||
{
|
||||
var allServiceDescriptions = OperationsService.GetAllServiceDescriptions();
|
||||
|
||||
allServiceDescriptions.DoForEach(serviceDescription => Model.Categories2Descriptions.AddOrUpdateValueInDictionary(serviceDescription.Category, serviceDescription));
|
||||
}
|
||||
|
||||
SelectFirstServiceDescription();
|
||||
|
||||
return;
|
||||
@@ -1800,33 +1751,25 @@ namespace BeWoPlanerMobil.Controllers
|
||||
Model.CostBearer2SupportConceptOid = cb2ScOid;
|
||||
Model.SelectedSupportConcept =
|
||||
Model.SupportConcepts.FirstOrDefault(
|
||||
f =>
|
||||
f.CostBearerRelations.Any(
|
||||
a =>
|
||||
a.CostBearer2SupportConceptOid.HasValue &&
|
||||
a.CostBearer2SupportConceptOid.Value.Equals(Model.CostBearer2SupportConceptOid)));
|
||||
supportConcept =>
|
||||
supportConcept.CostBearerRelations.Any(
|
||||
supportConceptCostBearerRel =>
|
||||
supportConceptCostBearerRel.CostBearer2SupportConceptOid.HasValue &&
|
||||
supportConceptCostBearerRel.CostBearer2SupportConceptOid.Value.Equals(Model.CostBearer2SupportConceptOid)));
|
||||
|
||||
if(Model.SelectedSupportConcept != null)
|
||||
{
|
||||
Model.SelectedSupportConceptListObject = Model.SupportConceptListObjects.First(f => long.Parse(f.CostBearer2SupportConceptOid) == cb2ScOid);
|
||||
Model.SelectedCostBearer2SupportConceptRelListObject = Model.SupportConceptListObjects.First(f => long.Parse(f.CostBearer2SupportConceptOid) == cb2ScOid);
|
||||
|
||||
var node = OperationsService.GetSupportConceptTreeNodeDetailInfo(Model.SelectedSupportConcept.Customer.CustomerOid, Model.SelectedSupportConcept.SupportConceptOid, Model.CostBearer2SupportConceptOid);
|
||||
|
||||
Model.ServiceCategories = node.ServiceAccountings.Count > 0
|
||||
? CreateServiceCategoryModels(node.ServiceAccountings.Select(sa => sa.ServiceDescription).ToList())
|
||||
: CreateServiceCategoryModels(OperationsService.GetAllServiceDescriptions());
|
||||
|
||||
Model.ServiceCategories = Model.ServiceCategories.Where(c => !c.OhneHilfeplan.HasValue || c.OhneHilfeplan.Value == AccountingvisibilityType.Beides || c.OhneHilfeplan.Value == AccountingvisibilityType.NurKlientenbezogen).ToList();
|
||||
|
||||
Model.Categories2Descriptions = CreateServiceCategory2ServiceDescription(new List<SupportConceptTreeNodeDetailInfoDC> { node }, false);
|
||||
}
|
||||
else if(cb2ScOid == -2) // Ohne Hilfeplan
|
||||
{
|
||||
var allServiceDescriptions = OperationsService.GetAllServiceDescriptions();
|
||||
|
||||
Model.SelectedSupportConceptListObject = Model.SupportConceptListObjects.First(f => f.CostBearer2SupportConceptOid.Equals(cb2ScOid.ToString()));
|
||||
Model.ServiceCategories = CreateServiceCategoryModels(OperationsService.GetAllServiceDescriptions());
|
||||
Model.ServiceCategories = Model.ServiceCategories.Where(c => !c.OhneHilfeplan.HasValue || c.OhneHilfeplan.Value == AccountingvisibilityType.Beides || c.OhneHilfeplan.Value == AccountingvisibilityType.NichtKlientenbezogen).ToList();
|
||||
Model.SelectedCostBearer2SupportConceptRelListObject = Model.SupportConceptListObjects.First(f => f.CostBearer2SupportConceptOid.Equals(cb2ScOid.ToString()));
|
||||
|
||||
if(Model.Categories2Descriptions is null)
|
||||
{
|
||||
@@ -1848,8 +1791,8 @@ namespace BeWoPlanerMobil.Controllers
|
||||
}
|
||||
else if(cb2ScOid == -1) // Hilfeplan Auswählen
|
||||
{
|
||||
Model.SelectedSupportConceptListObject = Model.SupportConceptListObjects.First(f => f.CostBearer2SupportConceptOid.Equals(cb2ScOid.ToString()));
|
||||
Model.ServiceCategories.Clear();
|
||||
Model.SelectedCostBearer2SupportConceptRelListObject = Model.SupportConceptListObjects.First(f => f.CostBearer2SupportConceptOid.Equals(cb2ScOid.ToString()));
|
||||
|
||||
if(Model.Categories2Descriptions is null)
|
||||
{
|
||||
Model.Categories2Descriptions = new Dictionary<ServiceCategoryDC, List<ServiceDescriptionDC>>();
|
||||
@@ -1860,12 +1803,6 @@ namespace BeWoPlanerMobil.Controllers
|
||||
}
|
||||
}
|
||||
|
||||
// Kategorien werden nach Position sortiert
|
||||
if (Model.ServiceCategories != null)
|
||||
{
|
||||
Model.ServiceCategories = Model.ServiceCategories.OrderBy(serviceCategory => serviceCategory.Position).ToList();
|
||||
}
|
||||
|
||||
// Ist der Klient abwesend, wird dies wie im FaC angezeigt
|
||||
if(Model.SelectedSupportConcept?.Customer?.AbsenceTimes?.Any() ?? false)
|
||||
{
|
||||
@@ -1900,18 +1837,18 @@ namespace BeWoPlanerMobil.Controllers
|
||||
|
||||
var firstServiceCategory2ServiceDescriptions = Model.Categories2Descriptions.OrderBy(c2d => c2d.Key.Position).ThenBy(c2d => c2d.Key.ServiceCategoryOid).FirstOrDefault(c2d => c2d.Value.Any());
|
||||
|
||||
if(firstServiceCategory2ServiceDescriptions.Key != null)
|
||||
if(firstServiceCategory2ServiceDescriptions.Key is null)
|
||||
{
|
||||
var serviceDescription = firstServiceCategory2ServiceDescriptions.Value.OrderBy(sd => sd.Position).ThenBy(sd => sd.ServiceDescriptionOid).First();
|
||||
|
||||
Model.SelectedServiceDescription = serviceDescription;
|
||||
Model.SelectedServiceCategory = serviceDescription.Category;
|
||||
Model.SelectedServiceDescriptionOid = serviceDescription.ServiceDescriptionOid;
|
||||
Model.SelectedServiceCategoryOid = serviceDescription.Category.ServiceCategoryOid;
|
||||
return;
|
||||
}
|
||||
|
||||
var serviceDescription = firstServiceCategory2ServiceDescriptions.Value.OrderBy(sd => sd.Position).ThenBy(sd => sd.ServiceDescriptionOid).First();
|
||||
|
||||
Model.SelectedServiceDescription = serviceDescription;
|
||||
Model.SelectedServiceCategory = serviceDescription.Category;
|
||||
}
|
||||
|
||||
private static Dictionary<ServiceCategoryDC, List<ServiceDescriptionDC>> CreateServiceCategory2ServiceDescription(List<SupportConceptTreeNodeDetailInfoDC> nodes, bool isGroupBooking)
|
||||
private Dictionary<ServiceCategoryDC, List<ServiceDescriptionDC>> CreateServiceCategory2ServiceDescription(List<SupportConceptTreeNodeDetailInfoDC> nodes, bool isGroupBooking)
|
||||
{
|
||||
var result = new Dictionary<ServiceCategoryDC, List<ServiceDescriptionDC>>();
|
||||
|
||||
@@ -1926,7 +1863,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
{
|
||||
firstNode.ServiceAccountings.DoForEach(serviceAccounting => result.AddOrUpdateValueInDictionary(serviceAccounting.ServiceDescription.Category, serviceAccounting.ServiceDescription));
|
||||
}
|
||||
|
||||
|
||||
foreach(var serviceAccounting in firstNode.ServiceAccountings)
|
||||
{
|
||||
var serviceDescription = serviceAccounting.ServiceDescription;
|
||||
@@ -1938,7 +1875,17 @@ namespace BeWoPlanerMobil.Controllers
|
||||
}
|
||||
}
|
||||
|
||||
return result.OrderBy(kvp => kvp.Key.Position).ToDictionary(category2Descriptions => category2Descriptions.Key, category2Descriptions => category2Descriptions.Value);
|
||||
if(firstNode.ServiceAccountings.Count == 0)
|
||||
{
|
||||
var allServiceDescriptions = OperationsService.GetAllServiceDescriptions().Where(sd => sd.Category.OhneHilfeplan != AccountingvisibilityType.NichtKlientenbezogen).ToList();
|
||||
|
||||
foreach(var serviceDescription in allServiceDescriptions)
|
||||
{
|
||||
result.AddOrUpdateValueInDictionary(serviceDescription.Category, serviceDescription);
|
||||
}
|
||||
}
|
||||
|
||||
return result.OrderBy(kvp => kvp.Key.Position).ToDictionary(category2Descriptions => category2Descriptions.Key, category2Descriptions => category2Descriptions.Value.OrderBy(serviceDescription => serviceDescription.Position).ToList());
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
@@ -1991,20 +1938,20 @@ namespace BeWoPlanerMobil.Controllers
|
||||
if (Model is null)
|
||||
{
|
||||
Logout();
|
||||
return LeerzeichenFuerGetMethoden;
|
||||
return "0";
|
||||
}
|
||||
|
||||
var sc = Model.SelectedSupportConcept;
|
||||
if (!Model.IsInGroupBookingMode && sc is null)
|
||||
{
|
||||
return LeerzeichenFuerGetMethoden;
|
||||
return "0";
|
||||
}
|
||||
|
||||
if(string.IsNullOrEmpty(pGoalOids))
|
||||
{
|
||||
Model.SelectedGoals.Clear();
|
||||
|
||||
return LeerzeichenFuerGetMethoden;
|
||||
return "0";
|
||||
}
|
||||
|
||||
var splitOids = pGoalOids.Trim(';').Split(';');
|
||||
@@ -2028,15 +1975,13 @@ namespace BeWoPlanerMobil.Controllers
|
||||
allGoals.AddRangeIfElementsNotIn(parents);
|
||||
|
||||
var goals = allGoals.Where(w => w.ValueListEntryOid.HasValue && selectedGoalOids.Contains(w.ValueListEntryOid.Value)).ToList();
|
||||
|
||||
// ToDo: Hier liegt der Bug!
|
||||
// ToDo: vorhandene Bewertungen beachten!
|
||||
|
||||
var stillSelectedGoals = Model.SelectedGoals.Where(s => goals.Any(a => a.ValueListEntryOid.HasValue && a.ValueListEntryOid.Value == s.ValueListEntryOid)).ToList();
|
||||
|
||||
Model.SelectedGoals = stillSelectedGoals;
|
||||
Model.SelectedGoals.AddRangeIfElementsNotIn(goals);
|
||||
|
||||
return LeerzeichenFuerGetMethoden;
|
||||
return Model.SelectedGoals?.Count.ToString() ?? "0";
|
||||
}
|
||||
|
||||
[Authorize]
|
||||
@@ -2052,7 +1997,6 @@ namespace BeWoPlanerMobil.Controllers
|
||||
|
||||
Model.SelectedServiceDescription = serviceDescription;
|
||||
|
||||
Model.SelectedServiceDescriptionOid = pServiceDescriptionOid;
|
||||
return LeerzeichenFuerGetMethoden;
|
||||
}
|
||||
|
||||
@@ -2171,7 +2115,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
|
||||
var wasSuccessful = long.TryParse(oidString, out var serviceRecordOid);
|
||||
|
||||
if (!wasSuccessful)
|
||||
if(!wasSuccessful)
|
||||
{
|
||||
return RedirectToActionPermanent("Main");
|
||||
}
|
||||
@@ -2191,8 +2135,8 @@ namespace BeWoPlanerMobil.Controllers
|
||||
var selectedServiceDescription = selectedServiceRecord.ServiceDescription;
|
||||
var selectedServiceCategory = selectedServiceDescription.Category;
|
||||
|
||||
Model.SelectedServiceDescriptionOid = selectedServiceDescription.ServiceDescriptionOid;
|
||||
Model.SelectedServiceCategoryOid = selectedServiceCategory.ServiceCategoryOid;
|
||||
Model.SelectedServiceDescription = selectedServiceDescription;
|
||||
Model.SelectedServiceCategory = selectedServiceCategory;
|
||||
|
||||
Model.PreviouslySelectedEmployee = Model.SelectedEmployee;
|
||||
Model.SelectedEmployee = selectedServiceRecord.Employee;
|
||||
@@ -2210,8 +2154,6 @@ namespace BeWoPlanerMobil.Controllers
|
||||
Model.SelectedSupportConcept = null;
|
||||
Model.SelectedEmployee = null;
|
||||
|
||||
Model.ServiceCategories = CreateServiceCategoryModels(OperationsService.GetAllServiceDescriptions());
|
||||
|
||||
var group = OperationsService.GetServiceRecordGroup(selectedServiceRecord.GroupOid.Value);
|
||||
|
||||
var employees = group.ServiceRecordList.Select(serviceRecord => serviceRecord.Employee).Distinct().ToList();
|
||||
@@ -2228,8 +2170,6 @@ namespace BeWoPlanerMobil.Controllers
|
||||
|
||||
LoadServiceCategoriesToModel(null);
|
||||
|
||||
Model.SelectedServiceDescriptionOid = selectedServiceRecord.ServiceDescription.ServiceDescriptionOid;
|
||||
Model.SelectedServiceCategoryOid = selectedServiceRecord.ServiceDescription.Category.ServiceCategoryOid;
|
||||
Model.SelectedServiceDescription = selectedServiceDescription;
|
||||
Model.SelectedServiceCategory = selectedServiceCategory;
|
||||
|
||||
@@ -2242,7 +2182,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
[Authorize]
|
||||
public string GetSelectedRecordInformation()
|
||||
{
|
||||
if (Model is null)
|
||||
if(Model is null)
|
||||
{
|
||||
Logout();
|
||||
return LeerzeichenFuerGetMethoden;
|
||||
@@ -2250,7 +2190,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
|
||||
var result = LeerzeichenFuerGetMethoden;
|
||||
|
||||
if (Model.SelectedServiceRecordOid.HasValue)
|
||||
if(Model.SelectedServiceRecordOid.HasValue)
|
||||
{
|
||||
result = SerializeObject(Model.ServiceRecords.First(f => f.ServiceRecordOid == Model.SelectedServiceRecordOid));
|
||||
}
|
||||
@@ -2498,7 +2438,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
dateRangeString = node?.SupportConceptTreeNodeDC != null ? node.SupportConceptTreeNodeDC.SupportConceptCostBearerRelDC.DateRangeString : "";
|
||||
}
|
||||
|
||||
var result = OperationsService.ValidateServiceRecordEntry(checkServiceRecord, stats, maxDaysEditSRsAllowed, checkServiceRecord.GroupOid.HasValue, employeeOids);
|
||||
var result = OperationsService.ValidateServiceRecord(checkServiceRecord, stats, maxDaysEditSRsAllowed, null, null);
|
||||
validationResults.Add(new ServiceRecord2Validation(checkServiceRecord, result, dateRangeString ?? ""));
|
||||
} // Mehrfachbuchung
|
||||
else if(Model.IsInMultiBookingMode && !Model.IsInGroupBookingMode)
|
||||
@@ -2642,9 +2582,20 @@ namespace BeWoPlanerMobil.Controllers
|
||||
intervall = "" + limitFuerZeiterfassung + " Tagen";
|
||||
}
|
||||
|
||||
newResult.Message += "Sie können keine neuen Leistungen für den " + von + " dokumentieren, da die Zeiterfassung innerhalb von " + intervall + " erfolgen muss.<br /><br />";
|
||||
exitLoop = true;
|
||||
newResult.KannTrotzdemGespeichertWerden = false;
|
||||
|
||||
if(!MobileSessionFacade.CheckForUserRight(UserRightType.ServiceRecordAllowEditAfterMindays))
|
||||
{
|
||||
if(limitFuerZeiterfassung == 1)
|
||||
{
|
||||
newResult.Message += $"Sie können keine neuen Leistungen für den {von} dokumentieren, da die Zeiterfassung innerhalb von einem Tag erfolgen muss.<br /><br />";
|
||||
}
|
||||
else
|
||||
{
|
||||
newResult.Message += $"Sie können keine neuen Leistungen für den {von} dokumentieren, da die Zeiterfassung innerhalb von {intervall} erfolgen muss.<br /><br />";
|
||||
}
|
||||
|
||||
exitLoop = true;
|
||||
}
|
||||
|
||||
break;
|
||||
case Custom:
|
||||
@@ -2753,10 +2704,6 @@ namespace BeWoPlanerMobil.Controllers
|
||||
return LeerzeichenFuerGetMethoden;
|
||||
}
|
||||
|
||||
var allowDeleteAfterEmployeeSignature = MobileSessionFacade.CheckForUserRight(UserRightType.ServiceRecord_AllowDeleteAfterEmployeeSignature);
|
||||
|
||||
var allowDeleteAll = MobileSessionFacade.CheckForUserRight(UserRightType.CreateAll);
|
||||
|
||||
var validationResultList = OperationsService.ValidateServiceRecordDeletion(serviceRecord, Model.Employee.EmployeeOid.Value);
|
||||
|
||||
if(validationResultList.Count > 0)
|
||||
@@ -2813,7 +2760,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
{
|
||||
try
|
||||
{
|
||||
if (Model is null)
|
||||
if(Model is null)
|
||||
{
|
||||
Logout();
|
||||
return LeerzeichenFuerGetMethoden;
|
||||
@@ -2822,7 +2769,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
Model.SelectedEmployee = Model.AllEmployees.First(f => f.EmployeeOid.Equals(employeeOid));
|
||||
return LeerzeichenFuerGetMethoden;
|
||||
}
|
||||
catch (Exception e)
|
||||
catch(Exception e)
|
||||
{
|
||||
Log.Info("Error in SetServiceRecordEmployee:");
|
||||
Log.Error(e.Message, e);
|
||||
@@ -2923,7 +2870,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
[Authorize]
|
||||
public ActionResult SetGroupBookingMode(FormCollection pFormCollection)
|
||||
{
|
||||
if (Model is null)
|
||||
if(Model is null)
|
||||
{
|
||||
TempData[TempDataConstants.DoLogoutKey] = true;
|
||||
return Logout();
|
||||
@@ -2947,7 +2894,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
/// </param>
|
||||
private void ResetBookingMode(BookingMode bookingMode)
|
||||
{
|
||||
if (Model is null)
|
||||
if(Model is null)
|
||||
{
|
||||
Logout();
|
||||
return;
|
||||
@@ -3015,28 +2962,14 @@ namespace BeWoPlanerMobil.Controllers
|
||||
}
|
||||
|
||||
ResetGroupBookingMode();
|
||||
|
||||
if (Model.SelectedSupportConcept != null)
|
||||
{
|
||||
var details = OperationsService.GetSupportConceptTreeNodeDetailInfo(Model.SelectedSupportConcept.Customer.CustomerOid, Model.SelectedSupportConcept.SupportConceptOid, Model.CostBearer2SupportConceptOid);
|
||||
|
||||
Model.ServiceCategories = details.ServiceAccountings.Count > 0
|
||||
? CreateServiceCategoryModels(details.ServiceAccountings.Select(sa => sa.ServiceDescription).ToList())
|
||||
: CreateServiceCategoryModels(OperationsService.GetAllServiceDescriptions());
|
||||
|
||||
Model.ServiceCategories = Model.ServiceCategories.Where(c => !c.OhneHilfeplan.HasValue || c.OhneHilfeplan.Value == AccountingvisibilityType.Beides || c.OhneHilfeplan.Value == AccountingvisibilityType.NurKlientenbezogen).ToList();
|
||||
}
|
||||
else if (Model.CostBearer2SupportConceptOid == -2)
|
||||
{
|
||||
Model.ServiceCategories = CreateServiceCategoryModels(OperationsService.GetAllServiceDescriptions());
|
||||
Model.ServiceCategories = Model.ServiceCategories.Where(c => !c.OhneHilfeplan.HasValue || c.OhneHilfeplan.Value == AccountingvisibilityType.Beides || c.OhneHilfeplan.Value == AccountingvisibilityType.NichtKlientenbezogen).ToList();
|
||||
}
|
||||
}
|
||||
|
||||
LoadGoals();
|
||||
}
|
||||
|
||||
private void ResetMultiBookingMode()
|
||||
{
|
||||
Model.ServiceCategories.Clear();
|
||||
Model.Categories2Descriptions.Clear();
|
||||
Model.MultiBookingSelectedConceptCostBearerRelations.Clear();
|
||||
Model.MultiBookingSelectedEmployees.Clear();
|
||||
Model.MultiBookingSelectedGroupOfPeopleOids.Clear();
|
||||
@@ -3047,7 +2980,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
|
||||
private void ResetGroupBookingMode()
|
||||
{
|
||||
Model.ServiceCategories.Clear();
|
||||
Model.Categories2Descriptions.Clear();
|
||||
Model.GroupBookingSelectedCostbearerRelOids.Clear();
|
||||
Model.GroupBookingSelectedEmployees.Clear();
|
||||
Model.GroupBookingSelectedSupportConcepts.Clear();
|
||||
@@ -3066,6 +2999,8 @@ namespace BeWoPlanerMobil.Controllers
|
||||
|
||||
ResetBookingMode(BookingMode.SingleBookingMode);
|
||||
|
||||
LoadServiceCategoriesToModel(Model.SelectedCostBearerSupportConceptRelOid);
|
||||
|
||||
return View("Main", Model);
|
||||
}
|
||||
|
||||
@@ -3162,33 +3097,12 @@ namespace BeWoPlanerMobil.Controllers
|
||||
Model.MultiBookingSelectedEmployees = new List<CompactEmployeeDC> { MobileSessionFacade.LoggedInCompactEmployee };
|
||||
Model.MultiBookingSelectedGroupOfPeopleOids.Clear();
|
||||
Model.MultiBookingSelectedSupportConcepts.Clear();
|
||||
Model.SelectedGoals.Clear();
|
||||
|
||||
Model.SelectedServiceCategory = null;
|
||||
Model.SelectedServiceCategoryOid = null;
|
||||
Model.SelectedServiceDescription = null;
|
||||
Model.SelectedServiceDescriptionOid = null;
|
||||
|
||||
LoadServiceCategoriesToModel(Model.CostBearer2SupportConceptOid);
|
||||
|
||||
var serviceDescriptions = Model.GetServiceDesctiptions();
|
||||
|
||||
if(!Model.ServiceCategories.Any() || !serviceDescriptions.Any())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Hier erst nach Kategorie gehen und dann die Leistung mit der niedrigsten Position nehmen!
|
||||
|
||||
var firstCategory = serviceDescriptions.Select(sd => sd.Category).OrderBy(sc => sc.Position).ThenBy(sc => sc.ServiceCategoryOid).First();
|
||||
var firstServiceDescription = serviceDescriptions.Where(sd => sd.Category.ServiceCategoryOid.Value.Equals(firstCategory.ServiceCategoryOid.Value)).OrderBy(sd => sd.Position).ThenBy(sd => sd.ServiceDescriptionOid).First();
|
||||
|
||||
if(serviceDescriptions.Any(a => a.ServiceDescriptionOid.HasValue && Model.SelectedServiceDescriptionOid.HasValue && a.ServiceDescriptionOid.Value.Equals(Model.SelectedServiceDescriptionOid)))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Model.SelectedServiceDescriptionOid = firstServiceDescription.ServiceDescriptionOid;
|
||||
Model.SelectedServiceCategoryOid = firstServiceDescription.Category.ServiceCategoryOid;
|
||||
}
|
||||
|
||||
[Authorize]
|
||||
@@ -3788,85 +3702,95 @@ namespace BeWoPlanerMobil.Controllers
|
||||
|
||||
LoadSupportConceptThings(-2);
|
||||
|
||||
var serviceCategory = Model.ServiceCategories.FirstOrDefault();
|
||||
var serviceDescription = serviceCategory?.ServiceDescriptions.FirstOrDefault();
|
||||
|
||||
if(!(serviceDescription is null))
|
||||
if(Model.SelectedServiceDescription != null)
|
||||
{
|
||||
Model.SelectedServiceCategoryOid = serviceDescription.Category.ServiceCategoryOid;
|
||||
Model.SelectedServiceCategory = Model.SelectedServiceDescription.Category;
|
||||
var serviceRecord = CreateServiceRecordFromScratch(start.Value, end.Value, null, Model.SelectedEmployee, notice);
|
||||
serviceRecord.ServiceDescription = serviceDescription;
|
||||
Model.SelectedServiceRecord = serviceRecord;
|
||||
}
|
||||
}
|
||||
// Einzelbuchung
|
||||
else if(supportConceptList.Count == 1 && employeeOids.Count == 1)
|
||||
{
|
||||
ResetBookingMode(BookingMode.SingleBookingMode);
|
||||
|
||||
Model.SelectedEmployee = Model.AllEmployees.FirstOrDefault(e => e.EmployeeOid.Equals(employeeOids.FirstOrDefault()));
|
||||
|
||||
var compactSupportConcept = supportConceptList.First();
|
||||
var supportConcept = Model.SupportConcepts.FirstOrDefault(f => f.SupportConceptOid.HasValue && f.SupportConceptOid.Value.Equals(compactSupportConcept.SupportConceptOid));
|
||||
|
||||
var serviceRecord = CreateServiceRecordFromScratch(start.Value, end.Value, supportConcept?.Customer, Model.SelectedEmployee, notice);
|
||||
|
||||
var costBearer2SupportConcept = supportConcept?.CostBearerRelations.FirstOrDefault();
|
||||
|
||||
LoadSupportConceptThings(costBearer2SupportConcept?.CostBearer2SupportConceptOid ?? -2);
|
||||
|
||||
var serviceCategory = Model.ServiceCategories.FirstOrDefault();
|
||||
var serviceDescription = serviceCategory?.ServiceDescriptions.FirstOrDefault();
|
||||
|
||||
serviceRecord.CostBearer = costBearer2SupportConcept?.CostBearer;
|
||||
serviceRecord.CostBearer2SupportConceptOid = costBearer2SupportConcept?.CostBearer2SupportConceptOid;
|
||||
serviceRecord.ServiceDescription = serviceDescription;
|
||||
|
||||
if(!(serviceDescription is null))
|
||||
{
|
||||
serviceRecord.ServiceDescription = Model.SelectedServiceDescription;
|
||||
Model.SelectedServiceRecord = serviceRecord;
|
||||
}
|
||||
}
|
||||
else // Gruppenbuchung
|
||||
// Einzelbuchung
|
||||
else
|
||||
{
|
||||
ResetBookingMode(BookingMode.GroupBookingMode);
|
||||
|
||||
Model.GroupBookingSelectedEmployees = Model.AllEmployees.Where(w => employeeOids.Contains(w.EmployeeOid)).ToList();
|
||||
|
||||
var roundedDuration = (int)((end - start)?.TotalMinutes ?? 0);
|
||||
|
||||
Model.SelectedServiceRecord = new ServiceRecordDC()
|
||||
var availableRelOids = new List<long>();
|
||||
Model.SupportConceptListObjects.DoForEach(sclo =>
|
||||
{
|
||||
Start = start,
|
||||
End = end,
|
||||
RoundedDuration = roundedDuration,
|
||||
Notice = notice,
|
||||
ServiceDescription = Model.ServiceCategories.FirstOrDefault()?.ServiceDescriptions.FirstOrDefault()
|
||||
};
|
||||
|
||||
var supportConceptsForGroupBooking = Model.SupportConcepts.Where(sc => sc.SupportConceptOid.HasValue && supportConceptList.Any(csc => csc.SupportConceptOid.Equals(sc.SupportConceptOid.Value))).ToList();
|
||||
|
||||
var costBearer2SupportConceptOids = new List<long>();
|
||||
var costBearer2SupportConcepts = new List<SupportConceptCostBearerRelDC>();
|
||||
|
||||
foreach(var supportConcept in supportConceptsForGroupBooking)
|
||||
{
|
||||
var costBearer2SupportConcept = supportConcept.CostBearerRelations.FirstOrDefault();
|
||||
|
||||
if(costBearer2SupportConcept?.CostBearer2SupportConceptOid is null)
|
||||
if(long.TryParse(sclo.CostBearer2SupportConceptOid, out var costBearer2SupportConceptRelOid))
|
||||
{
|
||||
continue;
|
||||
availableRelOids.AddIfNotIn(costBearer2SupportConceptRelOid);
|
||||
}
|
||||
});
|
||||
|
||||
if(supportConceptList.Count == 1 && employeeOids.Count == 1)
|
||||
{
|
||||
ResetBookingMode(BookingMode.SingleBookingMode);
|
||||
|
||||
Model.SelectedEmployee = Model.AllEmployees.FirstOrDefault(e => e.EmployeeOid.Equals(employeeOids.FirstOrDefault()));
|
||||
|
||||
var compactSupportConcept = supportConceptList.First();
|
||||
var supportConcept = Model.SupportConcepts.FirstOrDefault(f => f.SupportConceptOid.HasValue && f.SupportConceptOid.Value.Equals(compactSupportConcept.SupportConceptOid));
|
||||
|
||||
var serviceRecord = CreateServiceRecordFromScratch(start.Value, end.Value, supportConcept?.Customer, Model.SelectedEmployee, notice);
|
||||
|
||||
var costBearer2SupportConcept = supportConcept?.CostBearerRelations.FirstOrDefault(cbRel => cbRel.CostBearer2SupportConceptOid.HasValue && availableRelOids.Contains(cbRel.CostBearer2SupportConceptOid.Value));
|
||||
|
||||
LoadSupportConceptThings(costBearer2SupportConcept?.CostBearer2SupportConceptOid ?? -2);
|
||||
|
||||
serviceRecord.CostBearer = costBearer2SupportConcept?.CostBearer;
|
||||
serviceRecord.CostBearer2SupportConceptOid = costBearer2SupportConcept?.CostBearer2SupportConceptOid;
|
||||
serviceRecord.ServiceDescription = Model.SelectedServiceDescription;
|
||||
|
||||
if(Model.SelectedServiceDescription != null)
|
||||
{
|
||||
Model.SelectedServiceRecord = serviceRecord;
|
||||
}
|
||||
}
|
||||
else // Gruppenbuchung
|
||||
{
|
||||
ResetBookingMode(BookingMode.GroupBookingMode);
|
||||
|
||||
Model.GroupBookingSelectedEmployees = Model.AllEmployees.Where(w => employeeOids.Contains(w.EmployeeOid)).ToList();
|
||||
|
||||
var roundedDuration = (int) ((end - start)?.TotalMinutes ?? 0);
|
||||
|
||||
Model.SelectedServiceRecord = new ServiceRecordDC()
|
||||
{
|
||||
Start = start,
|
||||
End = end,
|
||||
RoundedDuration = roundedDuration,
|
||||
Notice = notice,
|
||||
ServiceDescription = Model.GetSelectedOrFirstServiceDescription()
|
||||
};
|
||||
|
||||
var supportConceptsForGroupBooking = Model.SupportConcepts.Where(sc => sc.SupportConceptOid.HasValue && supportConceptList.Any(csc => csc.SupportConceptOid.Equals(sc.SupportConceptOid.Value))).ToList();
|
||||
|
||||
var costBearer2SupportConceptOids = new List<long>();
|
||||
var costBearer2SupportConcepts = new List<SupportConceptCostBearerRelDC>();
|
||||
|
||||
foreach(var supportConcept in supportConceptsForGroupBooking)
|
||||
{
|
||||
var costBearer2SupportConcept = supportConcept?.CostBearerRelations.FirstOrDefault(cbRel => cbRel.CostBearer2SupportConceptOid.HasValue && availableRelOids.Contains(cbRel.CostBearer2SupportConceptOid.Value));
|
||||
|
||||
if(costBearer2SupportConcept?.CostBearer2SupportConceptOid is null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
costBearer2SupportConceptOids.AddIfNotIn(costBearer2SupportConcept.CostBearer2SupportConceptOid.Value);
|
||||
costBearer2SupportConcepts.AddIfNotIn(costBearer2SupportConcept);
|
||||
}
|
||||
|
||||
costBearer2SupportConceptOids.AddIfNotIn(costBearer2SupportConcept.CostBearer2SupportConceptOid.Value);
|
||||
costBearer2SupportConcepts.AddIfNotIn(costBearer2SupportConcept);
|
||||
}
|
||||
if(costBearer2SupportConceptOids.Any())
|
||||
{
|
||||
Model.GroupBookingSelectedCostbearerRelOids = costBearer2SupportConceptOids;
|
||||
Model.SelectedConceptCostBearerRelations = costBearer2SupportConcepts;
|
||||
Model.GroupBookingSelectedSupportConcepts = supportConceptsForGroupBooking;
|
||||
}
|
||||
|
||||
if(costBearer2SupportConceptOids.Any())
|
||||
{
|
||||
Model.GroupBookingSelectedCostbearerRelOids = costBearer2SupportConceptOids;
|
||||
Model.SelectedConceptCostBearerRelations = costBearer2SupportConcepts;
|
||||
Model.GroupBookingSelectedSupportConcepts = supportConceptsForGroupBooking;
|
||||
LoadServiceCategoriesToModel(null);
|
||||
|
||||
LoadGoals();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4560,7 +4484,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
|
||||
var serviceRecord = Model.GetServiceRecord(serviceRecordOid);
|
||||
|
||||
var hilfeplan = Model.SelectedSupportConceptListObject.NameAndDateOfBirth + " | " + Model.SelectedSupportConceptListObject.SupportConceptTimeSpan;
|
||||
var hilfeplan = Model.SelectedCostBearer2SupportConceptRelListObject.NameAndDateOfBirth + " | " + Model.SelectedCostBearer2SupportConceptRelListObject.SupportConceptTimeSpan;
|
||||
var leistung = serviceRecord.ServiceDescription.Name;
|
||||
var kategorie = serviceRecord.ServiceDescription.Category;
|
||||
var employee = $"{serviceRecord.Employee.FirstName} {serviceRecord.Employee.LastName}";
|
||||
@@ -4616,15 +4540,15 @@ namespace BeWoPlanerMobil.Controllers
|
||||
if(Model is null)
|
||||
{
|
||||
TempData[TempDataConstants.DoLogoutKey] = true;
|
||||
return PartialView("Category2ServiceDescriptionPartial", Model);
|
||||
return PartialView("Category2ServiceDescriptionPartial");
|
||||
}
|
||||
|
||||
if(long.TryParse(categoryOidStr, out var categoryOid))
|
||||
{
|
||||
Model.SelectedServiceCategory = Model.Categories2Descriptions.FirstOrDefault(f => f.Key?.ServiceCategoryOid != null && f.Key.ServiceCategoryOid.Value.Equals(categoryOid)).Key;
|
||||
Model.SelectedServiceCategoryOid = Model.SelectedServiceCategory?.ServiceCategoryOid;
|
||||
//Model.SelectedServiceCategoryOid = Model.SelectedServiceCategory?.ServiceCategoryOid;
|
||||
Model.SelectedServiceDescription = null;
|
||||
Model.SelectedServiceDescriptionOid = null;
|
||||
//Model.SelectedServiceDescriptionOid = null;
|
||||
|
||||
if(Model.SelectedServiceCategory is null)
|
||||
{
|
||||
@@ -4634,7 +4558,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
var selectedServiceDescription = Model.Categories2Descriptions[Model.SelectedServiceCategory].OrderBy(sd => sd.Position).ThenBy(sd => sd.ServiceDescriptionOid).FirstOrDefault();
|
||||
|
||||
Model.SelectedServiceDescription = selectedServiceDescription;
|
||||
Model.SelectedServiceDescriptionOid = selectedServiceDescription?.ServiceDescriptionOid;
|
||||
//Model.SelectedServiceDescriptionOid = selectedServiceDescription?.ServiceDescriptionOid;
|
||||
}
|
||||
|
||||
return PartialView("Category2ServiceDescriptionPartial", Model);
|
||||
|
||||
Reference in New Issue
Block a user