Gruppenbuchung im Mobilklienten -> Validierung serverseitig fertig. Die Meldungen im JavaScript müssen noch angepasst werden.
This commit is contained in:
@@ -80,6 +80,7 @@
|
||||
<Reference Include="System.Web" />
|
||||
<Reference Include="System.Web.Abstractions" />
|
||||
<Reference Include="System.Web.Routing" />
|
||||
<Reference Include="System.Xaml" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="System.Configuration" />
|
||||
<Reference Include="System.Web.Services" />
|
||||
@@ -176,8 +177,10 @@
|
||||
</Compile>
|
||||
<Compile Include="Util\JSONCustomer.cs" />
|
||||
<Compile Include="Util\MobileUtils.cs" />
|
||||
<Compile Include="Util\ServiceRecord2Validation.cs" />
|
||||
<Compile Include="Util\TextbausteinDisplayItem.cs" />
|
||||
<Compile Include="Util\Umfeldsperson.cs" />
|
||||
<Compile Include="Util\ValidationResult.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Content\BeWoMobileStyle.css" />
|
||||
|
||||
@@ -4,7 +4,7 @@ using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Web.Mvc;
|
||||
|
||||
using BeWo.Service.DCEntityMapper;
|
||||
using BeWo.Service.ServiceImplementations;
|
||||
|
||||
using BeWoPlanerMobil.Models;
|
||||
@@ -23,6 +23,7 @@ using BS.Shared.Services;
|
||||
|
||||
using DevExpress.XtraScheduler;
|
||||
using DevExpress.XtraScheduler.Compatibility;
|
||||
using ServiceRecordDC = BS.Shared.DataContracts.ServiceRecordDC;
|
||||
|
||||
namespace BeWoPlanerMobil.Controllers
|
||||
{
|
||||
@@ -623,23 +624,22 @@ namespace BeWoPlanerMobil.Controllers
|
||||
}
|
||||
}
|
||||
|
||||
public void SetSaveSignature(bool save)
|
||||
public string SetSaveSignature(bool save)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (Model == null)
|
||||
{
|
||||
SerializeObject("SessionTimeout");
|
||||
}
|
||||
else
|
||||
{
|
||||
Model.SaveSignature = save;
|
||||
return SerializeObject("SessionTimeout");
|
||||
}
|
||||
|
||||
Model.SaveSignature = save;
|
||||
return " ";
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
log.Error(e.Message, e);
|
||||
SerializeObject("Fehler 777: Fail Error Compilation");
|
||||
return SerializeObject("Fehler 777: Fail Error Compilation");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1137,8 +1137,8 @@ namespace BeWoPlanerMobil.Controllers
|
||||
Model.SelectedSupportConcepts = new List<SupportConceptDC>();
|
||||
Model.SelectedEmployees = new List<CompactEmployeeDC>();
|
||||
|
||||
//TODO: Die Dauer neuberechnen und die einzelnen ServiceRecords an die Änderungen, die gemacht wurden, anpassen. (Model.SelectedServiceRecord)
|
||||
//TODO: Fast alle Eigenschaften von Model.NewServiceRecord kopieren
|
||||
ResetGroupBookingMode(false);
|
||||
Model.IsInEditingMode = false;
|
||||
|
||||
return RedirectToActionPermanent("Main");
|
||||
}
|
||||
@@ -1621,13 +1621,15 @@ namespace BeWoPlanerMobil.Controllers
|
||||
|
||||
[HttpPost]
|
||||
[Authorize]
|
||||
public ActionResult DeleteServiceRecord()
|
||||
public ActionResult DeleteServiceRecord(FormCollection formCollection)
|
||||
{
|
||||
if (Model == null)
|
||||
{
|
||||
return RedirectToActionPermanent("Index", "Login");
|
||||
}
|
||||
|
||||
Model.ServiceRecordOidToDelete = long.Parse(formCollection["serviceRecordOidHolder"]);
|
||||
|
||||
if (Model.ServiceRecordOidToDelete != null && Model.ServiceRecordOidToDelete > 0 && MobileSessionFacade.LoggedInUser.UserGroups.Any(a => a.Rights.Any(f => f.RightType.Equals(UserRightType.ServiceRecordView_Delete))))
|
||||
{
|
||||
var serviceRecordDC = Model.ServiceRecords.FirstOrDefault(f => f.ServiceRecordOid != null && f.ServiceRecordOid.Value.Equals(Model.ServiceRecordOidToDelete));
|
||||
@@ -1641,6 +1643,8 @@ namespace BeWoPlanerMobil.Controllers
|
||||
}
|
||||
}
|
||||
|
||||
ResetGroupBookingMode(false);
|
||||
|
||||
return RedirectToActionPermanent("Main");
|
||||
}
|
||||
|
||||
@@ -1690,15 +1694,16 @@ namespace BeWoPlanerMobil.Controllers
|
||||
}
|
||||
}
|
||||
|
||||
public void SetServiceDescription(long pServiceDescriptionOid)
|
||||
public string SetServiceDescription(long pServiceDescriptionOid)
|
||||
{
|
||||
if (Model == null)
|
||||
{
|
||||
RedirectToActionPermanent("Index", "Login");
|
||||
return;
|
||||
return " ";
|
||||
}
|
||||
|
||||
Model.SelectedServiceDescriptionOid = pServiceDescriptionOid;
|
||||
return " ";
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
@@ -1789,6 +1794,9 @@ namespace BeWoPlanerMobil.Controllers
|
||||
Model.SelectedServiceRecord = serviceRecord;
|
||||
Model.SelectedSupportConcepts.Clear();
|
||||
Model.SelectedEmployees.Clear();
|
||||
Model.SelectedCostbearerRelOids.Clear();
|
||||
|
||||
var relationOids = new List<long>();
|
||||
|
||||
if (serviceRecord?.GroupOid != null)
|
||||
{
|
||||
@@ -1797,7 +1805,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
if(serviceRecordGroup != null)
|
||||
{
|
||||
employees.AddRangeIfElementsNotIn(serviceRecordGroup.ServiceRecordList.Select(s => s.Employee));
|
||||
var relationOids = serviceRecordGroup.ServiceRecordList.Select(s => s.CostBearer2SupportConceptOid.Value).ToList();
|
||||
relationOids = serviceRecordGroup.ServiceRecordList.Select(s => s.CostBearer2SupportConceptOid.Value).ToList();
|
||||
var costBearerRelations = CustomerService.GetSupportConceptCostBearerRelationsById(relationOids);
|
||||
|
||||
foreach(var rel in costBearerRelations)
|
||||
@@ -1812,12 +1820,12 @@ namespace BeWoPlanerMobil.Controllers
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Model.SelectedCostbearerRelOids.AddRangeIfElementsNotIn(relationOids);
|
||||
|
||||
Model.SelectedSupportConcepts = supportConcepts;
|
||||
Model.SelectedEmployees = employees;
|
||||
|
||||
// TODO: Wie bei SetGroupBooking
|
||||
//LoadServiceCategoriesForGroupBooking();
|
||||
Model.ServiceCategories = CreateServiceCategoryModels(OperationsService.GetAllServiceDescriptions());
|
||||
|
||||
return RedirectToActionPermanent("Main");
|
||||
@@ -1923,11 +1931,11 @@ namespace BeWoPlanerMobil.Controllers
|
||||
|
||||
checkSR.ServiceDescription = OperationsService.GetServiceDescription(Model.SelectedServiceDescriptionOid.Value);
|
||||
|
||||
var man = OperationsService.GetMandator();
|
||||
var s = man.Settings ?? string.Empty;
|
||||
var einzeln = s.Split(';');
|
||||
var g = einzeln.ToList().FirstOrDefault(f => f.Contains("MaxDaysEditServiceRecordsAllowed"));
|
||||
var t = g != null ? int.Parse(g.Split('=')[1]) : 0;
|
||||
var mandator = OperationsService.GetMandator();
|
||||
var settings = mandator.Settings ?? string.Empty;
|
||||
var splitSettings = settings.Split(';');
|
||||
var maxDaysEditSRsAllowedSetting = splitSettings.ToList().FirstOrDefault(f => f.Contains("MaxDaysEditServiceRecordsAllowed"));
|
||||
var maxDaysEditSRsAllowed = maxDaysEditSRsAllowedSetting != null ? int.Parse(maxDaysEditSRsAllowedSetting.Split('=')[1]) : 0;
|
||||
|
||||
SupportConceptStatisticsDC stats = null;
|
||||
|
||||
@@ -1936,21 +1944,69 @@ namespace BeWoPlanerMobil.Controllers
|
||||
stats = OperationsService.CreateSupportConceptStatistics(Model.CostBearer2SupportConceptOid.Value, DateTime.Now);
|
||||
}
|
||||
|
||||
var result = OperationsService.ValidateServiceRecordEntry(checkSR, stats, t, false, new List<long> { checkSR.Employee.EmployeeOid });
|
||||
var valStruct = new ValidationStruct
|
||||
{
|
||||
ValidationResults = result,
|
||||
Rights = new Dictionary<int, bool>(),
|
||||
MaxDaysEditServiceRecordsAllowed = t.ToString()
|
||||
};
|
||||
var employees = new List<long> {checkSR.Employee.EmployeeOid};
|
||||
|
||||
valStruct.Rights.Add(0, MobileSessionFacade.LoggedInUser.UserGroups.Any(a => a.Rights.Any(f => f.RightType.Equals(UserRightType.ServiceRecord_AllowCreateOverlappingFLS))));
|
||||
valStruct.Rights.Add(1, MobileSessionFacade.LoggedInUser.UserGroups.Any(a => a.Rights.Any(f => f.RightType.Equals(UserRightType.ServiceRecord_AllowCreateMoreFLSThanApproved))));
|
||||
valStruct.Rights.Add(2, MobileSessionFacade.LoggedInUser.UserGroups.Any(a => a.Rights.Any(f => f.RightType.Equals(UserRightType.BookServiceRecordAfterSettlementInvoice))));
|
||||
var newResult = new ValidationResult();
|
||||
|
||||
//if (checkSR.GroupOid.HasValue)
|
||||
if(Model.IsInGroupBookingMode)
|
||||
{
|
||||
if (checkSR.GroupOid.HasValue)
|
||||
{
|
||||
var serviceRecordGroup = OperationsService.GetServiceRecordGroup(checkSR.GroupOid.Value);
|
||||
|
||||
serviceRecordGroup.ServiceRecordList.DoForEach(sr => employees.AddIfNotIn(sr.Employee.EmployeeOid));
|
||||
}
|
||||
else
|
||||
{
|
||||
Model.SelectedEmployees.DoForEach(e => employees.AddIfNotIn(e.EmployeeOid));
|
||||
}
|
||||
|
||||
var cb2scOids = (from scDc in Model.SelectedSupportConcepts where scDc.CostBearerRelations != null && scDc.CostBearerRelations.Count > 0 select scDc.CostBearerRelations[0].CostBearer2SupportConceptOid.Value).ToList();
|
||||
|
||||
var nodes = new List<FlatSupportConceptTreeNodeDC>();
|
||||
foreach (var sc in CustomerService.LoadCompactSupportConceptsById(Model.SelectedSupportConcepts.Select(s => s.SupportConceptOid.Value)))
|
||||
{
|
||||
nodes.Add(CreateFlatSupportConceptItem(sc, null));
|
||||
}
|
||||
|
||||
foreach (var node in nodes)
|
||||
{
|
||||
if (node?.SupportConceptTreeNodeDC != null)
|
||||
{
|
||||
var scDc = node.SupportConceptTreeNodeDC.SupportConcept;
|
||||
var cbDc = node.SupportConceptTreeNodeDC.CostBearer;
|
||||
var relDc = node.SupportConceptTreeNodeDC.SupportConceptCostBearerRelDC;
|
||||
|
||||
checkSR.SupportConcept = scDc;
|
||||
checkSR.CostBearer = cbDc;
|
||||
|
||||
if (relDc != null)
|
||||
{
|
||||
checkSR.CostBearer2SupportConceptOid = relDc.CostBearer2SupportConceptOid;
|
||||
}
|
||||
}
|
||||
|
||||
var result = OperationsService.ValidateServiceRecord(checkSR, stats, maxDaysEditSRsAllowed, employees, cb2scOids);
|
||||
newResult.ServiceRecord2Validations.Add(new ServiceRecord2Validation(checkSR, result));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
var result = OperationsService.ValidateServiceRecordEntry(checkSR, stats, maxDaysEditSRsAllowed, checkSR.GroupOid.HasValue, employees);
|
||||
newResult.ServiceRecord2Validations.Add(new ServiceRecord2Validation(checkSR, result));
|
||||
}
|
||||
|
||||
newResult.Rights = new Dictionary<int, bool>();
|
||||
newResult.MaxDaysEditServiceRecordsAllowed = maxDaysEditSRsAllowed.ToString();
|
||||
|
||||
newResult.Rights.Add(0, MobileSessionFacade.LoggedInUser.UserGroups.Any(a => a.Rights.Any(f => f.RightType.Equals(UserRightType.ServiceRecord_AllowCreateOverlappingFLS))));
|
||||
newResult.Rights.Add(1, MobileSessionFacade.LoggedInUser.UserGroups.Any(a => a.Rights.Any(f => f.RightType.Equals(UserRightType.ServiceRecord_AllowCreateMoreFLSThanApproved))));
|
||||
newResult.Rights.Add(2, MobileSessionFacade.LoggedInUser.UserGroups.Any(a => a.Rights.Any(f => f.RightType.Equals(UserRightType.BookServiceRecordAfterSettlementInvoice))));
|
||||
|
||||
Model.NewServiceRecord = new ServiceRecordDC();
|
||||
|
||||
return SerializeObject(valStruct);
|
||||
return SerializeObject(newResult);
|
||||
}
|
||||
|
||||
public bool CheckRightsAfterCrash(string von, string bis, bool inEditMode, string dateString, string startString, string endString, long costbearerOId, string leistung)
|
||||
@@ -2074,13 +2130,6 @@ namespace BeWoPlanerMobil.Controllers
|
||||
return true;
|
||||
}
|
||||
|
||||
private struct ValidationStruct
|
||||
{
|
||||
public List<ServiceRecordValidationResultDC> ValidationResults { get; set; }
|
||||
public Dictionary<int, bool> Rights { get; set; }
|
||||
public string MaxDaysEditServiceRecordsAllowed { get; set; }
|
||||
}
|
||||
|
||||
public void SetViewMode()
|
||||
{
|
||||
if (Model == null)
|
||||
@@ -2170,22 +2219,48 @@ namespace BeWoPlanerMobil.Controllers
|
||||
{
|
||||
var isInGroupBookingMode = "true,false" == pFormCollection["IsInGroupBookingMode"];
|
||||
|
||||
Model.IsInGroupBookingMode = isInGroupBookingMode;
|
||||
ResetGroupBookingMode(isInGroupBookingMode);
|
||||
|
||||
if(isInGroupBookingMode)
|
||||
return RedirectToAction("Main");
|
||||
}
|
||||
|
||||
private void ResetGroupBookingMode(bool pIsInGroupBookingMode)
|
||||
{
|
||||
Model.IsInGroupBookingMode = pIsInGroupBookingMode;
|
||||
|
||||
if (pIsInGroupBookingMode)
|
||||
{
|
||||
Model.SelectedSupportConcept = null;
|
||||
Model.SelectedEmployee = null;
|
||||
Model.SelectedEmployeeOid = null;
|
||||
|
||||
Model.ServiceCategories = CreateServiceCategoryModels(OperationsService.GetAllServiceDescriptions());
|
||||
|
||||
Model.SelectedEmployees.Add(MobileSessionFacade.LoggedInCompactEmployee);
|
||||
}
|
||||
else
|
||||
{
|
||||
Model.ServiceCategories.Clear();
|
||||
}
|
||||
Model.SelectedCostbearerRelOids.Clear();
|
||||
Model.SelectedEmployees.Clear();
|
||||
Model.SelectedSupportConcepts.Clear();
|
||||
|
||||
return RedirectToAction("Main");
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
@@ -2204,6 +2279,11 @@ namespace BeWoPlanerMobil.Controllers
|
||||
|
||||
public string LoadCategoryAndDescription()
|
||||
{
|
||||
if (Model.SelectedServiceRecord == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
var serviceDescriptionOid = Model.SelectedServiceRecord.ServiceDescription.ServiceDescriptionOid.ToString();
|
||||
var serviceCategoryOid = Model.SelectedServiceRecord.ServiceDescription.Category.ServiceCategoryOid.ToString();
|
||||
|
||||
@@ -2297,5 +2377,16 @@ namespace BeWoPlanerMobil.Controllers
|
||||
|
||||
return RedirectToAction("Main");
|
||||
}
|
||||
|
||||
[Authorize]
|
||||
public string ResetGroupBookingModeViaGET()
|
||||
{
|
||||
Model.IsInGroupBookingMode = false;
|
||||
Model.SelectedCostbearerRelOids.Clear();
|
||||
Model.SelectedEmployees.Clear();
|
||||
Model.SelectedSupportConcepts.Clear();
|
||||
|
||||
return MainModel.IsEmployeeSelectionVisible.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -150,29 +150,6 @@ namespace BeWoPlanerMobil.Models
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: KGW?
|
||||
//public IEnumerable<SelectListItem> SelectedSupportConceptListItemsForGroupBooking
|
||||
//{
|
||||
// get
|
||||
// {
|
||||
// var selectedSCs = new List<SelectListItem>();
|
||||
|
||||
// if(SelectedSupportConcepts != null)
|
||||
// {
|
||||
// foreach(var sc in SelectedSupportConcepts.OrderBy(sc => sc.Customer.LastName))
|
||||
// {
|
||||
// selectedSCs.AddRange(sc.CostBearerRelations.Where(w => ShowExpiredSupportConcepts || w.EndDate == null || w.EndDate.Value >= DateTime.Now).Select(cb => new SelectListItem
|
||||
// {
|
||||
// Value = cb.CostBearer2SupportConceptOid.ToString(),
|
||||
// Text = $"{sc.Customer.LastNameFirstName} | {cb.StartDate?.ToShortDateString().Remove(6, 2) ?? string.Empty}-{cb.EndDate?.ToShortDateString().Remove(6, 2) ?? string.Empty} {cb.CostBearer.Name}"
|
||||
// }));
|
||||
// }
|
||||
// }
|
||||
|
||||
// return selectedSCs;
|
||||
// }
|
||||
//}
|
||||
|
||||
public IEnumerable<SelectListItem> ServiceCategoryListItems
|
||||
{
|
||||
get
|
||||
@@ -199,26 +176,6 @@ namespace BeWoPlanerMobil.Models
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: KGW?
|
||||
// [Display(Name = "Textbaustein")]
|
||||
// public long? SelectedTextbausteinOid { get; set; }
|
||||
|
||||
// TODO: KGW?
|
||||
//public IEnumerable<SelectListItem> TextbausteinListItems
|
||||
//{
|
||||
// get
|
||||
// {
|
||||
// var result = new List<SelectListItem>();
|
||||
|
||||
// if (Textbausteine != null)
|
||||
// {
|
||||
// result.AddRange(Textbausteine.Select(item => new SelectListItem { Value = item.TextModuleOid.Value.ToString(), Text = item.Name }).ToList());
|
||||
// }
|
||||
|
||||
// return result;
|
||||
// }
|
||||
//}
|
||||
|
||||
public List<CompactCustomerDC> Customers { get; set; }
|
||||
|
||||
public List<CompactEmployeeDC> Employees { get; set; }
|
||||
@@ -252,10 +209,6 @@ namespace BeWoPlanerMobil.Models
|
||||
|
||||
public List<long> SelectedGroupOfPeopleOids { get; set; } = new List<long>();
|
||||
|
||||
// TODO: KGW
|
||||
//[Display(Name = "Gruppen")]
|
||||
//public string SelectedGroupInfo { get; set; }
|
||||
|
||||
public IEnumerable<SelectListItem> EmployeeListItems
|
||||
{
|
||||
get
|
||||
@@ -292,16 +245,13 @@ namespace BeWoPlanerMobil.Models
|
||||
|
||||
public List<CompactEmployeeDC> SelectedEmployees { get; set; } = new List<CompactEmployeeDC>();
|
||||
|
||||
// TODO: KGW
|
||||
//public List<long> SelectedCostbearer2SupportConceptOids { get; set; } = new List<long>();
|
||||
|
||||
[Display(Name = "Gruppenbuchung")]
|
||||
public bool IsInGroupBookingMode
|
||||
{
|
||||
//get => _IsInGroupBookingMode;
|
||||
get => false;
|
||||
get => _IsInGroupBookingMode;
|
||||
//get => false;
|
||||
|
||||
set
|
||||
set
|
||||
{
|
||||
_IsInGroupBookingMode = value;
|
||||
|
||||
|
||||
@@ -170,10 +170,6 @@ function initBeWoMobile(actionPath) {
|
||||
var value = (supportConceptTableHasEntries === 0 || employeesTableHasEntries === 0) ? false : true;
|
||||
|
||||
$("#anlegenEditierenBtn").prop("disabled", value);
|
||||
|
||||
hideElement($("#selectSCForm"));
|
||||
} else {
|
||||
showElement($("#selectSCForm"));
|
||||
}
|
||||
} catch(err) {
|
||||
console.log('Fehler: ' + err.message);
|
||||
|
||||
@@ -21,7 +21,7 @@ function buildCollapsibleSet(jsonString) {
|
||||
|
||||
actuallyBuildCollapsibleSet(kollektion, null);
|
||||
} catch(exception) {
|
||||
console.log('Fehler(BuildCollapsibleSet): ' + exception.message);
|
||||
console.log("Fehler(BuildCollapsibleSet): " + exception.message);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -66,9 +66,6 @@ function buildGoalTreeItem(goalItem, selectedGoalOids) {
|
||||
|
||||
collapsibleHtml += '<div style="margin-right: 0; padding-right: 0;display: block;"><input type="checkbox" style="width: auto;" onclick="updateGoals(' + goalOid + ')" id="' + goalOid + '" value="' + goalHeader + '" ' + isChecked + ' />' + goalHeader + '</div>';
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
function loadGoalsOnSuccess(json) {
|
||||
@@ -132,7 +129,7 @@ function showAjaxError(jqXHR, textStatus, errorThrown) {
|
||||
//else
|
||||
|
||||
if(jqXHR.status === 0) {
|
||||
console.log("status is 0; ajax call aborted");
|
||||
console.log("status is 0; ajax call aborted.\nError thrown: " + errorThrown + ";\nText status: " + textStatus);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -340,6 +337,28 @@ function selectServiceRecord(oid) {
|
||||
|
||||
$("#abbrechenBtn").prop("disabled", false);
|
||||
|
||||
if (isInGroupBookingMode()) {
|
||||
$("#changeBookingModeCheckBox").prop("checked", false);
|
||||
|
||||
console.log("Gruppenbuchungsmodus abgewählt");
|
||||
|
||||
makeAjaxCall("GET", window.resetGroupBookingModeViaGETUrl, function (result) {
|
||||
$("#changeBookingModeCheckBox").prop("checked", false);
|
||||
$("#leftContent input[type=checkbox]").prop("checked", false);
|
||||
$("#rightContent input[type=checkbox]").prop("checked", false);
|
||||
$("#employeeCollapsible input[type=checkbox]").prop("checked", false);
|
||||
|
||||
showElement($("#selectSCForm"));
|
||||
|
||||
if (result === "True") {
|
||||
showElement($("#singleSCEmployeeSelectionContainer"));
|
||||
}
|
||||
|
||||
hideElement($("#groupBookingOpenPopupBtn"));
|
||||
hideElement($("#groupBookingOpenEmployeeSelectionPopupBtn"));
|
||||
}, null, null);
|
||||
}
|
||||
|
||||
hideSanduhr();
|
||||
},
|
||||
error: showErrorMsg,
|
||||
@@ -385,6 +404,12 @@ function resetRecordForm() {
|
||||
|
||||
clearZED();
|
||||
|
||||
if (isInGroupBookingMode()) {
|
||||
$("#changeBookingModeCheckBox").prop("checked", false);
|
||||
showSanduhr();
|
||||
$("#groupBookingForm").submit();
|
||||
}
|
||||
|
||||
$("#start_textbox").val("").trigger("change");
|
||||
$("#ende_textbox").val("").trigger("change");
|
||||
$("#notiz_textbox").val("").trigger("change");
|
||||
@@ -403,7 +428,7 @@ function resetRecordForm() {
|
||||
var selectedCategory = $("#kategorien_select").find(":selected").val();
|
||||
|
||||
if(isInEditingMode()) {
|
||||
makeAjaxCall("POST", resetEditingModeUrl, function(response) { window.location.reload(); }, { pFormCollection: null }, null);
|
||||
makeAjaxCall("POST", window.resetEditingModeUrl, function(response) { window.location.reload(); }, { pFormCollection: null }, null);
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
@@ -471,9 +496,8 @@ function validateTimeField(id) {
|
||||
}
|
||||
}
|
||||
|
||||
recordToDelete = 0;
|
||||
function togglePopup(serviceRecordOid) {
|
||||
window.recordToDelete = serviceRecordOid;
|
||||
$("#oidHolder").val(serviceRecordOid);
|
||||
|
||||
var isShowing = $(".modalWrapper").css("display") === "none";
|
||||
var displayValue = $(".modalWrapper").css("display") === "block" ? "none" : "block";
|
||||
@@ -505,25 +529,6 @@ function toggleModalWrapper() {
|
||||
$(".modalWrapper").css("height", $(document).height());
|
||||
}
|
||||
|
||||
$(function () {
|
||||
$("#deletionForm").submit(function () {
|
||||
$.ajax({
|
||||
type: "GET",
|
||||
url: setRecordForDeletionUrl,
|
||||
data: { serviceRecordOid: recordToDelete },
|
||||
success: function () {
|
||||
return true;
|
||||
},
|
||||
error: function () {
|
||||
showAjaxError();
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
return true;
|
||||
});
|
||||
});
|
||||
|
||||
function validateServiceRecordBeforeSubmit() {
|
||||
function getLocation() {
|
||||
if (navigator.geolocation) {
|
||||
@@ -566,8 +571,10 @@ function validateServiceRecordBeforeSubmit() {
|
||||
}
|
||||
|
||||
var meldungen = $.parseJSON(json);
|
||||
console.log(meldungen);
|
||||
|
||||
var results = meldungen.ValidationResults;
|
||||
var relations = meldungen.ServiceRecord2Validations;
|
||||
var results = null;
|
||||
var allowOverlappingFLS = false;
|
||||
var allowMoreFLSThanApproved = false;
|
||||
var bookAfterSettlementInvoice = false;
|
||||
@@ -591,83 +598,90 @@ function validateServiceRecordBeforeSubmit() {
|
||||
}
|
||||
});
|
||||
|
||||
var exitLoop = false;
|
||||
for (var i = 0; i < results.length; i++) {
|
||||
if (exitLoop)
|
||||
break;
|
||||
switch (results[i].ResultType) {
|
||||
case 0:
|
||||
var msg1 = 'An dem gewählten Datum \'' + vonDatum + '\' existiert bereits ein Eintrag (' + results[i].Message + ' bei Klient/in ' + results[i].CustomerName + '). Speichern nicht möglich.';
|
||||
if (allowOverlappingFLS === true) {
|
||||
var r = confirm('An dem gewählten Datum \'' + vonDatum + '\' existiert bereits ein Eintrag (' + results[i].Message + ' bei Klient/in ' + results[i].CustomerName + '). Möchten Sie trotzdem speichern?');
|
||||
isValidRecord = r;
|
||||
exitLoop = !isValidRecord;
|
||||
} else {
|
||||
writeFatalErrorMessage(msg1);
|
||||
isValidRecord = false;
|
||||
exitLoop = true;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
var msg2 = 'An dem gewählten Datum ' + vonDatum + ' existiert bereits ein Eintrag für den ausgewählten Mitarbeiter(' + results[i].EmployeeName + '). Speichern nicht möglich.';
|
||||
if (allowOverlappingFLS === true) {
|
||||
var r2 = confirm('An dem gewählten Datum ' + vonDatum + ' existiert bereits ein Eintrag für den ausgewählten Mitarbeiter(' + results[i].EmployeeName + '). Möchten Sie trotzdem speichern?');
|
||||
isValidRecord = r2;
|
||||
exitLoop = !isValidRecord;
|
||||
} else {
|
||||
writeFatalErrorMessage(msg2);
|
||||
isValidRecord = false;
|
||||
exitLoop = true;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
writeFatalErrorMessage('Das gewählte Datum ' + vonDatum.slice(0, 10) + ' liegt außerhalb des Zeitraumes des gewählten Hilfeplans. Speichern nicht möglich.');
|
||||
|
||||
isValidRecord = false;
|
||||
exitLoop = true;
|
||||
break;
|
||||
case 3:
|
||||
var msg3 = 'Die für diesen Hilfeplan genehmigten FLS (' + results[i].ApprovedHours + ') werden mit diesem Eintrag überschritten. (' + results[i].HoursNew + ').';
|
||||
if (allowMoreFLSThanApproved === true) {
|
||||
var r3 = confirm(msg3 + " Möchten Sie trotzdem speichern?");
|
||||
isValidRecord = r3;
|
||||
exitLoop = !isValidRecord;
|
||||
} else {
|
||||
writeFatalErrorMessage(msg3);
|
||||
isValidRecord = false;
|
||||
exitLoop = true;
|
||||
for (var j = 0; j < relations.length; j++) {
|
||||
results = relations[j].ValidationResults;
|
||||
|
||||
var exitLoop = false;
|
||||
for (var i = 0; i < results.length; i++) {
|
||||
if (exitLoop) {
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
writeFatalErrorMessage('Sie können keine neuen Leistungen für den ' + vonDatum + ' dokumentieren, da bereits der ' + meldungen.MaxDaysEditServiceRecordsAllowed + '. des nachfolgenden Monats überschritten ist.');
|
||||
isValidRecord = false;
|
||||
exitLoop = true;
|
||||
break;
|
||||
case 5:
|
||||
writeFatalErrorMessage("Beim Speichern ist ein Fehler aufgetreten. Speichern nicht möglich.");
|
||||
isValidRecord = false;
|
||||
exitLoop = true;
|
||||
break;
|
||||
case 6:
|
||||
var msg6 = "Es existiert bereits eine Spitzabrechnung. Um diesen Eintrag zu berücksichtigen, muss eventuell eine neue Spitzabrechnung erstellt werden. Das Speichern ist nicht möglich.";
|
||||
if (bookAfterSettlementInvoice === true) {
|
||||
msg6 = "Sie können den Eintrag nicht bearbeiten, da bereits eine Spitzabrechnung für diesen Hilfeplan erstellt wurde. Speichern nicht möglich.";
|
||||
|
||||
switch (results[i].ResultType) {
|
||||
case 0:
|
||||
var msg1 = 'An dem gewählten Datum \'' + vonDatum + '\' existiert bereits ein Eintrag (' + results[i].Message + ' bei Klient/in ' + results[i].CustomerName + '). Speichern nicht möglich.';
|
||||
if (allowOverlappingFLS === true) {
|
||||
var r = confirm('An dem gewählten Datum \'' + vonDatum + '\' existiert bereits ein Eintrag (' + results[i].Message + ' bei Klient/in ' + results[i].CustomerName + '). Möchten Sie trotzdem speichern?');
|
||||
isValidRecord = r;
|
||||
exitLoop = !isValidRecord;
|
||||
} else {
|
||||
writeFatalErrorMessage(msg1);
|
||||
isValidRecord = false;
|
||||
exitLoop = true;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
var msg2 = 'An dem gewählten Datum ' + vonDatum + ' existiert bereits ein Eintrag für den ausgewählten Mitarbeiter(' + results[i].EmployeeName + '). Speichern nicht möglich.';
|
||||
if (allowOverlappingFLS === true) {
|
||||
var r2 = confirm('An dem gewählten Datum ' + vonDatum + ' existiert bereits ein Eintrag für den ausgewählten Mitarbeiter(' + results[i].EmployeeName + '). Möchten Sie trotzdem speichern?');
|
||||
isValidRecord = r2;
|
||||
exitLoop = !isValidRecord;
|
||||
} else {
|
||||
writeFatalErrorMessage(msg2);
|
||||
isValidRecord = false;
|
||||
exitLoop = true;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
writeFatalErrorMessage('Das gewählte Datum ' + vonDatum.slice(0, 10) + ' liegt außerhalb des Zeitraumes des gewählten Hilfeplans. Speichern nicht möglich.');
|
||||
|
||||
isValidRecord = false;
|
||||
exitLoop = true;
|
||||
break;
|
||||
case 3:
|
||||
var msg3 = 'Die für diesen Hilfeplan genehmigten FLS (' + results[i].ApprovedHours + ') werden mit diesem Eintrag überschritten. (' + results[i].HoursNew + ').';
|
||||
if (allowMoreFLSThanApproved === true) {
|
||||
var r3 = confirm(msg3 + " Möchten Sie trotzdem speichern?");
|
||||
isValidRecord = r3;
|
||||
exitLoop = !isValidRecord;
|
||||
} else {
|
||||
writeFatalErrorMessage(msg3);
|
||||
isValidRecord = false;
|
||||
exitLoop = true;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
writeFatalErrorMessage('Sie können keine neuen Leistungen für den ' + vonDatum + ' dokumentieren, da bereits der ' + meldungen.MaxDaysEditServiceRecordsAllowed + '. des nachfolgenden Monats überschritten ist.');
|
||||
isValidRecord = false;
|
||||
exitLoop = true;
|
||||
break;
|
||||
case 5:
|
||||
writeFatalErrorMessage("Beim Speichern ist ein Fehler aufgetreten. Speichern nicht möglich.");
|
||||
isValidRecord = false;
|
||||
exitLoop = true;
|
||||
break;
|
||||
case 6:
|
||||
var msg6 = "Es existiert bereits eine Spitzabrechnung. Um diesen Eintrag zu berücksichtigen, muss eventuell eine neue Spitzabrechnung erstellt werden. Das Speichern ist nicht möglich.";
|
||||
if (bookAfterSettlementInvoice === true) {
|
||||
msg6 = "Sie können den Eintrag nicht bearbeiten, da bereits eine Spitzabrechnung für diesen Hilfeplan erstellt wurde. Speichern nicht möglich.";
|
||||
}
|
||||
writeFatalErrorMessage(msg6);
|
||||
isValidRecord = false;
|
||||
exitLoop = true;
|
||||
break;
|
||||
case 7:
|
||||
var msg7 = "Sie können keine neuen Leistungen dokumentieren, da die Frist zur Bearbeitung abgelaufen ist. Das Speichern ist nicht möglich.";
|
||||
writeFatalErrorMessage(msg7);
|
||||
isValidRecord = false;
|
||||
exitLoop = true;
|
||||
break;
|
||||
default:
|
||||
writeFatalErrorMessage(results[i].Message);
|
||||
isValidRecord = false;
|
||||
exitLoop = true;
|
||||
break;
|
||||
}
|
||||
writeFatalErrorMessage(msg6);
|
||||
isValidRecord = false;
|
||||
exitLoop = true;
|
||||
break;
|
||||
case 7:
|
||||
var msg7 = "Sie können keine neuen Leistungen dokumentieren, da die Frist zur Bearbeitung abgelaufen ist. Das Speichern ist nicht möglich.";
|
||||
writeFatalErrorMessage(msg7);
|
||||
isValidRecord = false;
|
||||
exitLoop = true;
|
||||
break;
|
||||
default:
|
||||
writeFatalErrorMessage(results[i].Message);
|
||||
isValidRecord = false;
|
||||
exitLoop = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -5,10 +5,11 @@ using System.Text.RegularExpressions;
|
||||
using BeWoPlanerMobil.Models;
|
||||
using BS.Shared.Core;
|
||||
using BS.Shared.DataContracts;
|
||||
using BS.Shared.DataContracts.Compact;
|
||||
using BS.Shared.Extensions;
|
||||
|
||||
using DevExpress.XtraScheduler;
|
||||
|
||||
using DevExpress.XtraScheduler.UI;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
using static System.Int32;
|
||||
@@ -261,5 +262,71 @@ namespace BeWoPlanerMobil.Util
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
public static FlatSupportConceptTreeNodeDC CreateFlatSupportConceptItem(CompactSupportConceptDC dc, CompactOrganisationDC orga)
|
||||
{
|
||||
var flatNode = new FlatSupportConceptTreeNodeDC();
|
||||
|
||||
if (dc != null)
|
||||
{
|
||||
var treeNode = new SupportConceptTreeNodeDC {SupportConcept = dc, Customer = dc.Customer};
|
||||
|
||||
if (dc.CostBearerList.Count > 0)
|
||||
{
|
||||
CompactCostBearerDC cbDC = null;
|
||||
|
||||
if (orga != null)
|
||||
{
|
||||
foreach (var item in dc.CostBearerList)
|
||||
{
|
||||
if (orga.Equals(item.Organisation))
|
||||
{
|
||||
cbDC = item;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (cbDC == null)
|
||||
cbDC = dc.CostBearerList[0];
|
||||
|
||||
|
||||
var orgDC = new CompactOrganisationDC();
|
||||
var relDC = new SupportConceptCostBearerRelDC();
|
||||
|
||||
orgDC.CostBearerID = cbDC.CostBearerID;
|
||||
orgDC.CostBearerOid = cbDC.CostBearerOid;
|
||||
|
||||
var o = orga ?? cbDC.Organisation;
|
||||
|
||||
if (o != null)
|
||||
{
|
||||
orgDC.OrganisationOid = o.OrganisationOid;
|
||||
orgDC.Name = o.Name;
|
||||
orgDC.ActualHourlyRate = o.ActualHourlyRate;
|
||||
orgDC.ActualMinuteIntervall = o.ActualMinuteIntervall;
|
||||
orgDC.ActualRateFactor = o.ActualRateFactor;
|
||||
orgDC.CostRatePeriods = o.CostRatePeriods;
|
||||
orgDC.IsCalculatingWithFactor = o.IsCalculatingWithFactor;
|
||||
|
||||
}
|
||||
|
||||
relDC.ApprovedEndDate = cbDC.ApprovedEndDate;
|
||||
relDC.ApprovedStartDate = cbDC.ApprovedStartDate;
|
||||
relDC.CostBearer = orgDC;
|
||||
relDC.CostBearer2SupportConceptOid = cbDC.CostBearer2SupportConceptOid;
|
||||
relDC.RequestedEndDate = cbDC.RequestedEndDate;
|
||||
relDC.RequestedStartDate = cbDC.RequestedStartDate;
|
||||
relDC.Status = cbDC.SupportConceptStatus;
|
||||
relDC.SupportConcept = dc;
|
||||
relDC.AuswahlBezeichnung = cbDC.Bezeichnung;
|
||||
|
||||
treeNode.SupportConceptCostBearerRelDC = relDC;
|
||||
treeNode.CostBearer = orgDC;
|
||||
}
|
||||
|
||||
flatNode.SupportConceptTreeNodeDC = treeNode;
|
||||
}
|
||||
|
||||
return flatNode;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -53,7 +53,7 @@
|
||||
}
|
||||
|
||||
@* , new { style = "display: none;"} *@
|
||||
@using (Html.BeginForm("SetGroupBookingMode", "Main", FormMethod.Post, new { style = "display: none;" }))
|
||||
@using (Html.BeginForm("SetGroupBookingMode", "Main", FormMethod.Post, new {id = "groupBookingForm"}))
|
||||
{
|
||||
@Html.CheckBoxFor(m => m.IsInGroupBookingMode, new { onchange = "showSanduhr();this.form.submit();", id = "changeBookingModeCheckBox" })
|
||||
@Html.LabelFor(m => m.IsInGroupBookingMode, new { id = "labelForChangeBookingModeCheckBox" })
|
||||
@@ -69,8 +69,15 @@
|
||||
};" />
|
||||
|
||||
<input id="groupBookingOpenEmployeeSelectionPopupBtn" type="button" value="Mitarbeiter" onclick="openEmployeePopup()" style="display: @if (Model.IsInGroupBookingMode) { @Html.Raw("block") } else { @Html.Raw("none") };" />
|
||||
@{
|
||||
var shouldShowSingleBookingElements = "display: block";
|
||||
|
||||
@using (Html.BeginForm("SelectSupportConcept", "Main", FormMethod.Post, new { id = "selectSCForm" }))
|
||||
if (Model.IsInGroupBookingMode)
|
||||
{
|
||||
shouldShowSingleBookingElements = "display: none";
|
||||
}
|
||||
}
|
||||
@using (Html.BeginForm("SelectSupportConcept", "Main", FormMethod.Post, new { id = "selectSCForm", style= shouldShowSingleBookingElements }))
|
||||
{
|
||||
<table>
|
||||
<tr>
|
||||
@@ -88,8 +95,15 @@
|
||||
</tr>
|
||||
</table>
|
||||
}
|
||||
|
||||
<div class="combobox-label-parent" style="@{ if(!MainModel.IsEmployeeSelectionVisible || Model.IsInGroupBookingMode) { @Html.Raw("display: none;") }}" id="singleSCEmployeeSelectionContainer">
|
||||
@Html.LabelFor(m => m.SelectedEmployeeOid)
|
||||
<div class="styled-select-div">
|
||||
@Html.DropDownListFor(m => m.SelectedEmployeeOid, Model.EmployeeListItems, new { onchange = "setSelectedEmployee()", id = "employeesDropDown", @class = "dropdownlist-for" })
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div @{if (!MainModel.IsAllowedToCreateOrEditRecord) { @Html.Raw("style='height: 0; overflow: hidden; position: absolute;'") }}>
|
||||
<div @{if (!MainModel.IsAllowedToCreateOrEditRecord) { @Html.Raw("style='height: 0; overflow: hidden; position: absolute;'") }}>
|
||||
<input type="hidden" id="isInEditModeIndicator" value="@(Model.IsInEditingMode ? Html.Raw("true") : Html.Raw("false"))" />
|
||||
@using (Html.BeginForm("CreateServiceRecord", "Main", FormMethod.Post, new { id = "createSRForm" }))
|
||||
{
|
||||
@@ -273,8 +287,17 @@
|
||||
|
||||
<input value="@Model.SaveSignature.ToString()" type="hidden" id="SaveSignature" />
|
||||
<input type="hidden" id="Leistung" />
|
||||
|
||||
@{
|
||||
var shouldShowServiceRecordList = "display: block";
|
||||
|
||||
@using (Html.BeginForm("LoadServiceRecords", "Main", FormMethod.Post, new { id = "selectSCForm2" }))
|
||||
if (Model.IsInGroupBookingMode && !Model.IsInEditingMode)
|
||||
{
|
||||
shouldShowServiceRecordList = "display: none";
|
||||
}
|
||||
}
|
||||
|
||||
@using (Html.BeginForm("LoadServiceRecords", "Main", FormMethod.Post, new { id = "selectSCForm2", style = shouldShowServiceRecordList }))
|
||||
{
|
||||
<div class="combobox-label-parent" id="recordLoader_select_container" style="min-width: 120px">
|
||||
<div class="styled-select-div" id="record-loader-select-container">
|
||||
@@ -292,22 +315,29 @@
|
||||
|
||||
<hr />
|
||||
|
||||
<div class="margin-div" id="serviceRecords">
|
||||
<div class="margin-div" id="serviceRecords" style="@shouldShowServiceRecordList">
|
||||
@foreach(var record in Model.ServiceRecords)
|
||||
{
|
||||
<div class="collapsible-container">
|
||||
<input type="button" class="toggle-btn" value="@{
|
||||
if (record.Start.Value.Second == 0)
|
||||
{
|
||||
if(record.Start.Value.Date != record.End.Value.Date) {
|
||||
@(record.Start.Value.ToString("dd.MM.yyyy") + " "+ record.Start.Value.ToString(" HH:mm") + " - " + record.End.Value.ToString("dd.MM.yyyy") + " " + record.End.Value.ToString("HH:mm"))
|
||||
<input type="button" class="toggle-btn" value="@{
|
||||
var gruppenInfo = "";
|
||||
|
||||
if (record.GroupOid != null)
|
||||
{
|
||||
gruppenInfo += " Gruppe (" + record.GroupPersonCount + " Teilnehmer, " + record.GroupEmployeeCount + " Betreuer) Dauer: " + (record.End.Value - record.Start.Value).TotalMinutes;
|
||||
}
|
||||
|
||||
if (record.Start.Value.Second == 0)
|
||||
{
|
||||
if(record.Start.Value.Date != record.End.Value.Date) {
|
||||
@(record.Start.Value.ToString("dd.MM.yyyy") + " "+ record.Start.Value.ToString(" HH:mm") + " - " + record.End.Value.ToString("dd.MM.yyyy") + " " + record.End.Value.ToString("HH:mm") + (record.GroupOid != null ? gruppenInfo : ""))
|
||||
} else {
|
||||
@(record.Start.Value.ToString("dd.MM.yyyy") + " " + record.Start.Value.ToString(" HH:mm") + " - " + record.End.Value.ToString("HH:mm"))
|
||||
@(record.Start.Value.ToString("dd.MM.yyyy") + " " + record.Start.Value.ToString(" HH:mm") + " - " + record.End.Value.ToString("HH:mm") + (record.GroupOid != null ? gruppenInfo : ""))
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@(record.Start.Value.ToShortDateString())
|
||||
@(record.Start.Value.ToShortDateString() + (record.GroupOid != null ? gruppenInfo : ""))
|
||||
}
|
||||
}" @(record.GroupOid != null ? Html.Raw("style=\"background-color: #FDC784;\"") : Html.Raw("")) />
|
||||
<div style="display: none;" @(record.GroupOid != null ? Html.Raw("class=\"kollabierbarGruppenbuchung\"") : Html.Raw("class=\"kollabierbar\""))>
|
||||
@@ -319,8 +349,8 @@
|
||||
{
|
||||
<input type="text" value="@(record.ServiceRecordOid.Value)" name="hiddenElement" style="display: none"/>
|
||||
}
|
||||
@*<input type="button" class="edit-button" onclick="@("showSanduhr();" + (record.GroupOid == null ? "selectServiceRecord('" + record.ServiceRecordOid + "')" : "selectGroupBookingForEditing('" + record.ServiceRecordOid + "')"))" @{if(!MainModel.IsEditBtnVisible) { @Html.Raw("style=\"display: none;\"") }}/>*@
|
||||
<input type="button" class="edit-button" onclick="@("showSanduhr();" + ("selectServiceRecord('" + record.ServiceRecordOid) + "')")" @{if(!MainModel.IsEditBtnVisible || record.GroupOid != null) { @Html.Raw("style=\"display: none;\"") }}/>
|
||||
<input type="button" class="edit-button" onclick="@("showSanduhr();" + (record.GroupOid == null ? "selectServiceRecord('" + record.ServiceRecordOid + "')" : "selectGroupBookingForEditing('" + record.ServiceRecordOid + "')"))" @{if(!MainModel.IsEditBtnVisible) { @Html.Raw("style=\"display: none;\"") }}/>
|
||||
@*<input type="button" class="edit-button" onclick="@("showSanduhr();" + ("selectServiceRecord('" + record.ServiceRecordOid) + "')")" @{if(!MainModel.IsEditBtnVisible || record.GroupOid != null) { @Html.Raw("style=\"display: none;\"") }}/>*@
|
||||
|
||||
<input type="button" onclick="@("togglePopup('" + record.ServiceRecordOid + "')")" class="delete-button" @{if(!MainModel.IsDeleteBtnVisible) { @Html.Raw("style=\"display: none;\"") }}/>
|
||||
@{if((record.SignatureOid == null || record.SignatureOid.Equals("")) && Model.ShowSignature)
|
||||
@@ -534,6 +564,7 @@
|
||||
<div id="popupBtnDiv" class="center-aligned-text-element">
|
||||
@using (Html.BeginForm("DeleteServiceRecord", "Main", FormMethod.Post, new { id = "deletionForm" }))
|
||||
{
|
||||
<input type="hidden" name="serviceRecordOidHolder" id="oidHolder" />
|
||||
<input type="button" class="popupBtn" value="OK" onclick="submitDeletionForm()" />
|
||||
<input type="button" class="popupBtn" value="Abbrechen" onclick="togglePopup()" />
|
||||
}
|
||||
@@ -1020,7 +1051,8 @@
|
||||
setSelectedGroupServiceRecordUrl = '@Url.Action("SetSelectedGroupServiceRecord")';
|
||||
resetEditingModeUrl = '@Url.Action("ResetEditingMode")';
|
||||
loadCategoryAndDescriptionUrl = '@Url.Action("LoadCategoryAndDescription")';
|
||||
addEmployeesToGroupBookingUrl = '@Url.Action("AddEmployeesToGroupBooking")';
|
||||
addEmployeesToGroupBookingUrl = '@Url.Action("AddEmployeesToGroupBooking")';
|
||||
resetGroupBookingModeViaGETUrl = '@Url.Action("ResetGroupBookingModeViaGET")';
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -700,5 +700,9 @@ namespace BeWo.Service.ServiceContracts
|
||||
[FaultContract(typeof(BeWoFault))]
|
||||
[OperationContract]
|
||||
List<SupportConceptCostBearerRelDC> GetSupportConceptCostBearerRelationsById(IEnumerable<long> relOids);
|
||||
|
||||
[FaultContract(typeof(BeWoFault))]
|
||||
[OperationContract]
|
||||
List<CompactSupportConceptDC> LoadCompactSupportConceptsById(IEnumerable<long> pOids);
|
||||
}
|
||||
}
|
||||
@@ -3862,6 +3862,19 @@ namespace BeWo.Service.ServiceImplementations
|
||||
throw Utils.CreateBeWoFaultException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public List<CompactSupportConceptDC> LoadCompactSupportConceptsById(IEnumerable<long> pOids)
|
||||
{
|
||||
try
|
||||
{
|
||||
var originals = DAOFactory.GenericDAO.LoadByIDs<SupportConcept>(pOids);
|
||||
return MapperFactory.CompactSupportConceptDC_SupportConcept.MapToNewDCs(originals);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw Utils.CreateBeWoFaultException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
internal struct WohnheimbuchungsIntervallStruct
|
||||
|
||||
Reference in New Issue
Block a user