Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo

This commit is contained in:
2025-07-22 09:04:50 +02:00
30 changed files with 623 additions and 510 deletions

View File

@@ -389,8 +389,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Humanitas", "ReportImp\Huma
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DiakonischesWerkHerne", "ReportImp\DiakonischesWerkHerne\DiakonischesWerkHerne.csproj", "{25AE0253-30AC-4E85-9FA4-2F8FADA62787}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SabGmbH", "ReportImp\SabGmbH\SabGmbH.csproj", "{491FE69C-49BF-4003-85CE-755DE9C99E7C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BeWoWalzPaiva", "ReportImp\BeWoWalzPaiva\BeWoWalzPaiva.csproj", "{FE709CF1-6579-4A69-8E43-5C3BF7BD96D7}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AbwDziallasMuhrin", "ReportImp\AbwDziallasMuhrin\AbwDziallasMuhrin.csproj", "{4ACCB582-3B1C-42E8-B658-9D506B8620AD}"
@@ -791,8 +789,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Alloheim", "ReportImp\Alloh
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ZuhauseWohnenIrisThimm", "ReportImp\ZuhauseWohnenIrisThimm\ZuhauseWohnenIrisThimm.csproj", "{22E7F5F8-BB34-4243-896B-221F78837F83}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PetraWagnerMatthes", "ReportImp\PetraWagnerMatthes\PetraWagnerMatthes.csproj", "{644F73A6-7EA0-456D-B7BC-22F44B851812}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SKMAachen", "ReportImp\SKMAachen\SKMAachen.csproj", "{95342759-C161-4A44-8130-9740E57FE3A1}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DieLebenslotsen", "ReportImp\DieLebenslotsen\DieLebenslotsen.csproj", "{1D72670D-FC74-4806-B6B8-847BB01718B9}"
@@ -4964,30 +4960,6 @@ Global
{25AE0253-30AC-4E85-9FA4-2F8FADA62787}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{25AE0253-30AC-4E85-9FA4-2F8FADA62787}.Release|x86.ActiveCfg = Release|Any CPU
{25AE0253-30AC-4E85-9FA4-2F8FADA62787}.Release|x86.Build.0 = Release|Any CPU
{491FE69C-49BF-4003-85CE-755DE9C99E7C}.Debug|.NET.ActiveCfg = Debug|Any CPU
{491FE69C-49BF-4003-85CE-755DE9C99E7C}.Debug|.NET.Build.0 = Debug|Any CPU
{491FE69C-49BF-4003-85CE-755DE9C99E7C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{491FE69C-49BF-4003-85CE-755DE9C99E7C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{491FE69C-49BF-4003-85CE-755DE9C99E7C}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{491FE69C-49BF-4003-85CE-755DE9C99E7C}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{491FE69C-49BF-4003-85CE-755DE9C99E7C}.Debug|x86.ActiveCfg = Debug|Any CPU
{491FE69C-49BF-4003-85CE-755DE9C99E7C}.Debug|x86.Build.0 = Debug|Any CPU
{491FE69C-49BF-4003-85CE-755DE9C99E7C}.DebugRemote|.NET.ActiveCfg = Debug|Any CPU
{491FE69C-49BF-4003-85CE-755DE9C99E7C}.DebugRemote|.NET.Build.0 = Debug|Any CPU
{491FE69C-49BF-4003-85CE-755DE9C99E7C}.DebugRemote|Any CPU.ActiveCfg = Debug|Any CPU
{491FE69C-49BF-4003-85CE-755DE9C99E7C}.DebugRemote|Any CPU.Build.0 = Debug|Any CPU
{491FE69C-49BF-4003-85CE-755DE9C99E7C}.DebugRemote|Mixed Platforms.ActiveCfg = Debug|Any CPU
{491FE69C-49BF-4003-85CE-755DE9C99E7C}.DebugRemote|Mixed Platforms.Build.0 = Debug|Any CPU
{491FE69C-49BF-4003-85CE-755DE9C99E7C}.DebugRemote|x86.ActiveCfg = Debug|Any CPU
{491FE69C-49BF-4003-85CE-755DE9C99E7C}.DebugRemote|x86.Build.0 = Debug|Any CPU
{491FE69C-49BF-4003-85CE-755DE9C99E7C}.Release|.NET.ActiveCfg = Release|Any CPU
{491FE69C-49BF-4003-85CE-755DE9C99E7C}.Release|.NET.Build.0 = Release|Any CPU
{491FE69C-49BF-4003-85CE-755DE9C99E7C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{491FE69C-49BF-4003-85CE-755DE9C99E7C}.Release|Any CPU.Build.0 = Release|Any CPU
{491FE69C-49BF-4003-85CE-755DE9C99E7C}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{491FE69C-49BF-4003-85CE-755DE9C99E7C}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{491FE69C-49BF-4003-85CE-755DE9C99E7C}.Release|x86.ActiveCfg = Release|Any CPU
{491FE69C-49BF-4003-85CE-755DE9C99E7C}.Release|x86.Build.0 = Release|Any CPU
{FE709CF1-6579-4A69-8E43-5C3BF7BD96D7}.Debug|.NET.ActiveCfg = Debug|Any CPU
{FE709CF1-6579-4A69-8E43-5C3BF7BD96D7}.Debug|.NET.Build.0 = Debug|Any CPU
{FE709CF1-6579-4A69-8E43-5C3BF7BD96D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -9788,30 +9760,6 @@ Global
{22E7F5F8-BB34-4243-896B-221F78837F83}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{22E7F5F8-BB34-4243-896B-221F78837F83}.Release|x86.ActiveCfg = Release|Any CPU
{22E7F5F8-BB34-4243-896B-221F78837F83}.Release|x86.Build.0 = Release|Any CPU
{644F73A6-7EA0-456D-B7BC-22F44B851812}.Debug|.NET.ActiveCfg = Debug|Any CPU
{644F73A6-7EA0-456D-B7BC-22F44B851812}.Debug|.NET.Build.0 = Debug|Any CPU
{644F73A6-7EA0-456D-B7BC-22F44B851812}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{644F73A6-7EA0-456D-B7BC-22F44B851812}.Debug|Any CPU.Build.0 = Debug|Any CPU
{644F73A6-7EA0-456D-B7BC-22F44B851812}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{644F73A6-7EA0-456D-B7BC-22F44B851812}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{644F73A6-7EA0-456D-B7BC-22F44B851812}.Debug|x86.ActiveCfg = Debug|Any CPU
{644F73A6-7EA0-456D-B7BC-22F44B851812}.Debug|x86.Build.0 = Debug|Any CPU
{644F73A6-7EA0-456D-B7BC-22F44B851812}.DebugRemote|.NET.ActiveCfg = Debug|Any CPU
{644F73A6-7EA0-456D-B7BC-22F44B851812}.DebugRemote|.NET.Build.0 = Debug|Any CPU
{644F73A6-7EA0-456D-B7BC-22F44B851812}.DebugRemote|Any CPU.ActiveCfg = Debug|Any CPU
{644F73A6-7EA0-456D-B7BC-22F44B851812}.DebugRemote|Any CPU.Build.0 = Debug|Any CPU
{644F73A6-7EA0-456D-B7BC-22F44B851812}.DebugRemote|Mixed Platforms.ActiveCfg = Debug|Any CPU
{644F73A6-7EA0-456D-B7BC-22F44B851812}.DebugRemote|Mixed Platforms.Build.0 = Debug|Any CPU
{644F73A6-7EA0-456D-B7BC-22F44B851812}.DebugRemote|x86.ActiveCfg = Debug|Any CPU
{644F73A6-7EA0-456D-B7BC-22F44B851812}.DebugRemote|x86.Build.0 = Debug|Any CPU
{644F73A6-7EA0-456D-B7BC-22F44B851812}.Release|.NET.ActiveCfg = Release|Any CPU
{644F73A6-7EA0-456D-B7BC-22F44B851812}.Release|.NET.Build.0 = Release|Any CPU
{644F73A6-7EA0-456D-B7BC-22F44B851812}.Release|Any CPU.ActiveCfg = Release|Any CPU
{644F73A6-7EA0-456D-B7BC-22F44B851812}.Release|Any CPU.Build.0 = Release|Any CPU
{644F73A6-7EA0-456D-B7BC-22F44B851812}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{644F73A6-7EA0-456D-B7BC-22F44B851812}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{644F73A6-7EA0-456D-B7BC-22F44B851812}.Release|x86.ActiveCfg = Release|Any CPU
{644F73A6-7EA0-456D-B7BC-22F44B851812}.Release|x86.Build.0 = Release|Any CPU
{95342759-C161-4A44-8130-9740E57FE3A1}.Debug|.NET.ActiveCfg = Debug|Any CPU
{95342759-C161-4A44-8130-9740E57FE3A1}.Debug|.NET.Build.0 = Debug|Any CPU
{95342759-C161-4A44-8130-9740E57FE3A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -11540,7 +11488,6 @@ Global
{062698EA-8477-4F07-BF2A-CE4FAE4DCFA3} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{DB03F765-7CE2-40A6-B469-BCEBE61ACF9E} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{25AE0253-30AC-4E85-9FA4-2F8FADA62787} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{491FE69C-49BF-4003-85CE-755DE9C99E7C} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{FE709CF1-6579-4A69-8E43-5C3BF7BD96D7} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{4ACCB582-3B1C-42E8-B658-9D506B8620AD} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{FE14BABA-B6FD-47C8-BB38-DD4479EADA39} = {D8A691C5-146D-4613-86CC-438F02FE9106}
@@ -11741,7 +11688,6 @@ Global
{8404C9FB-662A-4676-8454-64ED3CED2014} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{D2821E8E-76BE-4865-B5B3-381457BB5D71} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{22E7F5F8-BB34-4243-896B-221F78837F83} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{644F73A6-7EA0-456D-B7BC-22F44B851812} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{95342759-C161-4A44-8130-9740E57FE3A1} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{1D72670D-FC74-4806-B6B8-847BB01718B9} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{BEAE2DED-A98E-4EF9-8390-A2432CF88E8B} = {D8A691C5-146D-4613-86CC-438F02FE9106}

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<UseIISExpress>false</UseIISExpress>

View File

@@ -16,27 +16,19 @@ namespace BeWoPlanerMobil.Controllers
{
get
{
if (!MobileSessionFacade.IsUserLoggedIn())
if(false == MobileSessionFacade.IsUserLoggedIn())
{
Logout();
return null;
}
if (_Model == null)
if(_Model != null)
{
_Model = new DevExpressSchedulerModel();
InitModel(_Model);
return _Model;
}
//if (((DevExpressSchedulerModel)Session["DevExpressSchedulerModel"])?.LoggedInEmployee is null)
//{
// _Model = new DevExpressSchedulerModel();
// InitModel(_Model);
// Session["DevExpressSchedulerModel"] = _Model;
//}
//else
//{
// _Model = (DevExpressSchedulerModel)Session["DevExpressSchedulerModel"];
//}
_Model = new DevExpressSchedulerModel();
InitModel(_Model);
return _Model;
}
@@ -45,14 +37,14 @@ namespace BeWoPlanerMobil.Controllers
[Authorize]
public ActionResult DevExpressScheduler()
{
if (!MobileSessionFacade.IsUserLoggedIn() || Model == null)
if(!MobileSessionFacade.IsUserLoggedIn() || Model == null)
{
return RedirectToActionPermanent("Index", "Login");
}
var appointments = KalenderService.LoadFilteredAppointments(
true,
Model?.LoggedInEmployee?.EmployeeOid ?? 1,
Model.LoggedInEmployee?.EmployeeOid ?? 1,
DateTime.Today.AddDays(-60),
DateTime.Today.AddDays(60),
new List<long>(),
@@ -66,6 +58,8 @@ namespace BeWoPlanerMobil.Controllers
Model.Appointments = appointments;
Model.Resources = new List<object>();
return View(Model);
}

View File

@@ -2,7 +2,6 @@
using BeWo.Data.Entities;
using BeWo.Service.DCEntityMapper;
using BeWo.Service.Plugins;
using BeWo.Service.ServiceImplementations;
using BeWo.View.Navigation.Filter;
using BeWoPlanerMobil.Models;
using BeWoPlanerMobil.Service;
@@ -15,7 +14,6 @@ using BS.Shared.Extensions;
using BS.Shared.Services;
using DevExpress.XtraScheduler;
using DevExpress.XtraScheduler.Compatibility;
using DevExpress.XtraScheduler.Native;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
@@ -95,28 +93,27 @@ namespace BeWoPlanerMobil.Controllers
Model.GroupsOfPeople = EmployeeService.GetAllGroups(LoggedInEmployee.EmployeeOid).OrderBy(gop => gop.Name).ToList();
Model.Dokutypes = ValueListService.GetAllValueListEntrysByType(ValueListEntryType.DocumentType);
if (Model.Dokutypes != null)
if(Model.Dokutypes != null)
{
Model.Dokutypes = Model.Dokutypes.OrderBy(s => s.ValueListEntryOid).ToArray();
}
//Load Employees
if (Model.AllEmployees is null)
if(Model.AllEmployees is null)
{
//Model.AllEmployees = EmployeeService.GetAllActiveEmployeesCompact().OrderBy(e => e.LastName).ToList();
Model.AllEmployees = EmployeeService.GetAllCompactEmployees().Where(e => e.ActivationType == ActivationTypeId.Active).OrderBy(e => e.LastName).ToList();
}
if (Model.EmployeesForGroupAndMultiBooking is null)
if(Model.EmployeesForGroupAndMultiBooking is null)
{
Model.EmployeesForGroupAndMultiBooking = Model.AllEmployees;
}
if (LoggedInUser.HasRight(UserRightType.ServiceRecord_AllowCreationForOtherEmployees))
if(LoggedInUser.HasRight(UserRightType.ServiceRecord_AllowCreationForOtherEmployees))
{
Model.Employees = Model.AllEmployees;
}
else if (LoggedInUser.HasRight(UserRightType.ServiceRecord_AllowCreationForOtherTeamMember) && Model.LoggedInEmployee.EmployeeOid != null)
else if(LoggedInUser.HasRight(UserRightType.ServiceRecord_AllowCreationForOtherTeamMember) && Model.LoggedInEmployee.EmployeeOid != null)
{
Model.Employees = EmployeeService.GetAllTeamMember(LoggedInUser.Employee).Where(e => e.ActivationType == ActivationTypeId.Active).ToList();
}
@@ -138,9 +135,9 @@ namespace BeWoPlanerMobil.Controllers
public void CreateModelSupportConceptListObjects(bool forceReload)
{
//Load SupportConcepts
if (Model.SupportConceptListObjects == null || Model.SupportConceptListObjects.Count == 0 || forceReload || (Model.SelectedCostBearerSupportConceptOid.HasValue && Model.SelectedCostBearerSupportConceptOid.Value != -1))
if(Model.SupportConceptListObjects is null || Model.SupportConceptListObjects.Count == 0 || forceReload || (Model.SelectedCostBearerSupportConceptOid.HasValue && Model.SelectedCostBearerSupportConceptOid.Value != -1))
{
if (Model.LoggedInEmployee?.EmployeeOid.HasValue ?? false)
if(Model.LoggedInEmployee?.EmployeeOid.HasValue ?? false)
{
//Model.SupportConcepts = new List<CompactSupportConceptDC>();
@@ -153,21 +150,16 @@ namespace BeWoPlanerMobil.Controllers
Model.SupportConcepts = new List<CompactSupportConceptDC>();
}
if (Model.ShowExpiredSupportConcepts == false)
if(Model.ShowExpiredSupportConcepts == false)
{
Model.SupportConcepts = Model.SupportConcepts.Where(sc =>
{
var endDate = sc.EndDate;
return endDate is null || endDate.Value >= DateTime.Now.Date;
}).ToList();
Model.SupportConcepts = Model.SupportConcepts.Where(sc => sc.EndDate is null || sc.EndDate.Value >= DateTime.Now.Date).ToList();
}
foreach (var sc in Model.SupportConcepts)
foreach(var supportConcept in Model.SupportConcepts)
{
if (sc.Goals == null)
if(supportConcept.Goals is null)
{
sc.Goals = new List<ValueListEntryDC>();
supportConcept.Goals = new List<ValueListEntryDC>();
}
}
//Einfachbuchung
@@ -190,8 +182,8 @@ namespace BeWoPlanerMobil.Controllers
{
foreach (var cb in sc.CostBearerList)
{
String customerName = $"{sc.Customer.SimpleDescription} {(sc.Customer.DateOfBirth.HasValue ? "*" + sc.Customer.DateOfBirth.Value.ToString("dd.MM.yyyy") : string.Empty)}";
String scNameSingle = $"{cb.Bezeichnung} {sc.StartDate?.ToShortDateString().Remove(6, 2) ?? string.Empty}-{sc.EndDate?.ToShortDateString().Remove(6, 2) ?? string.Empty} {cb.OrganisationName}"; // {Model.GetIsNotApproved(sc)}";
var customerName = $"{sc.Customer.SimpleDescription} {(sc.Customer.DateOfBirth.HasValue ? "*" + sc.Customer.DateOfBirth.Value.ToString("dd.MM.yyyy") : string.Empty)}";
var scNameSingle = $"{cb.Bezeichnung} {sc.StartDate?.ToShortDateString().Remove(6, 2) ?? string.Empty}-{sc.EndDate?.ToShortDateString().Remove(6, 2) ?? string.Empty} {cb.OrganisationName}"; // {Model.GetIsNotApproved(sc)}";
scNameSingle = sc.CostBearer;
allCostBearerRelationsMultiBooking.Add(new MokSupportConceptListObject(sc.SupportConceptOid, sc.CostBearerRelOids[0], sc.IsAboutToExpire, sc.ExpiresIn3MonthOrLess)
@@ -217,8 +209,6 @@ namespace BeWoPlanerMobil.Controllers
private void SetSelectedObjects()
{
Model.SelectedEmployee = Model.SelectedEmployeeOid.HasValue ?
Model.AllEmployees.First(f => f.EmployeeOid.Equals(Model.SelectedEmployeeOid.Value)) :
LoggedInUser.Employee;
@@ -257,25 +247,24 @@ namespace BeWoPlanerMobil.Controllers
Model.HasAnyRatingTypes = Model.HasRightToRateGoals && Model.GoalRatingTypes.Any();
if (Model.GroupBookingSelectedCostBearerSupportConceptOids.Count > 0)
if(Model.GroupBookingSelectedCostBearerSupportConceptOids.Count > 0)
{
Model.GroupBookingSelectedCostBearerSupportConcepts = CustomerService.GetSupportConceptCostBearerRelationsById(Model.GroupBookingSelectedCostBearerSupportConceptOids);
}
Model.GroupBookingSelectedEmployees = Model.AllEmployees.Where(employee => Model.GroupBookingSelectedEmployeeOids.Contains(employee.EmployeeOid)).ToList();
//Model.Group = Model.SupportConceptListObjectsForGroupBooking.Where(s => Model.GroupBookingSelectedSupportConceptOids.Contains(s.SupportConceptOid.Value)).ToList();
if (Model.SelectedCostBearerSupportConceptOid.HasValue && Model.SelectedCostBearerSupportConceptOid != -1)
if(Model.SelectedCostBearerSupportConceptOid.HasValue && Model.SelectedCostBearerSupportConceptOid != -1)
{
LoadSupportConceptThings(Model.SelectedCostBearerSupportConceptOid, true);
LoadPaginatedServiceRecordsToModel(Model.CurrentPage);
}
else if (Model.IsInGroupBookingMode || Model.IsInMultiBookingMode)
else if(Model.IsInGroupBookingMode || Model.IsInMultiBookingMode)
{
LoadSupportConceptThings(null, true);
}
if (Model.AllGoals != null)
if(Model.AllGoals != null)
{
if (Model.SelectedGoals.Count == 0 && Model.SelectedGoalOids.Count > 0) // Diese Abfrage muss bleiben, sonst werden vorher gewählte Bewertungen überschrieben
{
@@ -284,11 +273,10 @@ namespace BeWoPlanerMobil.Controllers
}
if (Model.IsInEditingMode && Model.SelectedServiceRecordOid.HasValue)
if(Model.IsInEditingMode && Model.SelectedServiceRecordOid.HasValue)
{
Model.SelectedServiceRecord = Model.ServiceRecords.FirstOrDefault(sr => sr.ServiceRecordOid.Equals(Model.SelectedServiceRecordOid.Value));
}
}
private void InitSettings()
@@ -2110,10 +2098,14 @@ namespace BeWoPlanerMobil.Controllers
private void LoadServiceCategoriesToModel(List<SupportConceptTreeNodeDetailInfoDC> infos)
{
Model.Categories2Descriptions = new Dictionary<ServiceCategoryDC, List<ServiceDescriptionDC>>();
if (infos != null && infos.Count > 0)
if(infos is null)
{
infos = new List<SupportConceptTreeNodeDetailInfoDC>();
}
if(infos.Count > 0)
{
Model.Categories2Descriptions = CreateServiceCategory2ServiceDescription(infos);
}
@@ -2121,7 +2113,6 @@ namespace BeWoPlanerMobil.Controllers
{
//Sonst ohne Hilfeplan
var allServiceDescriptions = OperationsService.GetAllServiceDescriptions();
allServiceDescriptions.AsParallel().DoForEach(serviceDescription =>
{
@@ -2130,7 +2121,6 @@ namespace BeWoPlanerMobil.Controllers
Model.Categories2Descriptions.AddOrUpdateValueInDictionary(serviceDescription.Category, serviceDescription);
}
});
}
SelectFirstServiceDescription();
@@ -2138,21 +2128,21 @@ namespace BeWoPlanerMobil.Controllers
private void SelectFirstServiceDescription()
{
if (Model?.Categories2Descriptions is null || Model.Categories2Descriptions.Count == 0)
if(Model?.Categories2Descriptions is null || Model.Categories2Descriptions.Count == 0)
{
UpdateSelectedServiceCategorieAndDescription(null, null);
return;
}
//Nur, wenn Kategorie und Leistung null sind oder nicht in der Liste alle Kategorien enthalten sind, soll weiter unten die erste Leistung in der Liste gesetzt werden
if (Model.SelectedServiceCategoryOid.HasValue && Model.SelectedServiceDescriptionOid.HasValue)
if(Model.SelectedServiceCategoryOid.HasValue && Model.SelectedServiceDescriptionOid.HasValue)
{
var cat = Model.Categories2Descriptions.Keys.Where(c => c.ServiceCategoryOid == Model.SelectedServiceCategoryOid).FirstOrDefault();
if (cat != null)
var cat = Model.Categories2Descriptions.Keys.FirstOrDefault(c => c.ServiceCategoryOid == Model.SelectedServiceCategoryOid);
if(cat != null)
{
var desc = Model.Categories2Descriptions[cat].Where(d => d.ServiceDescriptionOid == Model.SelectedServiceDescriptionOid).FirstOrDefault();
var desc = Model.Categories2Descriptions[cat].FirstOrDefault(d => d.ServiceDescriptionOid == Model.SelectedServiceDescriptionOid);
if (desc != null)
if(desc != null)
{
//Setzte Objekte im Model, sonst wird unten die erste Leistung gesetzt
Model.SelectedServiceCategory = cat;
@@ -2163,8 +2153,6 @@ 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 is null)
@@ -2187,7 +2175,6 @@ namespace BeWoPlanerMobil.Controllers
Model.SelectedServiceDescriptionOid = Model.SelectedServiceDescription?.ServiceDescriptionOid;
}
private Dictionary<ServiceCategoryDC, List<ServiceDescriptionDC>> CreateServiceCategory2ServiceDescription(List<SupportConceptTreeNodeDetailInfoDC> nodes)
{
var result = new Dictionary<ServiceCategoryDC, List<ServiceDescriptionDC>>();
@@ -3274,10 +3261,10 @@ namespace BeWoPlanerMobil.Controllers
}
[Authorize]
public ActionResult RedirectToDebuggingTools()
public ActionResult RedirectToDevTools()
{
#if DEBUG
return RedirectToActionPermanent("DebuggingTools", "DebuggingTools");
return RedirectToActionPermanent("DevTools", "DevTools");
#endif
return RedirectToMain();
}

View File

@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web.Mvc;
using BeWo.Data.Entities;
using BeWo.Report;
using BeWo.Service.Plugins;
using BeWo.View.Navigation.Filter;
@@ -173,10 +174,7 @@ namespace BeWoPlanerMobil.Controllers
Model.AllTeamsForQueries = EmployeeService.GetAllActiveCompactTeamsForEmployee(null);
Model.AllServiceCategoriesForQueries = OperationsService.GetAllServiceCategories();
}
#endif
if (Model.HasRightToViewMitarbeiterstundenkonto)
@@ -187,8 +185,6 @@ namespace BeWoPlanerMobil.Controllers
Value = "1"
});
}
#if !DEBUG
Model.SelectedReportType = ReportType.Mitarbeiterstundenkonto;
#endif
@@ -585,6 +581,11 @@ namespace BeWoPlanerMobil.Controllers
[Authorize]
public ActionResult SelectQueryParameter(long? objectOid, int parameterType, long? parameterOid, string textValue)
{
if(Model?.SelectedQueryOid.HasValue ?? false)
{
Model.SelectedQuery = Model.Queries.FirstOrDefault(q => q.Oid.Equals(Model.SelectedQueryOid.Value));
}
if(Model?.SelectedQuery is null)
{
TempData[TempDataConstants.DoLogoutKey] = true;

View File

@@ -731,9 +731,9 @@ namespace BeWoPlanerMobil.Controllers
var durationString = formCollection["Duration"];
var intervalStartDateString = formCollection["IntervalStart"].Substring(0, 10);
var intervalStartTimeString = formCollection["IntervalStartTime"];
var intervalStartTimeString = formCollection["IntervalStart"].Substring(11, 5);
var intervalEndDateString = formCollection["IntervalEnd"].Substring(0, 10);
var intervalEndTimeString = formCollection["IntervalEndTime"];
var intervalEndTimeString = formCollection["IntervalEnd"].Substring(11, 5);
if(int.TryParse(durationString, out var intervalDuration) && DateTime.TryParse($"{intervalStartDateString} {intervalStartTimeString}", out var intervalStart) && DateTime.TryParse($"{intervalEndDateString} {intervalEndTimeString}", out var intervalEnd) && Model.LoggedInEmployee.EmployeeOid.HasValue)
{

View File

@@ -7,6 +7,7 @@ namespace BeWoPlanerMobil.Models
{
public IEnumerable Appointments { get; set; }
public IEnumerable Resources { get; set; }
public string Type { get; set; }
}
public class CustomAppointmentTemplateContainer : AppointmentFormTemplateContainer

View File

@@ -268,6 +268,12 @@ namespace BeWoPlanerMobil.Models
set => MainSessionModel.LastCreatedServiceRecordOid = value;
}
public List<long> SupportConceptOids
{
get => MainSessionModel.SupportConceptOids;
set => MainSessionModel.SupportConceptOids = value;
}
public List<CompactSupportConceptDC> SupportConcepts { get; set; }
public List<TextModuleDC> Textbausteine { get; set; } = new List<TextModuleDC>();

View File

@@ -37,6 +37,7 @@ namespace BeWoPlanerMobil.Models
public IList<MokSupportConceptListObject> SupportConceptListObjects { get; internal set; }
public bool IsInTransferMode { get; internal set; }
public IList<MokZiel> SelectedGoals { get; internal set; }
public List<long> SupportConceptOids { get; set; }
public void ResetValues()
{
@@ -81,6 +82,8 @@ namespace BeWoPlanerMobil.Models
TransferringAppointmentOid = null;
SupportConceptListObjects = new List<MokSupportConceptListObject>();
SelectedGoals = new List<MokZiel>();
SupportConceptOids = new List<long>();
}
}
}

View File

@@ -167,7 +167,11 @@ namespace BeWoPlanerMobil.Models
//public List<CompactEmployeeDC> SelectedEmployees { get; set; }
//public List<CompactTeamDC> SelectedTeams { get; set; }
public long? SelectedQueryOid { get { return ReportViewerSessionModel.SelectedQueryOid; } set { ReportViewerSessionModel.SelectedQueryOid = value; } }
public long? SelectedQueryOid
{
get => ReportViewerSessionModel.SelectedQueryOid;
set => ReportViewerSessionModel.SelectedQueryOid = value;
}
public QueryDC SelectedQuery { get; set; }

View File

@@ -405,13 +405,13 @@
var kassenbestand = ((bargeldkasse.Anfangsbestand ?? 0m) + einzahlungen - auszahlungen).ToString("0.00 €");
var startDate = DateTime.Today.GetFirstOfMonth().ToString("dd.MM.yyyy");
var endDate = DateTime.Today.GetLastOfMonth().ToString("dd.MM.yyyy");
var startDate = DateTime.Today.GetFirstOfMonth().ToString("yyyy-MM-dd");
var endDate = DateTime.Today.GetLastOfMonth().ToString("yyyy-MM-dd");
}
<div class="row">
<div class="col">
<div class="btn-group w-100" role="gorup">
<div class="btn-group btn-group-sm w-100" role="gorup">
<button class="btn btn-outline-primary" title="Transaktion hinzufügen" type="button" modal="#customer-bargeldtransaktions-form-popup" onclick="addNewBargeldtransaktion(@bargeldkasse.BargeldkassenOid)">
<i class="fas fa-plus"></i>
Transaktion
@@ -430,73 +430,41 @@
</div>
@*----- Startdatum, Enddatum und Stichtag -----*@
<div class="form-row mt-2">
<div class="col">
<div class="form-group mb-0">
<div class="input-group date ownSoft-date-picker" id="customer-bargeldkasse-start-date-picker-@bargeldkasse.BargeldkassenOid" data-target-input="nearest">
<div class="input-group-prepend">
<div class="input-group-text customer-bargeldkassen-date-prepend">
Startdatum
</div>
</div>
<input type="text" value="@startDate"
autocomplete="on"
id="customer-bargeldkasse-start-date-@bargeldkasse.BargeldkassenOid"
name="customer-bargeldkasse-start-date"
class="form-control datetimepicker-input"
data-target="#customer-bargeldkasse-start-date-picker-@bargeldkasse.BargeldkassenOid" data-toggle="datetimepicker" />
<div class="input-group-append" data-target="#customer-bargeldkasse-start-date-picker-@bargeldkasse.BargeldkassenOid" data-toggle="datetimepicker">
<div class="input-group-text px-2">
<i class="fas fa-calendar-alt"></i>
</div>
</div>
</div>
</div>
</div>
<div class="form-row mt-1">
<div class="col">
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text customer-bargeldkassen-date-prepend">
Startdatum
</span>
</div>
<input class="form-control" type="date" value="@startDate" name="customer-bargeldkasse-start-date" id="customer-bargeldkasse-start-date-@bargeldkasse.BargeldkassenOid"/>
</div>
</div>
</div>
<div class="form-row mt-1">
<div class="col">
<div class="form-group mb-0">
<div class="input-group date ownSoft-date-picker" id="customer-bargeldkasse-end-date-picker-@bargeldkasse.BargeldkassenOid" data-target-input="nearest">
<div class="input-group-prepend">
<div class="input-group-text customer-bargeldkassen-date-prepend">
Enddatum
</div>
</div>
<input type="text" value="@endDate"
autocomplete="on"
id="customer-bargeldkasse-end-date-@bargeldkasse.BargeldkassenOid"
name="customer-bargeldkasse-end-date"
class="form-control datetimepicker-input"
data-target="#customer-bargeldkasse-end-date-picker-@bargeldkasse.BargeldkassenOid"
data-toggle="datetimepicker" />
<div class="input-group-append" data-target="#customer-bargeldkasse-end-date-picker-@bargeldkasse.BargeldkassenOid" data-toggle="datetimepicker">
<div class="input-group-text px-2">
<i class="fas fa-calendar-alt"></i>
</div>
</div>
</div>
</div>
</div>
<div class="col">
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text customer-bargeldkassen-date-prepend">
Enddatum
</span>
</div>
<input class="form-control" type="date" value="@endDate" name="customer-bargeldkasse-end-date" id="customer-bargeldkasse-end-date-@bargeldkasse.BargeldkassenOid"/>
</div>
</div>
</div>
<div class="form-row mt-1">
<div class="col">
<div class="form-group mb-1">
<div class="input-group date ownSoft-date-picker" id="customer-bargeldkasse-stichtag-date-picker-@bargeldkasse.BargeldkassenOid" data-target-input="nearest">
<div class="input-group-prepend">
<div class="input-group-text customer-bargeldkassen-date-prepend">
Stichtag
</div>
</div>
<input type="text" autocomplete="on" id="customer-bargeldkasse-stichtag-date-@bargeldkasse.BargeldkassenOid" name="customer-bargeldkasse-stichtag-date" class="form-control datetimepicker-input" data-target="#customer-bargeldkasse-stichtag-date-picker-@bargeldkasse.BargeldkassenOid" data-toggle="datetimepicker" />
<div class="input-group-append" data-target="#customer-bargeldkasse-stichtag-date-picker-@bargeldkasse.BargeldkassenOid" data-toggle="datetimepicker">
<div class="input-group-text px-2">
<i class="fas fa-calendar-alt"></i>
</div>
</div>
</div>
</div>
</div>
<div class="col">
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text customer-bargeldkassen-date-prepend">
Stichtag
</span>
</div>
<input class="form-control" type="date" name="customer-bargeldkasse-stichtag-date" id="customer-bargeldkasse-stichtag-date-@bargeldkasse.BargeldkassenOid"/>
</div>
</div>
</div>
<div class="w-100">
@*----- Kassenbestand und Anfangsbestand -----*@
@@ -537,7 +505,7 @@
</div>
<div class="collapse @Html.GetCollapsibleClass(Model.Collapsibles2IsShown, $"bgts-collapsible-{bargeldkasse.BargeldkassenOid}")" id="bgts-collapsible-@bargeldkasse.BargeldkassenOid">
<div class="card-body p-1">
<table class="table table-sm table-striped w-100 mx-0 px-0 service-record-table">
<table class="bg-bewo-dev table table-sm table-striped w-100 mx-0 px-0 service-record-table">
<tbody>
@{
var count = 0;
@@ -551,7 +519,7 @@
<tr class="bg-white px-0">
<td class="mx-0 px-0" colspan="2">
<div class="btn-group w-100" role="gorup">
<div class="btn-group btn-group-sm w-100" role="group">
@if(transaktion.SignatureOid is null)
{
<button class="btn btn-outline-primary" title="Zahlungsbeleg unterschreiben" type="button" onclick="signZahlungsbeleg(@transaktion.BargeldtransaktionOid, '@zahlungsdatum', '@zahlungsart', '@betrag', '@transaktion.Belegnummer')">

View File

@@ -56,9 +56,9 @@
function validateBargeldkassenformular() {
try {
var kassenname = $("#bargeldkassennamensinput").val();
const kassenname = $("#bargeldkassennamensinput").val();
if(kassenname === undefined || kassenname === null || kassenname.length === 0) {
if(kassenname === undefined || kassenname === null || kassenname.length === 0) {
$("#bargeldkassenform-validation-alert").html("Der Kassenname darf nicht leer sein.");
$("#bargeldkassenform-validation-alert").removeClass("d-none");
@@ -87,7 +87,7 @@
});
function setAnfangsbestandsinputFilter() {
$("#bargeldkassenanfangsbestand").inputFilter(function (value) {
$("#bargeldkassenanfangsbestandsinput").inputFilter(function (value) {
return /^-?\d*[.,]?\d*$/.test(value);
});
}
@@ -112,7 +112,7 @@
try {
showSpinner();
var selectedAuszahlungsintervall = $("#auszahlungsintervall-select-input :selected").val();
const selectedAuszahlungsintervall = $("#auszahlungsintervall-select-input :selected").val();
$.get("@Url.Action("SetSelectedAuszahlungsintervall")", {auszahlungsintervall: selectedAuszahlungsintervall}).done(function() {
hideSpinner();

View File

@@ -3,13 +3,6 @@
@model CustomerModel
<script type="text/javascript">
$(function () {
$(".ownSoft-date-picker").datetimepicker({
locale: "de",
format: "L"
});
});
(function ($) {
$.fn.inputFilter = function (inputFilter) {
return this.on("input keydown keyup mouseup select mousedown contextmenu drop", function () {
@@ -81,11 +74,11 @@
try {
showSpinner();
var rawDate = $("#customer-bargeldtransaktionsdatum-input").val();
var rawArt = $("#bargeldtransaktionsarten-select-input").find(":selected").val();
var rawBetrag = $("#bargeldtransaktionsbetragsinput").val().replace(",", ".");
var belegnummer = $("#bargeldtransaktionsbelegnummerinput").val();
var notice = $("#bargeldtransaktionsnotizinput").val();
const rawDate = $("#customer-bargeldtransaktionsdatum-input").val();
const rawArt = $("#bargeldtransaktionsarten-select-input").find(":selected").val();
const rawBetrag = $("#bargeldtransaktionsbetragsinput").val().replace(",", ".");
const belegnummer = $("#bargeldtransaktionsbelegnummerinput").val();
const notice = $("#bargeldtransaktionsnotizinput").val();
$("#customer-bargeldtransaktions-form-popup").modal("hide");
@@ -106,23 +99,21 @@
function validateTransaktionsForm() {
try {
var formattedDate = ddMMyyyyToyyyyMMdd($("#customer-bargeldtransaktionsdatum-input").val());
const datum = moment($("#customer-bargeldtransaktionsdatum-input").val());
var datum = moment(formattedDate);
const betrag = $("#bargeldtransaktionsbetragsinput").val().replace(",", ".");
var betrag = $("#bargeldtransaktionsbetragsinput").val().replace(",", ".");
var validationMessage = "";
let validationMessage = "";
if(datum.isValid() === false) {
validationMessage += "Das gewählte Datum ist ungültig.<br />";
}
if ($.isNumeric(betrag) === false || betrag <= 0) {
if($.isNumeric(betrag) === false || betrag <= 0) {
validationMessage += "Der Betrag muss größer als 0,00 € sein.<br />";
}
if (validationMessage.length > 0) {
if(validationMessage.length > 0) {
$("#transaktionsform-validation-alert").html(validationMessage);
$("#transaktionsform-validation-alert").removeClass("d-none");
@@ -167,31 +158,16 @@
@* ----- Datum ----- *@
<div class="form-row mt-2">
<div class="col">
<div class="form-group mb-1">
<div class="input-group date ownSoft-date-picker" id="customer-bargeldtransaktionsdatum-picker" data-target-input="nearest">
<div class="input-group-prepend">
<div class="input-group-text customer-bargeldtransaktion-prepend">
Datum
</div>
</div>
<input type="text" value="@transaktionsdatum"
autocomplete="on"
id="customer-bargeldtransaktionsdatum-input"
name="customer-bargeldtransaktionsdatum"
class="form-control datetimepicker-input"
onchange="validateTransaktionsForm()"
data-target="#customer-bargeldtransaktionsdatum-picker"
data-toggle="datetimepicker" />
<div class="input-group-append" data-target="#customer-bargeldtransaktionsdatum-picker"
data-toggle="datetimepicker">
<div class="input-group-text px-2">
<i class="fas fa-calendar-alt"></i>
</div>
</div>
</div>
</div>
</div>
<div class="col-md">
<div class="input-group mb-1">
<div class="input-group-prepend">
<span class="input-group-text customer-bargeldtransaktion-prepend">
Datum
</span>
</div>
<input class="form-control" type="date" value="@transaktionsdatum" name="customer-bargeldtransaktionsdatum" id="customer-bargeldtransaktionsdatum-input" onchange="validateTransaktionsForm()"/>
</div>
</div>
</div>
@*----- Art -----*@

View File

@@ -1,4 +1,5 @@
@using BeWoPlanerMobil.Views.DevExpressScheduler
@using DevExpress.XtraScheduler
@model BeWoPlanerMobil.Models.DevExpressSchedulerModel
@{

View File

@@ -545,13 +545,13 @@
{
if(Model.SelectedSupportConcept != null || Model.SelectedCostBearerSupportConceptOid == -2)
{
var defaultStartDate = DateTime.Now.GetFirstOfMonth().ToShortDateString();
var defaultEndDate = DateTime.Today.ToShortDateString();
var defaultStartDate = DateTime.Now.GetFirstOfMonth().ToString("yyyy-MM-dd");
var defaultEndDate = DateTime.Today.ToString("yyyy-MM-dd");
if (Model.SelectedZeitraum != null && Model.SelectedZeitraum.StartDate.HasValue && Model.SelectedZeitraum.EndDate.HasValue)
{
defaultStartDate = Model.SelectedZeitraum.StartDate.Value.ToShortDateString();
defaultEndDate = Model.SelectedZeitraum.EndDate.Value.ToShortDateString();
defaultStartDate = Model.SelectedZeitraum.StartDate.Value.ToString("yyyy-MM-dd");
defaultEndDate = Model.SelectedZeitraum.EndDate.Value.ToString("yyyy-MM-dd");
}
<div class="container-fluid w-100 mt-3 p-0">
<div class="form-row">
@@ -615,34 +615,22 @@
<div class="form-row" id="custom-interval-container">
<div class="col-12">
<div class="form-group">
<div class="form-row">
<div class="col-6">
<div class="form-group mb-1">
<div class="input-group date" id="time-frame-start-date-picker" data-target-input="nearest">
<div class="input-group-prepend">
<span class="input-group-text">Von</span>
</div>
<input type="text" id="time-frame-start-date" name="von" onfocusout="loadServiceRecords()" class="form-control datetimepicker-input" data-target="#time-frame-start-date-picker" value="@defaultStartDate" />
<div class="input-group-append" data-target="#time-frame-start-date-picker" data-toggle="datetimepicker">
<div class="input-group-text"><i class="fas fa-calendar-alt"></i></div>
</div>
</div>
</div>
</div>
<div class="col-6">
<div class="form-group mb-1">
<div class="input-group date" id="time-frame-end-date-picker" data-target-input="nearest">
<div class="input-group-prepend">
<span class="input-group-text">Bis</span>
</div>
<input type="text" id="time-frame-end-date" name="bis" onfocusout="loadServiceRecords()" class="form-control datetimepicker-input" data-target="#time-frame-end-date-picker" value="@defaultEndDate" />
<div class="input-group-append" data-target="#time-frame-end-date-picker" data-toggle="datetimepicker">
<div class="input-group-text"><i class="fas fa-calendar-alt"></i></div>
</div>
</div>
</div>
</div>
</div>
<div class="form-row">
<div class="col mt-2">
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text">
Von
</span>
</div>
<input class="form-control" type="date" name="von" id="time-frame-start-date" onfocusout="loadServiceRecords()" value="@defaultStartDate"/>
<span class="input-group-text rounded-0 border-left-0 border-right-0">
Bis
</span>
<input class="form-control" type="date" name="bis" onfocusout="loadServiceRecords()" value="@defaultEndDate"/>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@@ -16,23 +16,6 @@
}
<script type="text/javascript">
$(function () {
$("#query-date-picker").datetimepicker({
locale: "de",
format: "L"
});
$("#query-date-range-start-picker").datetimepicker({
locale: "de",
format: "L"
});
$("#query-date-range-end-picker").datetimepicker({
locale: "de",
format: "L"
});
});
$(document).ready(function() {
window.calcPrependWidth();
});
@@ -354,26 +337,21 @@
var dateValue = string.Empty;
if(Model.SelectedValues.ContainsKey(parameterOid) && Model.SelectedValues[parameterOid].Parameter is DateTime queryDate)
{
dateValue = queryDate.ToString("dd.MM.yyyy");
dateValue = queryDate.ToString("yyyy-MM-dd");
}
<div class="form-row">
<div class="col-md">
<div class="form-group">
<div class="input-group date" id="query-date-picker" data-target-input="nearest">
<div class="input-group-prepend">
<div class="input-group-text prepend-input-group-text">
Datum
</div>
</div>
<input onfocusout="selectQueryDate(this, @parameterType, @parameterOid)" type="text" id="query-date" value="@dateValue" name="query-date" class="form-control datetimepicker-input" data-target="#query-date-picker" data-toggle="datetimepicker" />
<div class="input-group-append" data-target="#query-date-picker" data-toggle="datetimepicker">
<div class="input-group-text px-2">
<i class="fas fa-calendar-alt"></i>
</div>
</div>
</div>
</div>
<div class="form-group">
<div class="input-group">
<div class="input-group-prepend">
<div class="input-group-text prepend-input-group-text">
Datum
</div>
</div>
<input class="form-control" type="date" id="query-date" name="query-date" value="@dateValue" onfocusout="selectQueryDate(this, @parameterType, @parameterOid)"/>
</div>
</div>
</div>
</div>
break;
@@ -383,38 +361,25 @@
if(Model.SelectedValues.ContainsKey(parameterOid) && Model.SelectedValues[parameterOid].Parameter is BS.Shared.Core.DateTimeSpan dateTimeSpan)
{
startValue = dateTimeSpan.StartDate.ToString("dd.MM.yyyy");
endValue = dateTimeSpan.EndDate.ToString("dd.MM.yyyy");
startValue = dateTimeSpan.StartDate.ToString("yyyy-MM-dd");
endValue = dateTimeSpan.EndDate.ToString("yyyy-MM-dd");
}
<div class="form-row">
<div class="col-md">
<div class="form-group">
<div class="input-group date" id="query-date-range-start-picker" data-target-input="nearest">
<div class="input-group-prepend">
<div class="input-group-text prepend-input-group-text">
Zeitraum
</div>
</div>
<input onfocusout="selectQueryDateRange(@parameterType, @parameterOid)" value="@startValue" type="text" id="query-date-range-start" name="query-date-range-start" class="form-control datetimepicker-input" data-target="#query-date-range-start-picker" data-toggle="datetimepicker" />
<div class="input-group-append" data-target="#query-date-range-start-picker" data-toggle="datetimepicker">
<div class="input-group-text px-2">
<i class="fas fa-calendar-alt"></i>
</div>
</div>
</div>
</div>
</div>
<div class="col-md">
<div class="form-group">
<div class="input-group date" id="query-date-range-end-picker" data-target-input="nearest">
<input onfocusout="selectQueryDateRange(@parameterType, @parameterOid)" value="@endValue" type="text" id="query-date-range-end" name="query-date-range-end" class="form-control datetimepicker-input" data-target="#query-date-range-end-picker" data-toggle="datetimepicker" />
<div class="input-group-append" data-target="#query-date-range-end-picker" data-toggle="datetimepicker">
<div class="input-group-text px-2">
<i class="fas fa-calendar-alt"></i>
</div>
</div>
</div>
</div>
<div class="form-group">
<div class="input-group">
<div class="input-group-prepend">
<div class="input-group-text prepend-input-group-text">
Zeitraum
</div>
</div>
<input class="form-control" type="date" value="@startValue" onfocusout="selectQueryDateRange(@parameterType, @parameterOid)" id="query-date-range-start" name="query-date-range-start" />
<span class="input-group-text rounded-0 border-left-0 border-right-0">
bis
</span>
<input class="form-control" type="date" onfocusout="selectQueryDateRange(@parameterType, @parameterOid)" value="@endValue" id="query-date-range-end" name="query-date-range-end" />
</div>
</div>
</div>
</div>
break;

View File

@@ -66,6 +66,8 @@
const isStartValid = startStr !== null && false === isNaN(start.getTime());
const isEndValid = endStr !== null && false === isNaN(end.getTime());
logInfo2(`${start.toString()} - ${end.toString()}`);
isValid = isStartValid && isEndValid && duration > 0 && end > start;
if(isValid === false) {

View File

@@ -17,24 +17,13 @@
}
<script type="text/javascript">
$(function() {
$("#scheduler-date-picker").datetimepicker({
locale: "de",
format: "L"
});
$("#scheduler-date-picker").on("change.datetimepicker", () => {
submitSchedulerDateForm();
});
});
$(document).ready(function() {
@if(Model != null)
{
if (Model.SelectedAppointment != null && !Model.IsInIntervalFinderMode)
{
<text>
showAppointmentForm();
showAppointmentForm();
</text>
}
}
@@ -141,12 +130,7 @@
<div class="col col-md-auto justify-content-center mx-1 px-0">
@using(Html.BeginForm("SelectSchedulerDate", "Scheduler", FormMethod.Post, new { id = "scheduler-date-form" }))
{
<div class="input-group date" id="scheduler-date-picker" data-target-input="nearest">
<input type="text" autocomplete="on" id="start-date" name="SchedulerDate" class="form-control datetimepicker-input" data-target="#start-date-picker" data-toggle="datetimepicker" value="@Model.SelectedDate.ToShortDateString()" />
<div class="input-group-append" data-target="#scheduler-date-picker" data-toggle="datetimepicker">
<div class="input-group-text"><i class="fas fa-calendar-alt"></i></div>
</div>
</div>
<input class="form-control" type="date" id="start-date" name="SchedulerDate" value="@Model.SelectedDate.ToString("yyyy-MM-dd")" />
}
</div>
<div class="col-auto justify-content-center mx-1 px-0">

View File

@@ -256,8 +256,6 @@
}
}
$(document).ready(function() {
$.each($("canvas"), function(index, canvasElement) {
updateCanvasSize($(canvasElement));
@@ -433,9 +431,6 @@
"#mb-textbausteine-button, #mb-hours-minutes-dropdown-btn, #mb-marker-cb").prop("disabled", shouldDisable);
}
@* Eingabenwiederherstellung *@
function getLocalStorageKey() {
@@ -531,20 +526,18 @@
<div class="collapse navbar-collapse" id="navbarResponsive">
<ul class="navbar-nav ml-auto">
@*
@if(Html.IsInDebugMode())
@if(Html.IsInDebugMode())
{
using(Html.BeginForm("RedirectToDevExpressScheduler", "Main", FormMethod.Post))
{
using(Html.BeginForm("RedirectToDevExpressScheduler", "Main", FormMethod.Post))
{
<li class="nav-item">
<button class="btn btn-link text-light no-underline" onclick="showSpinner()">
<i class="fas fa-hand-middle-finger"></i>
Scheduler
</button>
</li>
}
<li class="nav-item">
<button class="btn btn-link text-light no-underline" onclick="showSpinner()">
<i class="fas fa-hand-middle-finger" style="color: #FFD9C2;"></i>
DX Kalender
</button>
</li>
}
*@
}
@if(Html.IsInDebugMode())
{
@@ -555,12 +548,12 @@
</button>
</li>
using(Html.BeginForm("RedirectToDebuggingTools", "Main", FormMethod.Post))
using(Html.BeginForm("RedirectToDevTools", "Main", FormMethod.Post))
{
<li class="nav-item">
<button class="btn btn-link text-light no-underline" onclick="showSpinner()">
<i class="fas fa-bug text-success"></i>
Debugging Tools
DevTools
</button>
</li>
}

View File

@@ -299,7 +299,7 @@ namespace CaritasverbandDuerenJuelichEV.Export
{
konto = "84291";
}
else if (item.ToString().ToLower().Contains("aok")) //derzeit nur ein Einzelfall
else if (item.ToString().ToLower().Contains("aok") || item.ToString().ToLower().Contains("dak")) //derzeit nur ein Einzelfall
{
konto = "84281";
}

View File

@@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
using BeWo.Service.Core;
using BeWo.Service.Plugins;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using Utils = BS.Shared.Core.Utils;
namespace LebenshilfeBadKreuznachFUD.Export
{
public class CustomDataExporter : DataExporter
{
public override QueryDC CreateQuery(QueryDC query)
{
return SageExporter.CreateQuery(query);
}
}
}

View File

@@ -0,0 +1,166 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Text;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Service.DCEntityMapper;
using BS.Shared;
using BS.Shared.DataContracts;
using BS.Shared.Extensions;
namespace LebenshilfeBadKreuznachFUD.Export
{
public class SageExporter
{
private String teamname = "Integration";
public static QueryDC CreateQuery(QueryDC query)
{
DateTime dt = DateTime.Now;
DateTime.TryParse(query.Parameter[0].Value.ToString(), out dt);
if (query.Oid == 100)
{
query.FileName = String.Format("SageExportIntegration{0:yyyyMM}.csv", dt);
query.QueryResult = GetAbrechnungenString(dt, "Integration");
}
else if (query.Oid == 101)
{
query.FileName = String.Format("SageExportEntlastung{0:yyyyMM}.csv", dt);
query.QueryResult = GetAbrechnungenString(dt, "Entlastung");
}
else if (query.Oid == 102)
{
query.FileName = String.Format("SageExportAutismus{0:yyyyMM}.csv", dt);
query.QueryResult = GetAbrechnungenString(dt, "Autismus");
}
return query;
}
public static String GetAbrechnungenString(DateTime date, String teamname)
{
StringBuilder sb = new StringBuilder();
sb.AppendLine("Buchungsdatum; Belegdatum; Belegnummer; Buchungstext; Sollkonto; Habenkonto; Umsatz; Währung; Steuerart; Steuercode; " +
"Kostenstelle Soll; Kostenstelle Haben; Kostenträger Soll; Kostenträger Haben; Kostenart; Buchungskreis");
var s = GetMonatlicheRechnungenString(date, teamname);
if (!String.IsNullOrWhiteSpace(s))
{
sb.Append(s);
}
return sb.ToString();
}
public static String GetMonatlicheRechnungenString(DateTime date, String teamname)
{
var sql = GetMonatlicheRechnungenSql(date);
/*
cb2sc.Oid,
ib.InvoiceNumber,
c.DebitorNumber,
Round(ii.AmountTotal, 2) AS 'Betrag',
ib.InvoiceDate,
org.Name AS 'VerwendungOrg'
CONCAT(p.`LastName`, ', ', p.`FirstName`) as 'VerwendungPerson',
org.DebitorNumber,
ii.ItemDescription,
c.CostCenter,
ib.Oid,
ib.AccountingPeriodEnd,
*/
//sb.AppendLine("Belegdatum;Belegnummer;Debitorennummer;Kontonummer;Betrag;Buchungstext;Kostenstelle");
//sb.AppendLine("Buchungsdatum; Belegdatum; Belegnummer; Buchungstext; Sollkonto; Habenkonto; Umsatz; Währung; Steuerart; Steuercode; " +
// "Kostenstelle Soll; Kostenstelle Haben; Kostenträger Soll; Kostenträger Haben; Kostenart; Buchungskreis");
var dt = ExecuteQuery(sql, date, teamname);
StringBuilder sb = new StringBuilder();
foreach (DataRow row in dt.Rows)
{
if (sb.Length > 0)
{
sb.AppendLine();
}
sb.Append(String.Format("{0:dd.MM.yyyy}", row[4]));
sb.Append(";");
sb.Append(String.Format("{0:dd.MM.yyyy}", row[4]));
sb.Append(";");
sb.Append(String.Format("{0}", row[1]));
sb.Append(";");
String buchungstext = String.Format("AR-SI {0:MM}/{0:yyyy} {1} - {2}", row[11], row[5], row[6]);
sb.Append(buchungstext);
sb.Append(";");
sb.Append(String.Format("{0}", row[7])); // Sollkonto - Kundennr. Kostenträger
sb.Append(";");
String hbnKto = "S82035"; // Habenkonto für Q1 + Q2
if (row[8].ToString() != null && (row[8].ToString().ToLower().Contains("q3") || row[8].ToString().ToLower().Contains("q4")))
{
hbnKto = "S82025";
}
sb.Append(String.Format("{0}", hbnKto)); // Habenkonto
sb.Append(";");
sb.Append(String.Format("{0:0.00}", row[3]));
sb.Append(";EUR;;;");
sb.Append("T70400"); // Kostenstelle (String.Format("{0}", row[9]));
sb.Append(";;;;;12"); // Buchungskreis
}
return sb.ToString();
}
private static String GetMonatlicheRechnungenSql(DateTime date)
{
String sql = @"
SELECT * FROM
(SELECT
cb2sc.Oid AS cb2scOid,
ib.InvoiceNumber,
c.DebitorNumber,
Round(ii.GrossAmountTotal, 2) AS 'Betrag',
ib.InvoiceDate,
org.Name AS 'VerwendungOrg',
CONCAT(p.`LastName`, ', ', p.`FirstName`) as 'VerwendungPerson',
org.DebitorNumber AS OrgDebitorNumber,
ii.ItemDescription,
c.CostCenter,
ib.Oid AS ibOid,
ib.AccountingPeriodEnd,
(select t.name from team t inner join team2customer t2c on t2c.teamoid = t.oid where t2c.customeroid = c.Oid limit 1) AS Team
FROM `supportconcept` sc
INNER JOIN `costbearer2supportconcept` cb2sc ON sc.`Oid` = cb2sc.`SupportConceptOid`
INNER JOIN `costbearer` cb ON cb2sc.`CostBearerOid` = cb.`Oid`
INNER JOIN `organisation` org ON org.`CostBearerOid` = cb.`Oid`
INNER JOIN `customer` c ON sc.`CustomerOid` = c.`Oid`
INNER JOIN `person` p on c.`PersonOid` = p.`Oid`
INNER JOIN invoicebase ib on ib.costbearer2supportconceptoid = cb2sc.oid
inner join serviceinvoice si on si.invoicebaseoid = ib.oid
inner join serviceinvoiceperiod sip on sip.serviceinvoiceoid = si.oid
inner join invoiceitem ii on ii.serviceinvoiceperiodoid = sip.oid
WHERE ib.`AccountingPeriodEnd` >= ':Monat_Start' AND ib.`AccountingPeriodEnd` < ':Monat_End' and ib.IsActive = 1
ORDER BY p.`LastName`, p.`FirstName`, cb2sc.`ApprovedStartDate`) AS sqry
WHERE Team = ':teamname'
";
return sql;
}
public static DataTable ExecuteQuery(String sql, DateTime dt, String teamname)
{
var newsql = sql;
newsql = newsql.Replace(":Abrechnungsmonat", String.Format("{0:dd.MM.yyyy}", dt));
newsql = newsql.Replace(":Belegnr", String.Format("{0:yyMM}", dt));
newsql = newsql.Replace(":Monat_MM", String.Format("{0:MM}", dt));
newsql = newsql.Replace(":Monat_Start", String.Format("{0:yyyy-MM}-01", dt));
dt = dt.AddMonths(1);
newsql = newsql.Replace(":Monat_End", String.Format("{0:yyyy-MM}-01", dt));
newsql = newsql.Replace(":teamname", String.Format("{0}", teamname));
return DAOFactory.AdoDAO.ExecuteQuery(newsql).Tables[0];
}
}
}

View File

@@ -58,6 +58,8 @@
<ItemGroup>
<Compile Include="Calculations\DefaultCalculations.cs" />
<Compile Include="Calculations\CustomGroupDurationCalculator.cs" />
<Compile Include="Export\CustomDataExporter.cs" />
<Compile Include="Export\SageExporter.cs" />
<Compile Include="Invoicing\CustomInvoiceCreation.cs" />
<Compile Include="Invoicing\CustomInvoiceFactory.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
@@ -110,7 +112,6 @@
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Folder Include="Export\" />
<Folder Include="Import\" />
<Folder Include="Validation\" />
</ItemGroup>

View File

@@ -0,0 +1,44 @@
using System;
using System.Collections.Generic;
using System.Linq;
using BeWo.Data.Entities;
using BeWo.Service.DCEntityMapper;
using BeWo.Service.Invoicing;
using BeWo.Service.Plugins;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
using BS.Shared.Extensions;
using BS.Shared.Services;
namespace SbbMainzReports.Invoicing
{
public class CustomInvoiceCreation : InvoiceCreation
{
public override InvoiceItem CreateInvoiceItem(ServiceRecordDC iServiceRecord, SupportConceptApprovalPeriod scap, BS.Shared.Services.Calculations calc)
{
var ii = base.CreateInvoiceItem(iServiceRecord, scap, calc);
ii.ItemDescription = iServiceRecord.ServiceDescription.CategoryName;
return ii;
}
public override void CreateFixedAmounts(ServiceInvoicePeriod serviceInvoicePeriod, SupportConceptApprovalPeriodDC supportConceptApprovalPeriod, CostBearer2SupportConcept cb2sc)
{
base.CreateFixedAmounts(serviceInvoicePeriod, supportConceptApprovalPeriod, cb2sc);
if (supportConceptApprovalPeriod.ServiceCategory != null
&& serviceInvoicePeriod.InvoiceItemList != null && serviceInvoicePeriod.InvoiceItemList.Count > 0)
{
foreach (var ii in serviceInvoicePeriod.InvoiceItemList)
{
ii.ItemDescription = supportConceptApprovalPeriod.ServiceCategory.Name;
}
}
}
public override void CheckMaxApprovedAmount(ServiceInvoice invoice, ServiceInvoicePeriod sip, SupportConceptApprovalPeriodDC scap, CostBearer2SupportConcept costBearer2SupportConcept, DateTimeSpan invoicePeriod, List<ServiceRecordDC> serviceRecords)
{
// do nothing
}
}
}

View File

@@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
using BeWo.Data.Entities;
using BeWo.Service.Invoicing;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
namespace SbbMainzReports.Invoicing
{
public class CustomInvoiceFactory : InvoiceFactory
{
public override InvoiceCreation CreateInvoiceCreator(string specificId, string tenant, Dictionary<CompactSupportConceptDC, List<ServiceRecordDC>> supportConcepts2ServiceRecords)
{
return new CustomInvoiceCreation();
}
}
}

View File

@@ -76,6 +76,8 @@
<Compile Include="CustomerDataReport.designer.cs">
<DependentUpon>CustomerDataReport.cs</DependentUpon>
</Compile>
<Compile Include="Invoicing\CustomInvoiceCreation.cs" />
<Compile Include="Invoicing\CustomInvoiceFactory.cs" />
<Compile Include="LeistungsbestaetigungRlpTs.cs">
<SubType>Component</SubType>
</Compile>

View File

@@ -43,7 +43,7 @@ namespace SBBMainzReports
this.xrLabel4 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel16 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel17 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel13 = new DevExpress.XtraReports.UI.XRLabel();
this.lblUeberschrift = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel12 = new DevExpress.XtraReports.UI.XRLabel();
this.lblAbrechnungszeitraum = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel10 = new DevExpress.XtraReports.UI.XRLabel();
@@ -87,16 +87,15 @@ namespace SBBMainzReports
this.xrTableRow25 = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell40 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell44 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell45 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell9 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell47 = new DevExpress.XtraReports.UI.XRTableCell();
this.GroupFooter1 = new DevExpress.XtraReports.UI.GroupFooterBand();
this.xrLabel14 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel9 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel1 = new DevExpress.XtraReports.UI.XRLabel();
this.PageFooter = new DevExpress.XtraReports.UI.PageFooterBand();
this.xrLabel15 = new DevExpress.XtraReports.UI.XRLabel();
this.xrPictureBox2 = new DevExpress.XtraReports.UI.XRPictureBox();
this.ReportFooter = new DevExpress.XtraReports.UI.ReportFooterBand();
this.xrLabel13 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel18 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel19 = new DevExpress.XtraReports.UI.XRLabel();
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
((System.ComponentModel.ISupportInitialize)(this.xrTable1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable2)).BeginInit();
@@ -106,7 +105,7 @@ namespace SBBMainzReports
//
// Detail
//
this.Detail.HeightF = 1.124954F;
this.Detail.HeightF = 0F;
this.Detail.Name = "Detail";
this.Detail.Padding = new DevExpress.XtraPrinting.PaddingInfo(0, 0, 0, 0, 100F);
this.Detail.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
@@ -163,7 +162,7 @@ namespace SBBMainzReports
this.xrLabel4,
this.xrLabel16,
this.xrLabel17,
this.xrLabel13,
this.lblUeberschrift,
this.xrLabel12,
this.lblAbrechnungszeitraum,
this.xrLabel10,
@@ -176,7 +175,7 @@ namespace SBBMainzReports
this.xrLabel2,
this.xrTable2});
this.Page1.Font = new DevExpress.Drawing.DXFont("Verdana", 10F);
this.Page1.HeightF = 404.7083F;
this.Page1.HeightF = 428.4583F;
this.Page1.Name = "Page1";
this.Page1.StylePriority.UseFont = false;
//
@@ -185,7 +184,7 @@ namespace SBBMainzReports
this.xrLabel3.BackColor = System.Drawing.Color.Transparent;
this.xrLabel3.CanShrink = true;
this.xrLabel3.Font = new DevExpress.Drawing.DXFont("arial", 11F);
this.xrLabel3.LocationFloat = new DevExpress.Utils.PointFloat(10.00016F, 356.0416F);
this.xrLabel3.LocationFloat = new DevExpress.Utils.PointFloat(10.00016F, 378.9583F);
this.xrLabel3.Name = "xrLabel3";
this.xrLabel3.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel3.SizeF = new System.Drawing.SizeF(112.5F, 20F);
@@ -199,7 +198,7 @@ namespace SBBMainzReports
this.xrLabel4.BackColor = System.Drawing.Color.Transparent;
this.xrLabel4.CanShrink = true;
this.xrLabel4.Font = new DevExpress.Drawing.DXFont("arial", 11F);
this.xrLabel4.LocationFloat = new DevExpress.Utils.PointFloat(264.5416F, 356.0416F);
this.xrLabel4.LocationFloat = new DevExpress.Utils.PointFloat(264.5416F, 378.9583F);
this.xrLabel4.Name = "xrLabel4";
this.xrLabel4.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel4.SizeF = new System.Drawing.SizeF(433.8333F, 20F);
@@ -213,7 +212,7 @@ namespace SBBMainzReports
this.xrLabel16.BackColor = System.Drawing.Color.Transparent;
this.xrLabel16.CanShrink = true;
this.xrLabel16.Font = new DevExpress.Drawing.DXFont("arial", 11F);
this.xrLabel16.LocationFloat = new DevExpress.Utils.PointFloat(264.5416F, 376.0415F);
this.xrLabel16.LocationFloat = new DevExpress.Utils.PointFloat(264.5416F, 398.9581F);
this.xrLabel16.Name = "xrLabel16";
this.xrLabel16.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel16.SizeF = new System.Drawing.SizeF(433.8334F, 20.00003F);
@@ -227,7 +226,7 @@ namespace SBBMainzReports
this.xrLabel17.BackColor = System.Drawing.Color.Transparent;
this.xrLabel17.CanShrink = true;
this.xrLabel17.Font = new DevExpress.Drawing.DXFont("arial", 11F);
this.xrLabel17.LocationFloat = new DevExpress.Utils.PointFloat(10.00016F, 376.0415F);
this.xrLabel17.LocationFloat = new DevExpress.Utils.PointFloat(10.00016F, 398.9581F);
this.xrLabel17.Name = "xrLabel17";
this.xrLabel17.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel17.SizeF = new System.Drawing.SizeF(112.5F, 20F);
@@ -236,22 +235,22 @@ namespace SBBMainzReports
this.xrLabel17.Text = "wohnhaft:";
this.xrLabel17.WordWrap = false;
//
// xrLabel13
// lblUeberschrift
//
this.xrLabel13.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
this.lblUeberschrift.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
| DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrLabel13.Font = new DevExpress.Drawing.DXFont("arial", 11F, DevExpress.Drawing.DXFontStyle.Bold);
this.xrLabel13.LocationFloat = new DevExpress.Utils.PointFloat(10.0001F, 320.1665F);
this.xrLabel13.Multiline = true;
this.xrLabel13.Name = "xrLabel13";
this.xrLabel13.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel13.SizeF = new System.Drawing.SizeF(688.3749F, 20.87509F);
this.xrLabel13.StylePriority.UseBorders = false;
this.xrLabel13.StylePriority.UseFont = false;
this.xrLabel13.StylePriority.UseTextAlignment = false;
this.xrLabel13.Text = "Hilfen zur Erziehung - Sozialpädagogische Familienhilfe gem. § 31 SGB VIII";
this.xrLabel13.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
this.lblUeberschrift.Font = new DevExpress.Drawing.DXFont("arial", 11F, DevExpress.Drawing.DXFontStyle.Bold);
this.lblUeberschrift.LocationFloat = new DevExpress.Utils.PointFloat(10.0001F, 320.1665F);
this.lblUeberschrift.Multiline = true;
this.lblUeberschrift.Name = "lblUeberschrift";
this.lblUeberschrift.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.lblUeberschrift.SizeF = new System.Drawing.SizeF(688.3749F, 42.75009F);
this.lblUeberschrift.StylePriority.UseBorders = false;
this.lblUeberschrift.StylePriority.UseFont = false;
this.lblUeberschrift.StylePriority.UseTextAlignment = false;
this.lblUeberschrift.Text = "Hilfen zur Erziehung - Sozialpädagogische Familienhilfe gem. § 31 SGB VIII ";
this.lblUeberschrift.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
//
// xrLabel12
//
@@ -491,7 +490,7 @@ namespace SBBMainzReports
this.xrLabel6.Multiline = true;
this.xrLabel6.Name = "xrLabel6";
this.xrLabel6.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel6.SizeF = new System.Drawing.SizeF(317F, 39.99999F);
this.xrLabel6.SizeF = new System.Drawing.SizeF(357.625F, 39.99999F);
this.xrLabel6.StylePriority.UseFont = false;
this.xrLabel6.Text = "Sozialtherapeutische Beratungsstelle / \r\nBetreuungsverein e.V. Rheinallee 17 55" +
"118 Mainz";
@@ -503,7 +502,7 @@ namespace SBBMainzReports
this.lblAdresse.Multiline = true;
this.lblAdresse.Name = "lblAdresse";
this.lblAdresse.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.lblAdresse.SizeF = new System.Drawing.SizeF(317F, 111F);
this.lblAdresse.SizeF = new System.Drawing.SizeF(357.625F, 111F);
this.lblAdresse.StylePriority.UseFont = false;
this.lblAdresse.Text = "[RecipientOrganisation]\r\n[RecipientDivision]\r\n[RecipientStreet]\r\n[RecipientPostCo" +
"deAndTown]";
@@ -667,7 +666,8 @@ namespace SBBMainzReports
//
this.DetailReport.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
this.Detail1,
this.DetailReport2});
this.DetailReport2,
this.ReportFooter});
this.DetailReport.DataMember = "ServiceInvoicePeriods";
this.DetailReport.DataSource = this.bindingSource1;
this.DetailReport.Level = 0;
@@ -681,13 +681,11 @@ namespace SBBMainzReports
// DetailReport2
//
this.DetailReport2.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
this.Detail3,
this.GroupFooter1});
this.Detail3});
this.DetailReport2.DataMember = "ServiceInvoicePeriods.ServiceInvoiceItems";
this.DetailReport2.DataSource = this.bindingSource1;
this.DetailReport2.Level = 0;
this.DetailReport2.Name = "DetailReport2";
this.DetailReport2.PageBreak = DevExpress.XtraReports.UI.PageBreak.AfterBand;
//
// Detail3
//
@@ -704,7 +702,7 @@ namespace SBBMainzReports
this.xrTable6.Name = "xrTable6";
this.xrTable6.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
this.xrTableRow25});
this.xrTable6.SizeF = new System.Drawing.SizeF(688.3747F, 25F);
this.xrTable6.SizeF = new System.Drawing.SizeF(688.3748F, 25F);
this.xrTable6.StylePriority.UseFont = false;
//
// xrTableRow25
@@ -712,7 +710,6 @@ namespace SBBMainzReports
this.xrTableRow25.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
this.xrTableCell40,
this.xrTableCell44,
this.xrTableCell45,
this.xrTableCell9,
this.xrTableCell47});
this.xrTableRow25.Name = "xrTableRow25";
@@ -722,6 +719,8 @@ namespace SBBMainzReports
//
this.xrTableCell40.BorderColor = System.Drawing.Color.DarkGray;
this.xrTableCell40.Borders = DevExpress.XtraPrinting.BorderSide.None;
this.xrTableCell40.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "ServiceInvoicePeriods.ServiceInvoiceItems.ServiceDescription")});
this.xrTableCell40.Font = new DevExpress.Drawing.DXFont("arial", 11F);
this.xrTableCell40.Name = "xrTableCell40";
this.xrTableCell40.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 2, 2, 100F);
@@ -739,7 +738,7 @@ namespace SBBMainzReports
this.xrTableCell44.BorderColor = System.Drawing.Color.DarkGray;
this.xrTableCell44.Borders = DevExpress.XtraPrinting.BorderSide.None;
this.xrTableCell44.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "ServiceInvoicePeriods.ServiceInvoiceItems.Hours", "{0:0.##}")});
new DevExpress.XtraReports.UI.XRBinding("Text", null, "ServiceInvoicePeriods.ServiceInvoiceItems.Hours")});
this.xrTableCell44.Font = new DevExpress.Drawing.DXFont("arial", 11F);
this.xrTableCell44.Name = "xrTableCell44";
this.xrTableCell44.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 2, 2, 100F);
@@ -750,24 +749,9 @@ namespace SBBMainzReports
this.xrTableCell44.StylePriority.UseTextAlignment = false;
this.xrTableCell44.Text = "xrTableCell44";
this.xrTableCell44.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight;
this.xrTableCell44.TextFormatString = "{0:0.00}";
this.xrTableCell44.Weight = 0.14933396933294971D;
//
// xrTableCell45
//
this.xrTableCell45.BorderColor = System.Drawing.Color.DarkGray;
this.xrTableCell45.Borders = DevExpress.XtraPrinting.BorderSide.None;
this.xrTableCell45.Font = new DevExpress.Drawing.DXFont("arial", 11F);
this.xrTableCell45.Name = "xrTableCell45";
this.xrTableCell45.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 2, 2, 100F);
this.xrTableCell45.StylePriority.UseBorderColor = false;
this.xrTableCell45.StylePriority.UseBorders = false;
this.xrTableCell45.StylePriority.UseFont = false;
this.xrTableCell45.StylePriority.UsePadding = false;
this.xrTableCell45.StylePriority.UseTextAlignment = false;
this.xrTableCell45.Text = "zu";
this.xrTableCell45.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight;
this.xrTableCell45.Weight = 0.10254101486409843D;
//
// xrTableCell9
//
this.xrTableCell9.BorderColor = System.Drawing.Color.DarkGray;
@@ -781,9 +765,9 @@ namespace SBBMainzReports
this.xrTableCell9.StylePriority.UseFont = false;
this.xrTableCell9.StylePriority.UsePadding = false;
this.xrTableCell9.StylePriority.UseTextAlignment = false;
this.xrTableCell9.Text = "[HourlyRate!0.00 €]";
this.xrTableCell9.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
this.xrTableCell9.Weight = 0.21029226665145875D;
this.xrTableCell9.Text = "[HourlyRateString]";
this.xrTableCell9.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight;
this.xrTableCell9.Weight = 0.31283277136800258D;
//
// xrTableCell47
//
@@ -801,62 +785,7 @@ namespace SBBMainzReports
this.xrTableCell47.StylePriority.UseTextAlignment = false;
this.xrTableCell47.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight;
this.xrTableCell47.TextFormatString = "{0} Euro";
this.xrTableCell47.Weight = 0.53063955118854178D;
//
// GroupFooter1
//
this.GroupFooter1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrLabel14,
this.xrLabel9,
this.xrLabel1});
this.GroupFooter1.HeightF = 238.3333F;
this.GroupFooter1.Name = "GroupFooter1";
//
// xrLabel14
//
this.xrLabel14.Font = new DevExpress.Drawing.DXFont("arial", 11F);
this.xrLabel14.LocationFloat = new DevExpress.Utils.PointFloat(186.7086F, 0F);
this.xrLabel14.Name = "xrLabel14";
this.xrLabel14.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 5, 0, 0, 100F);
this.xrLabel14.SizeF = new System.Drawing.SizeF(263.9997F, 25F);
this.xrLabel14.StylePriority.UseFont = false;
this.xrLabel14.StylePriority.UsePadding = false;
this.xrLabel14.StylePriority.UseTextAlignment = false;
this.xrLabel14.Text = "Rechnungsbetrag Gesamt:";
this.xrLabel14.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight;
//
// xrLabel9
//
this.xrLabel9.BackColor = System.Drawing.Color.Transparent;
this.xrLabel9.CanShrink = true;
this.xrLabel9.Font = new DevExpress.Drawing.DXFont("arial", 11F);
this.xrLabel9.LocationFloat = new DevExpress.Utils.PointFloat(10.00016F, 75.20834F);
this.xrLabel9.Multiline = true;
this.xrLabel9.Name = "xrLabel9";
this.xrLabel9.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel9.SizeF = new System.Drawing.SizeF(688.375F, 163.125F);
this.xrLabel9.StylePriority.UseBackColor = false;
this.xrLabel9.StylePriority.UseFont = false;
this.xrLabel9.Text = resources.GetString("xrLabel9.Text");
//
// xrLabel1
//
this.xrLabel1.BorderDashStyle = DevExpress.XtraPrinting.BorderDashStyle.Double;
this.xrLabel1.Borders = DevExpress.XtraPrinting.BorderSide.Top;
this.xrLabel1.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "GrossClaim")});
this.xrLabel1.Font = new DevExpress.Drawing.DXFont("arial", 11F, DevExpress.Drawing.DXFontStyle.Bold);
this.xrLabel1.LocationFloat = new DevExpress.Utils.PointFloat(450.7083F, 0F);
this.xrLabel1.Name = "xrLabel1";
this.xrLabel1.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel1.SizeF = new System.Drawing.SizeF(247.6669F, 25F);
this.xrLabel1.StylePriority.UseBorderDashStyle = false;
this.xrLabel1.StylePriority.UseBorders = false;
this.xrLabel1.StylePriority.UseFont = false;
this.xrLabel1.StylePriority.UsePadding = false;
this.xrLabel1.StylePriority.UseTextAlignment = false;
this.xrLabel1.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight;
this.xrLabel1.TextFormatString = "{0} Euro";
this.xrTableCell47.Weight = 0.53064018869841689D;
//
// PageFooter
//
@@ -887,6 +816,61 @@ namespace SBBMainzReports
this.xrPictureBox2.SizeF = new System.Drawing.SizeF(159.7919F, 111F);
this.xrPictureBox2.Sizing = DevExpress.XtraPrinting.ImageSizeMode.ZoomImage;
//
// ReportFooter
//
this.ReportFooter.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrLabel13,
this.xrLabel18,
this.xrLabel19});
this.ReportFooter.HeightF = 238.3333F;
this.ReportFooter.Name = "ReportFooter";
//
// xrLabel13
//
this.xrLabel13.BorderDashStyle = DevExpress.XtraPrinting.BorderDashStyle.Double;
this.xrLabel13.Borders = DevExpress.XtraPrinting.BorderSide.Top;
this.xrLabel13.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "GrossClaim")});
this.xrLabel13.Font = new DevExpress.Drawing.DXFont("arial", 11F, DevExpress.Drawing.DXFontStyle.Bold);
this.xrLabel13.LocationFloat = new DevExpress.Utils.PointFloat(450.7081F, 0F);
this.xrLabel13.Name = "xrLabel13";
this.xrLabel13.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel13.SizeF = new System.Drawing.SizeF(247.6669F, 25F);
this.xrLabel13.StylePriority.UseBorderDashStyle = false;
this.xrLabel13.StylePriority.UseBorders = false;
this.xrLabel13.StylePriority.UseFont = false;
this.xrLabel13.StylePriority.UsePadding = false;
this.xrLabel13.StylePriority.UseTextAlignment = false;
this.xrLabel13.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight;
this.xrLabel13.TextFormatString = "{0} Euro";
//
// xrLabel18
//
this.xrLabel18.BackColor = System.Drawing.Color.Transparent;
this.xrLabel18.CanShrink = true;
this.xrLabel18.Font = new DevExpress.Drawing.DXFont("arial", 11F);
this.xrLabel18.LocationFloat = new DevExpress.Utils.PointFloat(9.999939F, 75.20834F);
this.xrLabel18.Multiline = true;
this.xrLabel18.Name = "xrLabel18";
this.xrLabel18.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel18.SizeF = new System.Drawing.SizeF(688.375F, 163.125F);
this.xrLabel18.StylePriority.UseBackColor = false;
this.xrLabel18.StylePriority.UseFont = false;
this.xrLabel18.Text = resources.GetString("xrLabel18.Text");
//
// xrLabel19
//
this.xrLabel19.Font = new DevExpress.Drawing.DXFont("arial", 11F);
this.xrLabel19.LocationFloat = new DevExpress.Utils.PointFloat(186.7084F, 0F);
this.xrLabel19.Name = "xrLabel19";
this.xrLabel19.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 5, 0, 0, 100F);
this.xrLabel19.SizeF = new System.Drawing.SizeF(263.9997F, 25F);
this.xrLabel19.StylePriority.UseFont = false;
this.xrLabel19.StylePriority.UsePadding = false;
this.xrLabel19.StylePriority.UseTextAlignment = false;
this.xrLabel19.Text = "Rechnungsbetrag Gesamt:";
this.xrLabel19.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight;
//
// bindingSource1
//
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.ServiceInvoiceRO);
@@ -947,11 +931,8 @@ namespace SBBMainzReports
private DevExpress.XtraReports.UI.XRTableRow xrTableRow25;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell40;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell44;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell45;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell47;
private DevExpress.XtraReports.UI.XRLabel lblAdresse;
private DevExpress.XtraReports.UI.GroupFooterBand GroupFooter1;
private DevExpress.XtraReports.UI.XRLabel xrLabel1;
private DevExpress.XtraReports.UI.XRPictureBox xrPictureBox1;
private DevExpress.XtraReports.UI.XRLabel xrLabel5;
private DevExpress.XtraReports.UI.XRTable xrTable1;
@@ -982,12 +963,14 @@ namespace SBBMainzReports
private DevExpress.XtraReports.UI.XRLabel xrLabel4;
private DevExpress.XtraReports.UI.XRLabel xrLabel16;
private DevExpress.XtraReports.UI.XRLabel xrLabel17;
private DevExpress.XtraReports.UI.XRLabel xrLabel13;
private DevExpress.XtraReports.UI.XRLabel xrLabel14;
private DevExpress.XtraReports.UI.XRLabel xrLabel9;
private DevExpress.XtraReports.UI.XRLabel lblUeberschrift;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell9;
private DevExpress.XtraReports.UI.PageFooterBand PageFooter;
private DevExpress.XtraReports.UI.XRLabel xrLabel15;
private DevExpress.XtraReports.UI.XRPictureBox xrPictureBox2;
private DevExpress.XtraReports.UI.ReportFooterBand ReportFooter;
private DevExpress.XtraReports.UI.XRLabel xrLabel13;
private DevExpress.XtraReports.UI.XRLabel xrLabel18;
private DevExpress.XtraReports.UI.XRLabel xrLabel19;
}
}

View File

@@ -1,4 +1,5 @@
using System;
using System.Linq;
using System.Text;
using BeWo.Report;
using BeWo.Report.ReportObjects;
@@ -47,8 +48,21 @@ namespace SBBMainzReports
{
if (sip.ServiceInvoiceItems != null && sip.ServiceInvoiceItems.Count > 0)
{
if (sip.ServiceInvoiceItems.Any(i => i.ServiceDescription != null && i.ServiceDescription.ToLower().Contains("erziehungsbeistand")))
{
lblUeberschrift.Text = "Hilfe zur Erziehung gemäß § 27 ff SGB VIII i.V. m. § 30 SGB VIII - \nErziehungsbeistandschaft";
}
foreach (var ii in sip.ServiceInvoiceItems)
{
if (!ii.ServiceDescription.ToLower().Contains("handgeld"))
{
ii.ServiceDescription = "Fachleistungstunden / Monat";
ii.HourlyRateString = String.Format("zu {0:0.00} €", ii.HourlyRate);
}
else
{
ii.HourlyRateString = "";
}
ii.GrossAmount = ii.GrossAmount.Replace("€", "").Trim();
}
}
@@ -67,14 +81,6 @@ namespace SBBMainzReports
{
sb.AppendLine(pRO.RecipientOrganisation);
}
//if (!String.IsNullOrEmpty(pRO.RecipientAddressLine1))
//{
// sb.AppendLine(pRO.RecipientAddressLine1);
//}
if (!String.IsNullOrEmpty(pRO.RecipientContactPerson))
{
sb.AppendLine(pRO.RecipientContactPerson);
}
if (!String.IsNullOrEmpty(pRO.RecipientDivision) && !String.IsNullOrEmpty(pRO.RecipientOrganisation) && pRO.RecipientOrganisation.ToLower() != "selbstzahler")
{
sb.AppendLine(pRO.RecipientDivision);

File diff suppressed because one or more lines are too long

View File

@@ -213,6 +213,14 @@ namespace VereinBeratungTherapie.Invoicing
{
LG = lgMin;
}
if (supportConceptApprovalPeriod.Notice != null && supportConceptApprovalPeriod.Notice.ToLower().Contains("kombiniert"))
{
LG = lgMin;
if (!cat.Abbreviation.Contains("TS"))
{
LG = GetKombinierteLG(serviceInvoicePeriod, supportConceptApprovalPeriod, cat, cb2sc, lgMin, preisLG);
}
}
else
{
LG = GetLeistungsgruppe(lgMin, cat);
@@ -282,23 +290,23 @@ namespace VereinBeratungTherapie.Invoicing
if (ap.Notice == null || !ap.Notice.ToLower().Contains("alt"))
{
lgGes = GetLeistungsgruppe(lgMin + lgBw, cat);
lgBw = GetLeistungsgruppe(lgBw, cat);
var dif = lgGes - lgMin - lgBw;
if (dif != 0)
{
dif /= 2;
}
lgMin += dif;
lgBw += dif;
ii.Notice = Math.Round((lgGes - Math.Round(lgBw, 0, MidpointRounding.AwayFromZero)),0, MidpointRounding.ToEven).ToString();
}
else
{
lgGes = lgMin + lgBw;
preisGes = Math.Round(minPreis * lgGes, 2, MidpointRounding.AwayFromZero);
}
lgBw = Math.Round(lgBw / 60, 2, MidpointRounding.AwayFromZero);
preisBw = Math.Round(preis.Value * lgBw, 2, MidpointRounding.AwayFromZero);
if (new List<decimal> { 60, 120, 180, 240, 330, 450, 630, 900 }.Contains(lgBw))
{
preisBw = Math.Round(preis.Value * lgBw / 60, 2, MidpointRounding.AwayFromZero);
}
else // Altfälle
{
preisBw = Math.Round(minPreis * lgBw, 2, MidpointRounding.AwayFromZero);
}
if (new List<decimal> { 60, 120, 180, 240, 330, 450, 630, 900 }.Contains(lgGes))
{
preisGes = Math.Round(preis.Value * lgGes / 60, 2, MidpointRounding.AwayFromZero);
@@ -324,6 +332,54 @@ namespace VereinBeratungTherapie.Invoicing
}
}
private decimal GetKombinierteLG(ServiceInvoicePeriod period, SupportConceptApprovalPeriodDC scapBW, ServiceCategoryDC cat, CostBearer2SupportConcept cb2sc, decimal lgMin, decimal? preis)
{
// BeckerA, 26.05.2025: Anpassung in Umrechnung der LG, ABER das war nur für QA nötig, allerdings scheint es noch Altfälle zu gebenm die ohnehin Minutenweise umgerechnet wurden
// z.B. Babadagi
// BeckerA, 26.05.2025: Programmierung soweit angepasst, GetKombiniertenPreis fehlt noch, warte da auf ihre Rückmeldung
// Errechnung des summierten Preises und Einzelpreise TS und BW
var scapTSs = cb2sc.ApprovalPeriodList.Where(a => a.ServiceCategory != null && a.ServiceCategory.Abbreviation.Contains(cat.Abbreviation.Substring(0, 2))
&& a.ServiceCategory.Abbreviation.Substring(2, 2) == "TS").ToList();
if (scapTSs != null)
{
foreach (var ap in scapTSs)
{
if (scapBW.StartDate == ap.StartDate && scapBW.EndDate == ap.EndDate || ap.StartDate < period.End && ap.EndDate > period.Start)
{
var catTs = MapperFactory.ServiceCategoryDC_ServiceCategory.MapToNewDC(ap.ServiceCategory);
decimal minPreis = Math.Round(preis.Value / 60, 4, MidpointRounding.AwayFromZero);
decimal lgTs = 0;
decimal lgGes = 0;
if (ap.ApprovedBEPerInterval != null)
{
lgTs = ap.ApprovedBEPerInterval.Value;
}
// LWV rundet den Prei bei KA und alten Bewilligungen QA auf Minutenwert und bei neuer QA auf Stunden :-P
if (cat.Abbreviation.Contains("QA") || cat.Name.Contains("Qualifizierte"))
{
if (ap.Notice == null || !ap.Notice.ToLower().Contains("alt"))
{
lgGes = GetLeistungsgruppe(lgMin + lgTs, cat);
var dif = lgGes - lgMin - lgTs;
if (dif != 0)
{
dif /= 2;
}
lgMin += dif;
lgTs += dif;
}
else
{
lgGes = lgMin + lgTs;
}
}
return lgMin;
}
}
}
return lgMin;
}
private decimal GetLeistungsgruppe(decimal? approvedBEPerInterval, ServiceCategoryDC cat)
{
// Qualifizierte Assistenz wird in Stufen - sogenannten Leistungsgruppen abgerechnet -